aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Brook <paul@codesourcery.com>2007-03-02 18:22:59 +0000
committerPaul Brook <paul@codesourcery.com>2007-03-02 18:22:59 +0000
commitbddb0493ac7250f49df7cad5db5333bb1a676572 (patch)
tree4c48c7485206b6361cb22e223b9f7907fdd1d247
parent5e77afaabd5f2af319350ec61082a999f9bb3704 (diff)
downloadgdb-bddb0493ac7250f49df7cad5db5333bb1a676572.zip
gdb-bddb0493ac7250f49df7cad5db5333bb1a676572.tar.gz
gdb-bddb0493ac7250f49df7cad5db5333bb1a676572.tar.bz2
2007-03-02 Paul Brook <paul@codesourcery.com>
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.
-rw-r--r--gas/testsuite/gas/arm/relax_branch_align.d13
-rw-r--r--gas/testsuite/gas/arm/relax_branch_align.s17
2 files changed, 30 insertions, 0 deletions
diff --git a/gas/testsuite/gas/arm/relax_branch_align.d b/gas/testsuite/gas/arm/relax_branch_align.d
new file mode 100644
index 0000000..e23b095
--- /dev/null
+++ b/gas/testsuite/gas/arm/relax_branch_align.d
@@ -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
index 0000000..718ce49
--- /dev/null
+++ b/gas/testsuite/gas/arm/relax_branch_align.s
@@ -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