Path: blob/main/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_rtl_loongarch64.S
35269 views
#include "sanitizer_common/sanitizer_asm.h"12.section .text34ASM_HIDDEN(__tsan_setjmp)5.comm _ZN14__interception11real_setjmpE,8,86.globl ASM_SYMBOL_INTERCEPTOR(setjmp)7ASM_TYPE_FUNCTION(ASM_SYMBOL_INTERCEPTOR(setjmp))8ASM_SYMBOL_INTERCEPTOR(setjmp):9CFI_STARTPROC1011// Save frame pointer and return address register12addi.d $sp, $sp, -3213st.d $ra, $sp, 2414st.d $fp, $sp, 1615CFI_DEF_CFA_OFFSET (32)16CFI_OFFSET (1, -8)17CFI_OFFSET (22, -16)1819// Adjust the SP for previous frame20addi.d $fp, $sp, 3221CFI_DEF_CFA_REGISTER (22)2223// Save env parameter24st.d $a0, $sp, 825CFI_OFFSET (4, -24)2627// Obtain SP, first argument to `void __tsan_setjmp(uptr sp)`28addi.d $a0, $fp, 02930// call tsan interceptor31bl ASM_SYMBOL(__tsan_setjmp)3233// Restore env parameter34ld.d $a0, $sp, 835CFI_RESTORE (4)3637// Restore frame/link register38ld.d $fp, $sp, 1639ld.d $ra, $sp, 2440addi.d $sp, $sp, 3241CFI_RESTORE (22)42CFI_RESTORE (1)43CFI_DEF_CFA (3, 0)4445// tail jump to libc setjmp46la.local $a1, _ZN14__interception11real_setjmpE47ld.d $a1, $a1, 048jr $a14950CFI_ENDPROC51ASM_SIZE(ASM_SYMBOL_INTERCEPTOR(setjmp))5253.comm _ZN14__interception12real__setjmpE,8,854.globl ASM_SYMBOL_INTERCEPTOR(_setjmp)55ASM_TYPE_FUNCTION(ASM_SYMBOL_INTERCEPTOR(_setjmp))56ASM_SYMBOL_INTERCEPTOR(_setjmp):57CFI_STARTPROC5859// Save frame pointer and return address register60addi.d $sp, $sp, -3261st.d $ra, $sp, 2462st.d $fp, $sp, 1663CFI_DEF_CFA_OFFSET (32)64CFI_OFFSET (1, -8)65CFI_OFFSET (22, -16)6667// Adjust the SP for previous frame68addi.d $fp, $sp, 3269CFI_DEF_CFA_REGISTER (22)7071// Save env parameter72st.d $a0, $sp, 873CFI_OFFSET (4, -24)7475// Obtain SP, first argument to `void __tsan_setjmp(uptr sp)`76addi.d $a0, $fp, 07778// call tsan interceptor79bl ASM_SYMBOL(__tsan_setjmp)8081// Restore env parameter82ld.d $a0, $sp, 883CFI_RESTORE (4)8485// Restore frame/link register86ld.d $fp, $sp, 1687ld.d $ra, $sp, 2488addi.d $sp, $sp, 3289CFI_RESTORE (22)90CFI_RESTORE (1)91CFI_DEF_CFA (3, 0)9293// tail jump to libc setjmp94la.local $a1, _ZN14__interception12real__setjmpE95ld.d $a1, $a1, 096jr $a19798CFI_ENDPROC99ASM_SIZE(ASM_SYMBOL_INTERCEPTOR(_setjmp))100101.comm _ZN14__interception14real_sigsetjmpE,8,8102.globl ASM_SYMBOL_INTERCEPTOR(sigsetjmp)103ASM_TYPE_FUNCTION(ASM_SYMBOL_INTERCEPTOR(sigsetjmp))104ASM_SYMBOL_INTERCEPTOR(sigsetjmp):105CFI_STARTPROC106107// Save frame pointer and return address register108addi.d $sp, $sp, -32109st.d $ra, $sp, 24110st.d $fp, $sp, 16111CFI_DEF_CFA_OFFSET (32)112CFI_OFFSET (1, -8)113CFI_OFFSET (22, -16)114115// Adjust the SP for previous frame116addi.d $fp, $sp, 32117CFI_DEF_CFA_REGISTER (22)118119// Save env parameter120st.d $a0, $sp, 8121CFI_OFFSET (4, -24)122123// Obtain SP, first argument to `void __tsan_setjmp(uptr sp)`124addi.d $a0, $fp, 0125126// call tsan interceptor127bl ASM_SYMBOL(__tsan_setjmp)128129// Restore env parameter130ld.d $a0, $sp, 8131CFI_RESTORE (4)132133// Restore frame/link register134ld.d $fp, $sp, 16135ld.d $ra, $sp, 24136addi.d $sp, $sp, 32137CFI_RESTORE (22)138CFI_RESTORE (1)139CFI_DEF_CFA (3, 0)140141// tail jump to libc setjmp142la.local $a1, _ZN14__interception14real_sigsetjmpE143ld.d $a1, $a1, 0144jr $a1145146CFI_ENDPROC147ASM_SIZE(ASM_SYMBOL_INTERCEPTOR(sigsetjmp))148149.comm _ZN14__interception16real___sigsetjmpE,8,8150.globl ASM_SYMBOL_INTERCEPTOR(__sigsetjmp)151ASM_TYPE_FUNCTION(ASM_SYMBOL_INTERCEPTOR(__sigsetjmp))152ASM_SYMBOL_INTERCEPTOR(__sigsetjmp):153CFI_STARTPROC154155// Save frame pointer and return address register156addi.d $sp, $sp, -32157st.d $ra, $sp, 24158st.d $fp, $sp, 16159CFI_DEF_CFA_OFFSET (32)160CFI_OFFSET (1, -8)161CFI_OFFSET (22, -16)162163// Adjust the SP for previous frame164addi.d $fp, $sp, 32165CFI_DEF_CFA_REGISTER (22)166167// Save env parameter168st.d $a0, $sp, 8169CFI_OFFSET (4, -24)170171// Obtain SP, first argument to `void __tsan_setjmp(uptr sp)`172addi.d $a0, $fp, 0173174// call tsan interceptor175bl ASM_SYMBOL(__tsan_setjmp)176177// Restore env parameter178ld.d $a0, $sp, 8179CFI_RESTORE (4)180181// Restore frame/link register182ld.d $fp, $sp, 16183ld.d $ra, $sp, 24184addi.d $sp, $sp, 32185CFI_RESTORE (22)186CFI_RESTORE (1)187CFI_DEF_CFA (3, 0)188189// tail jump to libc setjmp190la.local $a1, _ZN14__interception16real___sigsetjmpE191ld.d $a1, $a1, 0192jr $a1193194CFI_ENDPROC195ASM_SIZE(ASM_SYMBOL_INTERCEPTOR(__sigsetjmp))196197198