changeset 2478:42d5846eeb51

faster dering
author michael
date Fri, 26 Oct 2001 09:34:41 +0000
parents 830c0e171d7d
children 93a7eef13072
files postproc/postprocess.c postproc/postprocess_template.c
diffstat 2 files changed, 26 insertions(+), 18 deletions(-) [+]
line wrap: on
line diff
--- a/postproc/postprocess.c	Fri Oct 26 00:35:41 2001 +0000
+++ b/postproc/postprocess.c	Fri Oct 26 09:34:41 2001 +0000
@@ -1978,16 +1978,19 @@
 		"movq " #lx ", " #t1 "				\n\t" /* src[-1] */\
 		PAVGB(t0, lx)				              /* (src[-1] + src[+1])/2 */\
 		PAVGB(sx, lx)				      /* (src[-1] + 2src[0] + src[+1])/4 */\
-		"psubusb temp0, " #t1 "				\n\t"\
-		"psubusb temp0, " #t0 "				\n\t"\
-		"psubusb temp0, " #sx "				\n\t"\
-		"pcmpeqb b00, " #t1 "				\n\t" /* src[-1] > a ? 0 : -1*/\
-		"pcmpeqb b00, " #t0 "				\n\t" /* src[+1] > a ? 0 : -1*/\
-		"pcmpeqb b00, " #sx "				\n\t" /* src[0]  > a ? 0 : -1*/\
+		PAVGB(lx, pplx)					     \
+		"movq " #lx ", temp1				\n\t"\
+		"movq temp0, " #lx "				\n\t"\
+		"psubusb " #lx ", " #t1 "				\n\t"\
+		"psubusb " #lx ", " #t0 "				\n\t"\
+		"psubusb " #lx ", " #sx "				\n\t"\
+		"movq b00, " #lx "				\n\t"\
+		"pcmpeqb " #lx ", " #t1 "				\n\t" /* src[-1] > a ? 0 : -1*/\
+		"pcmpeqb " #lx ", " #t0 "				\n\t" /* src[+1] > a ? 0 : -1*/\
+		"pcmpeqb " #lx ", " #sx "				\n\t" /* src[0]  > a ? 0 : -1*/\
 		"paddb " #t1 ", " #t0 "				\n\t"\
 		"paddb " #t0 ", " #sx "				\n\t"\
 \
-		PAVGB(lx, pplx)					     \
 		PAVGB(plx, pplx)				      /* filtered */\
 		"movq " #dst ", " #t0 "				\n\t" /* dst */\
 		"movq " #t0 ", " #t1 "				\n\t" /* dst */\
@@ -1999,11 +2002,12 @@
 		"paddb " #psx ", " #ppsx "			\n\t"\
 	"#paddb b02, " #ppsx "				\n\t"\
 		"pand b08, " #ppsx "				\n\t"\
-		"pcmpeqb b00, " #ppsx "				\n\t"\
+		"pcmpeqb " #lx ", " #ppsx "				\n\t"\
 		"pand " #ppsx ", " #pplx "			\n\t"\
 		"pandn " #dst ", " #ppsx "			\n\t"\
 		"por " #pplx ", " #ppsx "				\n\t"\
-		"movq " #ppsx ", " #dst "			\n\t"
+		"movq " #ppsx ", " #dst "			\n\t"\
+		"movq temp1, " #lx "				\n\t"
 
 /*
 0000000
--- a/postproc/postprocess_template.c	Fri Oct 26 00:35:41 2001 +0000
+++ b/postproc/postprocess_template.c	Fri Oct 26 09:34:41 2001 +0000
@@ -1978,16 +1978,19 @@
 		"movq " #lx ", " #t1 "				\n\t" /* src[-1] */\
 		PAVGB(t0, lx)				              /* (src[-1] + src[+1])/2 */\
 		PAVGB(sx, lx)				      /* (src[-1] + 2src[0] + src[+1])/4 */\
-		"psubusb temp0, " #t1 "				\n\t"\
-		"psubusb temp0, " #t0 "				\n\t"\
-		"psubusb temp0, " #sx "				\n\t"\
-		"pcmpeqb b00, " #t1 "				\n\t" /* src[-1] > a ? 0 : -1*/\
-		"pcmpeqb b00, " #t0 "				\n\t" /* src[+1] > a ? 0 : -1*/\
-		"pcmpeqb b00, " #sx "				\n\t" /* src[0]  > a ? 0 : -1*/\
+		PAVGB(lx, pplx)					     \
+		"movq " #lx ", temp1				\n\t"\
+		"movq temp0, " #lx "				\n\t"\
+		"psubusb " #lx ", " #t1 "				\n\t"\
+		"psubusb " #lx ", " #t0 "				\n\t"\
+		"psubusb " #lx ", " #sx "				\n\t"\
+		"movq b00, " #lx "				\n\t"\
+		"pcmpeqb " #lx ", " #t1 "				\n\t" /* src[-1] > a ? 0 : -1*/\
+		"pcmpeqb " #lx ", " #t0 "				\n\t" /* src[+1] > a ? 0 : -1*/\
+		"pcmpeqb " #lx ", " #sx "				\n\t" /* src[0]  > a ? 0 : -1*/\
 		"paddb " #t1 ", " #t0 "				\n\t"\
 		"paddb " #t0 ", " #sx "				\n\t"\
 \
-		PAVGB(lx, pplx)					     \
 		PAVGB(plx, pplx)				      /* filtered */\
 		"movq " #dst ", " #t0 "				\n\t" /* dst */\
 		"movq " #t0 ", " #t1 "				\n\t" /* dst */\
@@ -1999,11 +2002,12 @@
 		"paddb " #psx ", " #ppsx "			\n\t"\
 	"#paddb b02, " #ppsx "				\n\t"\
 		"pand b08, " #ppsx "				\n\t"\
-		"pcmpeqb b00, " #ppsx "				\n\t"\
+		"pcmpeqb " #lx ", " #ppsx "				\n\t"\
 		"pand " #ppsx ", " #pplx "			\n\t"\
 		"pandn " #dst ", " #ppsx "			\n\t"\
 		"por " #pplx ", " #ppsx "				\n\t"\
-		"movq " #ppsx ", " #dst "			\n\t"
+		"movq " #ppsx ", " #dst "			\n\t"\
+		"movq temp1, " #lx "				\n\t"
 
 /*
 0000000