PR binutils/12467
[binutils.git] / gold / testsuite / thumb_bl_out_of_range.s
blobd0906d9d5ceb28a34dbd2f5240bc62c52cc1a309
1 # thumb_bl_out_of_range.s
2 # Test THUMB/THUMB-2 bl instructions just out of the branch range limits.
3 .syntax unified
5 .section .text.pre,"x"
7 # Add padding so that target is just output of branch range.
8 .space 6
10 .global _backward_target
11 .code 16
12 .thumb_func
13 .type _backword_target, %function
14 _backward_target:
15 bx lr
16 .size _backward_target, .-_backward_target
18 .text
19 # Use 256-byte alignment so that we know where the stubs start.
20 .align 8
22 # Define _start so that linker does not complain.
23 .global _start
24 .code 32
25 .align 2
26 .type _start, %function
27 _start:
28 bx lr
29 .size _start, .-_start
31 .global _backward_test
32 .code 16
33 .thumb_func
34 .type _backward_test, %function
35 _backward_test:
36 bl _backward_target
37 .size _backward_test, .-_backward_test
39 .global _forward_test
40 .code 16
41 .thumb_func
42 .type _forward_test, %function
43 _forward_test:
44 bl _forward_target
45 .size _forward_test, .-_forward_test
47 # switch back to ARM mode so that stubs are disassembled correctly.
48 .code 32
49 nop
51 .section .text.post,"x"
53 # Add padding so that target is just out of branch range.
54 .space 12
56 .global _forward_target
57 .code 16
58 .thumb_func
59 .type _forward_target, %function
60 _forward_target:
61 bx lr
62 .size _forward_target, .-_forward_target