#if (defined(__riscv) && (__riscv_xlen == 64)) && defined(__linux__)
#include "sanitizer_common/sanitizer_asm.h"
ASM_HIDDEN(COMMON_INTERCEPTOR_SPILL_AREA)
.comm _ZN14__interception10real_vforkE,8,8
.globl ASM_WRAPPER_NAME(vfork)
ASM_TYPE_FUNCTION(ASM_WRAPPER_NAME(vfork))
ASM_WRAPPER_NAME(vfork):
addi sp, sp, -16
sd ra, 8(sp)
call COMMON_INTERCEPTOR_SPILL_AREA
ld ra, 8(sp)
addi sp, sp, 16
sd ra, 0(x10)
la x10, _ZN14__interception10real_vforkE
ld x10, 0(x10)
jalr x10
addi sp, sp, -16
sd x10, 8(sp)
beqz x10, .L_exit
addi x10, sp, 16
call COMMON_INTERCEPTOR_HANDLE_VFORK
.L_exit:
call COMMON_INTERCEPTOR_SPILL_AREA
ld ra, 0(x10)
ld x10, 8(sp)
addi sp, sp, 16
ret
ASM_SIZE(vfork)
ASM_INTERCEPTOR_TRAMPOLINE(vfork)
ASM_TRAMPOLINE_ALIAS(vfork, vfork)
#endif