]> git.ipfire.org Git - thirdparty/binutils-gdb.git/blob - gold/testsuite/thumb_blx_in_range.s
opcodes: bfin: simplify field width processing and fix build warnings
[thirdparty/binutils-gdb.git] / gold / testsuite / thumb_blx_in_range.s
1 # thumb_blx_in_range.s
2 #
3 # Test THUMB/THUMB-2 blx instructions just within the branch range limits.
4 # Because bit 1 of the branch target comes from the branch instruction
5 # address, the branch range from PC (branch instruction address + 4) is
6 # acutally -((1<<22) + 2) to ((1<<22) - 4) for THUMB and -((1<<24) + 2) to
7 # ((1<<24) - 4) from THUMB2.
8
9 .syntax unified
10 .section .text.pre,"x"
11
12 # Add padding so that target is just in branch range.
13 .space 8
14
15 .align 2
16 .global _backward_target
17 .code 32
18 .type _backword_target, %function
19 _backward_target:
20 bx lr
21 .size _backward_target, .-_backward_target
22
23 .text
24
25 # Define _start so that linker does not complain.
26 .global _start
27 .code 32
28 .align 2
29 .type _start, %function
30 _start:
31 bx lr
32 .size _start, .-_start
33
34 .global _backward_test
35 .code 16
36 .thumb_func
37 .type _backward_test, %function
38 _backward_test:
39 nop.n
40 blx _backward_target
41 .size _backward_test, .-_backward_test
42
43 .align 2
44 .global _forward_test
45 .code 16
46 .thumb_func
47 .type _forward_test, %function
48 _forward_test:
49 blx _forward_target
50 .size _forward_test, .-_forward_test
51 .code 32
52
53 .section .text.post,"x"
54
55 # Add padding so that target is just in branch range.
56 .space 12
57
58 .align 2
59 .global _forward_target
60 .code 32
61 .type _forward_target, %function
62 _forward_target:
63 bx lr
64 .size _forward_target, .-_forward_target