X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=gdb%2Fi386-tdep.c;h=1ef1bb8827f1a40b12eb6a401ca7be6976f94e0c;hb=878d91936fddadb1fa647386134bf65b0712ea08;hp=6b437c5e38e2dba3b85c7ee956705a9d7d0d08f2;hpb=67d78caad5228c04e198e8e5d96dc27fdc28adb9;p=deliverable%2Fbinutils-gdb.git diff --git a/gdb/i386-tdep.c b/gdb/i386-tdep.c index 6b437c5e38..1ef1bb8827 100644 --- a/gdb/i386-tdep.c +++ b/gdb/i386-tdep.c @@ -1530,6 +1530,7 @@ struct type *i386_eflags_type; /* Types for the MMX and SSE registers. */ struct type *i386_mmx_type; struct type *i386_sse_type; +struct type *i386_mxcsr_type; /* Construct types for ISA-specific registers. */ static void @@ -1602,6 +1603,23 @@ i386_init_types (void) TYPE_FLAGS (type) |= TYPE_FLAG_VECTOR; TYPE_NAME (type) = "builtin_type_vec128i"; i386_sse_type = type; + + type = init_flags_type ("builtin_type_i386_mxcsr", 4); + append_flags_type_flag (type, 0, "IE"); + append_flags_type_flag (type, 1, "DE"); + append_flags_type_flag (type, 2, "ZE"); + append_flags_type_flag (type, 3, "OE"); + append_flags_type_flag (type, 4, "UE"); + append_flags_type_flag (type, 5, "PE"); + append_flags_type_flag (type, 6, "DAZ"); + append_flags_type_flag (type, 7, "IM"); + append_flags_type_flag (type, 8, "DM"); + append_flags_type_flag (type, 9, "ZM"); + append_flags_type_flag (type, 10, "OM"); + append_flags_type_flag (type, 11, "UM"); + append_flags_type_flag (type, 12, "PM"); + append_flags_type_flag (type, 15, "FZ"); + i386_mxcsr_type = type; } /* Return the GDB type object for the "standard" data type of data in @@ -1623,11 +1641,20 @@ i386_register_type (struct gdbarch *gdbarch, int regnum) if (i386_fp_regnum_p (regnum)) return builtin_type_i387_ext; + if (i386_mmx_regnum_p (gdbarch, regnum)) + return i386_mmx_type; + if (i386_sse_regnum_p (gdbarch, regnum)) return i386_sse_type; - if (i386_mmx_regnum_p (gdbarch, regnum)) - return i386_mmx_type; +#define I387_ST0_REGNUM I386_ST0_REGNUM +#define I387_NUM_XMM_REGS (gdbarch_tdep (current_gdbarch)->num_xmm_regs) + + if (regnum == I387_MXCSR_REGNUM) + return i386_mxcsr_type; + +#undef I387_ST0_REGNUM +#undef I387_NUM_XMM_REGS return builtin_type_int; }