Add 3DNow SIMD implementation of computationally intensive routines.
git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@3649 3789f03b-4d11-0410-bbf8-ca57d06f2519
diff --git a/common/jpeg/simd/jsimdcfg.inc.h b/common/jpeg/simd/jsimdcfg.inc.h
index 8fcbe47..e1f2bdd 100644
--- a/common/jpeg/simd/jsimdcfg.inc.h
+++ b/common/jpeg/simd/jsimdcfg.inc.h
@@ -76,6 +76,9 @@
%define DCTELEM word ; short
%define SIZEOF_DCTELEM SIZEOF_WORD ; sizeof(DCTELEM)
+%define FAST_FLOAT FP32 ; float
+%define SIZEOF_FAST_FLOAT SIZEOF_FP32 ; sizeof(FAST_FLOAT)
+
; To maximize parallelism, Type MULTIPLIER is changed to short.
;
%define ISLOW_MULT_TYPE word ; must be short
@@ -85,12 +88,16 @@
%define SIZEOF_IFAST_MULT_TYPE SIZEOF_WORD ; sizeof(IFAST_MULT_TYPE)
%define IFAST_SCALE_BITS 2 ; fractional bits in scale factors
+%define FLOAT_MULT_TYPE FP32 ; must be float
+%define SIZEOF_FLOAT_MULT_TYPE SIZEOF_FP32 ; sizeof(FLOAT_MULT_TYPE)
+
;
; -- jsimd.h
;
definev(JSIMD_NONE)
definev(JSIMD_MMX)
+definev(JSIMD_3DNOW)
; Short forms of external names for systems with brain-damaged linkers.
;
@@ -107,12 +114,16 @@
definev(jsimd_h2v1_merged_upsample_mmx)
definev(jsimd_h2v2_merged_upsample_mmx)
definev(jsimd_convsamp_mmx)
+definev(jsimd_convsamp_float_3dnow)
definev(jsimd_fdct_islow_mmx)
definev(jsimd_fdct_ifast_mmx)
+definev(jsimd_fdct_float_3dnow)
definev(jsimd_quantize_mmx)
+definev(jsimd_quantize_float_3dnow)
definev(jsimd_idct_2x2_mmx)
definev(jsimd_idct_4x4_mmx)
definev(jsimd_idct_islow_mmx)
definev(jsimd_idct_ifast_mmx)
+definev(jsimd_idct_float_3dnow)
#endif /* NEED_SHORT_EXTERNAL_NAMES */