@@ -439,7 +439,7 @@ good_direct_call_nocfg:
439
439
stp x29 , x30 , [ sp , # - 16 ] !
440
440
mov x29 , sp
441
441
442
- bl callee_ext
442
+ bl callee
443
443
444
444
adr x2 , 1f
445
445
br x2
@@ -799,7 +799,7 @@ good_direct_tailcall_nocfg:
799
799
adr x2 , 1f
800
800
br x2
801
801
1 :
802
- b callee_ext
802
+ b callee
803
803
.size good_direct_tailcall_nocfg , . - good_direct_tailcall_nocfg
804
804
805
805
.globl good_indirect_tailcall_mem_nocfg
@@ -1050,70 +1050,65 @@ indirect_call_invalidates_safety:
1050
1050
ret
1051
1051
.size indirect_call_invalidates_safety , . - indirect_call_invalidates_safety
1052
1052
1053
- // FIXME: Clobbering instructions are not detected because direct calls are
1054
- // disassembled like this:
1055
- //
1056
- // 0000000c: mov x2 , x0
1057
- // 00000010 : autiza x2
1058
- // 00000014 : bl .Ltmp40 < -- callee_ext symbol is not understood ,
1059
- // address of the next instruction is used instead
1060
- // .Ltmp40: < -- state is reset because of this label
1061
- // 00000018 : blr x2
1062
-
1063
1053
.globl direct_call_invalidates_safety_nocfg
1064
1054
.type direct_call_invalidates_safety_nocfg , @function
1065
1055
direct_call_invalidates_safety_nocfg:
1066
1056
// CHECK - LABEL: GS - PAUTH: non - protected call found in function direct_call_invalidates_safety_nocfg , at address
1067
1057
// CHECK - NEXT: The instruction is {{ [ 0 - 9a - f ]+ }}: blr x2
1068
- // CHECK - NEXT: The 0 instructions th at write to the affected registers after any authentication are:
1069
- // FIXME: Print the destination of BL as callee_ext instead of .LtmpN
1058
+ // CHECK - NEXT: The 1 instructions th at write to the affected registers after any authentication are:
1059
+ // CHECK - NEXT: 1 . {{ [ 0 - 9a - f ]+ }}: bl callee
1070
1060
// CHECK - LABEL: GS - PAUTH: non - protected call found in function direct_call_invalidates_safety_nocfg , at address
1071
1061
// CHECK - NEXT: The instruction is {{ [ 0 - 9a - f ]+ }}: blr x8
1072
- // CHECK - NEXT: The 0 instructions th at write to the affected registers after any authentication are:
1062
+ // CHECK - NEXT: The 1 instructions th at write to the affected registers after any authentication are:
1063
+ // CHECK - NEXT: 1 . {{ [ 0 - 9a - f ]+ }}: bl callee
1073
1064
// CHECK - LABEL: GS - PAUTH: non - protected call found in function direct_call_invalidates_safety_nocfg , at address
1074
1065
// CHECK - NEXT: The instruction is {{ [ 0 - 9a - f ]+ }}: blr x10
1075
- // CHECK - NEXT: The 0 instructions th at write to the affected registers after any authentication are:
1066
+ // CHECK - NEXT: The 1 instructions th at write to the affected registers after any authentication are:
1067
+ // CHECK - NEXT: 1 . {{ [ 0 - 9a - f ]+ }}: bl callee
1076
1068
// CHECK - LABEL: GS - PAUTH: non - protected call found in function direct_call_invalidates_safety_nocfg , at address
1077
1069
// CHECK - NEXT: The instruction is {{ [ 0 - 9a - f ]+ }}: blr x16
1078
- // CHECK - NEXT: The 0 instructions th at write to the affected registers after any authentication are:
1070
+ // CHECK - NEXT: The 1 instructions th at write to the affected registers after any authentication are:
1071
+ // CHECK - NEXT: 1 . {{ [ 0 - 9a - f ]+ }}: bl callee
1079
1072
// CHECK - LABEL: GS - PAUTH: non - protected call found in function direct_call_invalidates_safety_nocfg , at address
1080
1073
// CHECK - NEXT: The instruction is {{ [ 0 - 9a - f ]+ }}: blr x18
1081
- // CHECK - NEXT: The 0 instructions th at write to the affected registers after any authentication are:
1074
+ // CHECK - NEXT: The 1 instructions th at write to the affected registers after any authentication are:
1075
+ // CHECK - NEXT: 1 . {{ [ 0 - 9a - f ]+ }}: bl callee
1082
1076
// CHECK - LABEL: GS - PAUTH: non - protected call found in function direct_call_invalidates_safety_nocfg , at address
1083
1077
// CHECK - NEXT: The instruction is {{ [ 0 - 9a - f ]+ }}: blr x20
1084
- // CHECK - NEXT: The 0 instructions th at write to the affected registers after any authentication are:
1078
+ // CHECK - NEXT: The 1 instructions th at write to the affected registers after any authentication are:
1079
+ // CHECK - NEXT: 1 . {{ [ 0 - 9a - f ]+ }}: bl callee
1085
1080
paciasp
1086
1081
stp x29 , x30 , [ sp , # - 16 ] !
1087
1082
mov x29 , sp
1088
1083
1089
1084
mov x2 , x0
1090
1085
autiza x2
1091
- bl callee_ext
1086
+ bl callee
1092
1087
blr x2
1093
1088
1094
1089
mov x8 , x0
1095
1090
autiza x8
1096
- bl callee_ext
1091
+ bl callee
1097
1092
blr x8
1098
1093
1099
1094
mov x10 , x0
1100
1095
autiza x10
1101
- bl callee_ext
1096
+ bl callee
1102
1097
blr x10
1103
1098
1104
1099
mov x16 , x0
1105
1100
autiza x16
1106
- bl callee_ext
1101
+ bl callee
1107
1102
blr x16
1108
1103
1109
1104
mov x18 , x0
1110
1105
autiza x18
1111
- bl callee_ext
1106
+ bl callee
1112
1107
blr x18
1113
1108
1114
1109
mov x20 , x0
1115
1110
autiza x20
1116
- bl callee_ext
1111
+ bl callee
1117
1112
blr x20
1118
1113
1119
1114
adr x2 , 1f
0 commit comments