brintos

brintos / llvm-project-archived public Read only

0
0
Text · 4.3 KiB · 12856bd Raw
197 lines · plain
1#include "sanitizer_common/sanitizer_asm.h"2 3.section .text4 5ASM_HIDDEN(__tsan_setjmp)6.comm _ZN14__interception11real_setjmpE,8,87.globl ASM_SYMBOL_INTERCEPTOR(setjmp)8ASM_TYPE_FUNCTION(ASM_SYMBOL_INTERCEPTOR(setjmp))9ASM_SYMBOL_INTERCEPTOR(setjmp):10  CFI_STARTPROC11 12  // Save frame pointer and return address register13  addi.d $sp, $sp, -3214  st.d $ra, $sp, 2415  st.d $fp, $sp, 1616  CFI_DEF_CFA_OFFSET (32)17  CFI_OFFSET (1, -8)18  CFI_OFFSET (22, -16)19 20  // Adjust the SP for previous frame21  addi.d $fp, $sp, 3222  CFI_DEF_CFA_REGISTER (22)23 24  // Save env parameter25  st.d $a0, $sp, 826  CFI_OFFSET (4, -24)27 28  // Obtain SP, first argument to `void __tsan_setjmp(uptr sp)`29  addi.d  $a0, $fp, 030 31  // call tsan interceptor32  bl      ASM_SYMBOL(__tsan_setjmp)33 34  // Restore env parameter35  ld.d $a0, $sp, 836  CFI_RESTORE (4)37 38  // Restore frame/link register39  ld.d $fp, $sp, 1640  ld.d $ra, $sp, 2441  addi.d $sp, $sp, 3242  CFI_RESTORE (22)43  CFI_RESTORE (1)44  CFI_DEF_CFA (3, 0)45 46  // tail jump to libc setjmp47  la.local $a1, _ZN14__interception11real_setjmpE48  ld.d $a1, $a1, 049  jr $a150 51  CFI_ENDPROC52ASM_SIZE(ASM_SYMBOL_INTERCEPTOR(setjmp))53 54.comm _ZN14__interception12real__setjmpE,8,855.globl ASM_SYMBOL_INTERCEPTOR(_setjmp)56ASM_TYPE_FUNCTION(ASM_SYMBOL_INTERCEPTOR(_setjmp))57ASM_SYMBOL_INTERCEPTOR(_setjmp):58  CFI_STARTPROC59 60  // Save frame pointer and return address register61  addi.d $sp, $sp, -3262  st.d $ra, $sp, 2463  st.d $fp, $sp, 1664  CFI_DEF_CFA_OFFSET (32)65  CFI_OFFSET (1, -8)66  CFI_OFFSET (22, -16)67 68  // Adjust the SP for previous frame69  addi.d $fp, $sp, 3270  CFI_DEF_CFA_REGISTER (22)71 72  // Save env parameter73  st.d $a0, $sp, 874  CFI_OFFSET (4, -24)75 76  // Obtain SP, first argument to `void __tsan_setjmp(uptr sp)`77  addi.d  $a0, $fp, 078 79  // call tsan interceptor80  bl      ASM_SYMBOL(__tsan_setjmp)81 82  // Restore env parameter83  ld.d $a0, $sp, 884  CFI_RESTORE (4)85 86  // Restore frame/link register87  ld.d $fp, $sp, 1688  ld.d $ra, $sp, 2489  addi.d $sp, $sp, 3290  CFI_RESTORE (22)91  CFI_RESTORE (1)92  CFI_DEF_CFA (3, 0)93 94  // tail jump to libc setjmp95  la.local $a1, _ZN14__interception12real__setjmpE96  ld.d $a1, $a1, 097  jr $a198 99  CFI_ENDPROC100ASM_SIZE(ASM_SYMBOL_INTERCEPTOR(_setjmp))101 102.comm _ZN14__interception14real_sigsetjmpE,8,8103.globl ASM_SYMBOL_INTERCEPTOR(sigsetjmp)104ASM_TYPE_FUNCTION(ASM_SYMBOL_INTERCEPTOR(sigsetjmp))105ASM_SYMBOL_INTERCEPTOR(sigsetjmp):106  CFI_STARTPROC107 108  // Save frame pointer and return address register109  addi.d $sp, $sp, -32110  st.d $ra, $sp, 24111  st.d $fp, $sp, 16112  CFI_DEF_CFA_OFFSET (32)113  CFI_OFFSET (1, -8)114  CFI_OFFSET (22, -16)115 116  // Adjust the SP for previous frame117  addi.d $fp, $sp, 32118  CFI_DEF_CFA_REGISTER (22)119 120  // Save env parameter121  st.d $a0, $sp, 8122  CFI_OFFSET (4, -24)123 124  // Obtain SP, first argument to `void __tsan_setjmp(uptr sp)`125  addi.d  $a0, $fp, 0126 127  // call tsan interceptor128  bl      ASM_SYMBOL(__tsan_setjmp)129 130  // Restore env parameter131  ld.d $a0, $sp, 8132  CFI_RESTORE (4)133 134  // Restore frame/link register135  ld.d $fp, $sp, 16136  ld.d $ra, $sp, 24137  addi.d $sp, $sp, 32138  CFI_RESTORE (22)139  CFI_RESTORE (1)140  CFI_DEF_CFA (3, 0)141 142  // tail jump to libc setjmp143  la.local $a1, _ZN14__interception14real_sigsetjmpE144  ld.d $a1, $a1, 0145  jr $a1146 147  CFI_ENDPROC148ASM_SIZE(ASM_SYMBOL_INTERCEPTOR(sigsetjmp))149 150.comm _ZN14__interception16real___sigsetjmpE,8,8151.globl ASM_SYMBOL_INTERCEPTOR(__sigsetjmp)152ASM_TYPE_FUNCTION(ASM_SYMBOL_INTERCEPTOR(__sigsetjmp))153ASM_SYMBOL_INTERCEPTOR(__sigsetjmp):154  CFI_STARTPROC155 156  // Save frame pointer and return address register157  addi.d $sp, $sp, -32158  st.d $ra, $sp, 24159  st.d $fp, $sp, 16160  CFI_DEF_CFA_OFFSET (32)161  CFI_OFFSET (1, -8)162  CFI_OFFSET (22, -16)163 164  // Adjust the SP for previous frame165  addi.d $fp, $sp, 32166  CFI_DEF_CFA_REGISTER (22)167 168  // Save env parameter169  st.d $a0, $sp, 8170  CFI_OFFSET (4, -24)171 172  // Obtain SP, first argument to `void __tsan_setjmp(uptr sp)`173  addi.d  $a0, $fp, 0174 175  // call tsan interceptor176  bl      ASM_SYMBOL(__tsan_setjmp)177 178  // Restore env parameter179  ld.d $a0, $sp, 8180  CFI_RESTORE (4)181 182  // Restore frame/link register183  ld.d $fp, $sp, 16184  ld.d $ra, $sp, 24185  addi.d $sp, $sp, 32186  CFI_RESTORE (22)187  CFI_RESTORE (1)188  CFI_DEF_CFA (3, 0)189 190  // tail jump to libc setjmp191  la.local $a1, _ZN14__interception16real___sigsetjmpE192  ld.d $a1, $a1, 0193  jr $a1194 195  CFI_ENDPROC196ASM_SIZE(ASM_SYMBOL_INTERCEPTOR(__sigsetjmp))197