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