Oops. OS X doesn't define __WORDSIZE unless you include stdint.h, so apparently the Huffman codec hasn't ever been fully accelerated on 64-bit OS X.

git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/branches/1.4.x@1541 632fc199-4ca6-4c93-a231-07263d6284db
This commit is contained in:
DRC
2015-04-22 08:43:04 +00:00
parent 48dde8baf1
commit e080e5d90b
3 changed files with 15 additions and 0 deletions

View File

@@ -32,6 +32,11 @@ SIMD-enabled libjpeg-turbo MIPS build was executed with the -nosmooth option on
a MIPS machine that lacked DSPr2 support. The MIPS SIMD routines for h2v1 and a MIPS machine that lacked DSPr2 support. The MIPS SIMD routines for h2v1 and
h2v2 merged upsampling were not properly checking for the existence of DSPr2. h2v2 merged upsampling were not properly checking for the existence of DSPr2.
[6] Performance has been improved significantly on 64-bit Mac platforms
(particularly compression performance.) Due to an oversight, the 64-bit
version of the accelerated Huffman codec was not being compiled in when
libjpeg-turbo was built on OS X. Oops.
1.4.0 1.4.0
===== =====

View File

@@ -21,6 +21,7 @@
#include "jpeglib.h" #include "jpeglib.h"
#include "jchuff.h" /* Declarations shared with jcphuff.c */ #include "jchuff.h" /* Declarations shared with jcphuff.c */
#include <limits.h> #include <limits.h>
#include <stdint.h>
/* /*
* NOTE: If USE_CLZ_INTRINSIC is defined, then clz/bsr instructions will be * NOTE: If USE_CLZ_INTRINSIC is defined, then clz/bsr instructions will be
@@ -376,6 +377,10 @@ dump_buffer (working_state * state)
} \ } \
} }
#if !defined(_WIN32) && !defined(__WORDSIZE)
#error __WORDSIZE is not defined
#endif
#if __WORDSIZE==64 || defined(_WIN64) #if __WORDSIZE==64 || defined(_WIN64)
#define EMIT_BITS(code, size) { \ #define EMIT_BITS(code, size) { \

View File

@@ -22,6 +22,7 @@
#include "jdhuff.h" /* Declarations shared with jdphuff.c */ #include "jdhuff.h" /* Declarations shared with jdphuff.c */
#include "jpegcomp.h" #include "jpegcomp.h"
#include "jstdhuff.c" #include "jstdhuff.c"
#include <stdint.h>
/* /*
@@ -419,6 +420,10 @@ jpeg_fill_bit_buffer (bitread_working_state * state,
} \ } \
} }
#if !defined(_WIN32) && !defined(__WORDSIZE)
#error __WORDSIZE is not defined
#endif
#if __WORDSIZE == 64 || defined(_WIN64) #if __WORDSIZE == 64 || defined(_WIN64)
/* Pre-fetch 48 bytes, because the holding register is 64-bit */ /* Pre-fetch 48 bytes, because the holding register is 64-bit */