@@ -21,27 +21,33 @@ public func use_global() -> Int {
21
21
// i386: movl __T04main6globalSiv-[[PIC_BLOCK]]([[PIC_REG]]), {{%[a-z]+}}
22
22
23
23
// armv7-LABEL: __T04main10use_globalSiyF:
24
- // armv7: movw r0, :lower16:(__T04main6globalSiv-([[PIC_0:L.*]]+8))
25
- // armv7: movt r0, :upper16:(__T04main6globalSiv-([[PIC_0]]+8))
24
+ // Check for the runtime memory enforcement call. The global address may be
25
+ // materialized in a different register prior to that call.
26
+ // armv7: bl _swift_beginAccess
27
+ // armv7: movw [[R_ADR:r.*]], :lower16:(__T04main6globalSiv-([[PIC_0:L.*]]+8))
28
+ // armv7: movt [[R_ADR]], :upper16:(__T04main6globalSiv-([[PIC_0]]+8))
26
29
// armv7: [[PIC_0]]:{{$}}
27
- // armv7: add r0 , pc, r0
28
- // armv7: ldr r0, [r0]
30
+ // armv7: add [[R_ADR]] , pc, [[R_ADR]]
31
+ // armv7: ldr [[R_ADR]], {{\[}}[[R_ADR]]{{\]}}
29
32
30
33
// armv7s-LABEL: __T04main10use_globalSiyF:
31
- // armv7s: movw r0, :lower16:(__T04main6globalSiv-([[PIC_0:L.*]]+8))
32
- // armv7s: movt r0, :upper16:(__T04main6globalSiv-([[PIC_0]]+8))
34
+ // armv7s: bl _swift_beginAccess
35
+ // armv7s: movw [[R_ADR:r.*]], :lower16:(__T04main6globalSiv-([[PIC_0:L.*]]+8))
36
+ // armv7s: movt [[R_ADR]], :upper16:(__T04main6globalSiv-([[PIC_0]]+8))
33
37
// armv7s: [[PIC_0]]:{{$}}
34
- // armv7s: add r0 , pc, r0
35
- // armv7s: ldr r0, [r0]
38
+ // armv7s: add [[R_ADR]] , pc, [[R_ADR]]
39
+ // armv7s: ldr [[R_ADR]], {{\[}}[[R_ADR]]{{\]}}
36
40
37
41
// armv7k-LABEL: __T04main10use_globalSiyF:
38
- // armv7k: movw r0, :lower16:(__T04main6globalSiv-([[PIC_0:L.*]]+8))
39
- // armv7k: movt r0, :upper16:(__T04main6globalSiv-([[PIC_0]]+8))
42
+ // armv7k: bl _swift_beginAccess
43
+ // armv7k: movw [[R_ADR:r.*]], :lower16:(__T04main6globalSiv-([[PIC_0:L.*]]+8))
44
+ // armv7k: movt [[R_ADR]], :upper16:(__T04main6globalSiv-([[PIC_0]]+8))
40
45
// armv7k: [[PIC_0]]:{{$}}
41
- // armv7k: add r0 , pc, r0
42
- // armv7k: ldr r0, [r0]
46
+ // armv7k: add [[R_ADR]] , pc, [[R_ADR]]
47
+ // armv7k: ldr [[R_ADR]], {{\[}}[[R_ADR]]{{\]}}
43
48
44
49
// arm64-LABEL: __T04main10use_globalSiyF:
50
+ // arm64: bl _swift_beginAccess
45
51
// arm64: adrp [[REG1:x[0-9]+]], __T04main6globalSiv@PAGE
46
52
// arm64: add [[REG2:x[0-9]+]], [[REG1]], __T04main6globalSiv@PAGEOFF
47
53
// arm64: ldr {{x[0-9]+}}, {{\[}}[[REG2]]{{\]}}
0 commit comments