-/* $OpenBSD: process_machdep.c,v 1.6 2022/01/01 18:52:36 kettenis Exp $ */
+/* $OpenBSD: process_machdep.c,v 1.7 2023/04/16 10:14:59 kettenis Exp $ */
/*
* Copyright (c) 2014 Patrick Wildt <patrick@blueri.se>
*
process_set_pc(struct proc *p, caddr_t addr)
{
struct trapframe *tf = p->p_addr->u_pcb.pcb_tf;
+
tf->tf_elr = (uint64_t)addr;
+ tf->tf_spsr &= ~PSR_BTYPE;
+
return (0);
}
-/* $OpenBSD: sig_machdep.c,v 1.8 2021/10/06 15:46:03 claudio Exp $ */
+/* $OpenBSD: sig_machdep.c,v 1.9 2023/04/16 10:14:59 kettenis Exp $ */
/*
* Copyright (c) 1990 The Regents of the University of California.
tf->tf_sp = (register_t)fp;
tf->tf_elr = p->p_p->ps_sigcode;
+ tf->tf_spsr &= ~PSR_BTYPE;
return 0;
}
-/* $OpenBSD: armreg.h,v 1.27 2023/03/27 19:02:48 kettenis Exp $ */
+/* $OpenBSD: armreg.h,v 1.28 2023/04/16 10:14:59 kettenis Exp $ */
/*-
* Copyright (c) 2013, 2014 Andrew Turner
* Copyright (c) 2015 The FreeBSD Foundation
#define PSR_I 0x00000080
#define PSR_A 0x00000100
#define PSR_D 0x00000200
+#define PSR_BTYPE 0x00000c00
#define PSR_SSBS 0x00001000
#define PSR_IL 0x00100000
#define PSR_SS 0x00200000