Next: MIPS Features, Previous: ARM Features, Up: Standard Target Features

#### G.4.3 i386 Features

The ‘`org.gnu.gdb.i386.core`’ feature is required for i386/amd64 targets. It should describe the following registers:

- ‘`eax`’ through ‘`edi`’ plus ‘`eip`’ for i386
- ‘`rax`’ through ‘`r15`’ plus ‘`rip`’ for amd64
- ‘`eflags`’, ‘`cs`’, ‘`ss`’, ‘`ds`’, ‘`es`’, ‘`fs`’, ‘`gs`’
- ‘`st0`’ through ‘`st7`’
- ‘`fctrl`’, ‘`fstat`’, ‘`ftag`’, ‘`fiseg`’, ‘`fioff`’, ‘`foseg`’, ‘`fooff`’ and ‘`fop`’

The register sets may be different, depending on the target.

The ‘`org.gnu.gdb.i386.sse`’ feature is optional. It should describe registers:

- ‘`xmm0`’ through ‘`xmm7`’ for i386
- ‘`xmm0`’ through ‘`xmm15`’ for amd64
- ‘`mxcsr`’

The ‘`org.gnu.gdb.i386.avx`’ feature is optional and requires the ‘`org.gnu.gdb.i386.sse`’ feature. It should describe the upper 128 bits of ymm registers:

- ‘`ymm0h`’ through ‘`ymm7h`’ for i386
- ‘`ymm0h`’ through ‘`ymm15h`’ for amd64

The ‘`org.gnu.gdb.i386.mpx`’ is an optional feature representing Intel(R) Memory Protection Extension (MPX). It should describe the following registers:

- ‘`bnd0raw`’ through ‘`bnd3raw`’ for i386 and amd64.
- ‘`bndcfgu`’ and ‘`bndstatus`’ for i386 and amd64.

The ‘`org.gnu.gdb.i386.linux`’ feature is optional. It should describe a single register, ‘`orig_eax`’.

The ‘`org.gnu.gdb.i386.avx512`’ feature is optional and requires the ‘`org.gnu.gdb.i386.avx`’ feature. It should describe additional xmm registers:

- ‘`xmm16h`’ through ‘`xmm31h`’, only valid for amd64.

It should describe the upper 128 bits of additional ymm registers:

- ‘`ymm16h`’ through ‘`ymm31h`’, only valid for amd64.

It should describe the upper 256 bits of zmm registers:

- ‘`zmm0h`’ through ‘`zmm7h`’ for i386.
- ‘`zmm0h`’ through ‘`zmm15h`’ for amd64.

It should describe the additional zmm registers:

- ‘`zmm16h`’ through ‘`zmm31h`’, only valid for amd64.