From c529fe0888768673f405bd56bda8f1db88fd8587 Mon Sep 17 00:00:00 2001 From: pk Date: Sun, 6 Sep 1998 21:18:59 +0000 Subject: [PATCH] memerr() is now an indirect call. --- sys/arch/sparc/sparc/locore.s | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/sys/arch/sparc/sparc/locore.s b/sys/arch/sparc/sparc/locore.s index 8a68d2308e06..4a36742334db 100644 --- a/sys/arch/sparc/sparc/locore.s +++ b/sys/arch/sparc/sparc/locore.s @@ -1,4 +1,4 @@ -/* $NetBSD: locore.s,v 1.86 1998/07/26 23:35:33 pk Exp $ */ +/* $NetBSD: locore.s,v 1.87 1998/09/06 21:18:59 pk Exp $ */ /* * Copyright (c) 1996 Paul Kranenburg @@ -1739,7 +1739,9 @@ memfault_sun4: /* memory error = death for now XXX */ clr %o3 clr %o4 - call _memerr ! (0, ser, sva, 0, 0) + set CPUINFO_VA+CPUINFO_MEMERR, %o0 + ld [%o0], %o0 + jmpl %o0, %o7 ! memerr(0, ser, sva, 0, 0) clr %o0 call _callrom nop @@ -1839,7 +1841,9 @@ memfault_sun4c: * If memerr() returns, return from the trap. */ wr %l0, PSR_ET, %psr - call _memerr ! memerr(0, ser, sva, aer, ava) + set CPUINFO_VA+CPUINFO_MEMERR, %o0 + ld [%o0], %o0 + jmpl %o0, %o7 ! memerr(0, ser, sva, aer, ava) clr %o0 ld [%sp + CCFSZ + 20], %g1 ! restore g1 through g7 @@ -1859,7 +1863,9 @@ memfault_sun4c: * %o1 through %o4 still hold the error reg contents. */ 1: - call _memerr ! memerr(1, ser, sva, aer, ava) + set CPUINFO_VA+CPUINFO_MEMERR, %o0 + ld [%o0], %o0 + jmpl %o0, %o7 ! memerr(1, ser, sva, aer, ava) mov 1, %o0 ld [%sp + CCFSZ + 20], %g1 ! restore g1 through g7 @@ -2566,7 +2572,9 @@ nmi_sun4c: nmi_common: ! and call C code - call _memerr ! memerr(0, ser, sva, aer, ava) + set CPUINFO_VA+CPUINFO_MEMERR, %o0 + ld [%o0], %o0 + jmpl %o0, %o7 ! memerr(0, ser, sva, aer, ava) clr %o0 mov %l5, %g1 ! restore g1 through g7 @@ -2623,7 +2631,9 @@ nmi_sun4m: mov %g7, %l7 clr %o5 - call _memerr4m ! memerr4m(0, sfsr, sfva, afsr, afva) + set CPUINFO_VA+CPUINFO_MEMERR, %o0 + ld [%o0], %o0 + jmpl %o0, %o7 ! memerr4m(0, sfsr, sfva, afsr, afva) clr %o0 mov %l5, %g1 ! restore g1 through g7