svn commit: r190066 - in stable/7/sys: . contrib/pf dev/ath/ath_hal dev/cxgb sparc64/sparc64

Marius Strobl marius at FreeBSD.org
Thu Mar 19 08:30:46 PDT 2009


Author: marius
Date: Thu Mar 19 15:30:45 2009
New Revision: 190066
URL: http://svn.freebsd.org/changeset/base/190066

Log:
  MFC: r185006
  
  Micro-optimize spitfire_block_{copy,zero}():
  - Predict the loop as taken as it's more likely that there's still
    data to copy and memory to zero respectively.
  - Don't waste the delay slot.

Modified:
  stable/7/sys/   (props changed)
  stable/7/sys/contrib/pf/   (props changed)
  stable/7/sys/dev/ath/ath_hal/   (props changed)
  stable/7/sys/dev/cxgb/   (props changed)
  stable/7/sys/sparc64/sparc64/support.S

Modified: stable/7/sys/sparc64/sparc64/support.S
==============================================================================
--- stable/7/sys/sparc64/sparc64/support.S	Thu Mar 19 15:21:04 2009	(r190065)
+++ stable/7/sys/sparc64/sparc64/support.S	Thu Mar 19 15:30:45 2009	(r190066)
@@ -647,7 +647,7 @@ ENTRY(spitfire_block_copy)
 	stda	%f32, [%o1] %asi
 	add	%o0, 64, %o0
 	sub	%o2, 64, %o2
-	ba	%xcc, 2b
+	ba,pt	%xcc, 2b
 	 add	%o1, 64, %o1
 
 3:	membar	#Sync
@@ -655,10 +655,8 @@ ENTRY(spitfire_block_copy)
 	stda	%f16, [%o1] %asi
 	membar	#Sync
 
-	wr	%g0, 0, %fprs
-
 	retl
-	 nop
+	 wr	%g0, 0, %fprs
 END(spitfire_block_copy)
 
 /*
@@ -704,14 +702,12 @@ ENTRY(spitfire_block_zero)
 	stda	%f0, [%o0 + 128] %asi
 	stda	%f0, [%o0 + 192] %asi
 	sub	%o1, 256, %o1
-	brnz	%o1, 1b
+	brnz,pt	%o1, 1b
 	 add	%o0, 256, %o0
 	membar	#Sync
 
-	wr	%g0, 0, %fprs
-
 	retl
-	 nop
+	 wr	%g0, 0, %fprs
 END(spitfire_block_zero)
 
 	.globl	fpu_fault_end
@@ -806,7 +802,6 @@ ENTRY(bintr)
 ENTRY(eintr)
 	nop
 
-
 /*
  * XXX including sys/gmon.h in genassym.c is not possible due to uintfptr_t
  * badness.


More information about the svn-src-stable-7 mailing list