diff --git a/gdb/amd64-linux-nat.c b/gdb/amd64-linux-nat.c index a24b415..c2b20f3 100644 --- a/gdb/amd64-linux-nat.c +++ b/gdb/amd64-linux-nat.c @@ -1104,7 +1104,7 @@ amd64_linux_read_description (struct target_ops *ops) if (is_64bit) { if (is_x32) - return tdesc_x32_mpx_linux; + return tdesc_x32_avx_linux; /* No MPX on x32 using AVX. */ else return tdesc_amd64_mpx_linux; } diff --git a/gdb/amd64-linux-tdep.c b/gdb/amd64-linux-tdep.c index 9740aff..538238e 100644 --- a/gdb/amd64-linux-tdep.c +++ b/gdb/amd64-linux-tdep.c @@ -45,7 +45,6 @@ #include "features/i386/amd64-mpx-linux.c" #include "features/i386/x32-linux.c" #include "features/i386/x32-avx-linux.c" -#include "features/i386/x32-mpx-linux.c" /* The syscall's XML filename for i386. */ #define XML_SYSCALL_FILENAME_AMD64 "syscalls/amd64-linux.xml" @@ -1296,7 +1295,7 @@ amd64_linux_core_read_description (struct gdbarch *gdbarch, { case I386_XSTATE_MPX_MASK: if (gdbarch_ptr_bit (gdbarch) == 32) - return tdesc_x32_mpx_linux; + return tdesc_x32_avx_linux; /* No x32 MPX falling back to AVX. */ else return tdesc_amd64_mpx_linux; case I386_XSTATE_AVX_MASK: @@ -1636,5 +1635,4 @@ _initialize_amd64_linux_tdep (void) initialize_tdesc_amd64_mpx_linux (); initialize_tdesc_x32_linux (); initialize_tdesc_x32_avx_linux (); - initialize_tdesc_x32_mpx_linux (); } diff --git a/gdb/amd64-linux-tdep.h b/gdb/amd64-linux-tdep.h index 5783fa3..6e85a5b 100644 --- a/gdb/amd64-linux-tdep.h +++ b/gdb/amd64-linux-tdep.h @@ -37,7 +37,6 @@ extern struct target_desc *tdesc_amd64_avx_linux; extern struct target_desc *tdesc_amd64_mpx_linux; extern struct target_desc *tdesc_x32_linux; extern struct target_desc *tdesc_x32_avx_linux; -extern struct target_desc *tdesc_x32_mpx_linux; /* Enum that defines the syscall identifiers for amd64 linux. Used for process record/replay, these will be translated into diff --git a/gdb/amd64-tdep.c b/gdb/amd64-tdep.c index d0a62a7..1bb72ca 100644 --- a/gdb/amd64-tdep.c +++ b/gdb/amd64-tdep.c @@ -46,7 +46,6 @@ #include "features/i386/amd64-mpx.c" #include "features/i386/x32.c" #include "features/i386/x32-avx.c" -#include "features/i386/x32-mpx.c" #include "ax.h" #include "ax-gdb.h" @@ -3003,7 +3002,6 @@ _initialize_amd64_tdep (void) initialize_tdesc_amd64_mpx (); initialize_tdesc_x32 (); initialize_tdesc_x32_avx (); - initialize_tdesc_x32_mpx (); } diff --git a/gdb/common/i386-xstate.h b/gdb/common/i386-xstate.h index 37e68f8..e76ecc1 100644 --- a/gdb/common/i386-xstate.h +++ b/gdb/common/i386-xstate.h @@ -31,9 +31,9 @@ #define I386_XSTATE_X87_MASK I386_XSTATE_X87 #define I386_XSTATE_SSE_MASK (I386_XSTATE_X87 | I386_XSTATE_SSE) #define I386_XSTATE_AVX_MASK (I386_XSTATE_SSE_MASK | I386_XSTATE_AVX) -#define I386_XSTATE_MPX_MASK (I386_XSTATE_AVX_MASK | \ - I386_XSTATE_BNDREGS | \ - I386_XSTATE_BNDCFG) +#define I386_XSTATE_MPX_MASK (I386_XSTATE_AVX_MASK \ + | I386_XSTATE_BNDREGS \ + | I386_XSTATE_BNDCFG) #define I386_XSTATE_ALL_MASK I386_XSTATE_MPX_MASK @@ -45,13 +45,10 @@ #define I386_XSTATE_MAX_SIZE 1088 /* Get I386 XSAVE extended state size. */ -#define I386_XSTATE_SIZE(XCR0) \ - (((XCR0) & I386_XSTATE_BNDCFG) != 0 \ - ? I386_XSTATE_BNDCFG_SIZE : \ - (((XCR0) & I386_XSTATE_BNDREGS) != 0 \ - ? I386_XSTATE_BNDCFG_SIZE : \ - (((XCR0) & I386_XSTATE_AVX_SIZE) != 0 \ - ? I386_XSTATE_AVX_SIZE : \ - I386_XSTATE_SSE_SIZE)))\ +#define I386_XSTATE_SIZE(XCR0) \ + (((XCR0) & I386_XSTATE_BNDCFG) != 0 ? I386_XSTATE_BNDCFG_SIZE \ + : (((XCR0) & I386_XSTATE_BNDREGS) != 0 ? I386_XSTATE_BNDCFG_SIZE \ + : (((XCR0) & I386_XSTATE_AVX_SIZE) != 0 ? I386_XSTATE_AVX_SIZE \ + : I386_XSTATE_SSE_SIZE))) #endif /* I386_XSTATE_H */ diff --git a/gdb/features/Makefile b/gdb/features/Makefile index c0bc0de..1d78d1d 100644 --- a/gdb/features/Makefile +++ b/gdb/features/Makefile @@ -42,7 +42,6 @@ WHICH = aarch64 \ i386/amd64-mpx i386/amd64-mpx-linux \ i386/x32 i386/x32-linux \ i386/x32-avx i386/x32-avx-linux \ - i386/x32-mpx i386/x32-mpx-linux \ mips-linux mips-dsp-linux \ mips64-linux mips64-dsp-linux \ nios2-linux \ @@ -78,8 +77,6 @@ i386/x32-expedite = rbp,rsp,rip i386/x32-linux-expedite = rbp,rsp,rip i386/x32-avx-expedite = rbp,rsp,rip i386/x32-avx-linux-expedite = rbp,rsp,rip -i386/x32-mpx-expedite = rbp,rsp,rip -i386/x32-mpx-linux-expedite = rbp,rsp,rip mips-expedite = r29,pc mips-dsp-expedite = r29,pc mips64-expedite = r29,pc @@ -141,7 +138,7 @@ $(outdir)/i386/i386-linux.dat: i386/32bit-core.xml i386/32bit-sse.xml \ i386/32bit-linux.xml $(outdir)/i386/amd64.dat: i386/64bit-core.xml i386/64bit-sse.xml $(outdir)/i386/amd64-linux.dat: i386/64bit-core.xml i386/64bit-sse.xml \ - i386/64bit-linux.xml + i386/64bit-linux.xml $(outdir)/i386/i386-avx.dat: i386/32bit-core.xml i386/32bit-avx.xml $(outdir)/i386/i386-avx-linux.dat: i386/32bit-core.xml i386/32bit-avx.xml \ i386/32bit-linux.xml @@ -153,27 +150,14 @@ $(outdir)/i386/i386-mmx.dat: i386/32bit-core.xml $(outdir)/i386/i386-mmx-linux.dat: i386/32bit-core.xml i386/32bit-linux.xml $(outdir)/i386/amd64-avx.dat: i386/64bit-core.xml i386/64bit-avx.xml $(outdir)/i386/amd64-avx-linux.dat: i386/64bit-core.xml i386/64bit-avx.xml \ - i386/64bit-linux.xml + i386/64bit-linux.xml $(outdir)/i386/amd64-mpx-linux.dat: i386/64bit-core.xml i386/64bit-avx.xml \ i386/64bit-linux.xml i386/64bit-mpx.xml $(outdir)/i386/amd64-mpx.dat: i386/64bit-core.xml i386/64bit-avx.xml \ i386/64bit-mpx.xml $(outdir)/i386/x32.dat: i386/x32-core.xml i386/64bit-sse.xml $(outdir)/i386/x32-linux.dat: i386/x32-core.xml i386/64bit-sse.xml \ - i386/64bit-linux.xml + i386/64bit-linux.xml $(outdir)/i386/x32-avx.dat: i386/x32-core.xml i386/64bit-avx.xml $(outdir)/i386/x32-avx-linux.dat: i386/x32-core.xml i386/64bit-avx.xml \ - i386/64bit-linux.xml -$(outdir)/i386/amd64-mpx.dat: i386/64bit-core.xml i386/64bit-avx.xml \ - i386/64bit-mpx.xml -$(outdir)/i386/amd64-mpx-linux.dat: i386/64bit-core.xml i386/64bit-avx.xml \ - i386/64bit-linux.xml i386/64bit-mpx.xml -$(outdir)/i386/x32.dat: i386/x32-core.xml i386/64bit-sse.xml -$(outdir)/i386/x32-linux.dat: i386/x32-core.xml i386/64bit-sse.xml \ - i386/64bit-linux.xml -$(outdir)/i386/x32-avx.dat: i386/x32-core.xml i386/64bit-avx.xml -$(outdir)/i386/x32-avx-linux.dat: i386/x32-core.xml i386/64bit-avx.xml \ - i386/64bit-linux.xml -$(outdir)/i386/x32-mpx.dat: i386/x32-core.xml i386/64bit-avx.xml i386/64bit-mpx.xml -$(outdir)/i386/x32-mpx-linux.dat: i386/x32-core.xml i386/64bit-avx.xml \ - i386/64bit-linux.xml i386/64bit-mpx.xml + i386/64bit-linux.xml diff --git a/gdb/features/i386/x32-mpx-linux.c b/gdb/features/i386/x32-mpx-linux.c deleted file mode 100644 index 44ee9c8..0000000 --- a/gdb/features/i386/x32-mpx-linux.c +++ /dev/null @@ -1,211 +0,0 @@ -/* THIS FILE IS GENERATED. -*- buffer-read-only: t -*- vi:set ro: - Original: x32-mpx-linux.xml */ - -#include "defs.h" -#include "osabi.h" -#include "target-descriptions.h" - -struct target_desc *tdesc_x32_mpx_linux; -static void -initialize_tdesc_x32_mpx_linux (void) -{ - struct target_desc *result = allocate_target_description (); - struct tdesc_feature *feature; - struct tdesc_type *field_type; - struct tdesc_type *type; - - set_tdesc_architecture (result, bfd_scan_arch ("i386:x64-32")); - - set_tdesc_osabi (result, osabi_from_tdesc_string ("GNU/Linux")); - - feature = tdesc_create_feature (result, "org.gnu.gdb.i386.core"); - field_type = tdesc_create_flags (feature, "i386_eflags", 4); - tdesc_add_flag (field_type, 0, "CF"); - tdesc_add_flag (field_type, 1, ""); - tdesc_add_flag (field_type, 2, "PF"); - tdesc_add_flag (field_type, 4, "AF"); - tdesc_add_flag (field_type, 6, "ZF"); - tdesc_add_flag (field_type, 7, "SF"); - tdesc_add_flag (field_type, 8, "TF"); - tdesc_add_flag (field_type, 9, "IF"); - tdesc_add_flag (field_type, 10, "DF"); - tdesc_add_flag (field_type, 11, "OF"); - tdesc_add_flag (field_type, 14, "NT"); - tdesc_add_flag (field_type, 16, "RF"); - tdesc_add_flag (field_type, 17, "VM"); - tdesc_add_flag (field_type, 18, "AC"); - tdesc_add_flag (field_type, 19, "VIF"); - tdesc_add_flag (field_type, 20, "VIP"); - tdesc_add_flag (field_type, 21, "ID"); - - tdesc_create_reg (feature, "rax", 0, 1, NULL, 64, "int64"); - tdesc_create_reg (feature, "rbx", 1, 1, NULL, 64, "int64"); - tdesc_create_reg (feature, "rcx", 2, 1, NULL, 64, "int64"); - tdesc_create_reg (feature, "rdx", 3, 1, NULL, 64, "int64"); - tdesc_create_reg (feature, "rsi", 4, 1, NULL, 64, "int64"); - tdesc_create_reg (feature, "rdi", 5, 1, NULL, 64, "int64"); - tdesc_create_reg (feature, "rbp", 6, 1, NULL, 64, "int64"); - tdesc_create_reg (feature, "rsp", 7, 1, NULL, 64, "int64"); - tdesc_create_reg (feature, "r8", 8, 1, NULL, 64, "int64"); - tdesc_create_reg (feature, "r9", 9, 1, NULL, 64, "int64"); - tdesc_create_reg (feature, "r10", 10, 1, NULL, 64, "int64"); - tdesc_create_reg (feature, "r11", 11, 1, NULL, 64, "int64"); - tdesc_create_reg (feature, "r12", 12, 1, NULL, 64, "int64"); - tdesc_create_reg (feature, "r13", 13, 1, NULL, 64, "int64"); - tdesc_create_reg (feature, "r14", 14, 1, NULL, 64, "int64"); - tdesc_create_reg (feature, "r15", 15, 1, NULL, 64, "int64"); - tdesc_create_reg (feature, "rip", 16, 1, NULL, 64, "uint64"); - tdesc_create_reg (feature, "eflags", 17, 1, NULL, 32, "i386_eflags"); - tdesc_create_reg (feature, "cs", 18, 1, NULL, 32, "int32"); - tdesc_create_reg (feature, "ss", 19, 1, NULL, 32, "int32"); - tdesc_create_reg (feature, "ds", 20, 1, NULL, 32, "int32"); - tdesc_create_reg (feature, "es", 21, 1, NULL, 32, "int32"); - tdesc_create_reg (feature, "fs", 22, 1, NULL, 32, "int32"); - tdesc_create_reg (feature, "gs", 23, 1, NULL, 32, "int32"); - tdesc_create_reg (feature, "st0", 24, 1, NULL, 80, "i387_ext"); - tdesc_create_reg (feature, "st1", 25, 1, NULL, 80, "i387_ext"); - tdesc_create_reg (feature, "st2", 26, 1, NULL, 80, "i387_ext"); - tdesc_create_reg (feature, "st3", 27, 1, NULL, 80, "i387_ext"); - tdesc_create_reg (feature, "st4", 28, 1, NULL, 80, "i387_ext"); - tdesc_create_reg (feature, "st5", 29, 1, NULL, 80, "i387_ext"); - tdesc_create_reg (feature, "st6", 30, 1, NULL, 80, "i387_ext"); - tdesc_create_reg (feature, "st7", 31, 1, NULL, 80, "i387_ext"); - tdesc_create_reg (feature, "fctrl", 32, 1, "float", 32, "int"); - tdesc_create_reg (feature, "fstat", 33, 1, "float", 32, "int"); - tdesc_create_reg (feature, "ftag", 34, 1, "float", 32, "int"); - tdesc_create_reg (feature, "fiseg", 35, 1, "float", 32, "int"); - tdesc_create_reg (feature, "fioff", 36, 1, "float", 32, "int"); - tdesc_create_reg (feature, "foseg", 37, 1, "float", 32, "int"); - tdesc_create_reg (feature, "fooff", 38, 1, "float", 32, "int"); - tdesc_create_reg (feature, "fop", 39, 1, "float", 32, "int"); - - feature = tdesc_create_feature (result, "org.gnu.gdb.i386.sse"); - field_type = tdesc_named_type (feature, "ieee_single"); - tdesc_create_vector (feature, "v4f", field_type, 4); - - field_type = tdesc_named_type (feature, "ieee_double"); - tdesc_create_vector (feature, "v2d", field_type, 2); - - field_type = tdesc_named_type (feature, "int8"); - tdesc_create_vector (feature, "v16i8", field_type, 16); - - field_type = tdesc_named_type (feature, "int16"); - tdesc_create_vector (feature, "v8i16", field_type, 8); - - field_type = tdesc_named_type (feature, "int32"); - tdesc_create_vector (feature, "v4i32", field_type, 4); - - field_type = tdesc_named_type (feature, "int64"); - tdesc_create_vector (feature, "v2i64", field_type, 2); - - type = tdesc_create_union (feature, "vec128"); - field_type = tdesc_named_type (feature, "v4f"); - tdesc_add_field (type, "v4_float", field_type); - field_type = tdesc_named_type (feature, "v2d"); - tdesc_add_field (type, "v2_double", field_type); - field_type = tdesc_named_type (feature, "v16i8"); - tdesc_add_field (type, "v16_int8", field_type); - field_type = tdesc_named_type (feature, "v8i16"); - tdesc_add_field (type, "v8_int16", field_type); - field_type = tdesc_named_type (feature, "v4i32"); - tdesc_add_field (type, "v4_int32", field_type); - field_type = tdesc_named_type (feature, "v2i64"); - tdesc_add_field (type, "v2_int64", field_type); - field_type = tdesc_named_type (feature, "uint128"); - tdesc_add_field (type, "uint128", field_type); - - field_type = tdesc_create_flags (feature, "i386_mxcsr", 4); - tdesc_add_flag (field_type, 0, "IE"); - tdesc_add_flag (field_type, 1, "DE"); - tdesc_add_flag (field_type, 2, "ZE"); - tdesc_add_flag (field_type, 3, "OE"); - tdesc_add_flag (field_type, 4, "UE"); - tdesc_add_flag (field_type, 5, "PE"); - tdesc_add_flag (field_type, 6, "DAZ"); - tdesc_add_flag (field_type, 7, "IM"); - tdesc_add_flag (field_type, 8, "DM"); - tdesc_add_flag (field_type, 9, "ZM"); - tdesc_add_flag (field_type, 10, "OM"); - tdesc_add_flag (field_type, 11, "UM"); - tdesc_add_flag (field_type, 12, "PM"); - tdesc_add_flag (field_type, 15, "FZ"); - - tdesc_create_reg (feature, "xmm0", 40, 1, NULL, 128, "vec128"); - tdesc_create_reg (feature, "xmm1", 41, 1, NULL, 128, "vec128"); - tdesc_create_reg (feature, "xmm2", 42, 1, NULL, 128, "vec128"); - tdesc_create_reg (feature, "xmm3", 43, 1, NULL, 128, "vec128"); - tdesc_create_reg (feature, "xmm4", 44, 1, NULL, 128, "vec128"); - tdesc_create_reg (feature, "xmm5", 45, 1, NULL, 128, "vec128"); - tdesc_create_reg (feature, "xmm6", 46, 1, NULL, 128, "vec128"); - tdesc_create_reg (feature, "xmm7", 47, 1, NULL, 128, "vec128"); - tdesc_create_reg (feature, "xmm8", 48, 1, NULL, 128, "vec128"); - tdesc_create_reg (feature, "xmm9", 49, 1, NULL, 128, "vec128"); - tdesc_create_reg (feature, "xmm10", 50, 1, NULL, 128, "vec128"); - tdesc_create_reg (feature, "xmm11", 51, 1, NULL, 128, "vec128"); - tdesc_create_reg (feature, "xmm12", 52, 1, NULL, 128, "vec128"); - tdesc_create_reg (feature, "xmm13", 53, 1, NULL, 128, "vec128"); - tdesc_create_reg (feature, "xmm14", 54, 1, NULL, 128, "vec128"); - tdesc_create_reg (feature, "xmm15", 55, 1, NULL, 128, "vec128"); - tdesc_create_reg (feature, "mxcsr", 56, 1, "vector", 32, "i386_mxcsr"); - - feature = tdesc_create_feature (result, "org.gnu.gdb.i386.linux"); - tdesc_create_reg (feature, "orig_rax", 57, 1, NULL, 64, "int"); - - feature = tdesc_create_feature (result, "org.gnu.gdb.i386.avx"); - tdesc_create_reg (feature, "ymm0h", 58, 1, NULL, 128, "uint128"); - tdesc_create_reg (feature, "ymm1h", 59, 1, NULL, 128, "uint128"); - tdesc_create_reg (feature, "ymm2h", 60, 1, NULL, 128, "uint128"); - tdesc_create_reg (feature, "ymm3h", 61, 1, NULL, 128, "uint128"); - tdesc_create_reg (feature, "ymm4h", 62, 1, NULL, 128, "uint128"); - tdesc_create_reg (feature, "ymm5h", 63, 1, NULL, 128, "uint128"); - tdesc_create_reg (feature, "ymm6h", 64, 1, NULL, 128, "uint128"); - tdesc_create_reg (feature, "ymm7h", 65, 1, NULL, 128, "uint128"); - tdesc_create_reg (feature, "ymm8h", 66, 1, NULL, 128, "uint128"); - tdesc_create_reg (feature, "ymm9h", 67, 1, NULL, 128, "uint128"); - tdesc_create_reg (feature, "ymm10h", 68, 1, NULL, 128, "uint128"); - tdesc_create_reg (feature, "ymm11h", 69, 1, NULL, 128, "uint128"); - tdesc_create_reg (feature, "ymm12h", 70, 1, NULL, 128, "uint128"); - tdesc_create_reg (feature, "ymm13h", 71, 1, NULL, 128, "uint128"); - tdesc_create_reg (feature, "ymm14h", 72, 1, NULL, 128, "uint128"); - tdesc_create_reg (feature, "ymm15h", 73, 1, NULL, 128, "uint128"); - - feature = tdesc_create_feature (result, "org.gnu.gdb.i386.mpx"); - type = tdesc_create_struct (feature, "br128"); - field_type = tdesc_named_type (feature, "uint64"); - tdesc_add_field (type, "lbound", field_type); - field_type = tdesc_named_type (feature, "uint64"); - tdesc_add_field (type, "ubound_raw", field_type); - - type = tdesc_create_struct (feature, "_bndstatus"); - tdesc_set_struct_size (type, 8); - tdesc_add_bitfield (type, "bde", 2, 63); - tdesc_add_bitfield (type, "error", 0, 1); - - type = tdesc_create_union (feature, "status"); - field_type = tdesc_named_type (feature, "data_ptr"); - tdesc_add_field (type, "raw", field_type); - field_type = tdesc_named_type (feature, "_bndstatus"); - tdesc_add_field (type, "status", field_type); - - type = tdesc_create_struct (feature, "_bndcfgu"); - tdesc_set_struct_size (type, 8); - tdesc_add_bitfield (type, "base", 12, 63); - tdesc_add_bitfield (type, "reserved", 2, 11); - tdesc_add_bitfield (type, "preserved", 1, 1); - tdesc_add_bitfield (type, "enabled", 0, 0); - - type = tdesc_create_union (feature, "cfgu"); - field_type = tdesc_named_type (feature, "data_ptr"); - tdesc_add_field (type, "raw", field_type); - field_type = tdesc_named_type (feature, "_bndcfgu"); - tdesc_add_field (type, "config", field_type); - - tdesc_create_reg (feature, "bnd0raw", 74, 1, NULL, 128, "br128"); - tdesc_create_reg (feature, "bnd1raw", 75, 1, NULL, 128, "br128"); - tdesc_create_reg (feature, "bnd2raw", 76, 1, NULL, 128, "br128"); - tdesc_create_reg (feature, "bnd3raw", 77, 1, NULL, 128, "br128"); - tdesc_create_reg (feature, "bndcfgu", 78, 1, NULL, 64, "cfgu"); - tdesc_create_reg (feature, "bndstatus", 79, 1, NULL, 64, "status"); - - tdesc_x32_mpx_linux = result; -} diff --git a/gdb/features/i386/x32-mpx-linux.xml b/gdb/features/i386/x32-mpx-linux.xml deleted file mode 100644 index f803eb3..0000000 --- a/gdb/features/i386/x32-mpx-linux.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - - i386:x64-32 - GNU/Linux - - - - - - diff --git a/gdb/features/i386/x32-mpx.c b/gdb/features/i386/x32-mpx.c deleted file mode 100644 index 57e2c5f..0000000 --- a/gdb/features/i386/x32-mpx.c +++ /dev/null @@ -1,206 +0,0 @@ -/* THIS FILE IS GENERATED. -*- buffer-read-only: t -*- vi:set ro: - Original: x32-mpx.xml */ - -#include "defs.h" -#include "osabi.h" -#include "target-descriptions.h" - -struct target_desc *tdesc_x32_mpx; -static void -initialize_tdesc_x32_mpx (void) -{ - struct target_desc *result = allocate_target_description (); - struct tdesc_feature *feature; - struct tdesc_type *field_type; - struct tdesc_type *type; - - set_tdesc_architecture (result, bfd_scan_arch ("i386:x64-32")); - - feature = tdesc_create_feature (result, "org.gnu.gdb.i386.core"); - field_type = tdesc_create_flags (feature, "i386_eflags", 4); - tdesc_add_flag (field_type, 0, "CF"); - tdesc_add_flag (field_type, 1, ""); - tdesc_add_flag (field_type, 2, "PF"); - tdesc_add_flag (field_type, 4, "AF"); - tdesc_add_flag (field_type, 6, "ZF"); - tdesc_add_flag (field_type, 7, "SF"); - tdesc_add_flag (field_type, 8, "TF"); - tdesc_add_flag (field_type, 9, "IF"); - tdesc_add_flag (field_type, 10, "DF"); - tdesc_add_flag (field_type, 11, "OF"); - tdesc_add_flag (field_type, 14, "NT"); - tdesc_add_flag (field_type, 16, "RF"); - tdesc_add_flag (field_type, 17, "VM"); - tdesc_add_flag (field_type, 18, "AC"); - tdesc_add_flag (field_type, 19, "VIF"); - tdesc_add_flag (field_type, 20, "VIP"); - tdesc_add_flag (field_type, 21, "ID"); - - tdesc_create_reg (feature, "rax", 0, 1, NULL, 64, "int64"); - tdesc_create_reg (feature, "rbx", 1, 1, NULL, 64, "int64"); - tdesc_create_reg (feature, "rcx", 2, 1, NULL, 64, "int64"); - tdesc_create_reg (feature, "rdx", 3, 1, NULL, 64, "int64"); - tdesc_create_reg (feature, "rsi", 4, 1, NULL, 64, "int64"); - tdesc_create_reg (feature, "rdi", 5, 1, NULL, 64, "int64"); - tdesc_create_reg (feature, "rbp", 6, 1, NULL, 64, "int64"); - tdesc_create_reg (feature, "rsp", 7, 1, NULL, 64, "int64"); - tdesc_create_reg (feature, "r8", 8, 1, NULL, 64, "int64"); - tdesc_create_reg (feature, "r9", 9, 1, NULL, 64, "int64"); - tdesc_create_reg (feature, "r10", 10, 1, NULL, 64, "int64"); - tdesc_create_reg (feature, "r11", 11, 1, NULL, 64, "int64"); - tdesc_create_reg (feature, "r12", 12, 1, NULL, 64, "int64"); - tdesc_create_reg (feature, "r13", 13, 1, NULL, 64, "int64"); - tdesc_create_reg (feature, "r14", 14, 1, NULL, 64, "int64"); - tdesc_create_reg (feature, "r15", 15, 1, NULL, 64, "int64"); - tdesc_create_reg (feature, "rip", 16, 1, NULL, 64, "uint64"); - tdesc_create_reg (feature, "eflags", 17, 1, NULL, 32, "i386_eflags"); - tdesc_create_reg (feature, "cs", 18, 1, NULL, 32, "int32"); - tdesc_create_reg (feature, "ss", 19, 1, NULL, 32, "int32"); - tdesc_create_reg (feature, "ds", 20, 1, NULL, 32, "int32"); - tdesc_create_reg (feature, "es", 21, 1, NULL, 32, "int32"); - tdesc_create_reg (feature, "fs", 22, 1, NULL, 32, "int32"); - tdesc_create_reg (feature, "gs", 23, 1, NULL, 32, "int32"); - tdesc_create_reg (feature, "st0", 24, 1, NULL, 80, "i387_ext"); - tdesc_create_reg (feature, "st1", 25, 1, NULL, 80, "i387_ext"); - tdesc_create_reg (feature, "st2", 26, 1, NULL, 80, "i387_ext"); - tdesc_create_reg (feature, "st3", 27, 1, NULL, 80, "i387_ext"); - tdesc_create_reg (feature, "st4", 28, 1, NULL, 80, "i387_ext"); - tdesc_create_reg (feature, "st5", 29, 1, NULL, 80, "i387_ext"); - tdesc_create_reg (feature, "st6", 30, 1, NULL, 80, "i387_ext"); - tdesc_create_reg (feature, "st7", 31, 1, NULL, 80, "i387_ext"); - tdesc_create_reg (feature, "fctrl", 32, 1, "float", 32, "int"); - tdesc_create_reg (feature, "fstat", 33, 1, "float", 32, "int"); - tdesc_create_reg (feature, "ftag", 34, 1, "float", 32, "int"); - tdesc_create_reg (feature, "fiseg", 35, 1, "float", 32, "int"); - tdesc_create_reg (feature, "fioff", 36, 1, "float", 32, "int"); - tdesc_create_reg (feature, "foseg", 37, 1, "float", 32, "int"); - tdesc_create_reg (feature, "fooff", 38, 1, "float", 32, "int"); - tdesc_create_reg (feature, "fop", 39, 1, "float", 32, "int"); - - feature = tdesc_create_feature (result, "org.gnu.gdb.i386.sse"); - field_type = tdesc_named_type (feature, "ieee_single"); - tdesc_create_vector (feature, "v4f", field_type, 4); - - field_type = tdesc_named_type (feature, "ieee_double"); - tdesc_create_vector (feature, "v2d", field_type, 2); - - field_type = tdesc_named_type (feature, "int8"); - tdesc_create_vector (feature, "v16i8", field_type, 16); - - field_type = tdesc_named_type (feature, "int16"); - tdesc_create_vector (feature, "v8i16", field_type, 8); - - field_type = tdesc_named_type (feature, "int32"); - tdesc_create_vector (feature, "v4i32", field_type, 4); - - field_type = tdesc_named_type (feature, "int64"); - tdesc_create_vector (feature, "v2i64", field_type, 2); - - type = tdesc_create_union (feature, "vec128"); - field_type = tdesc_named_type (feature, "v4f"); - tdesc_add_field (type, "v4_float", field_type); - field_type = tdesc_named_type (feature, "v2d"); - tdesc_add_field (type, "v2_double", field_type); - field_type = tdesc_named_type (feature, "v16i8"); - tdesc_add_field (type, "v16_int8", field_type); - field_type = tdesc_named_type (feature, "v8i16"); - tdesc_add_field (type, "v8_int16", field_type); - field_type = tdesc_named_type (feature, "v4i32"); - tdesc_add_field (type, "v4_int32", field_type); - field_type = tdesc_named_type (feature, "v2i64"); - tdesc_add_field (type, "v2_int64", field_type); - field_type = tdesc_named_type (feature, "uint128"); - tdesc_add_field (type, "uint128", field_type); - - field_type = tdesc_create_flags (feature, "i386_mxcsr", 4); - tdesc_add_flag (field_type, 0, "IE"); - tdesc_add_flag (field_type, 1, "DE"); - tdesc_add_flag (field_type, 2, "ZE"); - tdesc_add_flag (field_type, 3, "OE"); - tdesc_add_flag (field_type, 4, "UE"); - tdesc_add_flag (field_type, 5, "PE"); - tdesc_add_flag (field_type, 6, "DAZ"); - tdesc_add_flag (field_type, 7, "IM"); - tdesc_add_flag (field_type, 8, "DM"); - tdesc_add_flag (field_type, 9, "ZM"); - tdesc_add_flag (field_type, 10, "OM"); - tdesc_add_flag (field_type, 11, "UM"); - tdesc_add_flag (field_type, 12, "PM"); - tdesc_add_flag (field_type, 15, "FZ"); - - tdesc_create_reg (feature, "xmm0", 40, 1, NULL, 128, "vec128"); - tdesc_create_reg (feature, "xmm1", 41, 1, NULL, 128, "vec128"); - tdesc_create_reg (feature, "xmm2", 42, 1, NULL, 128, "vec128"); - tdesc_create_reg (feature, "xmm3", 43, 1, NULL, 128, "vec128"); - tdesc_create_reg (feature, "xmm4", 44, 1, NULL, 128, "vec128"); - tdesc_create_reg (feature, "xmm5", 45, 1, NULL, 128, "vec128"); - tdesc_create_reg (feature, "xmm6", 46, 1, NULL, 128, "vec128"); - tdesc_create_reg (feature, "xmm7", 47, 1, NULL, 128, "vec128"); - tdesc_create_reg (feature, "xmm8", 48, 1, NULL, 128, "vec128"); - tdesc_create_reg (feature, "xmm9", 49, 1, NULL, 128, "vec128"); - tdesc_create_reg (feature, "xmm10", 50, 1, NULL, 128, "vec128"); - tdesc_create_reg (feature, "xmm11", 51, 1, NULL, 128, "vec128"); - tdesc_create_reg (feature, "xmm12", 52, 1, NULL, 128, "vec128"); - tdesc_create_reg (feature, "xmm13", 53, 1, NULL, 128, "vec128"); - tdesc_create_reg (feature, "xmm14", 54, 1, NULL, 128, "vec128"); - tdesc_create_reg (feature, "xmm15", 55, 1, NULL, 128, "vec128"); - tdesc_create_reg (feature, "mxcsr", 56, 1, "vector", 32, "i386_mxcsr"); - - feature = tdesc_create_feature (result, "org.gnu.gdb.i386.avx"); - tdesc_create_reg (feature, "ymm0h", 57, 1, NULL, 128, "uint128"); - tdesc_create_reg (feature, "ymm1h", 58, 1, NULL, 128, "uint128"); - tdesc_create_reg (feature, "ymm2h", 59, 1, NULL, 128, "uint128"); - tdesc_create_reg (feature, "ymm3h", 60, 1, NULL, 128, "uint128"); - tdesc_create_reg (feature, "ymm4h", 61, 1, NULL, 128, "uint128"); - tdesc_create_reg (feature, "ymm5h", 62, 1, NULL, 128, "uint128"); - tdesc_create_reg (feature, "ymm6h", 63, 1, NULL, 128, "uint128"); - tdesc_create_reg (feature, "ymm7h", 64, 1, NULL, 128, "uint128"); - tdesc_create_reg (feature, "ymm8h", 65, 1, NULL, 128, "uint128"); - tdesc_create_reg (feature, "ymm9h", 66, 1, NULL, 128, "uint128"); - tdesc_create_reg (feature, "ymm10h", 67, 1, NULL, 128, "uint128"); - tdesc_create_reg (feature, "ymm11h", 68, 1, NULL, 128, "uint128"); - tdesc_create_reg (feature, "ymm12h", 69, 1, NULL, 128, "uint128"); - tdesc_create_reg (feature, "ymm13h", 70, 1, NULL, 128, "uint128"); - tdesc_create_reg (feature, "ymm14h", 71, 1, NULL, 128, "uint128"); - tdesc_create_reg (feature, "ymm15h", 72, 1, NULL, 128, "uint128"); - - feature = tdesc_create_feature (result, "org.gnu.gdb.i386.mpx"); - type = tdesc_create_struct (feature, "br128"); - field_type = tdesc_named_type (feature, "uint64"); - tdesc_add_field (type, "lbound", field_type); - field_type = tdesc_named_type (feature, "uint64"); - tdesc_add_field (type, "ubound_raw", field_type); - - type = tdesc_create_struct (feature, "_bndstatus"); - tdesc_set_struct_size (type, 8); - tdesc_add_bitfield (type, "bde", 2, 63); - tdesc_add_bitfield (type, "error", 0, 1); - - type = tdesc_create_union (feature, "status"); - field_type = tdesc_named_type (feature, "data_ptr"); - tdesc_add_field (type, "raw", field_type); - field_type = tdesc_named_type (feature, "_bndstatus"); - tdesc_add_field (type, "status", field_type); - - type = tdesc_create_struct (feature, "_bndcfgu"); - tdesc_set_struct_size (type, 8); - tdesc_add_bitfield (type, "base", 12, 63); - tdesc_add_bitfield (type, "reserved", 2, 11); - tdesc_add_bitfield (type, "preserved", 1, 1); - tdesc_add_bitfield (type, "enabled", 0, 0); - - type = tdesc_create_union (feature, "cfgu"); - field_type = tdesc_named_type (feature, "data_ptr"); - tdesc_add_field (type, "raw", field_type); - field_type = tdesc_named_type (feature, "_bndcfgu"); - tdesc_add_field (type, "config", field_type); - - tdesc_create_reg (feature, "bnd0raw", 73, 1, NULL, 128, "br128"); - tdesc_create_reg (feature, "bnd1raw", 74, 1, NULL, 128, "br128"); - tdesc_create_reg (feature, "bnd2raw", 75, 1, NULL, 128, "br128"); - tdesc_create_reg (feature, "bnd3raw", 76, 1, NULL, 128, "br128"); - tdesc_create_reg (feature, "bndcfgu", 77, 1, NULL, 64, "cfgu"); - tdesc_create_reg (feature, "bndstatus", 78, 1, NULL, 64, "status"); - - tdesc_x32_mpx = result; -} diff --git a/gdb/features/i386/x32-mpx.xml b/gdb/features/i386/x32-mpx.xml deleted file mode 100644 index 3bed447..0000000 --- a/gdb/features/i386/x32-mpx.xml +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - - i386:x64-32 - - - - - diff --git a/gdb/gdbserver/Makefile.in b/gdb/gdbserver/Makefile.in index 81d223c..1814155 100644 --- a/gdb/gdbserver/Makefile.in +++ b/gdb/gdbserver/Makefile.in @@ -348,7 +348,6 @@ clean: rm -f i386-mmx.c i386-mmx-linux.c rm -f x32.c x32-linux.c rm -f x32-avx.c x32-avx-linux.c - rm -f x32-mpx.c x32-mpx-linux.c @$(MAKE) $(FLAGS_TO_PASS) DO=$@ "DODIRS=$(SUBDIRS)" subdir_do maintainer-clean realclean distclean: clean @@ -685,10 +684,6 @@ x32-avx.c : $(srcdir)/../regformats/i386/x32-avx.dat $(regdat_sh) $(SHELL) $(regdat_sh) $(srcdir)/../regformats/i386/x32-avx.dat x32-avx.c x32-avx-linux.c : $(srcdir)/../regformats/i386/x32-avx-linux.dat $(regdat_sh) $(SHELL) $(regdat_sh) $(srcdir)/../regformats/i386/x32-avx-linux.dat x32-avx-linux.c -x32-mpx.c : $(srcdir)/../regformats/i386/x32-mpx.dat $(regdat_sh) - $(SHELL) $(regdat_sh) $(srcdir)/../regformats/i386/x32-mpx.dat x32-mpx.c -x32-mpx-linux.c : $(srcdir)/../regformats/i386/x32-mpx-linux.dat $(regdat_sh) - $(SHELL) $(regdat_sh) $(srcdir)/../regformats/i386/x32-mpx-linux.dat x32-mpx-linux.c reg-xtensa.c : $(srcdir)/../regformats/reg-xtensa.dat $(regdat_sh) $(SHELL) $(regdat_sh) $(srcdir)/../regformats/reg-xtensa.dat reg-xtensa.c reg-tilegx.c : $(srcdir)/../regformats/reg-tilegx.dat $(regdat_sh) diff --git a/gdb/gdbserver/configure.srv b/gdb/gdbserver/configure.srv index 276452e..32d935a 100644 --- a/gdb/gdbserver/configure.srv +++ b/gdb/gdbserver/configure.srv @@ -26,8 +26,8 @@ srv_hostio_err_objs="hostio-errno.o" srv_i386_regobj="i386.o i386-avx.o i386-mpx.o i386-mmx.o" srv_i386_linux_regobj="i386-linux.o i386-avx-linux.o i386-mpx-linux.o i386-mmx-linux.o" -srv_amd64_regobj="amd64.o amd64-avx.o amd64-mpx.o x32.o x32-avx.o x32-mpx.o" -srv_amd64_linux_regobj="amd64-linux.o amd64-avx-linux.o amd64-mpx-linux.o x32-linux.o x32-avx-linux.o x32-mpx-linux.o" +srv_amd64_regobj="amd64.o amd64-avx.o amd64-mpx.o x32.o x32-avx.o" +srv_amd64_linux_regobj="amd64-linux.o amd64-avx-linux.o amd64-mpx-linux.o x32-linux.o x32-avx-linux.o" ipa_i386_linux_regobj=i386-linux-ipa.o ipa_amd64_linux_regobj=amd64-linux-ipa.o @@ -37,7 +37,7 @@ srv_i386_64bit_xmlfiles="i386/64bit-core.xml i386/64bit-sse.xml i386/64bit-avx.x srv_i386_xmlfiles="i386/i386.xml i386/i386-avx.xml i386/i386-mpx.xml i386/i386-mmx.xml $srv_i386_32bit_xmlfiles" srv_amd64_xmlfiles="i386/amd64.xml i386/amd64-avx.xml i386/x32.xml i386/x32-avx.xml i386/amd64-mpx.xml $srv_i386_64bit_xmlfiles" srv_i386_linux_xmlfiles="i386/i386-linux.xml i386/i386-avx-linux.xml i386/i386-mmx-linux.xml i386/32bit-linux.xml i386/i386-mpx-linux.xml $srv_i386_32bit_xmlfiles" -srv_amd64_linux_xmlfiles="i386/amd64-linux.xml i386/amd64-avx-linux.xml i386/64bit-linux.xml i386/amd64-mpx-linux.xml i386/x32-linux.xml i386/x32-avx-linux.xml i386/x32-mpx-linux.xml $srv_i386_64bit_xmlfiles" +srv_amd64_linux_xmlfiles="i386/amd64-linux.xml i386/amd64-avx-linux.xml i386/64bit-linux.xml i386/amd64-mpx-linux.xml i386/x32-linux.xml i386/x32-avx-linux.xml $srv_i386_64bit_xmlfiles" # Linux object files. This is so we don't have to repeat diff --git a/gdb/gdbserver/linux-x86-low.c b/gdb/gdbserver/linux-x86-low.c index 8c2bfc9..e8505bf 100644 --- a/gdb/gdbserver/linux-x86-low.c +++ b/gdb/gdbserver/linux-x86-low.c @@ -55,10 +55,6 @@ extern const struct target_desc *tdesc_x32_linux; void init_registers_x32_avx_linux (void); extern const struct target_desc *tdesc_x32_avx_linux; -/* Defined in auto-generated file x32-mpx-linux.c. */ -void init_registers_x32_mpx_linux (void); -extern const struct target_desc *tdesc_x32_mpx_linux; - #endif /* Defined in auto-generated file i386-linux.c. */ @@ -1362,9 +1358,7 @@ x86_linux_read_description (void) { switch (xcr0 & I386_XSTATE_ALL_MASK) { - case I386_XSTATE_MPX_MASK: - return tdesc_x32_mpx_linux; - + case I386_XSTATE_MPX_MASK: /* No MPX on x32. */ case I386_XSTATE_AVX_MASK: return tdesc_x32_avx_linux; @@ -3393,7 +3387,6 @@ initialize_low_arch (void) init_registers_x32_linux (); init_registers_x32_avx_linux (); - init_registers_x32_mpx_linux (); tdesc_amd64_linux_no_xml = xmalloc (sizeof (struct target_desc)); copy_target_description (tdesc_amd64_linux_no_xml, tdesc_amd64_linux); diff --git a/gdb/i386-linux-tdep.h b/gdb/i386-linux-tdep.h index f0e2c19..54b5058 100644 --- a/gdb/i386-linux-tdep.h +++ b/gdb/i386-linux-tdep.h @@ -29,7 +29,7 @@ /* Register number for the "orig_eax" pseudo-register. If this pseudo-register contains a value >= 0 it is interpreted as the system call number that the kernel is supposed to restart. */ -#define I386_LINUX_ORIG_EAX_REGNUM I386_BNDSTATUS_REGNUM + 1 +#define I386_LINUX_ORIG_EAX_REGNUM I386_MPX_NUM_REGS /* Total number of registers for GNU/Linux. */ #define I386_LINUX_NUM_REGS (I386_LINUX_ORIG_EAX_REGNUM + 1) diff --git a/gdb/i386-tdep.c b/gdb/i386-tdep.c index f1efa94..ecd34e0 100644 --- a/gdb/i386-tdep.c +++ b/gdb/i386-tdep.c @@ -7732,7 +7732,7 @@ i386_validate_tdesc_p (struct gdbarch_tdep *tdep, { tdep->xcr0 = I386_XSTATE_MPX_MASK; - if (tdep->bnd0r_regnum == 0) + if (tdep->bnd0r_regnum < 0) { tdep->mpx_register_names = i386_mpx_names; tdep->bnd0r_regnum = I386_BND0R_REGNUM; diff --git a/gdb/regformats/i386/x32-mpx-linux.dat b/gdb/regformats/i386/x32-mpx-linux.dat deleted file mode 100644 index f8fb244..0000000 --- a/gdb/regformats/i386/x32-mpx-linux.dat +++ /dev/null @@ -1,84 +0,0 @@ -# DO NOT EDIT: generated from i386/x32-mpx-linux.xml -name:x32_mpx_linux -xmltarget:x32-mpx-linux.xml -expedite:rbp,rsp,rip -64:rax -64:rbx -64:rcx -64:rdx -64:rsi -64:rdi -64:rbp -64:rsp -64:r8 -64:r9 -64:r10 -64:r11 -64:r12 -64:r13 -64:r14 -64:r15 -64:rip -32:eflags -32:cs -32:ss -32:ds -32:es -32:fs -32:gs -80:st0 -80:st1 -80:st2 -80:st3 -80:st4 -80:st5 -80:st6 -80:st7 -32:fctrl -32:fstat -32:ftag -32:fiseg -32:fioff -32:foseg -32:fooff -32:fop -128:xmm0 -128:xmm1 -128:xmm2 -128:xmm3 -128:xmm4 -128:xmm5 -128:xmm6 -128:xmm7 -128:xmm8 -128:xmm9 -128:xmm10 -128:xmm11 -128:xmm12 -128:xmm13 -128:xmm14 -128:xmm15 -32:mxcsr -64:orig_rax -128:ymm0h -128:ymm1h -128:ymm2h -128:ymm3h -128:ymm4h -128:ymm5h -128:ymm6h -128:ymm7h -128:ymm8h -128:ymm9h -128:ymm10h -128:ymm11h -128:ymm12h -128:ymm13h -128:ymm14h -128:ymm15h -128:bnd0raw -128:bnd1raw -128:bnd2raw -128:bnd3raw -64:bndcfgu -64:bndstatus diff --git a/gdb/regformats/i386/x32-mpx.dat b/gdb/regformats/i386/x32-mpx.dat deleted file mode 100644 index 5104f6d..0000000 --- a/gdb/regformats/i386/x32-mpx.dat +++ /dev/null @@ -1,83 +0,0 @@ -# DO NOT EDIT: generated from i386/x32-mpx.xml -name:x32_mpx -xmltarget:x32-mpx.xml -expedite:rbp,rsp,rip -64:rax -64:rbx -64:rcx -64:rdx -64:rsi -64:rdi -64:rbp -64:rsp -64:r8 -64:r9 -64:r10 -64:r11 -64:r12 -64:r13 -64:r14 -64:r15 -64:rip -32:eflags -32:cs -32:ss -32:ds -32:es -32:fs -32:gs -80:st0 -80:st1 -80:st2 -80:st3 -80:st4 -80:st5 -80:st6 -80:st7 -32:fctrl -32:fstat -32:ftag -32:fiseg -32:fioff -32:foseg -32:fooff -32:fop -128:xmm0 -128:xmm1 -128:xmm2 -128:xmm3 -128:xmm4 -128:xmm5 -128:xmm6 -128:xmm7 -128:xmm8 -128:xmm9 -128:xmm10 -128:xmm11 -128:xmm12 -128:xmm13 -128:xmm14 -128:xmm15 -32:mxcsr -128:ymm0h -128:ymm1h -128:ymm2h -128:ymm3h -128:ymm4h -128:ymm5h -128:ymm6h -128:ymm7h -128:ymm8h -128:ymm9h -128:ymm10h -128:ymm11h -128:ymm12h -128:ymm13h -128:ymm14h -128:ymm15h -128:bnd0raw -128:bnd1raw -128:bnd2raw -128:bnd3raw -64:bndcfgu -64:bndstatus