summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/CodeGen/X86/2008-08-31-EH_RETURN64.ll2
-rw-r--r--test/CodeGen/X86/fast-isel-x86.ll6
-rw-r--r--test/CodeGen/X86/sibcall.ll4
-rw-r--r--test/CodeGen/X86/stdcall-notailcall.ll4
-rw-r--r--test/CodeGen/X86/stdcall.ll4
-rw-r--r--test/CodeGen/X86/win32_sret.ll28
-rw-r--r--test/MC/X86/x86-16.s54
7 files changed, 78 insertions, 24 deletions
diff --git a/test/CodeGen/X86/2008-08-31-EH_RETURN64.ll b/test/CodeGen/X86/2008-08-31-EH_RETURN64.ll
index 496779c468..51064f1d21 100644
--- a/test/CodeGen/X86/2008-08-31-EH_RETURN64.ll
+++ b/test/CodeGen/X86/2008-08-31-EH_RETURN64.ll
@@ -9,7 +9,7 @@ target triple = "x86_64-unknown-linux-gnu"
; CHECK: movq %rsp, %rbp
; CHECK: popq %rbp
; CHECK: movq %rcx, %rsp
-; CHECK: ret # eh_return, addr: %rcx
+; CHECK: retq # eh_return, addr: %rcx
define i8* @test(i64 %a, i8* %b) {
entry:
call void @llvm.eh.unwind.init()
diff --git a/test/CodeGen/X86/fast-isel-x86.ll b/test/CodeGen/X86/fast-isel-x86.ll
index ba86e888cd..a212a7c687 100644
--- a/test/CodeGen/X86/fast-isel-x86.ll
+++ b/test/CodeGen/X86/fast-isel-x86.ll
@@ -3,7 +3,7 @@
; This should use flds to set the return value.
; CHECK-LABEL: test0:
; CHECK: flds
-; CHECK: ret
+; CHECK: retl
@G = external global float
define float @test0() nounwind {
%t = load float* @G
@@ -12,7 +12,7 @@ define float @test0() nounwind {
; This should pop 4 bytes on return.
; CHECK-LABEL: test1:
-; CHECK: ret $4
+; CHECK: retl $4
define void @test1({i32, i32, i32, i32}* sret %p) nounwind {
store {i32, i32, i32, i32} zeroinitializer, {i32, i32, i32, i32}* %p
ret void
@@ -25,7 +25,7 @@ define void @test1({i32, i32, i32, i32}* sret %p) nounwind {
; CHECK-NEXT: L2$pb:
; CHECK-NEXT: pop
; CHECK: HHH
-; CHECK: ret
+; CHECK: retl
@HHH = external global i32
define i32 @test2() nounwind {
%t = load i32* @HHH
diff --git a/test/CodeGen/X86/sibcall.ll b/test/CodeGen/X86/sibcall.ll
index 589e9ec105..28fc626afd 100644
--- a/test/CodeGen/X86/sibcall.ll
+++ b/test/CodeGen/X86/sibcall.ll
@@ -247,11 +247,11 @@ entry:
define void @t15(%struct.foo* noalias sret %agg.result) nounwind {
; 32-LABEL: t15:
; 32: calll {{_?}}f
-; 32: ret $4
+; 32: retl $4
; 64-LABEL: t15:
; 64: callq {{_?}}f
-; 64: ret
+; 64: retq
tail call fastcc void @f(%struct.foo* noalias sret %agg.result) nounwind
ret void
}
diff --git a/test/CodeGen/X86/stdcall-notailcall.ll b/test/CodeGen/X86/stdcall-notailcall.ll
index c847ec7b6c..448db4cda1 100644
--- a/test/CodeGen/X86/stdcall-notailcall.ll
+++ b/test/CodeGen/X86/stdcall-notailcall.ll
@@ -4,7 +4,7 @@
define x86_stdcallcc void @bar(%struct.I* nocapture %this) ssp align 2 {
; CHECK-LABEL: bar:
; CHECK-NOT: jmp
-; CHECK: ret $4
+; CHECK: retl $4
entry:
tail call void @foo()
ret void
@@ -13,7 +13,7 @@ entry:
define x86_thiscallcc void @test2(%struct.I* %this, i32 %a) {
; CHECK-LABEL: test2:
; CHECK: calll _foo
-; CHECK: ret $4
+; CHECK: retl $4
tail call void @foo()
ret void
}
diff --git a/test/CodeGen/X86/stdcall.ll b/test/CodeGen/X86/stdcall.ll
index 73826ed0b2..3cefe14fe0 100644
--- a/test/CodeGen/X86/stdcall.ll
+++ b/test/CodeGen/X86/stdcall.ll
@@ -6,14 +6,14 @@
define internal x86_stdcallcc void @MyFunc() nounwind {
entry:
; CHECK: MyFunc@0:
-; CHECK: ret
+; CHECK: retl
ret void
}
; PR14410
define x86_stdcallcc i32 @"\01DoNotMangle"(i32 %a) {
; CHECK: DoNotMangle:
-; CHECK: ret $4
+; CHECK: retl $4
entry:
ret i32 %a
}
diff --git a/test/CodeGen/X86/win32_sret.ll b/test/CodeGen/X86/win32_sret.ll
index 78f1821b1d..d8ecd44d11 100644
--- a/test/CodeGen/X86/win32_sret.ll
+++ b/test/CodeGen/X86/win32_sret.ll
@@ -16,13 +16,13 @@ entry:
; WIN32-LABEL: _sret1:
; WIN32: movb $42, (%eax)
; WIN32-NOT: popl %eax
-; WIN32: {{ret$}}
+; WIN32: {{retl$}}
; MINGW_X86-LABEL: _sret1:
-; MINGW_X86: {{ret$}}
+; MINGW_X86: {{retl$}}
; LINUX-LABEL: sret1:
-; LINUX: ret $4
+; LINUX: retl $4
store i8 42, i8* %x, align 4
ret void
@@ -33,13 +33,13 @@ entry:
; WIN32-LABEL: _sret2:
; WIN32: movb {{.*}}, (%eax)
; WIN32-NOT: popl %eax
-; WIN32: {{ret$}}
+; WIN32: {{retl$}}
; MINGW_X86-LABEL: _sret2:
-; MINGW_X86: {{ret$}}
+; MINGW_X86: {{retl$}}
; LINUX-LABEL: sret2:
-; LINUX: ret $4
+; LINUX: retl $4
store i8 %y, i8* %x
ret void
@@ -51,13 +51,13 @@ entry:
; WIN32: movb $42, (%eax)
; WIN32-NOT: movb $13, (%eax)
; WIN32-NOT: popl %eax
-; WIN32: {{ret$}}
+; WIN32: {{retl$}}
; MINGW_X86-LABEL: _sret3:
-; MINGW_X86: {{ret$}}
+; MINGW_X86: {{retl$}}
; LINUX-LABEL: sret3:
-; LINUX: ret $4
+; LINUX: retl $4
store i8 42, i8* %x
store i8 13, i8* %y
@@ -72,13 +72,13 @@ entry:
; WIN32-LABEL: _sret4:
; WIN32: movl $42, (%eax)
; WIN32-NOT: popl %eax
-; WIN32: {{ret$}}
+; WIN32: {{retl$}}
; MINGW_X86-LABEL: _sret4:
-; MINGW_X86: {{ret$}}
+; MINGW_X86: {{retl$}}
; LINUX-LABEL: sret4:
-; LINUX: ret $4
+; LINUX: retl $4
%x = getelementptr inbounds %struct.S4* %agg.result, i32 0, i32 0
store i32 42, i32* %x, align 4
@@ -105,7 +105,7 @@ entry:
; should match both 4(%esp) and 8(%esp).
; WIN32: {{[48]}}(%esp), %eax
; WIN32: movl $42, (%eax)
-; WIN32: ret $4
+; WIN32: retl $4
}
define void @call_foo5() {
@@ -126,7 +126,7 @@ entry:
; The this pointer goes to ECX.
; WIN32-NEXT: leal {{[0-9]+}}(%esp), %ecx
; WIN32-NEXT: calll "?foo@C5@@QAE?AUS5@@XZ"
-; WIN32: ret
+; WIN32: retl
ret void
}
diff --git a/test/MC/X86/x86-16.s b/test/MC/X86/x86-16.s
index bb1aa4a207..9fdd8645e7 100644
--- a/test/MC/X86/x86-16.s
+++ b/test/MC/X86/x86-16.s
@@ -71,6 +71,10 @@ int $255
// CHECK: popfl # encoding: [0x66,0x9d]
popfl
+retl
+// CHECK: ret
+// CHECK: encoding: [0x66,0xc3]
+
// CHECK: cmoval %eax, %edx
// CHECK: encoding: [0x66,0x0f,0x47,0xd0]
cmoval %eax,%edx
@@ -352,6 +356,16 @@ cmovnae %bx,%bx
lcalll $0x2, $0x1234
+iret
+// CHECK: iretw
+// CHECK: encoding: [0xcf]
+iretw
+// CHECK: iretw
+// CHECK: encoding: [0xcf]
+iretl
+// CHECK: iretl
+// CHECK: encoding: [0x66,0xcf]
+
sysret
// CHECK: sysretl
// CHECK: encoding: [0x0f,0x07]
@@ -567,6 +581,30 @@ pshufw $90, %mm4, %mm0
// CHECK: encoding: [0x2f]
das
+// CHECK: retw $31438
+// CHECK: encoding: [0xc2,0xce,0x7a]
+ retw $0x7ace
+
+// CHECK: lretw $31438
+// CHECK: encoding: [0xca,0xce,0x7a]
+ lretw $0x7ace
+
+// CHECK: retw $31438
+// CHECK: encoding: [0xc2,0xce,0x7a]
+ ret $0x7ace
+
+// CHECK: lretw $31438
+// CHECK: encoding: [0xca,0xce,0x7a]
+ lret $0x7ace
+
+// CHECK: retl $31438
+// CHECK: encoding: [0x66,0xc2,0xce,0x7a]
+ retl $0x7ace
+
+// CHECK: lretl $31438
+// CHECK: encoding: [0x66,0xca,0xce,0x7a]
+ lretl $0x7ace
+
// CHECK: bound 2(%eax), %bx
// CHECK: encoding: [0x67,0x62,0x58,0x02]
bound 2(%eax),%bx
@@ -825,3 +863,19 @@ xchgl %ecx, %eax
// CHECK: xchgl %ecx, %eax
// CHECK: encoding: [0x66,0x91]
xchgl %eax, %ecx
+
+// CHECK: retw
+// CHECK: encoding: [0xc3]
+retw
+
+// CHECK: retl
+// CHECK: encoding: [0x66,0xc3]
+retl
+
+// CHECK: lretw
+// CHECK: encoding: [0xcb]
+lretw
+
+// CHECK: lretl
+// CHECK: encoding: [0x66,0xcb]
+lretl