gas:
2004-07-02 Jan Beulich <jbeulich@novell.com>
* config/tc-i386.c (optimize_imm): Adjust immediates to only
those
permissible for the selected instruction suffix.
(match_template): Don't permit 64-bit general purpose operands
in
32-bit mode.
(finalize_imm): Permit 64-bit immediates.
(build_modrm_byte): Don't treat 32-bit addressing in 64-bit
mode
specially except for the width of the used base and/or index
registers.
For 32-bit displacements, use sign-extended relocations only
when
using 64-bit addressing.
Force zero displacement on rip-relative addressing when there is
no
other displacement.
(i386_index_check): Don't treat 32-bit addressing in 64-bit
mode
specially except for the width of the used base and/or index
registers.
(parse_register): Disallow Reg64 registers in 32-bit mode.
* testsuite/gas/i386/x86-64-addr32.[ds]: New test for x86-64
32-bit addressing in 64-bit mode.
* testsuite/gas/i386/x86-64-rip.[ds]: New test for x86-64
rip-relative addressing.
* testsuite/gas/i386/i386.exp: Run the two new tests.
opcodes:
2004-07-02 Jan Beulich <jbeulich@novell.com>
* i386-dis.c (OP_E): Show rip-relative addressing in 64-bit
mode
regardless of address size prefix in effect.
(ptr_reg): Size or address registers does not depend on rex64,
but on
the presence of an address size override.
(OP_MMX): Use rex.x only for xmm registers.
(OP_EM): Use rex.z only for xmm registers.