diff --git a/gas/testsuite/gas/m68k/tls-gd-3.d b/gas/testsuite/gas/m68k/tls-gd-3.d new file mode 100644 index 0000000000..736794c317 --- /dev/null +++ b/gas/testsuite/gas/m68k/tls-gd-3.d @@ -0,0 +1,3 @@ +#as: -mcpu=5206 +#source: tls-gd-3.s +#error: .*Accessing `x' as thread-local object.* diff --git a/gas/testsuite/gas/m68k/tls-gd-3.s b/gas/testsuite/gas/m68k/tls-gd-3.s new file mode 100644 index 0000000000..1b0ffbb6f0 --- /dev/null +++ b/gas/testsuite/gas/m68k/tls-gd-3.s @@ -0,0 +1,20 @@ +#NO_APP + .text + .align 2 + .globl foo + .type foo, @function +foo: + link.w %fp,#0 + move.l %a5,-(%sp) + move.l #_GLOBAL_OFFSET_TABLE_@GOTPC, %a5 + lea (-6, %pc, %a5), %a5 + + move.l x@TLSGD(%a5),%a1 + move.l x@GOT(%a5),%a1 + + move.l (%sp)+,%a5 + unlk %fp + rts + .size foo, .-foo + .comm x,4,2 + .section .note.GNU-stack,"",@progbits diff --git a/ld/testsuite/ld-m68k/tls-gd-1.d b/ld/testsuite/ld-m68k/tls-gd-1.d new file mode 100644 index 0000000000..0cad6fc328 --- /dev/null +++ b/ld/testsuite/ld-m68k/tls-gd-1.d @@ -0,0 +1,21 @@ +#as: -mcpu=5206 +#source: tls-gd-1.s +#ld: -shared +#readelf: -d -r + +Dynamic section at offset .* contains 9 entries: + Tag Type Name/Value + 0x00000004 \(HASH\) 0x[0-9a-f]+ + 0x00000005 \(STRTAB\) 0x[0-9a-f]+ + 0x00000006 \(SYMTAB\) 0x[0-9a-f]+ + 0x0000000a \(STRSZ\) [0-9]+ \(bytes\) + 0x0000000b \(SYMENT\) 16 \(bytes\) + 0x00000007 \(RELA\) 0x[0-9a-f]+ + 0x00000008 \(RELASZ\) 24 \(bytes\) + 0x00000009 \(RELAENT\) 12 \(bytes\) + 0x00000000 \(NULL\) 0x0 + +Relocation section '.rela.dyn' at offset 0x[0-9a-f]+ contains 2 entries: + Offset Info Type Sym.Value Sym. Name \+ Addend +[0-9a-f]+ [0-9a-f]+ R_68K_TLS_DTPMOD3 00000000 x \+ 0 +[0-9a-f]+ [0-9a-f]+ R_68K_TLS_DTPREL3 00000000 x \+ 0 diff --git a/ld/testsuite/ld-m68k/tls-gd-1.s b/ld/testsuite/ld-m68k/tls-gd-1.s new file mode 100644 index 0000000000..c79da2e7ce --- /dev/null +++ b/ld/testsuite/ld-m68k/tls-gd-1.s @@ -0,0 +1,16 @@ +#NO_APP + .text + .align 2 + .globl foo + .type foo, @function +foo: + link.w %fp,#0 + move.l %a5,-(%sp) + + pea x@TLSGD(%a5) + + move.l (%sp)+,%a5 + unlk %fp + rts + .size foo, .-foo + .section .note.GNU-stack,"",@progbits diff --git a/ld/testsuite/ld-m68k/tls-gd-2.d b/ld/testsuite/ld-m68k/tls-gd-2.d new file mode 100644 index 0000000000..28ba4f5a24 --- /dev/null +++ b/ld/testsuite/ld-m68k/tls-gd-2.d @@ -0,0 +1,24 @@ +#as: -mcpu=5206 +#source: tls-gd-2.s +#ld: -shared +#readelf: -d -r + +Dynamic section at offset .* contains 10 entries: + Tag Type Name/Value + 0x00000004 \(HASH\) 0x[0-9a-f]+ + 0x00000005 \(STRTAB\) 0x[0-9a-f]+ + 0x00000006 \(SYMTAB\) 0x[0-9a-f]+ + 0x0000000a \(STRSZ\) [0-9]+ \(bytes\) + 0x0000000b \(SYMENT\) 16 \(bytes\) + 0x00000007 \(RELA\) 0x[0-9a-f]+ + 0x00000008 \(RELASZ\) 48 \(bytes\) + 0x00000009 \(RELAENT\) 12 \(bytes\) + 0x00000016 \(TEXTREL\) 0x0 + 0x00000000 \(NULL\) 0x0 + +Relocation section '.rela.dyn' at offset 0x[0-9a-f]+ contains 4 entries: + Offset Info Type Sym.Value Sym. Name \+ Addend +[0-9a-f]+ [0-9a-f]+ R_68K_32 00000000 __tls_get_addr \+ 0 +[0-9a-f]+ [0-9a-f]+ R_68K_32 00000000 __tls_get_addr \+ 0 +[0-9a-f]+ [0-9a-f]+ R_68K_TLS_DTPMOD3 00000000 x \+ 0 +[0-9a-f]+ [0-9a-f]+ R_68K_TLS_DTPREL3 00000000 x \+ 0 diff --git a/ld/testsuite/ld-m68k/tls-gd-2.s b/ld/testsuite/ld-m68k/tls-gd-2.s new file mode 100644 index 0000000000..3bb58d4418 --- /dev/null +++ b/ld/testsuite/ld-m68k/tls-gd-2.s @@ -0,0 +1,24 @@ +#NO_APP + .text + .align 2 + .globl foo + .type foo, @function +foo: + link.w %fp,#0 + move.l %a5,-(%sp) + move.l #_GLOBAL_OFFSET_TABLE_@GOTPC, %a5 + lea (-6, %pc, %a5), %a5 + + pea x@TLSGD(%a5) + jbsr __tls_get_addr + + move.l %a5,%a0 + add.l x@TLSGD,%a0 + pea (%a0) + jbsr __tls_get_addr + + move.l (%sp)+,%a5 + unlk %fp + rts + .size foo, .-foo + .section .note.GNU-stack,"",@progbits diff --git a/ld/testsuite/ld-m68k/tls-gd-ie-1.d b/ld/testsuite/ld-m68k/tls-gd-ie-1.d new file mode 100644 index 0000000000..87de346b0c --- /dev/null +++ b/ld/testsuite/ld-m68k/tls-gd-ie-1.d @@ -0,0 +1,25 @@ +#as: -mcpu=5206 +#source: tls-gd-ie-1.s +#ld: -shared +#readelf: -d -r + +Dynamic section at offset .* contains 10 entries: + Tag Type Name/Value + 0x00000004 \(HASH\) 0x[0-9a-f]+ + 0x00000005 \(STRTAB\) 0x[0-9a-f]+ + 0x00000006 \(SYMTAB\) 0x[0-9a-f]+ + 0x0000000a \(STRSZ\) [0-9]+ \(bytes\) + 0x0000000b \(SYMENT\) 16 \(bytes\) + 0x00000007 \(RELA\) 0x[0-9a-f]+ + 0x00000008 \(RELASZ\) 60 \(bytes\) + 0x00000009 \(RELAENT\) 12 \(bytes\) + 0x00000016 \(TEXTREL\) 0x0 + 0x00000000 \(NULL\) 0x0 + +Relocation section '.rela.dyn' at offset 0x[0-9a-f]+ contains 5 entries: + Offset Info Type Sym.Value Sym. Name \+ Addend +[0-9a-f]+ [0-9a-f]+ R_68K_32 00000000 __tls_get_addr \+ 0 +[0-9a-f]+ [0-9a-f]+ R_68K_32 00000000 __m68k_read_tp \+ 0 +[0-9a-f]+ [0-9a-f]+ R_68K_TLS_DTPMOD3 00000000 x \+ 0 +[0-9a-f]+ [0-9a-f]+ R_68K_TLS_DTPREL3 00000000 x \+ 0 +[0-9a-f]+ [0-9a-f]+ R_68K_TLS_TPREL32 00000000 x \+ 0 diff --git a/ld/testsuite/ld-m68k/tls-gd-ie-1.s b/ld/testsuite/ld-m68k/tls-gd-ie-1.s new file mode 100644 index 0000000000..653613786d --- /dev/null +++ b/ld/testsuite/ld-m68k/tls-gd-ie-1.s @@ -0,0 +1,23 @@ +#NO_APP + .text + .align 2 + .globl foo + .type foo, @function +foo: + link.w %fp,#0 + move.l %a5,-(%sp) + move.l #_GLOBAL_OFFSET_TABLE_@GOTPC, %a5 + lea (-6, %pc, %a5), %a5 + + pea x@TLSGD(%a5) + jbsr __tls_get_addr + + jbsr __m68k_read_tp + move.l x@TLSIE(%a5),%a1 + add.l %a0,%a1 + + move.l (%sp)+,%a5 + unlk %fp + rts + .size foo, .-foo + .section .note.GNU-stack,"",@progbits diff --git a/ld/testsuite/ld-m68k/tls-ie-1.d b/ld/testsuite/ld-m68k/tls-ie-1.d new file mode 100644 index 0000000000..5574ad47fe --- /dev/null +++ b/ld/testsuite/ld-m68k/tls-ie-1.d @@ -0,0 +1,22 @@ +#as: -mcpu=5206 +#source: tls-ie-1.s +#ld: -shared +#readelf: -d -r + +Dynamic section at offset .* contains 10 entries: + Tag Type Name/Value + 0x00000004 \(HASH\) 0x[0-9a-f]+ + 0x00000005 \(STRTAB\) 0x[0-9a-f]+ + 0x00000006 \(SYMTAB\) 0x[0-9a-f]+ + 0x0000000a \(STRSZ\) [0-9]+ \(bytes\) + 0x0000000b \(SYMENT\) 16 \(bytes\) + 0x00000007 \(RELA\) 0x[0-9a-f]+ + 0x00000008 \(RELASZ\) 24 \(bytes\) + 0x00000009 \(RELAENT\) 12 \(bytes\) + 0x00000016 \(TEXTREL\) 0x0 + 0x00000000 \(NULL\) 0x0 + +Relocation section '.rela.dyn' at offset 0x[0-9a-f]+ contains 2 entries: + Offset Info Type Sym.Value Sym. Name \+ Addend +[0-9a-f]+ [0-9a-f]+ R_68K_32 00000000 __m68k_read_tp \+ 0 +[0-9a-f]+ [0-9a-f]+ R_68K_TLS_TPREL32 00000000 x \+ 0 diff --git a/ld/testsuite/ld-m68k/tls-ie-1.s b/ld/testsuite/ld-m68k/tls-ie-1.s new file mode 100644 index 0000000000..29326a0097 --- /dev/null +++ b/ld/testsuite/ld-m68k/tls-ie-1.s @@ -0,0 +1,20 @@ +#NO_APP + .text + .align 2 + .globl foo + .type foo, @function +foo: + link.w %fp,#0 + move.l %a5,-(%sp) + move.l #_GLOBAL_OFFSET_TABLE_@GOTPC, %a5 + lea (-6, %pc, %a5), %a5 + + jbsr __m68k_read_tp + move.l x@TLSIE(%a5),%a1 + add.l %a0,%a1 + + move.l (%sp)+,%a5 + unlk %fp + rts + .size foo, .-foo + .section .note.GNU-stack,"",@progbits diff --git a/ld/testsuite/ld-m68k/tls-ld-1.d b/ld/testsuite/ld-m68k/tls-ld-1.d new file mode 100644 index 0000000000..01e890498d --- /dev/null +++ b/ld/testsuite/ld-m68k/tls-ld-1.d @@ -0,0 +1,22 @@ +#as: -mcpu=5206 +#source: tls-ld-1.s +#ld: -shared +#readelf: -d -r + +Dynamic section at offset .* contains 10 entries: + Tag Type Name/Value + 0x00000004 \(HASH\) 0x[0-9a-f]+ + 0x00000005 \(STRTAB\) 0x[0-9a-f]+ + 0x00000006 \(SYMTAB\) 0x[0-9a-f]+ + 0x0000000a \(STRSZ\) [0-9]+ \(bytes\) + 0x0000000b \(SYMENT\) 16 \(bytes\) + 0x00000007 \(RELA\) 0x[0-9a-f]+ + 0x00000008 \(RELASZ\) 24 \(bytes\) + 0x00000009 \(RELAENT\) 12 \(bytes\) + 0x00000016 \(TEXTREL\) 0x0 + 0x00000000 \(NULL\) 0x0 + +Relocation section '.rela.dyn' at offset 0x[0-9a-f]+ contains 2 entries: + Offset Info Type Sym.Value Sym. Name \+ Addend +[0-9a-f]+ [0-9a-f]+ R_68K_32 00000000 __tls_get_addr \+ 0 +[0-9a-f]+ [0-9a-f]+ R_68K_TLS_DTPMOD3 00000000 diff --git a/ld/testsuite/ld-m68k/tls-ld-1.s b/ld/testsuite/ld-m68k/tls-ld-1.s new file mode 100644 index 0000000000..47bc6e19e1 --- /dev/null +++ b/ld/testsuite/ld-m68k/tls-ld-1.s @@ -0,0 +1,21 @@ +#NO_APP + .text + .align 2 + .globl foo + .type foo, @function +foo: + link.w %fp,#0 + move.l %a5,-(%sp) + move.l #_GLOBAL_OFFSET_TABLE_@GOTPC, %a5 + lea (-6, %pc, %a5), %a5 + + pea x3@TLSLDM(%a5) + jbsr __tls_get_addr + move.l %d0,%a1 + add.l x4@TLSLDO,%a1 + + move.l (%sp)+,%a5 + unlk %fp + rts + .size foo, .-foo + .section .note.GNU-stack,"",@progbits diff --git a/ld/testsuite/ld-m68k/tls-ld-2.d b/ld/testsuite/ld-m68k/tls-ld-2.d new file mode 100644 index 0000000000..ee1bac580f --- /dev/null +++ b/ld/testsuite/ld-m68k/tls-ld-2.d @@ -0,0 +1,15 @@ +#as: -mcpu=5206 +#source: tls-ld-2.s +#ld: -shared +#readelf: -d -r + +Dynamic section at offset .* contains 6 entries: + Tag Type Name/Value + 0x00000004 \(HASH\) 0x[0-9a-f]+ + 0x00000005 \(STRTAB\) 0x[0-9a-f]+ + 0x00000006 \(SYMTAB\) 0x[0-9a-f]+ + 0x0000000a \(STRSZ\) [0-9]+ \(bytes\) + 0x0000000b \(SYMENT\) 16 \(bytes\) + 0x00000000 \(NULL\) 0x0 + +There are no relocations in this file. diff --git a/ld/testsuite/ld-m68k/tls-ld-2.s b/ld/testsuite/ld-m68k/tls-ld-2.s new file mode 100644 index 0000000000..b1c447f82c --- /dev/null +++ b/ld/testsuite/ld-m68k/tls-ld-2.s @@ -0,0 +1,19 @@ +#NO_APP + .text + .align 2 + .globl foo + .type foo, @function +foo: + link.w %fp,#0 + move.l %a5,-(%sp) + move.l #_GLOBAL_OFFSET_TABLE_@GOTPC, %a5 + lea (-6, %pc, %a5), %a5 + + move.l %d0,%a1 + add.l x@TLSLDO,%a1 + + move.l (%sp)+,%a5 + unlk %fp + rts + .size foo, .-foo + .section .note.GNU-stack,"",@progbits diff --git a/ld/testsuite/ld-m68k/tls-le-1.s b/ld/testsuite/ld-m68k/tls-le-1.s new file mode 100644 index 0000000000..b1e9c13ea3 --- /dev/null +++ b/ld/testsuite/ld-m68k/tls-le-1.s @@ -0,0 +1,20 @@ +#NO_APP + .text + .align 2 + .globl foo + .type foo, @function +foo: + link.w %fp,#0 + move.l %a5,-(%sp) + move.l #_GLOBAL_OFFSET_TABLE_@GOTPC, %a5 + lea (-6, %pc, %a5), %a5 + + jbsr __m68k_read_tp + move.l x@TLSLE(%a5),%a1 + add.l %a0,%a1 + + move.l (%sp)+,%a5 + unlk %fp + rts + .size foo, .-foo + .section .note.GNU-stack,"",@progbits diff --git a/ld/testsuite/ld-m68k/tls-no-1.s b/ld/testsuite/ld-m68k/tls-no-1.s new file mode 100644 index 0000000000..4e59919188 --- /dev/null +++ b/ld/testsuite/ld-m68k/tls-no-1.s @@ -0,0 +1,18 @@ +#NO_APP + .text + .align 2 + .globl foo + .type foo, @function +foo: + link.w %fp,#0 + move.l %a5,-(%sp) + move.l #_GLOBAL_OFFSET_TABLE_@GOTPC, %a5 + lea (-6, %pc, %a5), %a5 + + move.l x@GOT(%a5),%d0 + + move.l (%sp)+,%a5 + unlk %fp + rts + .size foo, .-foo + .section .note.GNU-stack,"",@progbits