diff options
author | Chad Rosier <mcrosier@apple.com> | 2012-05-23 18:38:57 +0000 |
---|---|---|
committer | Chad Rosier <mcrosier@apple.com> | 2012-05-23 18:38:57 +0000 |
commit | 223faf719cacbab1497c0d02b13a523f80f85779 (patch) | |
tree | 31cfcdc524265e9c5d32efa6592ab57d31e2f5e3 /llvm/test/CodeGen/ARM/fast-isel-call.ll | |
parent | 3f00134c0560ff32ea6f17f51a514a22ba720b78 (diff) | |
download | bcm5719-llvm-223faf719cacbab1497c0d02b13a523f80f85779.tar.gz bcm5719-llvm-223faf719cacbab1497c0d02b13a523f80f85779.zip |
[arm-fast-isel] Add support for non-global callee.
Patch by Jush Lu <jush.msn@gmail.com>.
llvm-svn: 157336
Diffstat (limited to 'llvm/test/CodeGen/ARM/fast-isel-call.ll')
-rw-r--r-- | llvm/test/CodeGen/ARM/fast-isel-call.ll | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/llvm/test/CodeGen/ARM/fast-isel-call.ll b/llvm/test/CodeGen/ARM/fast-isel-call.ll index dd460b2a036..10d6746acfd 100644 --- a/llvm/test/CodeGen/ARM/fast-isel-call.ll +++ b/llvm/test/CodeGen/ARM/fast-isel-call.ll @@ -126,3 +126,23 @@ entry: } declare i32 @bar(i8 zeroext, i8 zeroext, i8 zeroext, i8 zeroext, i8 zeroext, i8 zeroext) + +define i32 @bar0(i32 %i) nounwind { + ret i32 0 +} + +define void @foo3() uwtable { +; ARM: movw r0, #0 +; ARM: movw r1, :lower16:_bar0 +; ARM: movt r1, :upper16:_bar0 +; ARM: blx r1 +; THUMB: movs r0, #0 +; THUMB: movw r1, :lower16:_bar0 +; THUMB: movt r1, :upper16:_bar0 +; THUMB: blx r1 + %fptr = alloca i32 (i32)*, align 8 + store i32 (i32)* @bar0, i32 (i32)** %fptr, align 8 + %1 = load i32 (i32)** %fptr, align 8 + %call = call i32 %1(i32 0) + ret void +} |