llvm-6502/test/MC
David Woodhouse f71254859e [x86] Fix retq/retl handling in 64-bit mode
This finishes the job started in r198756, and creates separate opcodes for
64-bit vs. 32-bit versions of the rest of the RET instructions too.

LRETL/LRETQ are interesting... I can't see any justification for their
existence in the SDM. There should be no 'LRETL' in 64-bit mode, and no
need for a REX.W prefix for LRETQ. But this is what GAS does, and my
Sandybridge CPU and an Opteron 6376 concur when tested as follows:

asm __volatile__("pushq $0x1234\nmovq $0x33,%rax\nsalq $32,%rax\norq $1f,%rax\npushq %rax\nlretl $8\n1:");
asm __volatile__("pushq $1234\npushq $0x33\npushq $1f\nlretq $8\n1:");
asm __volatile__("pushq $0x33\npushq $1f\nlretq\n1:");
asm __volatile__("pushq $0x1234\npushq $0x33\npushq $1f\nlretq $8\n1:");

cf. PR8592 and commit r118903, which added LRETQ. I only added LRETIQ to
match it.

I don't quite understand how the Intel syntax parsing for ret
instructions is working, despite r154468 allegedly fixing it. Aren't the
explicitly sized 'retw', 'retd' and 'retq' supposed to work? I have at
least made the 'lretq' work with (and indeed *require*) the 'q'.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@199106 91177308-0d34-0410-b5e6-96231b3b80d8
2014-01-13 14:05:59 +00:00
..
AArch64 [AArch64][NEON] Added UXTL and UXTL2 instruction aliases 2014-01-08 21:02:13 +00:00
ARM ARM IAS: fix diagnostics of improper qualification 2014-01-12 05:25:44 +00:00
AsmParser Mark the 64-bit x86 push/pop instructions as In64BitMode. Mark the corresponding 32-bit versions with the same encodings Not64BitMode. Remove hack from tablegen disassembler table emitter. Fix bad test. 2014-01-05 01:35:51 +00:00
COFF Add the .secidx test I've forgotten to svn add in 197826 2013-12-20 19:06:50 +00:00
Disassembler [Sparc] Add support for parsing floating point instructions. 2014-01-12 04:48:54 +00:00
ELF Force emit a relocation for @gnu_indirect_function symbols so that the indirect 2014-01-08 18:50:32 +00:00
MachO Fixed a bug in getARMFixupKindMachOInfo() where three ARM fixup kinds 2013-12-13 22:46:54 +00:00
Markup MC: Simple example parser for MC assembly markup. 2012-10-31 23:24:13 +00:00
Mips [Mips] TargetStreamer Support for .abicalls and .set pic0. 2014-01-06 23:27:31 +00:00
PowerPC Convert another llc -filetype=obj test. 2013-10-28 22:17:19 +00:00
Sparc [Sparc] Add support for parsing floating point instructions. 2014-01-12 04:48:54 +00:00
SystemZ [SystemZ] Add MC support for interlocked-access 1 instructions 2013-12-24 15:14:05 +00:00
X86 [x86] Fix retq/retl handling in 64-bit mode 2014-01-13 14:05:59 +00:00