1 # arm_bl_out_of_range.s 2 # Test ARM bl instructions just out of the branch range limits. 3 .syntax unified 4 .arch armv5te 5 6 .section .text.pre,"x" 7 8 # Add padding so that target is just out of branch range. 9 .space 8 10 11 .align 2 12 .global _backward_target 13 _backward_target: 14 bx lr 15 .size _backward_target, .-_backward_target 16 17 .text 18 # Use 256-byte alignment so that we know where the stubs start. 19 .align 8 20 21 # Define _start so that linker does not complain. 22 .global _start 23 _start: 24 bx lr 25 .size _start, .-_start 26 27 .global _backward_test 28 _backward_test: 29 bl _backward_target 30 .size _backward_test, .-_backward_test 31 32 .global _forward_test 33 _forward_test: 34 bl _forward_target 35 .size _forward_test, .-_forward_test 36 37 .section .text.post,"x" 38 39 # Add padding so that target is just out of branch range. 40 .space 16 41 42 .align 2 43 .global _forward_target 44 _forward_target: 45 bx lr 46 .size _forward_target, .-_forward_target 47