Module Name: src Committed By: kiyohara Date: Tue Jun 28 11:42:51 UTC 2011
Modified Files: src/sys/arch/powerpc/ibm4xx: trap_subr.S Log Message: Must need srr0 and srr1 in FRAME_SETUP and trapexit. parentheses is good. Remove no-need 'addi FRAME_TF'. To generate a diff of this commit: cvs rdiff -u -r1.17 -r1.18 src/sys/arch/powerpc/ibm4xx/trap_subr.S Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/arch/powerpc/ibm4xx/trap_subr.S diff -u src/sys/arch/powerpc/ibm4xx/trap_subr.S:1.17 src/sys/arch/powerpc/ibm4xx/trap_subr.S:1.18 --- src/sys/arch/powerpc/ibm4xx/trap_subr.S:1.17 Fri Jun 24 03:53:46 2011 +++ src/sys/arch/powerpc/ibm4xx/trap_subr.S Tue Jun 28 11:42:51 2011 @@ -1,4 +1,4 @@ -/* $NetBSD: trap_subr.S,v 1.17 2011/06/24 03:53:46 kiyohara Exp $ */ +/* $NetBSD: trap_subr.S,v 1.18 2011/06/28 11:42:51 kiyohara Exp $ */ /* * Copyright 2001 Wasabi Systems, Inc. @@ -208,6 +208,9 @@ stmw %r28,CI_DDBSAVE(%r1) /* free r28-r31 */ mflr %r28 /* save LR */ mfcr %r29 /* save CR */ + mfsrr0 %r30; + mfsrr1 %r31; + stmw %r30,(CI_DDBSAVE+CPUSAVE_SRR0)(%r1); /* save srr0/srr1 */ lis %r1,ddbstk+INTSTK-CALLFRAMELEN@ha /* get new SP */ addi %r1,%r1,ddbstk+INTSTK-CALLFRAMELEN@l bla ddbtrap @@ -228,6 +231,9 @@ stmw %r28,CI_IPKDBSAVE(%r1) /* free r28-r31 */ mflr %r28 /* save LR */ mfcr %r29 /* save CR */ + mfsrr0 %r30; + mfsrr1 %r31; + stmw %r30,(CI_IPKDBSAVE+CPUSAVE_SRR0)(%r1); /* save srr0/srr1 */ lis %r1,ipkdbstk+INTSTK-CALLFRAMELEN@ha /* get new SP */ addi %r1,%r1,ipkdbstk+INTSTK-CALLFRAMELEN@l bla ipkdbtrap @@ -516,12 +522,12 @@ mtsprg1 %r1 GET_CPUINFO(%r4) mfmsr %r3 - stw %r3,CI_DDBSAVE+CPUSAVE_SRR1(%r4) + stw %r3,(CI_DDBSAVE+CPUSAVE_SRR1)(%r4) wrteei 0 /* disable interrupts */ isync stmw %r28,CI_DDBSAVE(%r4) mflr %r28 - stw %r28,CI_DDBSAVE+CPUSAVE_SRR0(%r4) + stw %r28,(CI_DDBSAVE+CPUSAVE_SRR0)(%r4) li %r29,EXC_BPT mtlr %r29 mfcr %r29 @@ -535,7 +541,6 @@ addi %r3,%r1,FRAME_TF bl _C_LABEL(ddb_trap_glue) or. %r3,%r3,%r3 - addi %r3,%r1,FRAME_TF beq trapagain b trapexit #endif /* DDB || KGDB */