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 37localsym: 38 mov r0, #0 39 40