* linux-nat.c (debug_linux_nat_async): Delete.
[deliverable/binutils-gdb.git] / ld / testsuite / ld-arm / group-relocs.s
CommitLineData
4962c51a
MS
1@ Tests for group relocations.
2@
3@ Beware when editing this file: it is carefully crafted so that
4@ specific PC- and SB-relative offsets arise.
5@
6@ Note that the gas tests have already checked that group relocations are
7@ handled in the same way for local and external symbols.
8
9@ We will place .text at 0x8000.
10
11 .text
12 .globl _start
13
14_start:
15 @ ALU, PC-relative
16
17 @ Instructions start at .text + 0x0
18 add r0, r15, #:pc_g0:(one_group_needed_alu_pc)
19
20 @ Instructions start at .text + 0x4
21 add r0, r15, #:pc_g0_nc:(two_groups_needed_alu_pc)
22 add r0, r0, #:pc_g1:(two_groups_needed_alu_pc + 4)
23
24 @ Instructions start at .text + 0xc
25 add r0, r15, #:pc_g0_nc:(three_groups_needed_alu_pc)
26 add r0, r0, #:pc_g1_nc:(three_groups_needed_alu_pc + 4)
27 add r0, r0, #:pc_g2:(three_groups_needed_alu_pc + 8)
28
29 @ ALU, SB-relative
30
31 add r0, r0, #:sb_g0:(one_group_needed_alu_sb)
32
33 add r0, r15, #:sb_g0_nc:(two_groups_needed_alu_sb)
34 add r0, r0, #:sb_g1:(two_groups_needed_alu_sb)
35
36 add r0, r0, #:sb_g0_nc:(three_groups_needed_alu_sb)
37 add r0, r0, #:sb_g1_nc:(three_groups_needed_alu_sb)
38 add r0, r0, #:sb_g2:(three_groups_needed_alu_sb)
39
40 @ LDR, PC-relative
41
42 @ Instructions start at .text + 0x30
43 add r0, r0, #:pc_g0_nc:(two_groups_needed_ldr_pc)
44 ldr r1, [r0, #:pc_g1:(two_groups_needed_ldr_pc + 4)]
45
46 @ Instructions start at .text + 0x38
47 add r0, r0, #:pc_g0_nc:(three_groups_needed_ldr_pc)
48 add r0, r0, #:pc_g1_nc:(three_groups_needed_ldr_pc + 4)
49 ldr r1, [r0, #:pc_g2:(three_groups_needed_ldr_pc + 8)]
50
51 @ LDR, SB-relative
52
53 ldr r1, [r0, #:sb_g0:(one_group_needed_ldr_sb)]
54
55 add r0, r0, #:sb_g0_nc:(two_groups_needed_ldr_sb)
56 ldr r1, [r0, #:sb_g1:(two_groups_needed_ldr_sb)]
57
58 add r0, r0, #:sb_g0_nc:(three_groups_needed_ldr_sb)
59 add r0, r0, #:sb_g1_nc:(three_groups_needed_ldr_sb)
60 ldr r1, [r0, #:sb_g2:(three_groups_needed_ldr_sb)]
61
62 @ LDRS, PC-relative
63
64 @ Instructions start at .text + 0x5c
65 ldrd r2, [r0, #:pc_g0:(one_group_needed_ldrs_pc)]
66
67 @ Instructions start at .text + 0x60
68 add r0, r0, #:pc_g0_nc:(two_groups_needed_ldrs_pc)
69 ldrd r2, [r0, #:pc_g1:(two_groups_needed_ldrs_pc + 4)]
70
71 @ Instructions start at .text + 0x68
72 add r0, r0, #:pc_g0_nc:(three_groups_needed_ldrs_pc)
73 add r0, r0, #:pc_g1_nc:(three_groups_needed_ldrs_pc + 4)
74 ldrd r2, [r0, #:pc_g2:(three_groups_needed_ldrs_pc + 8)]
75
76 @ LDRS, SB-relative
77
78 ldrd r2, [r0, #:sb_g0:(one_group_needed_ldrs_sb)]
79
80 add r0, r0, #:sb_g0_nc:(two_groups_needed_ldrs_sb)
81 ldrd r2, [r0, #:sb_g1:(two_groups_needed_ldrs_sb)]
82
83 add r0, r0, #:sb_g0_nc:(three_groups_needed_ldrs_sb)
84 add r0, r0, #:sb_g1_nc:(three_groups_needed_ldrs_sb)
85 ldrd r2, [r0, #:sb_g2:(three_groups_needed_ldrs_sb)]
86
87 @ LDC, PC-relative
88
89 @ Instructions start at .text + 0x8c
90 ldc 0, c0, [r0, #:pc_g0:(one_group_needed_ldc_pc)]
91
92 @ Instructions start at .text + 0x90
93 add r0, r0, #:pc_g0_nc:(two_groups_needed_ldc_pc)
94 ldc 0, c0, [r0, #:pc_g1:(two_groups_needed_ldc_pc + 4)]
95
96 @ Instructions start at .text + 0x98
97 add r0, r0, #:pc_g0_nc:(three_groups_needed_ldc_pc)
98 add r0, r0, #:pc_g1_nc:(three_groups_needed_ldc_pc + 4)
99 ldc 0, c0, [r0, #:pc_g2:(three_groups_needed_ldc_pc + 8)]
100
101 @ LDC, SB-relative
102
103 ldc 0, c0, [r0, #:sb_g0:(one_group_needed_ldc_sb)]
104
105 add r0, r0, #:sb_g0_nc:(two_groups_needed_ldc_sb)
106 ldc 0, c0, [r0, #:sb_g1:(two_groups_needed_ldc_sb)]
107
108 add r0, r0, #:sb_g0_nc:(three_groups_needed_ldc_sb)
109 add r0, r0, #:sb_g1_nc:(three_groups_needed_ldc_sb)
110 ldc 0, c0, [r0, #:sb_g2:(three_groups_needed_ldc_sb)]
111
112@ This point in the file is .text + 0xbc.
113
114one_group_needed_alu_pc:
115one_group_needed_ldrs_pc:
116one_group_needed_ldc_pc:
117 mov r0, #0
118
119@ We will place the section zero at 0x0.
120
c9ee9c4c 121 .section zero, "x"
4962c51a
MS
122
123one_group_needed_alu_sb:
124one_group_needed_ldr_sb:
125one_group_needed_ldrs_sb:
126one_group_needed_ldc_sb:
127 mov r0, #0
128
129@ We will place the section alpha at 0xeef0.
130
c9ee9c4c 131 .section alpha, "x"
4962c51a
MS
132
133two_groups_needed_alu_sb:
134two_groups_needed_ldr_sb:
135two_groups_needed_ldrs_sb:
136two_groups_needed_ldc_sb:
137two_groups_needed_alu_pc:
138two_groups_needed_ldr_pc:
139two_groups_needed_ldrs_pc:
140two_groups_needed_ldc_pc:
141 mov r0, #0
142
143@ We will place the section beta at 0xffeef0.
144
c9ee9c4c 145 .section beta, "x"
4962c51a
MS
146
147three_groups_needed_alu_sb:
148three_groups_needed_ldr_sb:
149three_groups_needed_ldrs_sb:
150three_groups_needed_ldc_sb:
151three_groups_needed_alu_pc:
152three_groups_needed_ldr_pc:
153three_groups_needed_ldrs_pc:
154three_groups_needed_ldc_pc:
155 mov r0, #0
156
This page took 0.211631 seconds and 4 git commands to generate.