Upload Tizen:Base source
[external/binutils.git] / gas / testsuite / gas / arm / group-reloc-ldr-encoding-bad.s
1 @ Tests that are supposed to fail during encoding
2 @ for LDR group relocations.
3
4         .text
5
6         .macro ldrtest load store sym offset
7
8         \load   r0, [r0, #:pc_g0:(\sym \offset)]
9         \load   r0, [r0, #:pc_g1:(\sym \offset)]
10         \load   r0, [r0, #:pc_g2:(\sym \offset)]
11         \load   r0, [r0, #:sb_g0:(\sym \offset)]
12         \load   r0, [r0, #:sb_g1:(\sym \offset)]
13         \load   r0, [r0, #:sb_g2:(\sym \offset)]
14
15         \store  r0, [r0, #:pc_g0:(\sym \offset)]
16         \store  r0, [r0, #:pc_g1:(\sym \offset)]
17         \store  r0, [r0, #:pc_g2:(\sym \offset)]
18         \store  r0, [r0, #:sb_g0:(\sym \offset)]
19         \store  r0, [r0, #:sb_g1:(\sym \offset)]
20         \store  r0, [r0, #:sb_g2:(\sym \offset)]
21
22         .endm
23
24 @ LDR/STR/LDRB/STRB only have 12 bits available for the magnitude of the addend.
25 @ So these should all fail.
26
27         ldrtest ldr str f "+ 4096"
28         ldrtest ldrb strb f "+ 4096"
29         ldrtest ldr str f "- 4096"
30         ldrtest ldrb strb f "- 4096"
31
32         ldrtest ldr str localsym "+ 4096"
33         ldrtest ldrb strb localsym "+ 4096"
34         ldrtest ldr str localsym "- 4096"
35         ldrtest ldrb strb localsym "- 4096"
36
37 localsym:
38         mov     r0, #0
39