aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRoland McGrath <roland@gnu.org>2012-06-22 16:42:08 +0000
committerRoland McGrath <roland@gnu.org>2012-06-22 16:42:08 +0000
commit29c048b696d4e93fe9f595d59fcb6239270e5a29 (patch)
tree82d345d16980f63360aa7e356b877025255a171f /opcodes/i386-opc.h
parent * lib/gdb.exp (default_gdb_init): Set gdb_test_file_name. (diff)
downloadbinutils-gdb-29c048b696d4e93fe9f595d59fcb6239270e5a29.tar.gz
binutils-gdb-29c048b696d4e93fe9f595d59fcb6239270e5a29.tar.bz2
binutils-gdb-29c048b696d4e93fe9f595d59fcb6239270e5a29.zip
gas/
* config/tc-i386.c (parse_insn): Don't complain about REP prefix when the template has opcode_modifier.repprefixok set. * NEWS: Mention the change. gas/testsuite/ * gas/i386/rep-bsf.d: New file. * gas/i386/rep-bsf.s: New file. * gas/i386/i386.exp: Add the new test. opcodes/ * i386-opc.h (RepPrefixOk): New enum constant. (i386_opcode_modifier): New bitfield 'repprefixok'. * i386-gen.c (opcode_modifiers): Add RepPrefixOk. * i386-opc.tbl: Add RepPrefixOk to bsf, bsr, and to all instructions that have IsString. * i386-tbl.h: Regenerate.
Diffstat (limited to 'opcodes/i386-opc.h')
-rw-r--r--opcodes/i386-opc.h9
1 files changed, 6 insertions, 3 deletions
diff --git a/opcodes/i386-opc.h b/opcodes/i386-opc.h
index f130a96ce87..96bdfb54ead 100644
--- a/opcodes/i386-opc.h
+++ b/opcodes/i386-opc.h
@@ -1,5 +1,5 @@
/* Declarations for Intel 80386 opcode table
- Copyright 2007, 2008, 2009, 2010
+ Copyright 2007, 2008, 2009, 2010, 2012
Free Software Foundation, Inc.
This file is part of the GNU opcodes library.
@@ -309,6 +309,8 @@ enum
#define HLEPrefixAny 2
#define HLEPrefixRelease 3
HLEPrefixOk,
+ /* An instruction on which a "rep" prefix is acceptable. */
+ RepPrefixOk,
/* Convert to DWORD */
ToDword,
/* Convert to QWORD */
@@ -338,7 +340,7 @@ enum
0: VEX.vvvv must be 1111b.
1: VEX.NDS. Register-only source is encoded in VEX.vvvv where
the content of source registers will be preserved.
- VEX.DDS. The second register operand is encoded in VEX.vvvv
+ VEX.DDS. The second register operand is encoded in VEX.vvvv
where the content of first source register will be overwritten
by the result.
VEX.NDD2. The second destination register operand is encoded in
@@ -443,6 +445,7 @@ typedef struct i386_opcode_modifier
unsigned int firstxmm0:1;
unsigned int implicit1stxmm0:1;
unsigned int hleprefixok:2;
+ unsigned int repprefixok:1;
unsigned int todword:1;
unsigned int toqword:1;
unsigned int addrprefixop0:1;
@@ -662,7 +665,7 @@ typedef struct insn_template
/* extension_opcode is the 3 bit extension for group <n> insns.
This field is also used to store the 8-bit opcode suffix for the
AMD 3DNow! instructions.
- If this template has no extension opcode (the usual case) use None
+ If this template has no extension opcode (the usual case) use None
Instructions */
unsigned int extension_opcode;
#define None 0xffff /* If no extension_opcode is possible. */