215 lines · plain
1.section .text2.set noreorder3 4.hidden __tsan_setjmp5.comm _ZN14__interception11real_setjmpE,8,86.globl setjmp7.type setjmp, @function8setjmp:9 10 // save env parameters11 daddiu $sp,$sp,-4012 sd $s0,32($sp)13 sd $ra,24($sp)14 sd $fp,16($sp)15 sd $gp,8($sp)16 17 // calculate and save pointer to GOT18 lui $gp,%hi(%neg(%gp_rel(setjmp)))19 daddu $gp,$gp,$t920 daddiu $gp,$gp,%lo(%neg(%gp_rel(setjmp)))21 move $s0,$gp22 23 // save jmp_buf24 sd $a0,0($sp)25 26 // obtain $sp27 dadd $a0,$zero,$sp28 29 // call tsan interceptor30 jal __tsan_setjmp31 daddiu $a1,$a0,4032 33 // restore jmp_buf34 ld $a0,0($sp)35 36 // restore gp37 move $gp,$s038 39 // load pointer of libc setjmp to t940 dla $t9,(_ZN14__interception11real_setjmpE) 41 42 // restore env parameters43 ld $gp,8($sp)44 ld $fp,16($sp)45 ld $ra,24($sp)46 ld $s0,32($sp)47 daddiu $sp,$sp,4048 49 // tail jump to libc setjmp50 ld $t9,0($t9)51 jr $t952 nop53 54.size setjmp, .-setjmp55 56.hidden __tsan_setjmp57.globl _setjmp58.comm _ZN14__interception12real__setjmpE,8,859.type _setjmp, @function60_setjmp:61 62 // Save env parameters63 daddiu $sp,$sp,-4064 sd $s0,32($sp)65 sd $ra,24($sp)66 sd $fp,16($sp)67 sd $gp,8($sp)68 69 // calculate and save pointer to GOT70 lui $gp,%hi(%neg(%gp_rel(_setjmp)))71 daddu $gp,$gp,$t972 daddiu $gp,$gp,%lo(%neg(%gp_rel(_setjmp)))73 move $s0,$gp74 75 // save jmp_buf76 sd $a0,0($sp)77 78 // obtain $sp79 dadd $a0,$zero,$sp80 81 // call tsan interceptor82 jal __tsan_setjmp83 daddiu $a1,$a0,4084 85 // restore jmp_buf86 ld $a0,0($sp)87 88 // restore gp89 move $gp,$s090 91 // load pointer of libc _setjmp to t992 dla $t9,(_ZN14__interception12real__setjmpE)93 94 // restore env parameters95 ld $gp,8($sp)96 ld $fp,16($sp)97 ld $ra,24($sp)98 ld $s0,32($sp)99 daddiu $sp,$sp,40100 101 // tail jump to libc _setjmp102 ld $t9,0($t9)103 jr $t9104 nop105 106.size _setjmp, .-_setjmp107 108.hidden __tsan_setjmp109.globl sigsetjmp110.comm _ZN14__interception14real_sigsetjmpE,8,8111.type sigsetjmp, @function112sigsetjmp:113 114 // Save env parameters115 daddiu $sp,$sp,-48116 sd $s0,40($sp)117 sd $ra,32($sp)118 sd $fp,24($sp)119 sd $gp,16($sp)120 121 // calculate and save pointer to GOT122 lui $gp,%hi(%neg(%gp_rel(sigsetjmp)))123 daddu $gp,$gp,$t9124 daddiu $gp,$gp,%lo(%neg(%gp_rel(sigsetjmp)))125 move $s0,$gp126 127 // save jmp_buf and savesig128 sd $a0,0($sp)129 sd $a1,8($sp)130 131 // obtain $sp132 dadd $a0,$zero,$sp133 134 // call tsan interceptor135 jal __tsan_setjmp136 daddiu $a1,$a0,48137 138 // restore jmp_buf and savesig139 ld $a0,0($sp)140 ld $a1,8($sp)141 142 // restore gp143 move $gp,$s0144 145 // load pointer of libc sigsetjmp to t9146 dla $t9,(_ZN14__interception14real_sigsetjmpE) 147 148 // restore env parameters149 ld $gp,16($sp)150 ld $fp,24($sp)151 ld $ra,32($sp)152 ld $s0,40($sp)153 daddiu $sp,$sp,48154 155 // tail jump to libc sigsetjmp156 ld $t9,0($t9)157 jr $t9158 nop159 160.size sigsetjmp, .-sigsetjmp161 162.hidden __tsan_setjmp163.comm _ZN14__interception16real___sigsetjmpE,8,8164.globl __sigsetjmp165.type __sigsetjmp, @function166__sigsetjmp:167 168 // Save env parameters169 daddiu $sp,$sp,-48170 sd $s0,40($sp)171 sd $ra,32($sp)172 sd $fp,24($sp)173 sd $gp,16($sp)174 175 // calculate and save pointer to GOT176 lui $gp,%hi(%neg(%gp_rel(__sigsetjmp)))177 daddu $gp,$gp,$t9178 daddiu $gp,$gp,%lo(%neg(%gp_rel(__sigsetjmp)))179 move $s0,$gp180 181 // save jmp_buf and savesig182 sd $a0,0($sp)183 sd $a1,8($sp)184 185 // obtain $sp186 dadd $a0,$zero,$sp187 188 // call tsan interceptor189 jal __tsan_setjmp190 daddiu $a1,$a0,48191 192 // restore jmp_buf and savesig193 ld $a0,0($sp)194 ld $a1,8($sp)195 196 // restore gp197 move $gp,$s0198 199 // load pointer to libc __sigsetjmp in t9200 dla $t9,(_ZN14__interception16real___sigsetjmpE)201 202 // restore env parameters203 ld $gp,16($sp)204 ld $fp,24($sp)205 ld $ra,32($sp)206 ld $s0,40($sp)207 daddiu $sp,$sp,48208 209 // tail jump to libc __sigsetjmp210 ld $t9,0($t9)211 jr $t9212 nop213 214.size __sigsetjmp, .-__sigsetjmp215