From 1f1b01c0a57efa02f95df7de39892f8b3b6c3aed Mon Sep 17 00:00:00 2001 From: Peter Grehan Date: Tue, 27 Jul 2004 03:46:34 +0000 Subject: [PATCH] Save DAR/DSISR in DDB regsave area when stack overflow detected. It's hard to work out where the problem was without these. --- sys/powerpc/aim/trap_subr.S | 4 ++++ sys/powerpc/powerpc/trap_subr.S | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/sys/powerpc/aim/trap_subr.S b/sys/powerpc/aim/trap_subr.S index 828192e8e33..cc5cd8dc98d 100644 --- a/sys/powerpc/aim/trap_subr.S +++ b/sys/powerpc/aim/trap_subr.S @@ -373,6 +373,10 @@ disitrap: /* Now convert this DSI into a DDB trap. */ GET_CPUINFO(%r1) + lwz %r30,(PC_TEMPSAVE+CPUSAVE_DAR)(%r1) /* get DAR */ + stw %r30,(PC_DBSAVE +CPUSAVE_DAR)(%r1) /* save DAR */ + lwz %r30,(PC_TEMPSAVE+CPUSAVE_DSISR)(%r1) /* get DSISR */ + lwz %r30,(PC_DBSAVE +CPUSAVE_DSISR)(%r1) /* save DSISR */ lwz %r30,(PC_DISISAVE+CPUSAVE_R28)(%r1) /* get r28 */ stw %r30,(PC_DBSAVE +CPUSAVE_R28)(%r1) /* save r28 */ lwz %r31,(PC_DISISAVE+CPUSAVE_R29)(%r1) /* get r29 */ diff --git a/sys/powerpc/powerpc/trap_subr.S b/sys/powerpc/powerpc/trap_subr.S index 828192e8e33..cc5cd8dc98d 100644 --- a/sys/powerpc/powerpc/trap_subr.S +++ b/sys/powerpc/powerpc/trap_subr.S @@ -373,6 +373,10 @@ disitrap: /* Now convert this DSI into a DDB trap. */ GET_CPUINFO(%r1) + lwz %r30,(PC_TEMPSAVE+CPUSAVE_DAR)(%r1) /* get DAR */ + stw %r30,(PC_DBSAVE +CPUSAVE_DAR)(%r1) /* save DAR */ + lwz %r30,(PC_TEMPSAVE+CPUSAVE_DSISR)(%r1) /* get DSISR */ + lwz %r30,(PC_DBSAVE +CPUSAVE_DSISR)(%r1) /* save DSISR */ lwz %r30,(PC_DISISAVE+CPUSAVE_R28)(%r1) /* get r28 */ stw %r30,(PC_DBSAVE +CPUSAVE_R28)(%r1) /* save r28 */ lwz %r31,(PC_DISISAVE+CPUSAVE_R29)(%r1) /* get r29 */