• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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
19# Use 256-byte alignment so that we know where the stubs start.
20	.align	8
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
47# switch back to ARM mode so that stubs are disassembled correctly.
48	.code	32
49	nop
50
51	.section	.text.post,"x"
52
53# Add padding so that target is just out of branch range.
54	.space	12
55
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
63