mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-10-22 20:43:44 +02:00
a7b8d3d331
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'. llvm-svn: 199106 |
||
---|---|---|
.. | ||
AlignedBundling | ||
3DNow.s | ||
2011-09-06-NoNewline.s | ||
address-size.s | ||
avx512-encodings.s | ||
cfi_def_cfa-crash.s | ||
fde-reloc.s | ||
gnux32-dwarf-gen.s | ||
intel-syntax-2.s | ||
intel-syntax-directional-label.s | ||
intel-syntax-encoding.s | ||
intel-syntax-hex.s | ||
intel-syntax.s | ||
lit.local.cfg | ||
padlock.s | ||
relax-insn.s | ||
ret.s | ||
shuffle-comments.s | ||
stackmap-nops.ll | ||
x86_64-avx-clmul-encoding.s | ||
x86_64-avx-encoding.s | ||
x86_64-bmi-encoding.s | ||
x86_64-encoding.s | ||
x86_64-fma3-encoding.s | ||
x86_64-fma4-encoding.s | ||
x86_64-hle-encoding.s | ||
x86_64-imm-widths.s | ||
x86_64-rand-encoding.s | ||
x86_64-rtm-encoding.s | ||
x86_64-sse4a.s | ||
x86_64-tbm-encoding.s | ||
x86_64-xop-encoding.s | ||
x86_directives.s | ||
x86_errors.s | ||
x86_long_nop.s | ||
x86_nop.s | ||
x86_operands.s | ||
x86-16.s | ||
x86-32-avx.s | ||
x86-32-coverage.s | ||
x86-32-fma3.s | ||
x86-32-ms-inline-asm.s | ||
x86-32.s | ||
x86-64.s | ||
x86-target-directives.s |