brintos

brintos / llvm-project-archived public Read only

0
0
Text · 4.2 KiB · 8e6b9b9 Raw
204 lines · plain
1#include "sanitizer_common/sanitizer_asm.h"2 3.section .text4 5.comm _ZN14__interception11real_setjmpE,8,86.globl ASM_SYMBOL_INTERCEPTOR(setjmp)7ASM_TYPE_FUNCTION(ASM_SYMBOL_INTERCEPTOR(setjmp))8ASM_SYMBOL_INTERCEPTOR(setjmp):9  CFI_STARTPROC10 11  // Save frame pointer and return address register12  addi sp, sp, -3213  sd ra, 24(sp)14  sd s0, 16(sp)15  CFI_DEF_CFA_OFFSET (32)16  CFI_OFFSET (1, -8)17  CFI_OFFSET (8, -16)18 19  // Adjust the SP for previous frame20  addi s0, sp, 3221  CFI_DEF_CFA_REGISTER (8)22 23  // Save env parameter24  sd a0, 8(sp)25  CFI_OFFSET (10, -24)26 27  // Obtain SP, first argument to `void __tsan_setjmp(uptr sp)`28  addi  a0, s0, 029 30  // call tsan interceptor31  call ASM_SYMBOL(__tsan_setjmp)32 33  // Restore env parameter34  ld a0, 8(sp)35  CFI_RESTORE (10)36 37  // Restore frame/link register38  ld s0, 16(sp)39  ld ra, 24(sp)40  addi sp, sp, 3241  CFI_RESTORE (8)42  CFI_RESTORE (1)43  CFI_DEF_CFA (2, 0)44 45  // tail jump to libc setjmp46  la t1, _ZN14__interception11real_setjmpE47  ld t1, 0(t1)48  jr t149 50  CFI_ENDPROC51ASM_SIZE(ASM_SYMBOL_INTERCEPTOR(setjmp))52 53.comm _ZN14__interception12real__setjmpE,8,854.globl ASM_SYMBOL_INTERCEPTOR(_setjmp)55ASM_TYPE_FUNCTION(ASM_SYMBOL_INTERCEPTOR(_setjmp))56ASM_SYMBOL_INTERCEPTOR(_setjmp):57  CFI_STARTPROC58 59  // Save frame pointer and return address register60  addi sp, sp, -3261  sd ra, 24(sp)62  sd s0, 16(sp)63  CFI_DEF_CFA_OFFSET (32)64  CFI_OFFSET (1, -8)65  CFI_OFFSET (8, -16)66 67  // Adjust the SP for previous frame68  addi s0, sp, 3269  CFI_DEF_CFA_REGISTER (8)70 71  // Save env parameter72  sd a0, 8(sp)73  CFI_OFFSET (10, -24)74 75  // Obtain SP, first argument to `void __tsan_setjmp(uptr sp)`76  addi  a0, s0, 077 78  // call tsan interceptor79  call ASM_SYMBOL(__tsan_setjmp)80 81  // Restore env parameter82  ld a0, 8(sp)83  CFI_RESTORE (10)84 85  // Restore frame/link register86  ld s0, 16(sp)87  ld ra, 24(sp)88  addi sp, sp, 3289  CFI_RESTORE (8)90  CFI_RESTORE (1)91  CFI_DEF_CFA (2, 0)92 93  // tail jump to libc setjmp94  la t1, _ZN14__interception12real__setjmpE95  ld t1, 0(t1)96  jr t197 98  CFI_ENDPROC99ASM_SIZE(ASM_SYMBOL_INTERCEPTOR(_setjmp))100 101.comm _ZN14__interception14real_sigsetjmpE,8,8102.globl ASM_SYMBOL_INTERCEPTOR(sigsetjmp)103ASM_TYPE_FUNCTION(ASM_SYMBOL_INTERCEPTOR(sigsetjmp))104ASM_SYMBOL_INTERCEPTOR(sigsetjmp):105  CFI_STARTPROC106 107  // Save frame pointer and return address register108  addi sp, sp, -32109  sd ra, 24(sp)110  sd s0, 16(sp)111  CFI_DEF_CFA_OFFSET (32)112  CFI_OFFSET (1, -8)113  CFI_OFFSET (8, -16)114 115  // Adjust the SP for previous frame116  addi s0, sp, 32117  CFI_DEF_CFA_REGISTER (8)118 119  // Save env parameter120  sd a0, 8(sp)121  sd a1, 0(sp)122  CFI_OFFSET (10, -24)123  CFI_OFFSET (11, -32)124 125  // Obtain SP, first argument to `void __tsan_setjmp(uptr sp)`126  addi  a0, s0, 0127 128  // call tsan interceptor129  call      ASM_SYMBOL(__tsan_setjmp)130 131  // Restore env parameter132  ld a0, 8(sp)133  ld a1, 0(sp)134  CFI_RESTORE (10)135  CFI_RESTORE (11)136 137  // Restore frame/link register138  ld s0, 16(sp)139  ld ra, 24(sp)140  addi sp, sp, 32141  CFI_RESTORE (8)142  CFI_RESTORE (1)143  CFI_DEF_CFA (2, 0)144 145  // tail jump to libc setjmp146  la t1, _ZN14__interception14real_sigsetjmpE147  ld t1, 0(t1)148  jr t1149 150  CFI_ENDPROC151ASM_SIZE(ASM_SYMBOL_INTERCEPTOR(sigsetjmp))152 153.comm _ZN14__interception16real___sigsetjmpE,8,8154.globl ASM_SYMBOL_INTERCEPTOR(__sigsetjmp)155ASM_TYPE_FUNCTION(ASM_SYMBOL_INTERCEPTOR(__sigsetjmp))156ASM_SYMBOL_INTERCEPTOR(__sigsetjmp):157  CFI_STARTPROC158 159  // Save frame pointer and return address register160  addi sp, sp, -32161  sd ra, 24(sp)162  sd s0, 16(sp)163  CFI_DEF_CFA_OFFSET (32)164  CFI_OFFSET (1, -8)165  CFI_OFFSET (8, -16)166 167  // Adjust the SP for previous frame168  addi s0, sp, 32169  CFI_DEF_CFA_REGISTER (8)170 171  // Save env parameter172  sd a0, 8(sp)173  sd a1, 0(sp)174  CFI_OFFSET (10, -24)175  CFI_OFFSET (11, -32)176 177  // Obtain SP, first argument to `void __tsan_setjmp(uptr sp)`178  addi  a0, s0, 0179 180  // call tsan interceptor181  call      ASM_SYMBOL(__tsan_setjmp)182 183  // Restore env parameter184  ld a0, 8(sp)185  ld a1, 0(sp)186  CFI_RESTORE (10)187  CFI_RESTORE (11)188 189  // Restore frame/link register190  ld s0, 16(sp)191  ld ra, 24(sp)192  addi sp, sp, 32193  CFI_RESTORE (8)194  CFI_RESTORE (1)195  CFI_DEF_CFA (2, 0)196 197  // tail jump to libc setjmp198  la t1, _ZN14__interception16real___sigsetjmpE199  ld t1, 0(t1)200  jr t1201 202  CFI_ENDPROC203ASM_SIZE(ASM_SYMBOL_INTERCEPTOR(__sigsetjmp))204