mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-23 03:02:36 +01:00
b70c140e59
In order to build the Linux kernel, the back chain must be supported with packed-stack. The back chain is then stored topmost in the register save area. Review: Ulrich Weigand Differential Revision: https://reviews.llvm.org/D74506
21 lines
560 B
LLVM
21 lines
560 B
LLVM
; RUN: llc < %s -mtriple=s390x-linux-gnu | FileCheck %s
|
|
;
|
|
; Test backchain with packed-stack, which requires soft-float.
|
|
|
|
attributes #0 = { nounwind "backchain" "packed-stack" "use-soft-float"="true" }
|
|
define i64 @fun0(i64 %a) #0 {
|
|
; CHECK-LABEL: fun0:
|
|
; CHECK: stmg %r14, %r15, 136(%r15)
|
|
; CHECK-NEXT: lgr %r1, %r15
|
|
; CHECK-NEXT: aghi %r15, -24
|
|
; CHECK-NEXT: stg %r1, 152(%r15)
|
|
; CHECK-NEXT: brasl %r14, foo@PLT
|
|
; CHECK-NEXT: lmg %r14, %r15, 160(%r15)
|
|
; CHECK-NEXT: br %r14
|
|
entry:
|
|
%call = call i64 @foo(i64 %a)
|
|
ret i64 %call
|
|
}
|
|
|
|
declare i64 @foo(i64)
|