From e55ed29b03c21de48fe1451997556e213487a80f Mon Sep 17 00:00:00 2001 From: Miod Vallat Date: Sun, 19 Nov 2006 11:08:56 +0000 Subject: I completely broke pfsr_188_save_double when introducing per-cpuinfo pfsr pointers seven months ago. This would work, but not in all fault cases; now it does the right thing. --- sys/arch/mvme88k/mvme88k/eh.S | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) (limited to 'sys/arch') diff --git a/sys/arch/mvme88k/mvme88k/eh.S b/sys/arch/mvme88k/mvme88k/eh.S index a307e71a4be..0fbb193b838 100644 --- a/sys/arch/mvme88k/mvme88k/eh.S +++ b/sys/arch/mvme88k/mvme88k/eh.S @@ -1,4 +1,4 @@ -/* $OpenBSD: eh.S,v 1.65 2006/11/18 22:53:11 miod Exp $ */ +/* $OpenBSD: eh.S,v 1.66 2006/11/19 11:08:55 miod Exp $ */ /* * Copyright (c) 2006, Miodrag Vallat * @@ -135,27 +135,27 @@ ENTRY(pfsr_save_188_double) * after reading them. */ ld TMP2, TMP, CI_PFSR_I0 - ld TMP2, TMP2, r0 - extu TMP3, TMP2, 3<16> - bcnd.n ne0, TMP3, 1f - st r0, TMP2, r0 - ld TMP2, TMP, CI_PFSR_I1 - ld TMP2, TMP2, r0 + ld TMP3, TMP2, r0 + extu TMP3, TMP3, 3<16> + bcnd ne0, TMP3, 1f st r0, TMP2, r0 + ld TMP2, TMP, CI_PFSR_I1 1: - st TMP2, r31, REG_OFF(EF_IPFSR) + ld TMP3, TMP2, r0 + st r0, TMP2, r0 + st TMP3, r31, REG_OFF(EF_IPFSR) ld TMP2, TMP, CI_PFSR_D0 - ld TMP2, TMP2, r0 - extu TMP3, TMP2, 3<16> - bcnd.n ne0, TMP3, 2f - st r0, TMP2, r0 - ld TMP2, TMP, CI_PFSR_D1 - ld TMP2, TMP2, r0 + ld TMP3, TMP2, r0 + extu TMP3, TMP3, 3<16> + bcnd ne0, TMP3, 2f st r0, TMP2, r0 + ld TMP2, TMP, CI_PFSR_D1 2: + ld TMP3, TMP2, r0 + st r0, TMP2, r0 br.n _ASM_LABEL(pfsr_done) - st TMP2, r31, REG_OFF(EF_DPFSR) + st TMP3, r31, REG_OFF(EF_DPFSR) ENTRY(pfsr_save_188_straight) /* -- cgit v1.2.3