+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.
 
 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"
 
--- /dev/null
+#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
 
--- /dev/null
+        .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
 
--- /dev/null
+#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
 
--- /dev/null
+        .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
 
--- /dev/null
+#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
 
--- /dev/null
+        .global var
+       .text
+test:
+        adr x0, :tlsgd:var
+        bl   __tls_get_addr
+       nop