* Return the signal's number, or fall through
* to clear it from the pending mask.
*/
- switch ((int)(intptr_t)p->p_sigacts->ps_sigact[_SIG_IDX(sig)]) {
- case (int)SIG_DFL:
+ switch ((intptr_t)p->p_sigacts->ps_sigact[_SIG_IDX(sig)]) {
+ case (intptr_t)SIG_DFL:
/*
* Don't take default actions on system processes.
*/
/*NOTREACHED*/
- case (int)SIG_IGN:
+ case (intptr_t)SIG_IGN:
/*
* Masking above should prevent us ever trying
* to take action on an ignored signal other
subq $TF_ERR,%rsp; \
movq $(a),TF_TRAPNO(%rsp) ; \
movq $0,TF_ADDR(%rsp) ; \
+ movq $0,TF_XFLAGS(%rsp) ; \
jmp alltraps
IDTVEC(tss)
TRAP_ERR(T_TSSFLT)
movq $T_DOUBLEFLT,TF_TRAPNO(%rsp)
movq $0,TF_ADDR(%rsp)
movq $0,TF_ERR(%rsp)
+ movq $0,TF_XFLAGS(%rsp)
movq %rdi,TF_RDI(%rsp)
movq %rsi,TF_RSI(%rsp)
movq %rdx,TF_RDX(%rsp)
movq %rdi,TF_RDI(%rsp) /* free up a GP register */
movq %cr2,%rdi /* preserve %cr2 before .. */
movq %rdi,TF_ADDR(%rsp) /* enabling interrupts. */
+ movq $0,TF_XFLAGS(%rsp)
testq $PSL_I,TF_RFLAGS(%rsp)
jz alltraps_pushregs_no_rdi
sti
subq $TF_ERR,%rsp
movq $T_PROTFLT,TF_TRAPNO(%rsp)
movq $0,TF_ADDR(%rsp)
+ movq $0,TF_XFLAGS(%rsp)
movq %rdi,TF_RDI(%rsp) /* free up a GP register */
leaq doreti_iret(%rip),%rdi
cmpq %rdi,TF_RIP(%rsp)
movq $KUDSEL,TF_SS(%rsp)
movq $KUCSEL,TF_CS(%rsp)
movq $2,TF_ERR(%rsp)
+ movq $0,TF_XFLAGS(%rsp) /* note: used in signal frame */
movq %rdi,TF_RDI(%rsp) /* arg 1 */
movq %rsi,TF_RSI(%rsp) /* arg 2 */
movq %rdx,TF_RDX(%rsp) /* arg 3 */
movq $(T_NMI),TF_TRAPNO(%rsp)
movq $0,TF_ADDR(%rsp)
movq $0,TF_ERR(%rsp)
+ movq $0,TF_XFLAGS(%rsp)
movq %rdi,TF_RDI(%rsp)
movq %rsi,TF_RSI(%rsp)
movq %rdx,TF_RDX(%rsp)