aboutsummaryrefslogtreecommitdiff
path: root/gold/testsuite/thumb_bl_in_range.s
diff options
context:
space:
mode:
authorDoug Kwan <dougkwan@google.com>2010-02-22 06:26:07 +0000
committerDoug Kwan <dougkwan@google.com>2010-02-22 06:26:07 +0000
commit2a2b6d42b1a946cfaff8819925cdd15bee44d015 (patch)
treec434f4f73a93b26045882f05cb1b75f5e468f578 /gold/testsuite/thumb_bl_in_range.s
parent109af718c00cca36ea5c141464bfb51fbac068ce (diff)
downloadfsf-binutils-gdb-2a2b6d42b1a946cfaff8819925cdd15bee44d015.zip
fsf-binutils-gdb-2a2b6d42b1a946cfaff8819925cdd15bee44d015.tar.gz
fsf-binutils-gdb-2a2b6d42b1a946cfaff8819925cdd15bee44d015.tar.bz2
2010-02-21 Doug Kwan <dougkwan@google.com>
* arm.cc (Arm_relocate_functions::arm_branch_common): Fix bug in handling of the maximum backward branch offset. (Arm_relocate_functions::thumb_branch_common): Ditto. * testsuite/Makefile.am (check_SCRIPTS): Add arm_branch_in_range.sh. (check_DATA): Add arm_bl_in_range.stdout, arm_bl_out_of_range.stdout thumb_bl_in_range.stdout, thumb_bl_out_of_range.stdout, thumb2_bl_in_range.stdout and thumb2_bl_out_of_range.stdout. (arm_bl_in_range.stdout, arm_bl_in_range, arm_bl_in_range.o, arm_bl_out_of_range.stdout, arm_bl_out_of_range, arm_bl_out_of_range.o, thumb_bl_in_range.stdout, thumb_bl_in_range, thumb_bl_in_range.o, thumb_bl_out_of_range.stdout, thumb_bl_out_of_range thumb_bl_out_of_range.o, thumb2_bl_in_range.stdout, thumb2_bl_in_range, thumb2_bl_in_range.o thumb2_bl_out_of_range.stdout, thumb2_bl_out_of_range, thumb2_bl_out_of_range.o): New rules. (MOSTLYCLEANFILES): Add arm_bl_in_range, arm_bl_out_of_range, thumb_bl_in_range, thumb_bl_out_of_range, thumb2_bl_in_range and thumb2_bl_out_of_range * testsuite/Makefile.in: Regenerate. * testsuite/arm_bl_in_range.s: New file. * testsuite/arm_bl_out_of_range.s: Ditto. * testsuite/arm_branch_in_range.sh: Ditto. * testsuite/arm_branch_range.t: Ditto. * testsuite/thumb2_branch_range.t: Ditto. * testsuite/thumb_bl_in_range.s: Ditto. * testsuite/thumb_bl_out_of_range.s: Ditto. * testsuite/thumb_branch_range.t: Ditto.
Diffstat (limited to 'gold/testsuite/thumb_bl_in_range.s')
-rw-r--r--gold/testsuite/thumb_bl_in_range.s56
1 files changed, 56 insertions, 0 deletions
diff --git a/gold/testsuite/thumb_bl_in_range.s b/gold/testsuite/thumb_bl_in_range.s
new file mode 100644
index 0000000..4a40ae2
--- /dev/null
+++ b/gold/testsuite/thumb_bl_in_range.s
@@ -0,0 +1,56 @@
+# thumb_bl_in_range.s
+# Test THUMB/THUMB-2 bl instructions just within the branch range limits.
+ .syntax unified
+
+ .section .text.pre,"x"
+
+# Add padding so that target is just in branch range.
+ .space 8
+
+ .global _backward_target
+ .code 16
+ .thumb_func
+ .type _backword_target, %function
+_backward_target:
+ bx lr
+ .size _backward_target, .-_backward_target
+
+ .text
+
+# 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 _backward_target
+ .size _backward_test, .-_backward_test
+
+ .global _forward_test
+ .code 16
+ .thumb_func
+ .type _forward_test, %function
+_forward_test:
+ bl _forward_target
+ .size _forward_test, .-_forward_test
+
+ .section .text.post,"x"
+
+# Add padding so that target is just in branch range.
+ .space 10
+
+ .global _forward_target
+ .code 16
+ .thumb_func
+ .type _forward_target, %function
+_forward_target:
+ bx lr
+ .size _forward_target, .-_forward_target