From 7d5e4556a3758391b91ded9def373cee6992d163 Mon Sep 17 00:00:00 2001 From: "H.J. Lu" Date: Sat, 12 Jan 2008 16:05:42 +0000 Subject: gas/testsuite/ 2008-01-12 H.J. Lu PR gas/5534 * gas/i386/i386.s: Add tests for fnstsw and fstsw. * gas/i386/inval.s: Likewise. * gas/i386/x86_64.s: Likewise. * gas/i386/intel.s: Use word instead of dword on ss. * gas/i386/x86-64-inval.s: Add tests for fnstsw, fstsw, in and out. * gas/i386/prefix.s: Remove invalid fstsw. * gas/i386/inval.l: Updated. * gas/i386/intelbad.l: Likewise. * gas/i386/i386.d: Likewise. * gas/i386/x86_64.d: Likewise. * gas/i386/x86-64-inval.l: Likewise. * gas/i386/prefix.d: Updated. gas/ 2008-01-12 H.J. Lu PR gas/5534 * config/tc-i386.c (_i386_insn): Update comment. (operand_type_match): Also clear unspecified. (operand_type_register_match): Likewise. (parse_operands): Initialize unspecified. (i386_intel_operand): Likewise. (match_template): Check memory and accumulator operand size. (i386_att_operand): Clear unspecified on register operand. (intel_e11): Likewise. (intel_e09): Set operand size and clean unspecified for "XXX PTR". opcodes/ 2008-01-12 H.J. Lu PR gas/5534 * i386-gen.c (operand_type_init): Add Dword to OPERAND_TYPE_ACC32. Add Qword to OPERAND_TYPE_ACC64. (opcode_modifiers): Remove CheckSize, Byte, Word, Dword, Qword and Xmmword. (operand_types): Add Byte, Word, Dword, Fword, Qword, Tbyte, Xmmword, Unspecified and Anysize. (set_bitfield): Make Mmword an alias of Qword. Make Oword an alias of Xmmword. * i386-opc.h (CheckSize): Removed. (Byte): Updated. (Word): Likewise. (Dword): Likewise. (Qword): Likewise. (Xmmword): Likewise. (FWait): Updated. (OTMax): Likewise. (i386_opcode_modifier): Remove checksize, byte, word, dword, qword and xmmword. (Fword): New. (TBYTE): Likewise. (Unspecified): Likewise. (Anysize): Likewise. (i386_operand_type): Add byte, word, dword, fword, qword, tbyte xmmword, unspecified and anysize. * i386-opc.tbl: Updated to use Byte, Word, Dword, Fword, Qword, Tbyte, Xmmword, Unspecified and Anysize. * i386-reg.tbl: Add size for accumulator. * i386-init.h: Regenerated. * i386-tbl.h: Likewise. --- opcodes/i386-gen.c | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) (limited to 'opcodes/i386-gen.c') diff --git a/opcodes/i386-gen.c b/opcodes/i386-gen.c index d7e3d16..441e722 100644 --- a/opcodes/i386-gen.c +++ b/opcodes/i386-gen.c @@ -179,9 +179,9 @@ static initializer operand_type_init [] = { "OPERAND_TYPE_ESSEG", "EsSeg" }, { "OPERAND_TYPE_ACC32", - "Reg32|Acc" }, + "Reg32|Acc|Dword" }, { "OPERAND_TYPE_ACC64", - "Reg64|Acc" }, + "Reg64|Acc|Qword" }, { "OPERAND_TYPE_REG16_INOUTPORTREG", "Reg16|InOutPortReg" }, { "OPERAND_TYPE_DISP16_32", @@ -273,12 +273,6 @@ static bitfield opcode_modifiers[] = BITFIELD (No_sSuf), BITFIELD (No_qSuf), BITFIELD (No_ldSuf), - BITFIELD (CheckSize), - BITFIELD (Byte), - BITFIELD (Word), - BITFIELD (Dword), - BITFIELD (Qword), - BITFIELD (Xmmword), BITFIELD (FWait), BITFIELD (IsString), BITFIELD (RegKludge), @@ -334,6 +328,15 @@ static bitfield operand_types[] = BITFIELD (JumpAbsolute), BITFIELD (EsSeg), BITFIELD (RegMem), + BITFIELD (Byte), + BITFIELD (Word), + BITFIELD (Dword), + BITFIELD (Fword), + BITFIELD (Qword), + BITFIELD (Tbyte), + BITFIELD (Xmmword), + BITFIELD (Unspecified), + BITFIELD (Anysize), #ifdef OTUnused BITFIELD (OTUnused), #endif @@ -443,6 +446,10 @@ set_bitfield (const char *f, bitfield *array, unsigned int size) if (strcmp (f, "CpuSledgehammer") == 0) f= "CpuK8"; + else if (strcmp (f, "Mmword") == 0) + f= "Qword"; + else if (strcmp (f, "Oword") == 0) + f= "Xmmword"; for (i = 0; i < size; i++) if (strcasecmp (array[i].name, f) == 0) -- cgit v1.1