aboutsummaryrefslogtreecommitdiff
path: root/opcodes/i386-opc.h
diff options
context:
space:
mode:
authorH.J. Lu <hjl.tools@gmail.com>2008-01-02 21:43:34 +0000
committerH.J. Lu <hjl.tools@gmail.com>2008-01-02 21:43:34 +0000
commit582d5eddfe4a3e1d644c473f30a1c1e85c665743 (patch)
tree392e6091dd2db1de46a080a8ec797ddc82e07aff /opcodes/i386-opc.h
parent6c7ac64e1764d0feff5d87ee849652d69f4381ae (diff)
downloadfsf-binutils-gdb-582d5eddfe4a3e1d644c473f30a1c1e85c665743.zip
fsf-binutils-gdb-582d5eddfe4a3e1d644c473f30a1c1e85c665743.tar.gz
fsf-binutils-gdb-582d5eddfe4a3e1d644c473f30a1c1e85c665743.tar.bz2
gas/
2008-01-02 H.J. Lu <hongjiu.lu@intel.com> PR gas/5534 * config/tc-i386.c (match_template): Handle XMMWORD_MNEM_SUFFIX. Check memory size in Intel mode. (process_suffix): Handle XMMWORD_MNEM_SUFFIX. (intel_e09): Likewise. * config/tc-i386.h (XMMWORD_MNEM_SUFFIX): New. gas/testsuite/ 2008-01-02 H.J. Lu <hongjiu.lu@intel.com> PR gas/5534 * gas/i386/intel.s: Use QWORD on movq instead of DWORD. * gas/i386/inval.s: Add tests for movq. * gas/i386/x86-64-inval.s: Likewise. * gas/i386/inval.l: Updated. * gas/i386/x86-64-inval.l: Likewise. opcodes/ 2008-01-02 H.J. Lu <hongjiu.lu@intel.com> PR gas/5534 * i386-gen.c (opcode_modifiers): Add No_xSuf, CheckSize, Byte, Word, Dword, QWord and Xmmword. * i386-opc.h (No_xSuf): New. (CheckSize): Likewise. (Byte): Likewise. (Word): Likewise. (Dword): Likewise. (QWord): Likewise. (Xmmword): Likewise. (FWait): Updated. (i386_opcode_modifier): Add No_xSuf, CheckSize, Byte, Word, Dword, QWord and Xmmword. * i386-opc.tbl: Add CheckSize|QWord to movq if IgnoreSize is used. * i386-tbl.h: Regenerated.
Diffstat (limited to 'opcodes/i386-opc.h')
-rw-r--r--opcodes/i386-opc.h23
1 files changed, 22 insertions, 1 deletions
diff --git a/opcodes/i386-opc.h b/opcodes/i386-opc.h
index f802f3e..12605dd 100644
--- a/opcodes/i386-opc.h
+++ b/opcodes/i386-opc.h
@@ -191,8 +191,22 @@ typedef union i386_cpu_flags
#define No_qSuf (No_sSuf + 1)
/* long double suffix on instruction illegal */
#define No_ldSuf (No_qSuf + 1)
+/* x suffix on instruction illegal */
+#define No_xSuf (No_ldSuf + 1)
+/* check PTR size on instruction */
+#define CheckSize (No_xSuf + 1)
+/* BYTE PTR on instruction */
+#define Byte (CheckSize + 1)
+/* WORD PTR on instruction */
+#define Word (Byte + 1)
+/* DWORD PTR on instruction */
+#define Dword (Word + 1)
+/* QWORD PTR on instruction */
+#define QWord (Dword + 1)
+/* XMMWORD PTR on instruction */
+#define Xmmword (QWord + 1)
/* instruction needs FWAIT */
-#define FWait (No_ldSuf + 1)
+#define FWait (Xmmword + 1)
/* quick test for string instructions */
#define IsString (FWait + 1)
/* fake an extra reg operand for clr, imul and special register
@@ -256,6 +270,13 @@ typedef struct i386_opcode_modifier
unsigned int no_ssuf:1;
unsigned int no_qsuf:1;
unsigned int no_ldsuf:1;
+ unsigned int no_xsuf:1;
+ unsigned int checksize:1;
+ unsigned int byte:1;
+ unsigned int word:1;
+ unsigned int dword:1;
+ unsigned int qword:1;
+ unsigned int xmmword:1;
unsigned int fwait:1;
unsigned int isstring:1;
unsigned int regkludge:1;