Remove ARI check for multiple calls to warning or error
[deliverable/binutils-gdb.git] / ld / testsuite / ld-sparc / tlspie32.s
index 4d38d307cb6bb91a206d10f6314c4355bd09e932..931aa53f0c91870b853b9ba0d7f1eb54ed436c9c 100644 (file)
@@ -1,20 +1,70 @@
-       .section        ".text"
-       .global tls_gd
        .section        .tbss,"awT",@nobits
+       .global tls_gd
        .align 4
        .type   tls_gd, #object
        .size   tls_gd, 4
 tls_gd:
+       .skip   4
+       .global tls_ld
+       .align 4
+       .type   tls_ld, #object
+       .size   tls_ld, 4
+tls_ld:
+       .skip   4
+       .global tls_ie
+       .align 4
+       .type   tls_ie, #object
+       .size   tls_ie, 4
+tls_ie:
        .skip   4
        .section        ".text"
+.LLGETPC0:
+       retl
+         add     %o7, %l7, %l7
        .align 4
-       .global get_gdp
-       .type   get_gdp, #function
+       .global foo
+       .type   foo, #function
        .proc   0104
-get_gdp:
+foo:
+       save    %sp, -104, %sp
+       sethi   %hi(_GLOBAL_OFFSET_TABLE_-4), %l7
+       call    .LLGETPC0
+       add     %l7, %lo(_GLOBAL_OFFSET_TABLE_+4), %l7
+       nop;nop;nop;nop
+
+       /* GD -> IE with global variable not defined in executable */
+       sethi   %tgd_hi22(sG1), %g1
+       add     %g1, %tgd_lo10(sG1), %g1
+       add     %l7, %g1, %o0, %tgd_add(sG1)
+       call    __tls_get_addr, %tgd_call(sG1)
+        nop
+       nop;nop;nop;nop
+
+       /* GD -> LE with global variable defined in executable */
        sethi   %tgd_hi22(tls_gd), %g1
        add     %g1, %tgd_lo10(tls_gd), %g1
        add     %l7, %g1, %o0, %tgd_add(tls_gd)
        call    __tls_get_addr, %tgd_call(tls_gd)
         nop
-       .size   get_gdp, .-get_gdp
+       nop;nop;nop;nop
+
+       /* LD -> LE with global variable defined in executable */
+       sethi   %tldm_hi22(tls_ld), %g1
+       add     %g1, %tldm_lo10(tls_ld), %g1
+       add     %l7, %g1, %o0, %tldm_add(tls_ld)
+       call    __tls_get_addr, %tldm_call(tls_ld)
+        nop
+       sethi   %tldo_hix22(tls_ld), %g1
+       xor     %g1, %tldo_lox10(tls_ld), %g1
+       add     %o0, %g1, %g1, %tldo_add(tls_ld)
+       nop;nop;nop;nop
+
+       /* IE -> LE with global variable defined in executable */
+       sethi   %tie_hi22(tls_ie), %g1
+       add     %g1, %tie_lo10(tls_ie), %g1
+       ld      [%l7 + %g1], %g1, %tie_ld(tls_ie)
+       add     %g7, %g1, %g1, %tie_add(tls_ie)
+       nop;nop;nop;nop
+
+       ret
+       restore
This page took 0.02927 seconds and 4 git commands to generate.