Source-Changes-HG archive

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

[src/trunk]: src/sys/dev/arcbios Avoid use of CALLFRAME_S0 on calling ARC BIO...



details:   https://anonhg.NetBSD.org/src/rev/7eccc1a6122e
branches:  trunk
changeset: 972556:7eccc1a6122e
user:      tsutsui <tsutsui%NetBSD.org@localhost>
date:      Sat May 30 03:16:31 2020 +0000

description:
Avoid use of CALLFRAME_S0 on calling ARC BIOS functions.

On O32 and O64, 0(sp) could be clobbered by callee functions
to save argument a0, so we can't use it to save caller registers.
Use CALLFRAME_SP instead because a frame pointer is not used here.
Maybe all other references of CALLFRAME_S0 might also be problematic
on O32.  Discussed with soda@.

diffstat:

 sys/dev/arcbios/arcbios_calls.S |  12 ++++++------
 1 files changed, 6 insertions(+), 6 deletions(-)

diffs (56 lines):

diff -r ddc5b543f624 -r 7eccc1a6122e sys/dev/arcbios/arcbios_calls.S
--- a/sys/dev/arcbios/arcbios_calls.S   Sat May 30 03:12:52 2020 +0000
+++ b/sys/dev/arcbios/arcbios_calls.S   Sat May 30 03:16:31 2020 +0000
@@ -32,7 +32,7 @@
 
 #include "assym.h"
 
-RCSID("$NetBSD: arcbios_calls.S,v 1.3 2020/05/30 02:56:54 tsutsui Exp $")
+RCSID("$NetBSD: arcbios_calls.S,v 1.4 2020/05/30 03:16:31 tsutsui Exp $")
 
        .text
        .set noreorder
@@ -45,14 +45,14 @@
 
 #define        CALLFRAME2_SIZ  (CALLFRAME_SIZ + 16)
 #define        CALLFRAME2_RA   (CALLFRAME_RA + 16)
-#define        CALLFRAME2_S0   (CALLFRAME_S0 + 16)
+#define        CALLFRAME2_SP   (CALLFRAME_SP + 16)
 
 #ifndef _STANDALONE
 NESTED(arcbios_4orless_args, CALLFRAME_SIZ, ra)
        PTR_SUBU sp, CALLFRAME_SIZ
 
        REG_S   ra, CALLFRAME_RA(sp)
-       REG_S   s0, CALLFRAME_S0(sp)
+       REG_S   s0, CALLFRAME_SP(sp)
 
        PTR_L   t9, _C_LABEL(ARCBIOS)
        PTR_ADDU t9, t0
@@ -67,7 +67,7 @@
        move    MIPS_CURLWP, s0
 
        REG_L   ra, CALLFRAME_RA(sp)
-       REG_L   s0, CALLFRAME_S0(sp)
+       REG_L   s0, CALLFRAME_SP(sp)
 
        jr      ra
         PTR_ADDU sp, CALLFRAME_SIZ
@@ -77,7 +77,7 @@
        PTR_SUBU sp, CALLFRAME2_SIZ
 
        REG_S   ra, CALLFRAME2_RA(sp)
-       REG_S   s0, CALLFRAME2_S0(sp)
+       REG_S   s0, CALLFRAME2_SP(sp)
 
 #ifdef __mips_o32
        INT_L   ta0, CALLFRAME2_SIZ+16(sp)      # load 5th arg
@@ -108,7 +108,7 @@
        move    MIPS_CURLWP, s0
 
        REG_L   ra, CALLFRAME2_RA(sp)
-       REG_L   s0, CALLFRAME2_S0(sp)
+       REG_L   s0, CALLFRAME2_SP(sp)
 
        jr      ra
         PTR_ADDU sp, CALLFRAME2_SIZ



Home | Main Index | Thread Index | Old Index