Commit | Line | Data |
---|---|---|
2a2b6d42 DK |
1 | # thumb_bl_out_of_range.s |
2 | # Test THUMB/THUMB-2 bl instructions just out of the branch range limits. | |
3 | .syntax unified | |
4 | ||
5 | .section .text.pre,"x" | |
6 | ||
7 | # Add padding so that target is just output of branch range. | |
8 | .space 6 | |
9 | ||
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 | |
17 | ||
18 | .text | |
aa98ff75 DK |
19 | # Use 256-byte alignment so that we know where the stubs start. |
20 | .align 8 | |
2a2b6d42 DK |
21 | |
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 | |
30 | ||
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 | |
38 | ||
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 | |
46 | ||
aa98ff75 | 47 | # switch back to ARM mode so that stubs are disassembled correctly. |
15162bef | 48 | .align 2 |
aa98ff75 | 49 | .code 32 |
15162bef DK |
50 | |
51 | # Align stub table for address matching. | |
52 | .align 8 | |
aa98ff75 | 53 | |
2a2b6d42 DK |
54 | .section .text.post,"x" |
55 | ||
56 | # Add padding so that target is just out of branch range. | |
57 | .space 12 | |
58 | ||
59 | .global _forward_target | |
60 | .code 16 | |
61 | .thumb_func | |
62 | .type _forward_target, %function | |
63 | _forward_target: | |
64 | bx lr | |
65 | .size _forward_target, .-_forward_target |