Support for a machine-specific badaddr handler.

This commit is contained in:
ragge 2000-07-26 11:48:50 +00:00
parent b38b1995fa
commit 0aeb2853f9
2 changed files with 14 additions and 3 deletions

View File

@ -1,4 +1,4 @@
# $NetBSD: genassym.cf,v 1.23 2000/07/02 04:40:45 cgd Exp $ # $NetBSD: genassym.cf,v 1.24 2000/07/26 11:48:51 ragge Exp $
# #
# Copyright (c) 1997 Ludd, University of Lule}, Sweden. # Copyright (c) 1997 Ludd, University of Lule}, Sweden.
# All rights reserved. # All rights reserved.
@ -68,6 +68,7 @@ define SSP offsetof(struct pcb, SSP)
define MCHK offsetof(struct cpu_dep, cpu_mchk) define MCHK offsetof(struct cpu_dep, cpu_mchk)
define MEMERR offsetof(struct cpu_dep, cpu_memerr) define MEMERR offsetof(struct cpu_dep, cpu_memerr)
define BADADDR offsetof(struct cpu_dep, cpu_badaddr)
define KERNBASE KERNBASE define KERNBASE KERNBASE

View File

@ -1,4 +1,4 @@
/* $NetBSD: intvec.s,v 1.53 2000/07/22 05:03:23 matt Exp $ */ /* $NetBSD: intvec.s,v 1.54 2000/07/26 11:48:50 ragge Exp $ */
/* /*
* Copyright (c) 1994, 1997 Ludd, University of Lule}, Sweden. * Copyright (c) 1994, 1997 Ludd, University of Lule}, Sweden.
@ -178,7 +178,17 @@ SCBENTRY(mcheck)
rei rei
L4: addl2 (sp)+,sp # remove info pushed on stack L4: addl2 (sp)+,sp # remove info pushed on stack
cmpl _C_LABEL(vax_cputype),$1 # Is it a 11/780? pushr $0x3f # save regs for clobbering
movl _C_LABEL(dep_call),r0 # get cpu-specific mchk handler
tstl BADADDR(r0) # any handler available?
bneq 4f # yep, call it
popr $0x3f # nope, restore regs
brb 0f # continue
4: calls $0,*BADADDR(r0) # call machine-specific handler
popr $0x3f # restore regs
brb 2f
0: cmpl _C_LABEL(vax_cputype),$1 # Is it a 11/780?
bneq 1f # No... bneq 1f # No...
mtpr $0, $PR_SBIFS # Clear SBI fault register mtpr $0, $PR_SBIFS # Clear SBI fault register