Module Name: src
Committed By: snj
Date: Wed Dec 3 23:02:24 UTC 2014
Modified Files:
src/sys/arch/macppc/macppc [netbsd-7]: locore.S
src/sys/arch/ofppc/ofppc [netbsd-7]: locore.S
Log Message:
Pull up following revision(s) (requested by chs in ticket #291):
sys/arch/ofppc/ofppc/locore.S: revision 1.49
sys/arch/macppc/macppc/locore.S: revision 1.72
in the initial asm code, save the interesting caller-saved registers
(containing "arg" and "len") across function calls to C code.
fixes kernels built with gcc 4.8.
To generate a diff of this commit:
cvs rdiff -u -r1.71 -r1.71.10.1 src/sys/arch/macppc/macppc/locore.S
cvs rdiff -u -r1.48 -r1.48.28.1 src/sys/arch/ofppc/ofppc/locore.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/macppc/macppc/locore.S
diff -u src/sys/arch/macppc/macppc/locore.S:1.71 src/sys/arch/macppc/macppc/locore.S:1.71.10.1
--- src/sys/arch/macppc/macppc/locore.S:1.71 Thu Apr 11 18:36:44 2013
+++ src/sys/arch/macppc/macppc/locore.S Wed Dec 3 23:02:24 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: locore.S,v 1.71 2013/04/11 18:36:44 macallan Exp $ */
+/* $NetBSD: locore.S,v 1.71.10.1 2014/12/03 23:02:24 snj Exp $ */
/*
* Copyright (C) 1995, 1996 Wolfgang Solfrank.
@@ -82,8 +82,10 @@ _C_LABEL(kernel_text):
.text
.globl __start
__start:
- bl _C_LABEL(cpu_model_init) /* init oeacpufeat */
bl _C_LABEL(ofwinit) /* init OF */
+ mr 13,6
+ mr 14,7
+ bl _C_LABEL(cpu_model_init) /* init oeacpufeat */
li 0,0
mtmsr 0 /* Disable FPU/MMU/exceptions */
@@ -99,6 +101,8 @@ __start:
addi 4,4,_C_LABEL(end)@l
#if NKSYMS || defined(DDB) || defined(MODULAR)
/* skip symbol table */
+ mr 6,13
+ mr 7,14
cmpwi 6,0
beq 1f
add 9,6,7 /* r9 = args + l */
Index: src/sys/arch/ofppc/ofppc/locore.S
diff -u src/sys/arch/ofppc/ofppc/locore.S:1.48 src/sys/arch/ofppc/ofppc/locore.S:1.48.28.1
--- src/sys/arch/ofppc/ofppc/locore.S:1.48 Mon Jun 20 19:56:12 2011
+++ src/sys/arch/ofppc/ofppc/locore.S Wed Dec 3 23:02:24 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: locore.S,v 1.48 2011/06/20 19:56:12 matt Exp $ */
+/* $NetBSD: locore.S,v 1.48.28.1 2014/12/03 23:02:24 snj Exp $ */
/*
* Copyright (C) 1995, 1996 Wolfgang Solfrank.
@@ -80,6 +80,8 @@ _C_LABEL(kernel_text):
.text
.globl __start
__start:
+ mr %r13,%r6
+ mr %r14,%r7
bl _C_LABEL(ofwinit) /* init our OF hooks */
li %r0,0
@@ -104,6 +106,8 @@ __start:
addi %r4,%r4,_C_LABEL(end)@l
#if NKSYMS || defined(DDB) || defined(MODULAR)
/* skip symbol table */
+ mr %r6,%r13
+ mr %r7,%r14
cmpwi %r6,0
beq 1f
add %r9,%r6,%r7 /* r9 = args + l */