12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- # thumb_bl_out_of_range_local.s
- # Test THUMB/THUMB-2 bl instructions just out of the branch range limits
- # and with local branch targets.
- .syntax unified
- .section .text.pre,"x"
- # Add padding so that target is just output of branch range.
- .space 6
- .code 16
- .thumb_func
- .type .Lbackward_target, %function
- .Lbackward_target:
- bx lr
- .size .Lbackward_target, .-.Lbackward_target
-
- .text
- # Use 256-byte alignment so that we know where the stubs start.
- .align 8
- # Define _start so that linker does not complain.
- .global _start
- .code 32
- .align 2
- .type _start, %function
- _start:
- bx lr
- .size _start, .-_start
- .global _backward_test
- .code 16
- .thumb_func
- .type _backward_test, %function
- _backward_test:
- bl .Lbackward_target
- .size _backward_test, .-_backward_test
- .global _forward_test
- .code 16
- .thumb_func
- .type _forward_test, %function
- _forward_test:
- bl .Lforward_target
- .size _forward_test, .-_forward_test
- # Switch back to ARM mode so that we can see stubs
- .align 2
- .code 32
- # Align stub table for address matching.
- .align 8
-
- .section .text.post,"x"
- # Add padding so that target is just out of branch range.
- .space 12
- .code 16
- .thumb_func
- .type .Lforward_target, %function
- .Lforward_target:
- bx lr
- .size .Lforward_target, .-.Lforward_target
|