Commit | Line | Data |
---|---|---|
0110f2b8 PB |
1 | .text |
2 | .thumb | |
3 | .syntax unified | |
4 | thumb2_relax: | |
5 | .macro ls op w=".w" | |
6 | 1: | |
7 | \op r1, [r5] | |
8 | \op r1, [r5, #(far_\op + 4)] | |
9 | \op r1, [r5, #far_\op] | |
10 | \op\w r1, [r5, #far_\op] | |
11 | \op r1, [r5, #-far_\op] | |
12 | \op r1, [r5], #far_\op | |
13 | \op r1, [r5], #far_\op | |
14 | \op r1, [r5, #far_\op]! | |
15 | \op r1, [r5, #-far_\op]! | |
16 | \op r1, [r5, r4] | |
17 | \op r1, [r9, ip] | |
18 | \op r1, 1f | |
19 | \op\w r1, 1f | |
20 | \op r8, 1f | |
21 | \op r1, 2f | |
22 | \op r1, 1b | |
23 | .align 2 | |
24 | 1: | |
25 | nop | |
26 | 2: | |
27 | .endm | |
28 | .equ far_ldrb, 0x1f | |
29 | .equ far_ldrsb, 0x1f | |
30 | .equ far_ldrh, 0x3e | |
31 | .equ far_ldrsh, 0x3e | |
32 | .equ far_ldr, 0x7c | |
0110f2b8 PB |
33 | ls ldrb |
34 | ls ldrsb | |
35 | ls ldrh | |
36 | ls ldrsh | |
37 | ls ldr | |
0110f2b8 PB |
38 | .purgem ls |
39 | 1: | |
40 | adr r1, 1f | |
41 | adr.w r1, 1f | |
42 | adr r8, 1f | |
43 | adr r1, 2f | |
44 | adr r1, 1b | |
45 | .align 2 | |
46 | 1: | |
47 | nop | |
48 | 2: | |
49 | nop | |
50 | @ Relaxation with conflicting alignment requirements. | |
51 | adr r1, 1f | |
52 | adr r1, 2f | |
53 | 1: | |
54 | nop | |
55 | 2: | |
56 | nop |