Add tiny memory model GD test cases.
authorMarcus Shawcroft <marcus.shawcroft@arm.com>
Thu, 19 Feb 2015 09:10:11 +0000 (09:10 +0000)
committerMarcus Shawcroft <marcus.shawcroft@arm.com>
Thu, 26 Feb 2015 22:23:09 +0000 (22:23 +0000)
ld/testsuite/ChangeLog
ld/testsuite/ld-aarch64/aarch64-elf.exp
ld/testsuite/ld-aarch64/tls-tiny-gd-ie.d [new file with mode: 0644]
ld/testsuite/ld-aarch64/tls-tiny-gd-ie.s [new file with mode: 0644]
ld/testsuite/ld-aarch64/tls-tiny-gd-le.d [new file with mode: 0644]
ld/testsuite/ld-aarch64/tls-tiny-gd-le.s [new file with mode: 0644]
ld/testsuite/ld-aarch64/tls-tiny-gd.d [new file with mode: 0644]
ld/testsuite/ld-aarch64/tls-tiny-gd.s [new file with mode: 0644]

index 820aabc..651c0f7 100644 (file)
@@ -1,5 +1,16 @@
 2015-02-26  Marcus Shawcroft  <marcus.shawcroft@arm.com>
 
+       * ld-aarch64/aarch64-elf.exp (tls-tiny-gd, tls-tiny-gd-ie)
+       (tls-tiny-gd-le): Add.
+       * ld-aarch64/tls-tiny-gd.d: New.
+       * ld-aarch64/tls-tiny-gd.s: New.
+       * ld-aarch64/tls-tiny-gd-ie.d: New.
+       * ld-aarch64/tls-tiny-gd-ie.s: New.
+       * ld-aarch64/tls-tiny-gd-le.d: New.
+       * ld-aarch64/tls-tiny-gd-le.s: New.
+
+2015-02-26  Marcus Shawcroft  <marcus.shawcroft@arm.com>
+
        * ld-aarch64/aarch64-elf.exp: Add tls-tiny-ie.
        * ld-aarch64/tls-tiny-ie.d: New.
        * ld-aarch64/tls-tiny-ie.s: New.
index fed34da..40d9f61 100644 (file)
@@ -124,6 +124,9 @@ run_dump_test "tls-relax-gdesc-ie-2"
 run_dump_test "tls-relax-gdesc-le-2"
 run_dump_test "tls-relax-ie-le-2"
 run_dump_test "tls-relax-ie-le-3"
+run_dump_test "tls-tiny-gd"
+run_dump_test "tls-tiny-gd-ie"
+run_dump_test "tls-tiny-gd-le"
 run_dump_test "tls-tiny-ie"
 run_dump_test "tlsle-symbol-offset"
 run_dump_test "gc-got-relocs"
diff --git a/ld/testsuite/ld-aarch64/tls-tiny-gd-ie.d b/ld/testsuite/ld-aarch64/tls-tiny-gd-ie.d
new file mode 100644 (file)
index 0000000..629d90c
--- /dev/null
@@ -0,0 +1,11 @@
+#source: tls-tiny-gd-ie.s
+#ld: -T relocs.ld -e0
+#objdump: -dr
+#...
+
+Disassembly of section .text:
+
+0000000000010000 \<test\>:
+ +10000:       58080040        ldr     x0, 20008 \<_GLOBAL_OFFSET_TABLE_\+0x8\>
+ +10004:       d53bd041        mrs     x1, tpidr_el0
+ +10008:       8b000020        add     x0, x1, x0
diff --git a/ld/testsuite/ld-aarch64/tls-tiny-gd-ie.s b/ld/testsuite/ld-aarch64/tls-tiny-gd-ie.s
new file mode 100644 (file)
index 0000000..4dc7e66
--- /dev/null
@@ -0,0 +1,14 @@
+        .global var
+
+        .section .tbss,"awT",%nobits
+        .align  2
+        .type   var, %object
+        .size   var, 4
+var:
+       .zero   4
+
+       .text
+test:
+        adr x0, :tlsgd:var
+        bl   __tls_get_addr
+       nop
diff --git a/ld/testsuite/ld-aarch64/tls-tiny-gd-le.d b/ld/testsuite/ld-aarch64/tls-tiny-gd-le.d
new file mode 100644 (file)
index 0000000..016ca70
--- /dev/null
@@ -0,0 +1,11 @@
+#source: tls-tiny-gd-le.s
+#ld: -T relocs.ld -e0
+#objdump: -dr
+#...
+
+Disassembly of section .text:
+
+0000000000010000 \<test\>:
+ +10000:       d53bd041        mrs     x1, tpidr_el0
+ +10004:       91400020        add     x0, x1, #0x0, lsl #12
+ +10008:       91004000        add     x0, x0, #0x10
diff --git a/ld/testsuite/ld-aarch64/tls-tiny-gd-le.s b/ld/testsuite/ld-aarch64/tls-tiny-gd-le.s
new file mode 100644 (file)
index 0000000..1cb6da3
--- /dev/null
@@ -0,0 +1,12 @@
+        .section .tbss,"awT",%nobits
+        .align  2
+        .type   var, %object
+        .size   var, 4
+var:
+       .zero   4
+
+       .text
+test:
+        adr x0, :tlsgd:var
+        bl   __tls_get_addr
+       nop
diff --git a/ld/testsuite/ld-aarch64/tls-tiny-gd.d b/ld/testsuite/ld-aarch64/tls-tiny-gd.d
new file mode 100644 (file)
index 0000000..5e77706
--- /dev/null
@@ -0,0 +1,27 @@
+#source: tls-tiny-gd.s
+#ld: -shared -T relocs.ld -e0
+#objdump: -dr
+#...
+
+Disassembly of section .text:
+
+0000000000010000 \<test\>:
+ +10000:       10080040        adr     x0, 20008 \<_GLOBAL_OFFSET_TABLE_\+0x8\>
+ +10004:       9400000a        bl      1002c \<test\+0x2c\>
+ +10008:       d503201f        nop
+
+Disassembly of section .plt:
+
+000000000001000c \<.plt\>:
+ +1000c:       a9bf7bf0        stp     x16, x30, \[sp,#-16\]!
+ +10010:       90000090        adrp    x16, 20000 \<_GLOBAL_OFFSET_TABLE_\>
+ +10014:       f9401611        ldr     x17, \[x16,#40\]
+ +10018:       9100a210        add     x16, x16, #0x28
+ +1001c:       d61f0220        br      x17
+ +10020:       d503201f        nop
+ +10024:       d503201f        nop
+ +10028:       d503201f        nop
+ +1002c:       90000090        adrp    x16, 20000 \<_GLOBAL_OFFSET_TABLE_\>
+ +10030:       f9401a11        ldr     x17, \[x16,#48\]
+ +10034:       9100c210        add     x16, x16, #0x30
+ +10038:       d61f0220        br      x17
diff --git a/ld/testsuite/ld-aarch64/tls-tiny-gd.s b/ld/testsuite/ld-aarch64/tls-tiny-gd.s
new file mode 100644 (file)
index 0000000..fd42f55
--- /dev/null
@@ -0,0 +1,6 @@
+        .global var
+       .text
+test:
+        adr x0, :tlsgd:var
+        bl   __tls_get_addr
+       nop