/* register use:
%rbx uctx
-
+ %r12 token
+
void
_sigtramp(
union __sigaction_u __sigaction_u, %rdi
int sig, %rdx
siginfo_t *sinfo, %rcx
ucontext_t *uctx %r8
+ uintptr_t token %r8
)
*/
+#if RDAR_35834092
+ .private_extern __sigtramp
+#endif
.globl __sigtramp
.text
.align 4,0x90
#endif
/* Save uctx in %rbx. */
movq %r8, %rbx
+ /* Save token in %r12. */
+ movq %r9, %r12
/* Call the signal handler.
Some variants are not supposed to get the last two parameters,
but the test to prevent this is more expensive than just passing
#endif
movq %rbx, %rdi
movl $ UC_FLAVOR, %esi
+ movq %r12, %rdx
callq ___sigreturn
+ ud2 /* __sigreturn returning is a fatal error */
ret
Lend: