fields were (seldom) written to but never used for anything.
ok kettenis@
-/* $OpenBSD: frame.h,v 1.10 2024/03/29 21:04:37 miod Exp $ */
+/* $OpenBSD: frame.h,v 1.11 2024/04/08 20:07:53 miod Exp $ */
/* $NetBSD: frame.h,v 1.9 2001/03/04 09:28:35 mrg Exp $ */
/*
#define v9next_frame(f) ((struct frame*)(f->fr_fp+BIAS))
/*
- * The v9 trapframe. Since we don't get a free register window with
- * each trap we need some way to keep track of pending traps. We use
- * tf_fault to save the faulting address for memory faults and tf_kstack
- * to thread trapframes on the kernel stack(s). If tf_kstack == 0 then
- * this is the lowest level trap; we came from user mode.
+ * The v9 trapframe.
*/
struct trapframe {
int64_t tf_tstate; /* tstate register */
int64_t tf_pc; /* return pc */
int64_t tf_npc; /* return npc */
- int64_t tf_fault; /* faulting addr -- need somewhere to save it */
- int64_t tf_kstack; /* kernel stack of prev tf */
int tf_y; /* %y register -- 32-bits */
short tf_tt; /* What type of trap this was */
char tf_pil; /* What IRQ we're handling */
-/* $OpenBSD: db_trace.c,v 1.26 2024/02/13 09:29:39 claudio Exp $ */
+/* $OpenBSD: db_trace.c,v 1.27 2024/04/08 20:07:53 miod Exp $ */
/* $NetBSD: db_trace.c,v 1.23 2001/07/10 06:06:16 eeh Exp $ */
/*
tf, (unsigned long long)tf->tf_tstate,
(unsigned long long)tf->tf_pc,
(unsigned long long)tf->tf_npc);
- db_printf("y: %x\tpil: %d\toldpil: %d\tfault: %llx\tkstack: %llx\ttt: %x\nGlobals:\n",
+ db_printf("y: %x\tpil: %d\toldpil: %d\ttt: %x\nGlobals:\n",
(int)tf->tf_y, (int)tf->tf_pil, (int)tf->tf_oldpil,
- (unsigned long long)tf->tf_fault,
- (unsigned long long)tf->tf_kstack, (int)tf->tf_tt);
+ (int)tf->tf_tt);
db_printf("%016llx %016llx %016llx %016llx\n",
(unsigned long long)tf->tf_global[0],
(unsigned long long)tf->tf_global[1],
-# $OpenBSD: genassym.cf,v 1.44 2024/03/29 21:27:53 miod Exp $
+# $OpenBSD: genassym.cf,v 1.45 2024/04/08 20:07:53 miod Exp $
# $NetBSD: genassym.cf,v 1.23 2001/08/08 00:09:30 eeh Exp $
#
member tf_tstate
member tf_pc
member tf_npc
-member tf_fault
-member tf_kstack
member tf_y
member tf_pil
member tf_oldpil
-/* $OpenBSD: locore.s,v 1.219 2024/04/08 20:07:07 miod Exp $ */
+/* $OpenBSD: locore.s,v 1.220 2024/04/08 20:07:53 miod Exp $ */
/* $NetBSD: locore.s,v 1.137 2001/08/13 06:10:10 jdolecek Exp $ */
/*
TRAP_SETUP -CC64FSZ-TF_SIZE
Ldatafault_internal:
INCR uvmexp+V_FAULTS ! uvmexp.faults++ (clobbers %o0,%o1,%o2) should not fault
-! ldx [%sp + CC64FSZ + BIAS + TF_FAULT], %g1 ! DEBUG make sure this has not changed
mov %g1, %o0 ! Move these to the out regs so we can save the globals
mov %g2, %o4
mov %g3, %o5
GET_CPCB(%g7)
set USPACE-CC64FSZ-TF_SIZE-BIAS, %g5
add %g7, %g5, %g6
- stx %g1, [%g6 + CC64FSZ + BIAS + TF_FAULT] ! Generate a new trapframe
- stx %i0, [%g6 + CC64FSZ + BIAS + TF_O + (0*8)] ! but don't bother with
- stx %i1, [%g6 + CC64FSZ + BIAS + TF_O + (1*8)] ! locals and ins
- stx %i2, [%g6 + CC64FSZ + BIAS + TF_O + (2*8)]
+ stx %i0, [%g6 + CC64FSZ + BIAS + TF_O + (0*8)] ! Generate a new trapframe
+ stx %i1, [%g6 + CC64FSZ + BIAS + TF_O + (1*8)] ! but don't bother with
+ stx %i2, [%g6 + CC64FSZ + BIAS + TF_O + (2*8)] ! locals and ins
stx %i3, [%g6 + CC64FSZ + BIAS + TF_O + (3*8)]
stx %i4, [%g6 + CC64FSZ + BIAS + TF_O + (4*8)]
stx %i5, [%g6 + CC64FSZ + BIAS + TF_O + (5*8)]
stx %l1, [%sp + CC64FSZ + BIAS + TF_PC]
btst TSTATE_PRIV, %l0 ! User mode?
stx %l2, [%sp + CC64FSZ + BIAS + TF_NPC]
- stx %fp, [%sp + CC64FSZ + BIAS + TF_KSTACK] ! old frame pointer
sub %l5, 0x40, %l6 ! Convert to interrupt level
stb %l6, [%sp + CC64FSZ + BIAS + TF_PIL] ! set up intrframe/clockframe