From f64b36fd5744abaca277cb01811b02067200f5ff Mon Sep 17 00:00:00 2001 From: DRC Date: Wed, 22 Apr 2015 08:43:04 +0000 Subject: [PATCH] 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 --- ChangeLog.txt | 5 +++++ jchuff.c | 5 +++++ jdhuff.c | 5 +++++ 3 files changed, 15 insertions(+) diff --git a/ChangeLog.txt b/ChangeLog.txt index 139bcca..3711188 100644 --- a/ChangeLog.txt +++ b/ChangeLog.txt @@ -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 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 ===== diff --git a/jchuff.c b/jchuff.c index a5c0a1f..fe03591 100644 --- a/jchuff.c +++ b/jchuff.c @@ -21,6 +21,7 @@ #include "jpeglib.h" #include "jchuff.h" /* Declarations shared with jcphuff.c */ #include +#include /* * 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) #define EMIT_BITS(code, size) { \ diff --git a/jdhuff.c b/jdhuff.c index 7dc1328..583ee11 100644 --- a/jdhuff.c +++ b/jdhuff.c @@ -22,6 +22,7 @@ #include "jdhuff.h" /* Declarations shared with jdphuff.c */ #include "jpegcomp.h" #include "jstdhuff.c" +#include /* @@ -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) /* Pre-fetch 48 bytes, because the holding register is 64-bit */ -- 2.40.0