Module Name:    src
Committed By:   matt
Date:           Wed Mar  5 02:12:24 UTC 2014

Modified Files:
        src/sys/arch/arm/arm32: exception.S

Log Message:
push/pop unsaved registers before using printf.


To generate a diff of this commit:
cvs rdiff -u -r1.20 -r1.21 src/sys/arch/arm/arm32/exception.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/arm/arm32/exception.S
diff -u src/sys/arch/arm/arm32/exception.S:1.20 src/sys/arch/arm/arm32/exception.S:1.21
--- src/sys/arch/arm/arm32/exception.S:1.20	Mon Dec  2 18:36:10 2013
+++ src/sys/arch/arm/arm32/exception.S	Wed Mar  5 02:12:24 2014
@@ -1,4 +1,4 @@
-/*	$NetBSD: exception.S,v 1.20 2013/12/02 18:36:10 joerg Exp $	*/
+/*	$NetBSD: exception.S,v 1.21 2014/03/05 02:12:24 matt Exp $	*/
 
 /*
  * Copyright (c) 1994-1997 Mark Brinicombe.
@@ -51,7 +51,7 @@
 
 #include <arm/locore.h>
 
-	RCSID("$NetBSD: exception.S,v 1.20 2013/12/02 18:36:10 joerg Exp $")
+	RCSID("$NetBSD: exception.S,v 1.21 2014/03/05 02:12:24 matt Exp $")
 
 	.text	
 	.align	0
@@ -178,11 +178,13 @@ ASEND(data_abort_entry)
  *	it like a Data Abort.
  */
 ASENTRY_NP(address_exception_entry)
+	push	{r0-r3,ip,lr}
 	mrs	r1, cpsr
 	mrs	r2, spsr
 	mov	r3, lr
 	adr	r0, .Laddress_exception_msg
 	bl	_C_LABEL(printf)	/* XXX CLOBBERS LR!! */
+	pop	{r0-r3,ip,lr}
 	b	_ASM_LABEL(data_abort_entry)
 .Laddress_exception_msg:
 	.asciz	"Address Exception CPSR=0x%08x SPSR=0x%08x LR=0x%08x\n"

Reply via email to