PR binutils/12467
[binutils.git] / gold / testsuite / thumb_bl_out_of_range_local.s
blob48de1e14206f0253ae999081f772b41c5df633db
1 # thumb_bl_out_of_range_local.s
2 # Test THUMB/THUMB-2 bl instructions just out of the branch range limits
3 # and with local branch targets.
4 .syntax unified
6 .section .text.pre,"x"
8 # Add padding so that target is just output of branch range.
9 .space 6
11 .code 16
12 .thumb_func
13 .type .Lbackward_target, %function
14 .Lbackward_target:
15 bx lr
16 .size .Lbackward_target, .-.Lbackward_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 .Lbackward_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 .Lforward_target
45 .size _forward_test, .-_forward_test
47 # Switch back to ARM mode so that we can see stubs
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 .code 16
57 .thumb_func
58 .type .Lforward_target, %function
59 .Lforward_target:
60 bx lr
61 .size .Lforward_target, .-.Lforward_target