Source-Changes-HG archive

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

[src/trunk]: src/sys/arch/sh3/sh3 Support __PIC__ build, in order to avoid te...



details:   https://anonhg.NetBSD.org/src/rev/137b4be1aab3
branches:  trunk
changeset: 986293:137b4be1aab3
user:      rin <rin%NetBSD.org@localhost>
date:      Sat Sep 18 06:32:41 2021 +0000

description:
Support __PIC__ build, in order to avoid text relocations for
/usr/tests/net/in_cksum/in_cksum.

Now, all the tests for in_cksum successfully pass for sh[34].

No binary changes for kernel.

diffstat:

 sys/arch/sh3/sh3/cpu_in_cksum.S |  12 ++++++++----
 1 files changed, 8 insertions(+), 4 deletions(-)

diffs (54 lines):

diff -r e6bac51c58f2 -r 137b4be1aab3 sys/arch/sh3/sh3/cpu_in_cksum.S
--- a/sys/arch/sh3/sh3/cpu_in_cksum.S   Sat Sep 18 06:31:46 2021 +0000
+++ b/sys/arch/sh3/sh3/cpu_in_cksum.S   Sat Sep 18 06:32:41 2021 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: cpu_in_cksum.S,v 1.6 2021/09/18 06:31:46 rin Exp $     */
+/*     $NetBSD: cpu_in_cksum.S,v 1.7 2021/09/18 06:32:41 rin Exp $     */
 
 /*-
  * Copyright (c) 2000 SHIMIZU Ryo <ryo%misakimix.org@localhost>
@@ -34,7 +34,7 @@
 #include <machine/asm.h>
 #include "assym.h"
 
-__KERNEL_RCSID(0, "$NetBSD: cpu_in_cksum.S,v 1.6 2021/09/18 06:31:46 rin Exp $")
+__KERNEL_RCSID(0, "$NetBSD: cpu_in_cksum.S,v 1.7 2021/09/18 06:32:41 rin Exp $")
 
 
 #define        reg_tmp0                r0
@@ -98,6 +98,7 @@
  */
 ENTRY(cpu_in_cksum)
        sts.l   pr,@-sp
+       PIC_PROLOGUE(.L_got)
 
        tst     reg_len, reg_len
        bt/s    mbuf_loop_done
@@ -222,6 +223,7 @@
 
 in_cksum_return:
        not     reg_sum,r0
+       PIC_EPILOGUE
        lds.l   @sp+,pr
        rts
         extu.w r0,r0
@@ -233,15 +235,17 @@
 
        mov.l   reg_sum,@-sp    /* save: call clobbered register */
 
-       jsr     @reg_tmp3
+1:     CALL    reg_tmp3
         mov    reg_tmp0,r4
 
        bra     in_cksum_return
         mov.l  @sp+,reg_sum    /* restore */
 
        .align 2
+.L_got:
+       PIC_GOT_DATUM
 .L_printf:
-       .long   _C_LABEL(printf)
+       CALL_DATUM(_C_LABEL(printf), 1b)
 
        .align 2        /* mova target */
 .L_message_out_of_data:



Home | Main Index | Thread Index | Old Index