diff options
author | H.J. Lu <hjl.tools@gmail.com> | 2016-05-27 08:02:56 -0700 |
---|---|---|
committer | H.J. Lu <hjl.tools@gmail.com> | 2016-05-27 08:03:17 -0700 |
commit | e92bae62606702c1c07e095789ffed103e0e34c5 (patch) | |
tree | 65b78ae2185c0c62cb24468da9fb8740a931bf6e /gas/config | |
parent | c185ba27ca74b02bcca8d016e2d82b09aa6df28b (diff) | |
download | gdb-e92bae62606702c1c07e095789ffed103e0e34c5.zip gdb-e92bae62606702c1c07e095789ffed103e0e34c5.tar.gz gdb-e92bae62606702c1c07e095789ffed103e0e34c5.tar.bz2 |
Replace CpuAMD64/CpuIntel64 with AMD64/Intel64
AMD64 vs CpuIntel64 ISA should be handled similar as AT&T vs Intel
syntax. Since cpu_flags isn't sorted by position, we need to check
the whole cpu_flags array for the maximum position when verifying
CpuMax.
gas/
PR gas/20154
* config/tc-i386.c (cpu_flags_match): Don't set cpuamd64 nor
cpuintel64.
(match_template): Check Intel64/AMD64 ISA.
opcodes/
PR gas/20154
* i386-gen.c (cpu_flags): Remove CpuAMD64 and CpuIntel64.
(opcode_modifiers): Add AMD64 and Intel64.
(main): Properly verify CpuMax.
* i386-opc.h (CpuAMD64): Removed.
(CpuIntel64): Likewise.
(CpuMax): Set to CpuNo64.
(i386_cpu_flags): Remove cpuamd64 and cpuintel64.
(AMD64): New.
(Intel64): Likewise.
(i386_opcode_modifier): Add amd64 and intel64.
(i386-opc.tbl): Replace CpuAMD64/CpuIntel64 with AMD64/Intel64
on call and jmp.
* i386-init.h: Regenerated.
* i386-tbl.h: Likewise.
Diffstat (limited to 'gas/config')
-rw-r--r-- | gas/config/tc-i386.c | 11 |
1 files changed, 4 insertions, 7 deletions
diff --git a/gas/config/tc-i386.c b/gas/config/tc-i386.c index f8a3bf0..8358740 100644 --- a/gas/config/tc-i386.c +++ b/gas/config/tc-i386.c @@ -1541,11 +1541,6 @@ cpu_flags_match (const insn_template *t) /* This instruction is available only on some archs. */ i386_cpu_flags cpu = cpu_arch_flags; - /* Set cpuamd64 and cpuintel64 here since they may be changed by - set_cpu_arch. */ - cpu_arch_flags.bitfield.cpuamd64 = !intel64; - cpu_arch_flags.bitfield.cpuintel64 = intel64; - cpu = cpu_flags_and (x, cpu); if (!cpu_flags_all_zero (&cpu)) { @@ -4766,10 +4761,12 @@ match_template (void) if (intel_mnemonic && t->opcode_modifier.attmnemonic) continue; - /* Check AT&T/Intel syntax. */ + /* Check AT&T/Intel syntax and Intel64/AMD64 ISA. */ i.error = unsupported_syntax; if ((intel_syntax && t->opcode_modifier.attsyntax) - || (!intel_syntax && t->opcode_modifier.intelsyntax)) + || (!intel_syntax && t->opcode_modifier.intelsyntax) + || (intel64 && t->opcode_modifier.amd64) + || (!intel64 && t->opcode_modifier.intel64)) continue; /* Check the suffix, except for some instructions in intel mode. */ |