Upload Tizen:Base source
[external/binutils.git] / gold / testsuite / thumb_bl_out_of_range_local.s
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
5
6         .section        .text.pre,"x"
7
8 # Add padding so that target is just output of branch range. 
9         .space  6
10
11         .code   16
12         .thumb_func
13         .type   .Lbackward_target, %function
14 .Lbackward_target:
15         bx      lr
16         .size   .Lbackward_target, .-.Lbackward_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      .Lbackward_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      .Lforward_target
45         .size   _forward_test, .-_forward_test
46
47 # Switch back to ARM mode so that we can see stubs
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         .code   16
57         .thumb_func
58         .type   .Lforward_target, %function
59 .Lforward_target:
60         bx      lr
61         .size   .Lforward_target, .-.Lforward_target