Fix testsuite for Thumb2 jump reloc veneers.
authorRamana Radhakrishnan <ramana.r@gmail.com>
Mon, 1 Feb 2010 10:33:16 +0000 (10:33 +0000)
committerRamana Radhakrishnan <ramana.r@gmail.com>
Mon, 1 Feb 2010 10:33:16 +0000 (10:33 +0000)
2010-02-01  Matthew Gretton-Dann  <matthew.gretton-dann@arm.com>

        * ld-arm/jump-reloc-veneers-long.d: New test.
        * ld-arm/jump-reloc-veneers-short1.d: Likewise.
        * ld-arm/jump-reloc-veneers-short2.d: Likewise.
        * ld-arm/jump-reloc-veneers.s: Likewise.
        * ld-arm/arm-elf.exp (armelftests): Run them.

ld/testsuite/ChangeLog
ld/testsuite/ld-arm/arm-elf.exp
ld/testsuite/ld-arm/jump-reloc-veneers-long.d [new file with mode: 0644]
ld/testsuite/ld-arm/jump-reloc-veneers-short1.d [new file with mode: 0644]
ld/testsuite/ld-arm/jump-reloc-veneers-short2.d [new file with mode: 0644]
ld/testsuite/ld-arm/jump-reloc-veneers.s [new file with mode: 0644]

index 9e3e0f1cc687242c6ee1b0e0c1a0a277077c205f..e3d20bf1782f9fc37da6eb5528e93eb1dba36309 100644 (file)
@@ -1,3 +1,11 @@
+2010-02-01  Matthew Gretton-Dann  <matthew.gretton-dann@arm.com>
+
+        * ld-arm/jump-reloc-veneers-long.d: New test.
+        * ld-arm/jump-reloc-veneers-short1.d: Likewise.
+        * ld-arm/jump-reloc-veneers-short2.d: Likewise.
+        * ld-arm/jump-reloc-veneers.s: Likewise.
+        * ld-arm/arm-elf.exp (armelftests): Run them.
+
 2010-01-28  Nick Clifton  <nickc@redhat.com>
 
        PR 11225
index 050471d6e08de1c3f46572083baef72c2448529f..9d600846f0732983e53de20ffa74fc02bbfe5ab6 100644 (file)
@@ -433,6 +433,25 @@ set armeabitests {
     {"Long branch with mixed text and data" "-T arm.ld" "" {farcall-data.s}
      {{objdump -dr farcall-data.d}}
      "farcall-data"}
+
+    {"R_ARM_THM_JUMP24 Relocation veneers: Short 1" 
+     "-defsym _start=0x8000 --section-start destsect=0x00009000" 
+     "-march=armv7-a -mthumb" 
+     {jump-reloc-veneers.s}
+     {{objdump -d jump-reloc-veneers-short1.d}}
+     "jump-reloc-veneers-short1"}
+    {"R_ARM_THM_JUMP24 Relocation veneers: Short 2" 
+     "-defsym _start=0x8000 --section-start destsect=0x00900000" 
+     "-march=armv7-a -mthumb" 
+     {jump-reloc-veneers.s}
+     {{objdump -d jump-reloc-veneers-short2.d}}
+     "jump-reloc-veneers-short2"}
+    {"R_ARM_THM_JUMP24 Relocation veneers: Long" 
+     "-defsym _start=0x8000 --section-start destsect=0x09000000" 
+     "-march=armv7-a -mthumb" 
+     {jump-reloc-veneers.s}
+     {{objdump -d jump-reloc-veneers-long.d}}
+     "jump-reloc-veneers-long"}
 }
 
 run_ld_link_tests $armeabitests
diff --git a/ld/testsuite/ld-arm/jump-reloc-veneers-long.d b/ld/testsuite/ld-arm/jump-reloc-veneers-long.d
new file mode 100644 (file)
index 0000000..16abe36
--- /dev/null
@@ -0,0 +1,21 @@
+
+.*:     file format.*
+
+
+Disassembly of section destsect:
+
+09000000 <[^>]*>:
+ 9000000:      e7fe            b.n     9000000 <dest>
+
+Disassembly of section .text:
+
+00008058 <[^>]*>:
+    8058:      b802f000        .word   0xb802f000
+    805c:      00000000        andeq   r0, r0, r0
+
+00008060 <[^>]*>:
+    8060:      4778            bx      pc
+    8062:      46c0            nop                     ; \(mov r8, r8\)
+    8064:      e59fc000        ldr     ip, \[pc, #0\]  ; 806c <__dest_veneer\+0xc>
+    8068:      e12fff1c        bx      ip
+    806c:      09000001        .word   0x09000001
diff --git a/ld/testsuite/ld-arm/jump-reloc-veneers-short1.d b/ld/testsuite/ld-arm/jump-reloc-veneers-short1.d
new file mode 100644 (file)
index 0000000..8ba0195
--- /dev/null
@@ -0,0 +1,13 @@
+
+.*:     file format.*
+
+
+Disassembly of section destsect:
+
+00009000 <[^>]*>:
+    9000:      e7fe            b.n     9000 <dest>
+
+Disassembly of section .text:
+
+00008054 <[^>]*>:
+    8054:      f000 bfd4       b.w     9000 <dest>
diff --git a/ld/testsuite/ld-arm/jump-reloc-veneers-short2.d b/ld/testsuite/ld-arm/jump-reloc-veneers-short2.d
new file mode 100644 (file)
index 0000000..538ff91
--- /dev/null
@@ -0,0 +1,13 @@
+
+.*:     file format.*
+
+
+Disassembly of section destsect:
+
+00900000 <[^>]*>:
+  900000:      e7fe            b.n     900000 <dest>
+
+Disassembly of section .text:
+
+00008054 <[^>]*>:
+    8054:      f0f7 9fd4       b.w     900000 <dest>
diff --git a/ld/testsuite/ld-arm/jump-reloc-veneers.s b/ld/testsuite/ld-arm/jump-reloc-veneers.s
new file mode 100644 (file)
index 0000000..d307c08
--- /dev/null
@@ -0,0 +1,12 @@
+       .text
+       .syntax unified
+       .thumb_func
+       .global _start
+       .type _start,%function
+_start:
+       b.w dest
+
+       .section destsect, "x"
+       .thumb_func
+dest:
+       b dest