forked from OSchip/llvm-project
24 lines
731 B
ArmAsm
24 lines
731 B
ArmAsm
// This input must be assembled by the GNU assembler, as llvm-mc does not emit
|
|
// the R_ARM_THM_JUMP11 and R_ARM_THM_JUMP8 relocations for a Thumb narrow
|
|
// branch. This is permissible by the ABI for the ARM architecture as the range
|
|
// of the Thumb narrow branch is short enough (+- 2048 bytes and +- 256 bytes
|
|
// respeticely) that widespread use would be impractical.
|
|
//
|
|
// The test case will use a pre compiled object arm-thumb-narrow-branch.o
|
|
.syntax unified
|
|
.section .caller, "ax",%progbits
|
|
.thumb
|
|
.align 2
|
|
.type callers,%function
|
|
.globl callers
|
|
callers:
|
|
b.n callee_low_far
|
|
b.n callee_low
|
|
b.n callee_high
|
|
b.n callee_high_far
|
|
beq.n callee_low_near
|
|
beq.n callee_low
|
|
beq.n callee_high
|
|
beq.n callee_high_near
|
|
bx lr
|