1*1424dfb3Schristos .section ".data.rel.ro", "aw", @progbits 2*1424dfb3Schristos /* Align, so that .got is likely at address 0x2080. */ 3*1424dfb3Schristos .balign 4096 4*1424dfb3Schristos .section ".tbss", "awT", @nobits 5*1424dfb3Schristosbl1: .space 4 6*1424dfb3Schristosbl2: .space 4 7*1424dfb3Schristosbl3: .space 4 8*1424dfb3Schristosbl4: .space 4 9*1424dfb3Schristosbl5: .space 4 10*1424dfb3Schristos .text 11*1424dfb3Schristos /* Align, so that fn3 is likely at address 0x1000. */ 12*1424dfb3Schristos .balign 4096 13*1424dfb3Schristos .globl fn3 14*1424dfb3Schristos .type fn3,@function 15*1424dfb3Schristosfn3: 16*1424dfb3Schristos pushl %ebp 17*1424dfb3Schristos movl %esp, %ebp 18*1424dfb3Schristos 19*1424dfb3Schristos /* @indntpoff IE against global var */ 20*1424dfb3Schristos movl %gs:0, %eax 21*1424dfb3Schristos nop;nop 22*1424dfb3Schristos addl sg1@indntpoff, %eax 23*1424dfb3Schristos nop;nop;nop;nop 24*1424dfb3Schristos 25*1424dfb3Schristos /* @indntpoff direct %gs access IE against global var */ 26*1424dfb3Schristos movl sg2@indntpoff, %edx 27*1424dfb3Schristos nop;nop 28*1424dfb3Schristos movl %gs:(%edx), %eax 29*1424dfb3Schristos nop;nop;nop;nop 30*1424dfb3Schristos 31*1424dfb3Schristos /* @indntpoff IE against hidden var */ 32*1424dfb3Schristos movl %gs:0, %eax 33*1424dfb3Schristos nop;nop 34*1424dfb3Schristos addl sh1@indntpoff, %eax 35*1424dfb3Schristos nop;nop;nop;nop 36*1424dfb3Schristos 37*1424dfb3Schristos /* @indntpoff direct %gs access IE against hidden var */ 38*1424dfb3Schristos movl sh2@indntpoff, %edx 39*1424dfb3Schristos nop;nop 40*1424dfb3Schristos movl %gs:(%edx), %eax 41*1424dfb3Schristos nop;nop;nop;nop 42*1424dfb3Schristos 43*1424dfb3Schristos /* @indntpoff IE against local var */ 44*1424dfb3Schristos movl %gs:0, %eax 45*1424dfb3Schristos nop;nop 46*1424dfb3Schristos addl bl1@indntpoff, %eax 47*1424dfb3Schristos nop;nop;nop;nop 48*1424dfb3Schristos 49*1424dfb3Schristos /* @indntpoff direct %gs access IE against local var */ 50*1424dfb3Schristos movl bl2@indntpoff, %edx 51*1424dfb3Schristos nop;nop 52*1424dfb3Schristos movl %gs:(%edx), %eax 53*1424dfb3Schristos nop;nop;nop;nop 54*1424dfb3Schristos 55*1424dfb3Schristos /* LE @tpoff, global var */ 56*1424dfb3Schristos movl $-3+sg3@tpoff, %edx 57*1424dfb3Schristos nop;nop 58*1424dfb3Schristos movl %gs:0, %eax 59*1424dfb3Schristos nop;nop 60*1424dfb3Schristos subl %edx, %eax 61*1424dfb3Schristos nop;nop;nop;nop 62*1424dfb3Schristos 63*1424dfb3Schristos /* LE @tpoff, local var */ 64*1424dfb3Schristos movl $-1+bl3@tpoff, %eax 65*1424dfb3Schristos nop;nop 66*1424dfb3Schristos movl %gs:0, %edx 67*1424dfb3Schristos nop;nop 68*1424dfb3Schristos subl %eax, %edx 69*1424dfb3Schristos nop;nop;nop;nop 70*1424dfb3Schristos 71*1424dfb3Schristos /* LE @ntpoff, global var */ 72*1424dfb3Schristos movl %gs:0, %eax 73*1424dfb3Schristos nop;nop 74*1424dfb3Schristos leal 2+sg4@ntpoff(%eax), %edx 75*1424dfb3Schristos nop;nop;nop;nop 76*1424dfb3Schristos 77*1424dfb3Schristos /* LE @ntpoff, hidden var, non-canonical sequence */ 78*1424dfb3Schristos movl $sh3@ntpoff, %eax 79*1424dfb3Schristos nop;nop 80*1424dfb3Schristos movl %gs:0, %edx 81*1424dfb3Schristos nop;nop 82*1424dfb3Schristos addl %eax, %edx 83*1424dfb3Schristos nop;nop;nop;nop 84*1424dfb3Schristos 85*1424dfb3Schristos /* LE @ntpoff, local var, non-canonical sequence */ 86*1424dfb3Schristos movl %gs:0, %edx 87*1424dfb3Schristos nop;nop 88*1424dfb3Schristos addl $bl4@ntpoff+1, %edx 89*1424dfb3Schristos nop;nop;nop;nop 90*1424dfb3Schristos 91*1424dfb3Schristos /* Direct %gs access */ 92*1424dfb3Schristos 93*1424dfb3Schristos /* LE @ntpoff, global var */ 94*1424dfb3Schristos movl %gs:sg5@ntpoff, %eax 95*1424dfb3Schristos nop;nop;nop;nop 96*1424dfb3Schristos 97*1424dfb3Schristos /* LE @ntpoff, local var */ 98*1424dfb3Schristos movl %gs:bl5@ntpoff+3, %edx 99*1424dfb3Schristos nop;nop;nop;nop 100*1424dfb3Schristos 101*1424dfb3Schristos /* LE @ntpoff, hidden var */ 102*1424dfb3Schristos movl %gs:1+sh4@ntpoff, %edx 103*1424dfb3Schristos nop;nop;nop;nop 104*1424dfb3Schristos 105*1424dfb3Schristos movl -4(%ebp), %ebx 106*1424dfb3Schristos leave 107*1424dfb3Schristos ret 108