Module Name:    src
Committed By:   maya
Date:           Fri Nov 11 16:49:30 UTC 2016

Modified Files:
        src/sys/arch/mips/mips: spl.S

Log Message:
switch post-mfc0 call "hazard barrier" from NOP_L to MFC0_HAZARD.

this means it will be applied if MIPS3 too, and now with the prior
commit, it will be a superscalar nop, not just a plain nop.


To generate a diff of this commit:
cvs rdiff -u -r1.13 -r1.14 src/sys/arch/mips/mips/spl.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/mips/mips/spl.S
diff -u src/sys/arch/mips/mips/spl.S:1.13 src/sys/arch/mips/mips/spl.S:1.14
--- src/sys/arch/mips/mips/spl.S:1.13	Fri Nov 11 16:45:14 2016
+++ src/sys/arch/mips/mips/spl.S	Fri Nov 11 16:49:30 2016
@@ -1,4 +1,4 @@
-/*	$NetBSD: spl.S,v 1.13 2016/11/11 16:45:14 maya Exp $	*/
+/*	$NetBSD: spl.S,v 1.14 2016/11/11 16:49:30 maya Exp $	*/
 
 /*-
  * Copyright (c) 2009, 2010 The NetBSD Foundation, Inc.
@@ -38,7 +38,7 @@
 #include <mips/asm.h>
 #include <mips/cpuregs.h>
 
-RCSID("$NetBSD: spl.S,v 1.13 2016/11/11 16:45:14 maya Exp $")
+RCSID("$NetBSD: spl.S,v 1.14 2016/11/11 16:49:30 maya Exp $")
 
 #include "assym.h"
 
@@ -76,7 +76,7 @@ _splraise:
 	bnez	v1, 1f				# yes, don't change.
 	 nop					#  branch delay
 	mfc0	v1, MIPS_COP_0_STATUS		# fetch status register
-	NOP_L					# load delay
+	MFC0_HAZARD				# load delay
 	or	v1, MIPS_INT_MASK		# enable all interrupts
 	xor	a0, v1				# disable ipl's masked bits
 	DYNAMIC_STATUS_MASK(a0,v0)		# machine dependent masking
@@ -101,7 +101,7 @@ _splraise:
 1:
 #ifdef PARANOIA
 	mfc0	v1, MIPS_COP_0_STATUS
-	NOP_L					# load delay
+	MFC0_HAZARD				# load delay
 	and	a0, v1				# a1 contains bit that MBZ
 3:	bnez	a0, 3b				# loop forever
 	 nop					#  branch delay
@@ -167,7 +167,7 @@ STATIC_LEAF(_splsw_spl0)
 	or	v1, MIPS_SR_INT_IE		# mask sure interrupts are on
 	xor	v1, MIPS_INT_MASK		# invert
 	mfc0	a0, MIPS_COP_0_STATUS
-	NOP_L					# load delay
+	MFC0_HAZARD				# load delay
 	or	v0, a0, v1
 	DYNAMIC_STATUS_MASK(v0,t0)		# machine dependent masking
 	mtc0	zero, MIPS_COP_0_STATUS		## disable interrupts
@@ -186,7 +186,7 @@ STATIC_LEAF(_splsw_setsoftintr)
 	mtc0	zero, MIPS_COP_0_STATUS		# disable interrupts (2 cycles)
 	COP0_SYNC
 	mfc0	v0, MIPS_COP_0_CAUSE		# fetch cause register
-	NOP_L					# load delay
+	MFC0_HAZARD				# load delay
 	or	v0, v0, a0			# set soft intr. bits
 	mtc0	v0, MIPS_COP_0_CAUSE		# store back
 	COP0_SYNC
@@ -228,7 +228,7 @@ STATIC_XLEAF(_splsw_splhigh_noprof)
 	beq	v0, a1, 1f			# don't do anything if IPL_HIGH
 	 nop					# branch delay
 	mfc0	v1, MIPS_COP_0_STATUS		# fetch status register
-	NOP_L					# load delay
+	MFC0_HAZARD				# load delay
 	and	a0, v1, MIPS_INT_MASK		# select all interrupts
 	xor	a0, v1				# clear all interrupts
 	DYNAMIC_STATUS_MASK(a0,a2)		# machine dependent masking
@@ -306,7 +306,7 @@ END(_splsw_splsoftclock)
 
 STATIC_LEAF(_splsw_splintr)
 	mfc0	ta1, MIPS_COP_0_CAUSE		# get active interrupts
-	NOP_L					# load delay
+	MFC0_HAZARD				# load delay
 						# restrict to hard int bits
 	and	v1, ta1, MIPS_HARD_INT_MASK	# now have pending interrupts
 	li	v0, IPL_NONE			#  return IPL_NONE

Reply via email to