1 .section ".tbss", "awT", @nobits 2 .globl bg1, bg2, bg3, bg4, bg5, bg6, bg7, bg8 3bg1: .space 4 4bg2: .space 4 5bg3: .space 4 6bg4: .space 4 7bg5: .space 4 8bg6: .space 4 9bg7: .space 4 10bg8: .space 4 11bl1: .space 4 12bl2: .space 4 13bl3: .space 4 14bl4: .space 4 15bl5: .space 4 16bl6: .space 4 17bl7: .space 4 18bl8: .space 4 19 .text 20 .globl _start 21 .type _start,@function 22_start: 23 pushl %ebp 24 movl %esp, %ebp 25 /* Set up .GOT pointer for non-pic @gottpoff sequences */ 26 call 1f 271: popl %ecx 28 addl $_GLOBAL_OFFSET_TABLE_+[.-1b], %ecx 29 nop;nop;nop;nop 30 31 /* @gottpoff IE against global var */ 32 movl %gs:0, %edx 33 nop;nop 34 subl sG6@gottpoff(%ecx), %edx 35 nop;nop;nop;nop 36 37 /* @indntpoff IE against global var */ 38 movl %gs:0, %eax 39 nop;nop 40 addl sG7@indntpoff, %eax 41 nop;nop;nop;nop 42 43 /* @indntpoff direct %gs access IE against global var */ 44 movl sG8@indntpoff, %edx 45 nop;nop 46 movl %gs:(%edx), %eax 47 nop;nop;nop;nop 48 49 /* @gottpoff IE -> LE against global var defined in exec */ 50 movl %gs:0, %edx 51 nop;nop 52 subl bg6@gottpoff(%ecx), %edx 53 nop;nop;nop;nop 54 55 /* @indntpoff IE -> LE against global var defined in exec */ 56 movl %gs:0, %eax 57 nop;nop 58 addl bg7@indntpoff, %eax 59 nop;nop;nop;nop 60 61 /* @indntpoff direct %gs access IE -> LE against global var defined 62 in exec */ 63 movl bg8@indntpoff, %edx 64 nop;nop 65 movl %gs:(%edx), %eax 66 nop;nop;nop;nop 67 68 /* @gottpoff IE -> LE against local var */ 69 movl %gs:0, %edx 70 nop;nop 71 subl bl6@gottpoff(%ecx), %edx 72 nop;nop;nop;nop 73 74 /* @indntpoff IE -> LE against local var */ 75 movl %gs:0, %eax 76 nop;nop 77 addl bl7@indntpoff, %eax 78 nop;nop;nop;nop 79 80 /* @indntpoff direct %gs access IE -> LE against local var */ 81 movl bl8@indntpoff, %edx 82 nop;nop 83 movl %gs:(%edx), %eax 84 nop;nop;nop;nop 85 86 /* @gottpoff IE -> LE against hidden but not local var */ 87 movl %gs:0, %edx 88 nop;nop 89 subl sh6@gottpoff(%ecx), %edx 90 nop;nop;nop;nop 91 92 /* @indntpoff IE -> LE against hidden but not local var */ 93 movl %gs:0, %eax 94 nop;nop 95 addl sh7@indntpoff, %eax 96 nop;nop;nop;nop 97 98 /* @indntpoff direct %gs access IE -> LE against hidden but not 99 local var */ 100 movl sh8@indntpoff, %edx 101 nop;nop 102 movl %gs:(%edx), %eax 103 nop;nop;nop;nop 104 105 /* LE @tpoff, global var defined in exec */ 106 movl $sg1@tpoff, %edx 107 nop;nop 108 movl %gs:0, %eax 109 nop;nop 110 subl %edx, %eax 111 nop;nop;nop;nop 112 113 /* LE @tpoff, local var */ 114 movl $-1+bl1@tpoff, %eax 115 nop;nop 116 movl %gs:0, %edx 117 nop;nop 118 subl %eax, %edx 119 nop;nop;nop;nop 120 121 /* LE @tpoff, hidden var defined in exec */ 122 movl $sh1@tpoff-3, %eax 123 nop;nop 124 movl %gs:0, %edx 125 nop;nop 126 subl %eax, %edx 127 nop;nop;nop;nop 128 129 /* LE @ntpoff, global var defined in exec */ 130 movl %gs:0, %eax 131 nop;nop 132 leal sg2@ntpoff(%eax), %edx 133 nop;nop;nop;nop 134 135 /* LE @ntpoff, local var, non-canonical sequence */ 136 movl $2+bl2@ntpoff, %eax 137 nop;nop 138 movl %gs:0, %edx 139 nop;nop 140 addl %eax, %edx 141 nop;nop;nop;nop 142 143 /* LE @ntpoff, hidden var defined in exec, non-canonical sequence */ 144 movl %gs:0, %edx 145 nop;nop 146 addl $sh2@ntpoff+1, %edx 147 nop;nop;nop;nop 148 149 /* Direct %gs access */ 150 151 /* LE @ntpoff, global var defined in exec */ 152 movl %gs:sg3@ntpoff, %eax 153 nop;nop;nop;nop 154 155 /* LE @ntpoff, local var */ 156 movl %gs:bl3@ntpoff+3, %edx 157 nop;nop;nop;nop 158 159 /* LE @ntpoff, hidden var defined in exec */ 160 movl %gs:1+sh3@ntpoff, %edx 161 nop;nop;nop;nop 162 163 movl -4(%ebp), %ebx 164 leave 165 ret 166