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 sh3_vector_tlbmiss: don't waste perfectly g...



details:   https://anonhg.NetBSD.org/src/rev/2b17a204b9dc
branches:  trunk
changeset: 588104:2b17a204b9dc
user:      uwe <uwe%NetBSD.org@localhost>
date:      Wed Feb 08 02:19:57 2006 +0000

description:
sh3_vector_tlbmiss: don't waste perfectly good delay slots.

diffstat:

 sys/arch/sh3/sh3/exception_vector.S |  13 ++++++-------
 1 files changed, 6 insertions(+), 7 deletions(-)

diffs (44 lines):

diff -r d83ec1148d7e -r 2b17a204b9dc sys/arch/sh3/sh3/exception_vector.S
--- a/sys/arch/sh3/sh3/exception_vector.S       Wed Feb 08 00:54:33 2006 +0000
+++ b/sys/arch/sh3/sh3/exception_vector.S       Wed Feb 08 02:19:57 2006 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: exception_vector.S,v 1.17 2006/02/08 00:32:06 uwe Exp $        */
+/*     $NetBSD: exception_vector.S,v 1.18 2006/02/08 02:19:57 uwe Exp $        */
 
 /*-
  * Copyright (c) 2002 The NetBSD Foundation, Inc.
@@ -45,7 +45,7 @@
 #include <sh3/mmu_sh3.h>
 #include <sh3/mmu_sh4.h>
 
-__KERNEL_RCSID(0, "$NetBSD: exception_vector.S,v 1.17 2006/02/08 00:32:06 uwe Exp $")
+__KERNEL_RCSID(0, "$NetBSD: exception_vector.S,v 1.18 2006/02/08 02:19:57 uwe Exp $")
 
 
 /*
@@ -166,8 +166,8 @@
        cmp/eq  r2,     r3
        bf/s    4b
         add    #1,     r2
-       bra     6f
-        nop
+       bra     7f              /* pull insn at 6f into delay slot */
+        mov    #(SH3_EXPEVT & 0xff), r0
 5:     mov.l   @r1,    r2      /* md_upte.data: u-area PTE */
        mov     #(SH3_PTEL & 0xff), r1
        mov.l   r2,     @r1
@@ -177,12 +177,11 @@
        and     r2,     r0
        mov.l   r0,     @r1     /* ASID 0 */
        ldtlb
-       mov.l   r2,     @r1     /* restore ASID */
        bra     3f
-        nop
+        mov.l  r2,     @r1     /* restore ASID */
 #endif /* !P1_STACK */
 6:     mov     #(SH3_EXPEVT & 0xff), r0
-       mov.l   @r0,    r0
+7:     mov.l   @r0,    r0
        mov.l   r0,     @(TF_EXPEVT, r14) /* trapframe->tf_expevt = EXPEVT */
        mov.l   2f,     r0
        mov.l   @r0,    r4      /* 1st arg */



Home | Main Index | Thread Index | Old Index