1 /* Force .data aligned to 4K, so .got very likely gets at 0x13190 2 (0x60 bytes .tdata and 0x130 bytes .dynamic) */ 3 .data 4 .balign 4096 5 .section ".tdata", "awT", @progbits 6 .globl sg1, sg2, sg3, sg4, sg5, sg6, sg7, sg8 7 .globl sh1, sh2, sh3, sh4, sh5, sh6, sh7, sh8 8 .hidden sh1, sh2, sh3, sh4, sh5, sh6, sh7, sh8 9sg1: .long 17 10sg2: .long 18 11sg3: .long 19 12sg4: .long 20 13sg5: .long 21 14sg6: .long 22 15sg7: .long 23 16sg8: .long 24 17sl1: .long 65 18sl2: .long 66 19sl3: .long 67 20sl4: .long 68 21sl5: .long 69 22sl6: .long 70 23sl7: .long 71 24sl8: .long 72 25sh1: .long 257 26sh2: .long 258 27sh3: .long 259 28sh4: .long 260 29sh5: .long 261 30sh6: .long 262 31sh7: .long 263 32sh8: .long 264 33 .explicit 34 .pred.safe_across_calls p1-p5,p16-p63 35 /* Force .text aligned to 4K, so it very likely gets at 0x1000. */ 36 .text 37 .balign 4096 38 .globl fn1# 39 .proc fn1# 40fn1: 41 .prologue 12, 33 42 .mib 43 .save ar.pfs, r34 44 alloc r34 = ar.pfs, 0, 3, 2, 0 45 .save rp, r33 46 mov r33 = b0 47 48 /* GD */ 49 addl r14 = @ltoff(@dtpmod(sg1#)), gp 50 addl r15 = @ltoff(@dtprel(sg1#)), gp 51 ;; 52 ld8 out0 = [r14] 53 ld8 out1 = [r15] 54 br.call.sptk.many b0 = __tls_get_addr# 55 ;; 56 57 /* GD against hidden symbol */ 58 addl r14 = @ltoff(@dtpmod(sh2#)), gp 59 addl r15 = @ltoff(@dtprel(sh2#)), gp 60 ;; 61 ld8 out0 = [r14] 62 ld8 out1 = [r15] 63 br.call.sptk.many b0 = __tls_get_addr# 64 ;; 65 66 /* LD */ 67 addl r14 = @ltoff(@dtpmod(sl1#)), gp 68 addl out1 = @dtprel(sl1#) + 1, r0 69 ;; 70 ld8 out0 = [r14] 71 br.call.sptk.many b0 = __tls_get_addr# 72 ;; 73 74 /* LD with 4 variables variables */ 75 addl r14 = @ltoff(@dtpmod(sh1#)), gp 76 mov out1 = r0 77 ;; 78 ld8 out0 = [r14] 79 br.call.sptk.many b0 = __tls_get_addr# 80 ;; 81 mov r2 = r8 82 ;; 83 addl r14 = @dtprel(sh1#), r2 84 addl r15 = @dtprel(sH1#) + 2, r2 85 ;; 86 adds r14 = @dtprel(sh5#) + 3, r8 87 movl r15 = @dtprel(sH5#) + 1 88 ;; 89 add r15 = r15, r8 90 ;; 91 92 /* IE against global */ 93 addl r14 = @ltoff(@tprel(sg2#)), gp 94 ;; 95 ld8 r15 = [r14] 96 ;; 97 add r14 = r15, r13 98 ;; 99 100 /* IE against local and hidden */ 101 addl r14 = @ltoff(@tprel(sl2#)), gp 102 addl r15 = @ltoff(@tprel(sh2#)), gp 103 ;; 104 ld8 r14 = [r14] 105 ld8 r15 = [r15] 106 ;; 107 add r14 = r14, r13 108 add r15 = r15, r13 109 ;; 110 111 mov ar.pfs = r34 112 mov b0 = r33 113 br.ret.sptk.many b0 114 .endp fn1# 115