forked from OSchip/llvm-project
[PowerPC] Add back test case for absolute calls (removed in r211174)
As requested by Hal Finkel, this adds back a test for calls to a known-constant function pointer value, and verifies that the 64-bit SVR4 indirect function call sequence is used. llvm-svn: 211190
This commit is contained in:
parent
23d26a3ef7
commit
e581920d12
|
@ -42,6 +42,22 @@ define void @test_indirect(void ()* nocapture %fp) nounwind {
|
|||
ret void
|
||||
}
|
||||
|
||||
; Absolute values must use the regular indirect call sequence
|
||||
; The main purpose of this test is to ensure that BLA is not
|
||||
; used on 64-bit SVR4 (as e.g. on Darwin).
|
||||
define void @test_abs() nounwind {
|
||||
; CHECK-LABEL: test_abs:
|
||||
tail call void inttoptr (i64 1024 to void ()*)() nounwind
|
||||
; CHECK: ld [[FP:[0-9]+]], 1024(0)
|
||||
; CHECK: ld 11, 1040(0)
|
||||
; CHECK: mtctr [[FP]]
|
||||
; CHECK: li [[FD:[0-9]+]], 1024
|
||||
; CHECK: ld 2, 8([[FD]])
|
||||
; CHECK: bctrl
|
||||
; CHECK-NEXT: ld 2, 40(1)
|
||||
ret void
|
||||
}
|
||||
|
||||
declare double @sin(double) nounwind
|
||||
|
||||
; External functions call should also have a 'nop'
|
||||
|
|
Loading…
Reference in New Issue