mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-12-24 17:53:52 +08:00
x86: correct operand type checks
Again these look to be typos: No template currently allows for any two (or all three) of RegXMM, RegYMM, and RegZMM in a single operand. Quite clearly ! are missing, after the addition of which the checks for the first and (if present) second operands also fully match up.
This commit is contained in:
parent
93b71a2666
commit
141975a1e5
@ -1,3 +1,8 @@
|
||||
2017-12-15 Jan Beulich <jbeulich@suse.com>
|
||||
|
||||
* config/tc-i386.c (match_template): Add missing ! to
|
||||
reg{x,y,z}mm checks in q- and l-suffix handling.
|
||||
|
||||
2017-12-15 Jan Beulich <jbeulich@suse.com>
|
||||
|
||||
* config/tc-i386.c (build_modrm_byte): Add missing ! to reg64
|
||||
|
@ -4968,9 +4968,9 @@ match_template (char mnem_suffix)
|
||||
&& !operand_types[0].bitfield.regymm
|
||||
&& !operand_types[0].bitfield.regzmm)
|
||||
|| (!operand_types[t->operands > 1].bitfield.regmmx
|
||||
&& operand_types[t->operands > 1].bitfield.regxmm
|
||||
&& operand_types[t->operands > 1].bitfield.regymm
|
||||
&& operand_types[t->operands > 1].bitfield.regzmm))
|
||||
&& !operand_types[t->operands > 1].bitfield.regxmm
|
||||
&& !operand_types[t->operands > 1].bitfield.regymm
|
||||
&& !operand_types[t->operands > 1].bitfield.regzmm))
|
||||
&& (t->base_opcode != 0x0fc7
|
||||
|| t->extension_opcode != 1 /* cmpxchg8b */))
|
||||
continue;
|
||||
@ -4985,7 +4985,7 @@ match_template (char mnem_suffix)
|
||||
&& ((!operand_types[0].bitfield.regmmx
|
||||
&& !operand_types[0].bitfield.regxmm)
|
||||
|| (!operand_types[t->operands > 1].bitfield.regmmx
|
||||
&& operand_types[t->operands > 1].bitfield.regxmm)))
|
||||
&& !operand_types[t->operands > 1].bitfield.regxmm)))
|
||||
continue;
|
||||
|
||||
/* Do not verify operands when there are none. */
|
||||
|
Loading…
Reference in New Issue
Block a user