1; Test border-cases for relaxation of pc-relative expressions.
2
3 .macro relaxcode
4 .endm
5
6 .text
7 .syntax no_register_prefix
8; Region of relaxation is after insn, same segment
9z:
10 move.d [pc-(x1-x+128-4)],r8 ; 4
11 move.d [pc-(x2-x+129-8)],r8 ; 6
12 move.d [pc+x3-x+127-14],r8 ; 4
13 move.d [pc+x4-x+128-18],r8 ; 6
14 move.d [pc-(x5-x+32768-26)],r8 ; 6
15 move.d [pc-(x6-x+32769-32)],r8 ; 8
16 move.d [pc+x7-x+32767-40],r8 ; 6
17 move.d [pc+x8-x+32768-46],r8 ; 8
18
19 .p2align 1
20
21; Region of relaxation is around insn, same segment
22x:
23 move.d [pc-(x1-x+128-4)],r8 ; 4
24x1:
25 move.d [pc-(x2-x+129-8)],r8 ; 6
26x2:
27 move.d [pc+x3-x+127-14],r8 ; 4
28x3:
29 move.d [pc+x4-x+128-18],r8 ; 6
30x4:
31 move.d [pc-(x5-x+32768-26)],r8 ; 6
32x5:
33 move.d [pc-(x6-x+32769-32)],r8 ; 8
34x6:
35 move.d [pc+x7-x+32767-40],r8 ; 6
36x7:
37 move.d [pc+x8-x+32768-46],r8 ; 8
38x8:
39
40; Region of relaxation is before insn, same segment.
41 move.d [pc-(x1-x+128-4)],r8 ; 4
42 move.d [pc-(x2-x+129-8)],r8 ; 6
43 move.d [pc+x3-x+127-14],r8 ; 4
44 move.d [pc+x4-x+128-18],r8 ; 6
45 move.d [pc-(x5-x+32768-26)],r8 ; 6
46 move.d [pc-(x6-x+32769-32)],r8 ; 8
47 move.d [pc+x7-x+32767-40],r8 ; 6
48 move.d [pc+x8-x+32768-46],r8 ; 8
49
50; Region of relaxation is in other segment.
51 .section .text.other
52y:
53 move.d [pc-(x1-x+128-4)],r8 ; 4
54 move.d [pc-(x2-x+129-8)],r8 ; 6
55 move.d [pc+x3-x+127-14],r8 ; 4
56 move.d [pc+x4-x+128-18],r8 ; 6
57 move.d [pc-(x5-x+32768-26)],r8 ; 6
58 move.d [pc-(x6-x+32769-32)],r8 ; 8
59 move.d [pc+x7-x+32767-40],r8 ; 6
60 move.d [pc+x8-x+32768-46],r8 ; 8
61