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 */