diff options
author | H.J. Lu <hjl.tools@gmail.com> | 2010-04-07 18:44:57 +0000 |
---|---|---|
committer | H.J. Lu <hjl.tools@gmail.com> | 2010-04-07 18:44:57 +0000 |
commit | 31aeac7844e6e347a01fa69178fd1014e69578c0 (patch) | |
tree | 309d0c9242fe9e20d29eef1e2c4da1a2699f81b1 /gdb/i387-tdep.h | |
parent | c131fcee79bd9082762a1699a657949771fa245f (diff) | |
download | gdb-31aeac7844e6e347a01fa69178fd1014e69578c0.zip gdb-31aeac7844e6e347a01fa69178fd1014e69578c0.tar.gz gdb-31aeac7844e6e347a01fa69178fd1014e69578c0.tar.bz2 |
Support i387 AVX.
2010-04-07 H.J. Lu <hongjiu.lu@intel.com>
* i387-tdep.c: Include "i386-xstate.h".
(XSAVE_XSTATE_BV_ADDR): New.
(xsave_avxh_offset): Likewise.
(XSAVE_AVXH_ADDR): Likewise.
(i387_supply_xsave): Likewise.
(i387_collect_xsave): Likewise.
* i387-tdep.h (I387_NUM_YMM_REGS): New.
(I387_YMM0H_REGNUM): Likewise.
(I387_YMMENDH_REGNUM): Likewise.
(i387_supply_xsave): Likewise.
(i387_collect_xsave): Likewise.
Diffstat (limited to 'gdb/i387-tdep.h')
-rw-r--r-- | gdb/i387-tdep.h | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/gdb/i387-tdep.h b/gdb/i387-tdep.h index 645eb91..976fa11 100644 --- a/gdb/i387-tdep.h +++ b/gdb/i387-tdep.h @@ -33,6 +33,8 @@ struct ui_file; #define I387_ST0_REGNUM(tdep) ((tdep)->st0_regnum) #define I387_NUM_XMM_REGS(tdep) ((tdep)->num_xmm_regs) #define I387_MM0_REGNUM(tdep) ((tdep)->mm0_regnum) +#define I387_NUM_YMM_REGS(tdep) ((tdep)->num_ymm_regs) +#define I387_YMM0H_REGNUM(tdep) ((tdep)->ymm0h_regnum) #define I387_FCTRL_REGNUM(tdep) (I387_ST0_REGNUM (tdep) + 8) #define I387_FSTAT_REGNUM(tdep) (I387_FCTRL_REGNUM (tdep) + 1) @@ -45,6 +47,8 @@ struct ui_file; #define I387_XMM0_REGNUM(tdep) (I387_ST0_REGNUM (tdep) + 16) #define I387_MXCSR_REGNUM(tdep) \ (I387_XMM0_REGNUM (tdep) + I387_NUM_XMM_REGS (tdep)) +#define I387_YMMENDH_REGNUM(tdep) \ + (I387_YMM0H_REGNUM (tdep) + I387_NUM_YMM_REGS (tdep)) /* Print out the i387 floating point state. */ @@ -99,6 +103,11 @@ extern void i387_collect_fsave (const struct regcache *regcache, int regnum, extern void i387_supply_fxsave (struct regcache *regcache, int regnum, const void *fxsave); +/* Similar to i387_supply_fxsave, but use XSAVE extended state. */ + +extern void i387_supply_xsave (struct regcache *regcache, int regnum, + const void *xsave); + /* Fill register REGNUM (if it is a floating-point or SSE register) in *FXSAVE with the value from REGCACHE. If REGNUM is -1, do this for all registers. This function doesn't touch any of the reserved @@ -107,6 +116,11 @@ extern void i387_supply_fxsave (struct regcache *regcache, int regnum, extern void i387_collect_fxsave (const struct regcache *regcache, int regnum, void *fxsave); +/* Similar to i387_collect_fxsave, but use XSAVE extended state. */ + +extern void i387_collect_xsave (const struct regcache *regcache, + int regnum, void *xsave, int gcore); + /* Prepare the FPU stack in REGCACHE for a function return. */ extern void i387_return_value (struct gdbarch *gdbarch, |