150
|
1 // This input must be assembled by the GNU assembler, as llvm-mc does not emit
|
236
|
2 // the R_ARM_THM_JUMP11 and R_ARM_THM_JUMP8 relocations for a Thumb narrow
|
|
3 // branch. This is permissible by the ABI for the ARM architecture as the range
|
|
4 // of the Thumb narrow branch is short enough (+- 2048 bytes and +- 256 bytes
|
|
5 // respeticely) that widespread use would be impractical.
|
150
|
6 //
|
|
7 // The test case will use a pre compiled object arm-thumb-narrow-branch.o
|
|
8 .syntax unified
|
|
9 .section .caller, "ax",%progbits
|
|
10 .thumb
|
|
11 .align 2
|
|
12 .type callers,%function
|
|
13 .globl callers
|
|
14 callers:
|
|
15 b.n callee_low_far
|
|
16 b.n callee_low
|
|
17 b.n callee_high
|
|
18 b.n callee_high_far
|
236
|
19 beq.n callee_low_near
|
|
20 beq.n callee_low
|
|
21 beq.n callee_high
|
|
22 beq.n callee_high_near
|
150
|
23 bx lr
|