[flac-dev] PATCH for cpu.c

lvqcl lvqcl.mail at gmail.com
Wed Aug 21 10:58:00 PDT 2013


1) Some time ago all project files for MSVC 6 were removed; it makes sense to remove the code that is necessary only for MSVC 6 and older compilers.

--- a\src\libFLAC\cpu.c	2013-08-13 13:30:24.000000000 +0400
+++ b\src\libFLAC\cpu.c	2013-08-16 21:46:42.177485300 +0400
@@ -285,14 +285,7 @@
  # ifdef USE_TRY_CATCH_FLAVOR
  			_try {
  				__asm {
-#  if _MSC_VER <= 1200
-					/* VC6 assembler doesn't know SSE, have to emit bytecode instead */
-					_emit 0x0F
-					_emit 0x57
-					_emit 0xC0
-#  else
  					xorps xmm0,xmm0
-#  endif
  				}
  			}
  			_except(EXCEPTION_EXECUTE_HANDLER) {
@@ -307,14 +300,7 @@
  			/*  http://www.codeproject.com/cpp/gccasm.asp */
  			/*  http://www.hick.org/~mmiller/msvc_inline_asm.html */
  			__asm {
-#  if _MSC_VER <= 1200
-				/* VC6 assembler doesn't know SSE, have to emit bytecode instead */
-				_emit 0x0F
-				_emit 0x57
-				_emit 0xC0
-#  else
  				xorps xmm0,xmm0
-#  endif
  				inc sse
  				nop
  				nop




2) MSVC produces warnings if FLAC__USE_3DNOW is not defined : "variable "FLAC__CPUINFO_IA32_CPUID_EXTENDED_AMD_xxxxxxx" of static storage duration was declared but never referenced"



--- a\src\libFLAC\cpu.c	2013-08-16 21:46:42.177485300 +0400
+++ b\src\libFLAC\cpu.c	2013-08-16 22:18:34.549866800 +0400
@@ -96,10 +96,12 @@
  /* these are flags in ECX of CPUID AX=00000001 */
  static const unsigned FLAC__CPUINFO_IA32_CPUID_SSE3 = 0x00000001;
  static const unsigned FLAC__CPUINFO_IA32_CPUID_SSSE3 = 0x00000200;
+#ifdef FLAC__USE_3DNOW
  /* these are flags in EDX of CPUID AX=80000001 */
  static const unsigned FLAC__CPUINFO_IA32_CPUID_EXTENDED_AMD_3DNOW = 0x80000000;
  static const unsigned FLAC__CPUINFO_IA32_CPUID_EXTENDED_AMD_EXT3DNOW = 0x40000000;
  static const unsigned FLAC__CPUINFO_IA32_CPUID_EXTENDED_AMD_EXTMMX = 0x00400000;
+#endif


  /*


More information about the flac-dev mailing list