summaryrefslogtreecommitdiffstats
path: root/llvm
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2010-11-12 17:41:20 +0000
committerChris Lattner <sabre@nondot.org>2010-11-12 17:41:20 +0000
commit5b013b102dc2d7f4dd86a61db07bcbfa41470bca (patch)
treec114e8d125828c6c1bceaa7da7a47da242a96aa9 /llvm
parente6aeebb9d8f938e5be5284049bc74da6fb6319d1 (diff)
downloadbcm5719-llvm-5b013b102dc2d7f4dd86a61db07bcbfa41470bca.tar.gz
bcm5719-llvm-5b013b102dc2d7f4dd86a61db07bcbfa41470bca.zip
implement PR8592: empirically "lretq" is a "lret" with a rex.w prefix.
llvm-svn: 118903
Diffstat (limited to 'llvm')
-rw-r--r--llvm/lib/Target/X86/X86InstrControl.td2
-rw-r--r--llvm/test/MC/X86/x86-64.s4
2 files changed, 6 insertions, 0 deletions
diff --git a/llvm/lib/Target/X86/X86InstrControl.td b/llvm/lib/Target/X86/X86InstrControl.td
index c100bcb978c..5f1f2dfef10 100644
--- a/llvm/lib/Target/X86/X86InstrControl.td
+++ b/llvm/lib/Target/X86/X86InstrControl.td
@@ -29,6 +29,8 @@ let isTerminator = 1, isReturn = 1, isBarrier = 1,
[(X86retflag timm:$amt)]>, OpSize;
def LRET : I <0xCB, RawFrm, (outs), (ins),
"lret", []>;
+ def LRETQ : RI <0xCB, RawFrm, (outs), (ins),
+ "lretq", []>;
def LRETI : Ii16<0xCA, RawFrm, (outs), (ins i16imm:$amt),
"lret\t$amt", []>;
def LRETIW : Ii16<0xCA, RawFrm, (outs), (ins i16imm:$amt),
diff --git a/llvm/test/MC/X86/x86-64.s b/llvm/test/MC/X86/x86-64.s
index 93e90669c81..66074f02116 100644
--- a/llvm/test/MC/X86/x86-64.s
+++ b/llvm/test/MC/X86/x86-64.s
@@ -769,6 +769,10 @@ iretq
// CHECK: encoding: [0x66,0xca,0xce,0x7a]
lretw $0x7ace
+// PR8592
+lretq // CHECK: lretq # encoding: [0x48,0xcb]
+lret // CHECK: lret # encoding: [0xcb]
+
// rdar://8403907
sysret
// CHECK: sysretl
OpenPOWER on IntegriCloud