Index: binutils/gas/testsuite/gas/arm/branch-reloc.d |
diff --git a/binutils/gas/testsuite/gas/arm/branch-reloc.d b/binutils/gas/testsuite/gas/arm/branch-reloc.d |
new file mode 100644 |
index 0000000000000000000000000000000000000000..6ba322e5a9cdaa662f23a98278a9aa107e5c06ff |
--- /dev/null |
+++ b/binutils/gas/testsuite/gas/arm/branch-reloc.d |
@@ -0,0 +1,89 @@ |
+#name: Inter-section branch relocations |
+#This test is only valid on ELF based ports. |
+#not-target: *-*-*coff *-*-pe *-*-wince *-*-*aout* *-*-netbsd *-*-riscix* |
+#as: -march=armv5t |
+#objdump: -rd |
+#stderr: branch-reloc.l |
+ |
+# Test the generation of relocation for inter-section branches |
+ |
+.*: +file format.*arm.* |
+ |
+ |
+Disassembly of section .text: |
+ |
+00000000 <arm_glob_sym1-0x4>: |
+ 0: e1a00000 nop ; \(mov r0, r0\) |
+ |
+00000004 <arm_glob_sym1>: |
+ 4: ebfffffe bl 46 <thumb_glob_sym1> |
+ 4: R_ARM_CALL thumb_glob_sym1 |
+ 8: ebfffffe bl 100 <thumb_glob_sym2> |
+ 8: R_ARM_CALL thumb_glob_sym2 |
+ c: fa00000c blx 44 <thumb_sym1> |
+ 10: ebfffffe bl 4 <arm_glob_sym1> |
+ 10: R_ARM_CALL arm_glob_sym1 |
+ 14: ebfffffe bl 13c <arm_glob_sym2> |
+ 14: R_ARM_CALL arm_glob_sym2 |
+ 18: eb000007 bl 3c <arm_sym1> |
+ 1c: fafffffe blx 46 <thumb_glob_sym1> |
+ 1c: R_ARM_CALL thumb_glob_sym1 |
+ 20: fafffffe blx 100 <thumb_glob_sym2> |
+ 20: R_ARM_CALL thumb_glob_sym2 |
+ 24: fa000006 blx 44 <thumb_sym1> |
+ 28: fafffffe blx 4 <arm_glob_sym1> |
+ 28: R_ARM_CALL arm_glob_sym1 |
+ 2c: fafffffe blx 13c <arm_glob_sym2> |
+ 2c: R_ARM_CALL arm_glob_sym2 |
+ 30: eb000001 bl 3c <arm_sym1> |
+ 34: e1a00000 nop ; \(mov r0, r0\) |
+ 38: e12fff1e bx lr |
+ |
+0000003c <arm_sym1>: |
+ 3c: e1a00000 nop ; \(mov r0, r0\) |
+ 40: e12fff1e bx lr |
+ |
+00000044 <thumb_sym1>: |
+ 44: 4770 bx lr |
+ |
+00000046 <thumb_glob_sym1>: |
+ 46: 4770 bx lr |
+ |
+Disassembly of section foo: |
+ |
+00000000 <thumb_glob_sym2-0x100>: |
+ ... |
+ |
+00000100 <thumb_glob_sym2>: |
+ 100: f7ff fffe bl 4 <thumb_glob_sym2-0xfc> |
+ 100: R_ARM_THM_CALL arm_glob_sym1 |
+ 104: f7ff fffe bl 13c <arm_glob_sym2> |
+ 104: R_ARM_THM_CALL arm_glob_sym2 |
+ 108: f000 e816 blx 138 <arm_sym2> |
+ 10c: f7ff fffe bl 46 <thumb_glob_sym2-0xba> |
+ 10c: R_ARM_THM_CALL thumb_glob_sym1 |
+ 110: f7ff fffe bl 100 <thumb_glob_sym2> |
+ 110: R_ARM_THM_CALL thumb_glob_sym2 |
+ 114: f000 f80e bl 134 <thumb_sym2> |
+ 118: f7ff effe blx 4 <thumb_glob_sym2-0xfc> |
+ 118: R_ARM_THM_CALL arm_glob_sym1 |
+ 11c: f7ff effe blx 13c <arm_glob_sym2> |
+ 11c: R_ARM_THM_CALL arm_glob_sym2 |
+ 120: f000 e80a blx 138 <arm_sym2> |
+ 124: f7ff effe blx 46 <thumb_glob_sym2-0xba> |
+ 124: R_ARM_THM_CALL thumb_glob_sym1 |
+ 128: f7ff effe blx 100 <thumb_glob_sym2> |
+ 128: R_ARM_THM_CALL thumb_glob_sym2 |
+ 12c: f000 f802 bl 134 <thumb_sym2> |
+ 130: 46c0 nop ; \(mov r8, r8\) |
+ 132: 4770 bx lr |
+ |
+00000134 <thumb_sym2>: |
+ 134: 46c0 nop ; \(mov r8, r8\) |
+ 136: 4770 bx lr |
+ |
+00000138 <arm_sym2>: |
+ 138: e12fff1e bx lr |
+ |
+0000013c <arm_glob_sym2>: |
+ 13c: e12fff1e bx lr |