brintos

brintos / llvm-project-archived public Read only

0
0
Text · 669 B · 320f0d9 Raw
26 lines · plain
1; RUN: llc < %s -mtriple=arm-apple-darwin  | FileCheck %s2; RUN: llc < %s -mtriple=arm-linux-gnueabi | FileCheck %s3 4define i32 @get_stack() nounwind {5entry:6; CHECK-LABEL: get_stack:7; CHECK: mov   r0, sp8	%sp = call i32 @llvm.read_register.i32(metadata !0)9  ret i32 %sp10}11 12define void @set_stack(i32 %val) nounwind {13entry:14; CHECK-LABEL: set_stack:15; CHECK: mov   sp, r016  call void @llvm.write_register.i32(metadata !0, i32 %val)17  ret void18}19 20declare i32 @llvm.read_register.i32(metadata) nounwind21declare void @llvm.write_register.i32(metadata, i32) nounwind22 23; register unsigned long current_stack_pointer asm("sp");24; CHECK-NOT: .asciz  "sp"25!0 = !{!"sp\00"}26