brintos

brintos / llvm-project-archived public Read only

0
0
Text · 609 B · a33de8c Raw
25 lines · plain
1; RUN: llc < %s -mtriple=arm64-linux-gnu | FileCheck %s2 3define i64 @get_stack() nounwind {4entry:5; CHECK-LABEL: get_stack:6; CHECK: mov   x0, sp7	%sp = call i64 @llvm.read_register.i64(metadata !0)8  ret i64 %sp9}10 11define void @set_stack(i64 %val) nounwind {12entry:13; CHECK-LABEL: set_stack:14; CHECK: mov   sp, x015  call void @llvm.write_register.i64(metadata !0, i64 %val)16  ret void17}18 19declare i64 @llvm.read_register.i64(metadata) nounwind20declare void @llvm.write_register.i64(metadata, i64) nounwind21 22; register unsigned long current_stack_pointer asm("sp");23; CHECK-NOT: .asciz  "sp"24!0 = !{!"sp\00"}25