OSDN Git Service

2007-03-02 Paul Brook <paul@codesourcery.com>
authorpbrook <pbrook>
Fri, 2 Mar 2007 18:22:59 +0000 (18:22 +0000)
committerpbrook <pbrook>
Fri, 2 Mar 2007 18:22:59 +0000 (18:22 +0000)
gas/
* config/tc-arm.c (relax_immediate): Always return positive values.
(relaxed_symbol_addr): New function.
(relax_adr, relax_branch): Use it.
(arm_relax_frag): Pass strect argument.  Adjust infinite loop check.

gas/testsuite/
* gas/arm/relax_branch_align.d: New test.
* gas/arm/relax_branch_align.s: New test.

gas/testsuite/gas/arm/relax_branch_align.d [new file with mode: 0644]
gas/testsuite/gas/arm/relax_branch_align.s [new file with mode: 0644]

diff --git a/gas/testsuite/gas/arm/relax_branch_align.d b/gas/testsuite/gas/arm/relax_branch_align.d
new file mode 100644 (file)
index 0000000..e23b095
--- /dev/null
@@ -0,0 +1,13 @@
+#name: Branch relaxation with alignment.
+#objdump: -dr --prefix-addresses --show-raw-insn
+
+.*: +file format .*arm.*
+
+Disassembly of section .text:
+0+000 <[^>]+> bf00             nop
+0+002 <[^>]+> f000 8080        beq.w   0+106 <[^>]*>
+0+006 <[^>]+> bf00             nop
+#...
+0+100 <[^>]+> bf00             nop
+0+102 <[^>]+> f47f af80        bne.w   0+006 <[^>]*>
+0+106 <[^>]+> bf00             nop
diff --git a/gas/testsuite/gas/arm/relax_branch_align.s b/gas/testsuite/gas/arm/relax_branch_align.s
new file mode 100644 (file)
index 0000000..718ce49
--- /dev/null
@@ -0,0 +1,17 @@
+       .syntax unified
+       .thumb
+fn:
+       nop
+.L191:
+       beq     .L192
+.L46:
+       nop
+       .align  2
+.L54:
+       .rept 62
+       .word   0
+       .endr
+       nop
+       bne     .L46
+.L192:
+       nop