Index: sys/arch/aarch64/aarch64/netbsd32_machdep.c =================================================================== RCS file: /home/netbsd/src/sys/arch/aarch64/aarch64/netbsd32_machdep.c,v retrieving revision 1.14 diff -p -u -r1.14 netbsd32_machdep.c --- sys/arch/aarch64/aarch64/netbsd32_machdep.c 2 Jul 2020 13:04:46 -0000 1.14 +++ sys/arch/aarch64/aarch64/netbsd32_machdep.c 12 Oct 2020 14:45:53 -0000 @@ -198,8 +198,7 @@ netbsd32_process_write_regs(struct lwp * if ((p->p_flag & PK_32) == 0) return EINVAL; - if ((regs->r_cpsr & ~(SPSR_NZCV | SPSR_A32_T)) != 0 || - regs->r_pc >= VM_MAXUSER_ADDRESS32 || + if (regs->r_pc >= VM_MAXUSER_ADDRESS32 || regs->r_sp >= VM_MAXUSER_ADDRESS32) return EINVAL; @@ -209,7 +208,7 @@ netbsd32_process_write_regs(struct lwp * tf->tf_reg[14] = regs->r_lr; /* r14 = lr */ tf->tf_pc = regs->r_pc; /* r15 = pc */ tf->tf_spsr &= ~(SPSR_NZCV | SPSR_A32_T); - tf->tf_spsr |= regs->r_cpsr; + tf->tf_spsr |= regs->r_cpsr & (SPSR_NZCV | SPSR_A32_T); /* THUMB CODE? */ if (regs->r_pc & 1)