#if defined(__aarch64__) && 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):
        // Save x30 in the off-stack spill area.
        stp     xzr, x30, [sp, #-16]!
        bl      COMMON_INTERCEPTOR_SPILL_AREA
        ldp     xzr, x30, [sp], 16
        str     x30, [x0]

        // Call real vfork. This may return twice. User code that runs between the first and the second return
        // may clobber the stack frame of the interceptor; that's why it does not have a frame.
        adrp    x0, _ZN14__interception10real_vforkE
        ldr     x0, [x0, :lo12:_ZN14__interception10real_vforkE]
        blr     x0

        stp     x0, xzr, [sp, #-16]!
        cmp     x0, #0
        b.eq   .L_exit

        // x0 != 0 => parent process. Clear stack shadow.
        add    x0, sp, #16
        bl     COMMON_INTERCEPTOR_HANDLE_VFORK

.L_exit:
        // Restore x30.
        bl     COMMON_INTERCEPTOR_SPILL_AREA
        ldr    x30, [x0]
        ldp    x0, xzr, [sp], 16

        ret
ASM_SIZE(vfork)

.weak vfork
.set vfork, ASM_WRAPPER_NAME(vfork)

#endif
