Make TJ_FORCE* work properly


git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@3998 3789f03b-4d11-0410-bbf8-ca57d06f2519
diff --git a/common/jpeg/jpgtest.cxx b/common/jpeg/jpgtest.cxx
index da0ef93..b1c5e1a 100644
--- a/common/jpeg/jpgtest.cxx
+++ b/common/jpeg/jpgtest.cxx
@@ -322,22 +322,22 @@
 			if(!stricmp(argv[i], "-tile")) dotile=1;
 			if(!stricmp(argv[i], "-forcesse3"))
 			{
-				printf("Using SSE3 code in Intel compressor\n");
+				printf("Using SSE3 code\n");
 				forcesse3=1;
 			}
 			if(!stricmp(argv[i], "-forcesse2"))
 			{
-				printf("Using SSE2 code in Intel compressor\n");
+				printf("Using SSE2 code\n");
 				forcesse2=1;
 			}
 			if(!stricmp(argv[i], "-forcesse"))
 			{
-				printf("Using SSE code in Intel compressor\n");
+				printf("Using SSE code\n");
 				forcesse=1;
 			}
 			if(!stricmp(argv[i], "-forcemmx"))
 			{
-				printf("Using MMX code in Intel compressor\n");
+				printf("Using MMX code\n");
 				forcemmx=1;
 			}
 			if(!stricmp(argv[i], "-fastupsample"))
diff --git a/common/jpeg/simd/jsimd_i386.c b/common/jpeg/simd/jsimd_i386.c
index f5aec18..ed1339b 100644
--- a/common/jpeg/simd/jsimd_i386.c
+++ b/common/jpeg/simd/jsimd_i386.c
@@ -48,16 +48,16 @@
   /* Force different settings through environment variables */
   env = getenv("JSIMD_FORCEMMX");
   if ((env != NULL) && (strcmp(env, "1") == 0))
-    simd_support &= JSIMD_MMX;
+    simd_support = JSIMD_MMX;
   env = getenv("JSIMD_FORCE3DNOW");
   if ((env != NULL) && (strcmp(env, "1") == 0))
-    simd_support &= JSIMD_3DNOW;
+    simd_support = JSIMD_3DNOW|JSIMD_MMX;
   env = getenv("JSIMD_FORCESSE");
   if ((env != NULL) && (strcmp(env, "1") == 0))
-    simd_support &= JSIMD_SSE;
+    simd_support = JSIMD_SSE|JSIMD_MMX;
   env = getenv("JSIMD_FORCESSE2");
   if ((env != NULL) && (strcmp(env, "1") == 0))
-    simd_support &= JSIMD_SSE2;
+    simd_support = JSIMD_SSE2;
 }
 
 GLOBAL(int)
diff --git a/common/jpeg/turbojpegl.c b/common/jpeg/turbojpegl.c
index 68dd35d..2150a2d 100644
--- a/common/jpeg/turbojpegl.c
+++ b/common/jpeg/turbojpegl.c
@@ -149,6 +149,10 @@
 	#error "TurboJPEG requires JPEG colorspace extensions"
 	#endif
 
+	if(flags&TJ_FORCEMMX) putenv("JSIMD_FORCEMMX=1");
+	else if(flags&TJ_FORCESSE) putenv("JSIMD_FORCESSE=1");
+	else if(flags&TJ_FORCESSE2) putenv("JSIMD_FORCESSE2=1");
+
 	if(setjmp(j->jerr.jb))
 	{  // this will execute if LIBJPEG has an error
 		if(row_pointer) free(row_pointer);
@@ -288,6 +292,10 @@
 
 	if(pitch==0) pitch=width*ps;
 
+	if(flags&TJ_FORCEMMX) putenv("JSIMD_FORCEMMX=1");
+	else if(flags&TJ_FORCESSE) putenv("JSIMD_FORCESSE=1");
+	else if(flags&TJ_FORCESSE2) putenv("JSIMD_FORCESSE2=1");
+
 	if(setjmp(j->jerr.jb))
 	{  // this will execute if LIBJPEG has an error
 		if(row_pointer) free(row_pointer);