brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.3 KiB · 571b106 Raw
74 lines · plain
1; RUN: llc < %s -O0 -mtriple=aarch64-none-linux-gnu -mattr=+pauth | FileCheck --check-prefixes=CHECK,O0 %s2; RUN: llc < %s -O2 -mtriple=aarch64-none-linux-gnu -mattr=+pauth | FileCheck --check-prefixes=CHECK,O2 %s3 4@ds = external global i85 6declare void @f(ptr %p)7 8; CHECK: call:9define void @call(ptr %p) {10  ; CHECK: [[LABEL:.L.*]]:11  ; CHECK-NEXT: .reloc [[LABEL]], R_AARCH64_PATCHINST, ds12  ; CHECK-NEXT: bl f13  notail call void @f(ptr %p) [ "deactivation-symbol"(ptr @ds) ]14  ret void15}16 17; CHECK: pauth_sign_zero:18define i64 @pauth_sign_zero(i64 %p) {19  ; O0: mov x8, xzr20  ; CHECK: [[LABEL:.L.*]]:21  ; CHECK-NEXT: .reloc [[LABEL]], R_AARCH64_PATCHINST, ds22  ; O0-NEXT: pacia x0, x823  ; O2-NEXT: paciza x024  %signed = call i64 @llvm.ptrauth.sign(i64 %p, i32 0, i64 0) [ "deactivation-symbol"(ptr @ds) ]25  ret i64 %signed26}27 28; CHECK: pauth_sign_const:29define i64 @pauth_sign_const(i64 %p) {30  ; CHECK: mov x16, #1234531  ; CHECK-NEXT: [[LABEL:.L.*]]:32  ; CHECK-NEXT: .reloc [[LABEL]], R_AARCH64_PATCHINST, ds33  ; CHECK-NEXT: pacia x0, x1634  %signed = call i64 @llvm.ptrauth.sign(i64 %p, i32 0, i64 12345) [ "deactivation-symbol"(ptr @ds) ]35  ret i64 %signed36}37 38; CHECK: pauth_sign:39define i64 @pauth_sign(i64 %p, i64 %d) {40  ; CHECK: [[LABEL:.L.*]]:41  ; CHECK-NEXT: .reloc [[LABEL]], R_AARCH64_PATCHINST, ds42  ; CHECK-NEXT: pacia x0, x143  %signed = call i64 @llvm.ptrauth.sign(i64 %p, i32 0, i64 %d) [ "deactivation-symbol"(ptr @ds) ]44  ret i64 %signed45}46 47; CHECK: pauth_auth_zero:48define i64 @pauth_auth_zero(i64 %p) {49  ; CHECK: [[LABEL:.L.*]]:50  ; CHECK-NEXT: .reloc [[LABEL]], R_AARCH64_PATCHINST, ds51  ; CHECK-NEXT: autiza x052  %authed = call i64 @llvm.ptrauth.auth(i64 %p, i32 0, i64 0) [ "deactivation-symbol"(ptr @ds) ]53  ret i64 %authed54}55 56; CHECK: pauth_auth_const:57define i64 @pauth_auth_const(i64 %p) {58  ; CHECK: mov x8, #1234559  ; CHECK-NEXT: [[LABEL:.L.*]]:60  ; CHECK-NEXT: .reloc [[LABEL]], R_AARCH64_PATCHINST, ds61  ; CHECK-NEXT: autia x0, x862  %authed = call i64 @llvm.ptrauth.auth(i64 %p, i32 0, i64 12345) [ "deactivation-symbol"(ptr @ds) ]63  ret i64 %authed64}65 66; CHECK: pauth_auth:67define i64 @pauth_auth(i64 %p, i64 %d) {68  ; CHECK: [[LABEL:.L.*]]:69  ; CHECK-NEXT: .reloc [[LABEL]], R_AARCH64_PATCHINST, ds70  ; CHECK-NEXT: autia x0, x171  %authed = call i64 @llvm.ptrauth.auth(i64 %p, i32 0, i64 %d) [ "deactivation-symbol"(ptr @ds) ]72  ret i64 %authed73}74