Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/sys/arch in the initial asm code, save the interesting calle...



details:   https://anonhg.NetBSD.org/src/rev/5cef26994bf8
branches:  trunk
changeset: 333564:5cef26994bf8
user:      chs <chs%NetBSD.org@localhost>
date:      Sun Nov 09 00:05:06 2014 +0000

description:
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.

diffstat:

 sys/arch/macppc/macppc/locore.S |  8 ++++++--
 sys/arch/ofppc/ofppc/locore.S   |  6 +++++-
 2 files changed, 11 insertions(+), 3 deletions(-)

diffs (57 lines):

diff -r b76eb84f1bf9 -r 5cef26994bf8 sys/arch/macppc/macppc/locore.S
--- a/sys/arch/macppc/macppc/locore.S   Sat Nov 08 23:47:15 2014 +0000
+++ b/sys/arch/macppc/macppc/locore.S   Sun Nov 09 00:05:06 2014 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: locore.S,v 1.71 2013/04/11 18:36:44 macallan Exp $     */
+/*     $NetBSD: locore.S,v 1.72 2014/11/09 00:05:06 chs Exp $  */
 
 /*
  * Copyright (C) 1995, 1996 Wolfgang Solfrank.
@@ -82,8 +82,10 @@
        .text
        .globl  __start
 __start:
+       bl      _C_LABEL(ofwinit)               /* init OF */
+       mr      13,6
+       mr      14,7
        bl      _C_LABEL(cpu_model_init)        /* init oeacpufeat */
-       bl      _C_LABEL(ofwinit)               /* init OF */
 
        li      0,0
        mtmsr   0                       /* Disable FPU/MMU/exceptions */
@@ -99,6 +101,8 @@
        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 */
diff -r b76eb84f1bf9 -r 5cef26994bf8 sys/arch/ofppc/ofppc/locore.S
--- a/sys/arch/ofppc/ofppc/locore.S     Sat Nov 08 23:47:15 2014 +0000
+++ b/sys/arch/ofppc/ofppc/locore.S     Sun Nov 09 00:05:06 2014 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: locore.S,v 1.48 2011/06/20 19:56:12 matt Exp $ */
+/*     $NetBSD: locore.S,v 1.49 2014/11/09 00:05:06 chs Exp $  */
 
 /*
  * Copyright (C) 1995, 1996 Wolfgang Solfrank.
@@ -80,6 +80,8 @@
        .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 @@
         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 */



Home | Main Index | Thread Index | Old Index