1
1
; RUN: llc -mtriple=aarch64-linux-gnu -global-isel=0 -fast-isel=0 -verify-machineinstrs \
2
- ; RUN: -relocation-model=pic -mattr=+pauth -mattr=+fpac %s -o - | FileCheck %s
2
+ ; RUN: -relocation-model=pic -mattr=+pauth -mattr=+fpac %s -o - | FileCheck %s --check-prefixes=CHECK,NOTRAP
3
3
; RUN: llc -mtriple=aarch64-linux-gnu -global-isel=0 -fast-isel=0 -verify-machineinstrs \
4
4
; RUN: -relocation-model=pic -mattr=+pauth %s -o - | FileCheck %s --check-prefixes=CHECK,TRAP
5
5
6
6
; RUN: llc -mtriple=aarch64-linux-gnu -global-isel=0 -fast-isel=1 -verify-machineinstrs \
7
- ; RUN: -relocation-model=pic -mattr=+pauth -mattr=+fpac %s -o - | FileCheck %s
7
+ ; RUN: -relocation-model=pic -mattr=+pauth -mattr=+fpac %s -o - | FileCheck %s --check-prefixes=CHECK,NOTRAP
8
8
; RUN: llc -mtriple=aarch64-linux-gnu -global-isel=0 -fast-isel=1 -verify-machineinstrs \
9
9
; RUN: -relocation-model=pic -mattr=+pauth %s -o - | FileCheck %s --check-prefixes=CHECK,TRAP
10
10
11
11
; RUN: llc -mtriple=aarch64-linux-gnu -global-isel=1 -global-isel-abort=1 -verify-machineinstrs \
12
- ; RUN: -relocation-model=pic -mattr=+pauth -mattr=+fpac %s -o - | FileCheck %s
12
+ ; RUN: -relocation-model=pic -mattr=+pauth -mattr=+fpac %s -o - | FileCheck %s --check-prefixes=CHECK,NOTRAP
13
13
; RUN: llc -mtriple=aarch64-linux-gnu -global-isel=1 -global-isel-abort=1 -verify-machineinstrs \
14
14
; RUN: -relocation-model=pic -mattr=+pauth %s -o - | FileCheck %s --check-prefixes=CHECK,TRAP
15
15
19
19
20
20
define i32 @get_globalvar () {
21
21
; CHECK-LABEL: get_globalvar:
22
- ; CHECK: adrp x16, :got_auth:var
23
- ; CHECK-NEXT: add x16, x16, :got_auth_lo12:var
24
- ; CHECK-NEXT: ldr x8, [x16]
25
- ; CHECK-NEXT: autda x8, x16
22
+ ; CHECK: adrp x17, :got_auth:var
23
+ ; CHECK-NEXT: add x17, x17, :got_auth_lo12:var
24
+ ; NOTRAP-NEXT: ldr x8, [x17]
25
+ ; NOTRAP-NEXT: autda x8, x17
26
+ ; TRAP-NEXT: ldr x16, [x17]
27
+ ; TRAP-NEXT: autda x16, x17
28
+ ; TRAP-NEXT: mov x17, x16
29
+ ; TRAP-NEXT: xpacd x17
30
+ ; TRAP-NEXT: cmp x16, x17
31
+ ; TRAP-NEXT: b.eq .Lauth_success_0
32
+ ; TRAP-NEXT: brk #0xc472
33
+ ; TRAP-NEXT: .Lauth_success_0:
34
+ ; TRAP-NEXT: mov x8, x16
26
35
; CHECK-NEXT: ldr w0, [x8]
27
36
; CHECK-NEXT: ret
28
37
@@ -32,10 +41,19 @@ define i32 @get_globalvar() {
32
41
33
42
define ptr @get_globalvaraddr () {
34
43
; CHECK-LABEL: get_globalvaraddr:
35
- ; CHECK: adrp x16, :got_auth:var
36
- ; CHECK-NEXT: add x16, x16, :got_auth_lo12:var
37
- ; CHECK-NEXT: ldr x0, [x16]
38
- ; CHECK-NEXT: autda x0, x16
44
+ ; CHECK: adrp x17, :got_auth:var
45
+ ; CHECK-NEXT: add x17, x17, :got_auth_lo12:var
46
+ ; NOTRAP-NEXT: ldr x0, [x17]
47
+ ; NOTRAP-NEXT: autda x0, x17
48
+ ; TRAP-NEXT: ldr x16, [x17]
49
+ ; TRAP-NEXT: autda x16, x17
50
+ ; TRAP-NEXT: mov x17, x16
51
+ ; TRAP-NEXT: xpacd x17
52
+ ; TRAP-NEXT: cmp x16, x17
53
+ ; TRAP-NEXT: b.eq .Lauth_success_1
54
+ ; TRAP-NEXT: brk #0xc472
55
+ ; TRAP-NEXT: .Lauth_success_1:
56
+ ; TRAP-NEXT: mov x0, x16
39
57
; CHECK-NEXT: ret
40
58
41
59
%val = load i32 , ptr @var
@@ -53,9 +71,9 @@ define ptr @resign_globalfunc() {
53
71
; TRAP-NEXT: mov x17, x16
54
72
; TRAP-NEXT: xpaci x17
55
73
; TRAP-NEXT: cmp x16, x17
56
- ; TRAP-NEXT: b.eq .Lauth_success_0
74
+ ; TRAP-NEXT: b.eq .Lauth_success_2
57
75
; TRAP-NEXT: brk #0xc470
58
- ; TRAP-NEXT: .Lauth_success_0 :
76
+ ; TRAP-NEXT: .Lauth_success_2 :
59
77
; CHECK-NEXT: mov x17, #42
60
78
; CHECK-NEXT: pacia x16, x17
61
79
; CHECK-NEXT: mov x0, x16
@@ -73,9 +91,9 @@ define ptr @resign_globalvar() {
73
91
; TRAP-NEXT: mov x17, x16
74
92
; TRAP-NEXT: xpacd x17
75
93
; TRAP-NEXT: cmp x16, x17
76
- ; TRAP-NEXT: b.eq .Lauth_success_1
94
+ ; TRAP-NEXT: b.eq .Lauth_success_3
77
95
; TRAP-NEXT: brk #0xc472
78
- ; TRAP-NEXT: .Lauth_success_1 :
96
+ ; TRAP-NEXT: .Lauth_success_3 :
79
97
; CHECK-NEXT: mov x17, #43
80
98
; CHECK-NEXT: pacdb x16, x17
81
99
; CHECK-NEXT: mov x0, x16
@@ -93,9 +111,9 @@ define ptr @resign_globalvar_offset() {
93
111
; TRAP-NEXT: mov x17, x16
94
112
; TRAP-NEXT: xpacd x17
95
113
; TRAP-NEXT: cmp x16, x17
96
- ; TRAP-NEXT: b.eq .Lauth_success_2
114
+ ; TRAP-NEXT: b.eq .Lauth_success_4
97
115
; TRAP-NEXT: brk #0xc472
98
- ; TRAP-NEXT: .Lauth_success_2 :
116
+ ; TRAP-NEXT: .Lauth_success_4 :
99
117
; CHECK-NEXT: add x16, x16, #16
100
118
; CHECK-NEXT: mov x17, #44
101
119
; CHECK-NEXT: pacda x16, x17
0 commit comments