diff options
Diffstat (limited to 'ld/testsuite/ld-sparc/tlssunnopic32.s')
-rw-r--r-- | ld/testsuite/ld-sparc/tlssunnopic32.s | 77 |
1 files changed, 77 insertions, 0 deletions
diff --git a/ld/testsuite/ld-sparc/tlssunnopic32.s b/ld/testsuite/ld-sparc/tlssunnopic32.s new file mode 100644 index 0000000..6c0ec33 --- /dev/null +++ b/ld/testsuite/ld-sparc/tlssunnopic32.s @@ -0,0 +1,77 @@ + .data + .align 4096 + .section ".tbss" + .align 4 +bl1: .word 0 +bl2: .word 0 +bl3: .word 0 +bl4: .word 0 +bl5: .word 0 + .text + .align 4096 + .globl fn3 + .type fn3,#function + .proc 04 +fn3: + save %sp, -104, %sp + .hidden _GLOBAL_OFFSET_TABLE_ + sethi %hi(_GLOBAL_OFFSET_TABLE_), %l1 + or %l1, %lo(_GLOBAL_OFFSET_TABLE_), %l1 + nop;nop;nop;nop + + /* IE against global var */ + sethi %tie_hi22(sg1), %o3 + add %o3, %tie_lo10(sg1), %o3 + ld [%l1 + %o3], %o2, %tie_ld(sg1) + add %g7, %o2, %o4, %tie_add(sg1) + nop;nop;nop;nop + + /* direct %g7 access IE against global var */ + sethi %tie_hi22(sg2), %o0 + add %o0, %tie_lo10(sg2), %o0 + ld [%l1 + %o0], %o0, %tie_ld(sg2) + ld [%g7 + %o0], %o0, %tie_add(sg2) + nop;nop;nop;nop + + /* IE against hidden var */ + sethi %tie_hi22(sh1), %o0 + add %o0, %tie_lo10(sh1), %o0 + ld [%l1 + %o0], %o0, %tie_ld(sh1) + add %g7, %o0, %o0, %tie_add(sh1) + nop;nop;nop;nop + + /* direct %g7 access IE against hidden var */ + sethi %tie_hi22(sh2), %o5 + add %o5, %tie_lo10(sh2), %o1 + ld [%l1 + %o1], %o2, %tie_ld(sh2) + stb %o3, [%g7 + %o2], %tie_add(sh2) + nop;nop;nop;nop + + /* IE against local var */ + sethi %tie_hi22(bl1), %o0 + add %o0, %tie_lo10(bl1), %o0 + ld [%l1 + %o0], %o0, %tie_ld(bl1) + add %g7, %o0, %o0, %tie_add(bl1) + nop;nop;nop;nop + + /* direct %g7 access IE against local var */ + sethi %tie_hi22(bl2), %o5 + add %o5, %tie_lo10(bl2), %o1 + ld [%l1 + %o1], %o2, %tie_ld(bl2) + stb %o3, [%g7 + %o2], %tie_add(bl2) + nop;nop;nop;nop + + /* LE, local var */ + sethi %tle_hix22(bl3+1), %o2 + xor %o2, %tle_lox10(bl3+1), %o4 + add %g7, %o4, %o0 + nop;nop;nop;nop + + /* LE, hidden var, direct %g7 access */ + sethi %tle_hix22(sh3), %o2 + xor %o2, %tle_lox10(sh3), %o2 + ld [%g7 + %o2], %o2 + nop;nop;nop;nop + + ret + restore |