aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordcommander <dcommander@632fc199-4ca6-4c93-a231-07263d6284db>2015-01-21 17:41:35 +0000
committerdcommander <dcommander@632fc199-4ca6-4c93-a231-07263d6284db>2015-01-21 17:41:35 +0000
commit8edc30dcf0a2e90cc8f799da855aadd5f6402daf (patch)
tree0ea121800356c7e67c0b855ec387a208b7fc54f7
parenta5a5f1b6817435469c41eeb17a3163d3f3360d76 (diff)
Oops. The MIPS SIMD implementations of h2v1 and h2v2 upsampling were not checking for DSPr2 support, so running 'djpeg -nosmooth' on a non-DSPr2-enabled platform caused an "illegal instruction" error.
git-svn-id: svn://svn.code.sf.net/p/libjpeg-turbo/code/trunk@1522 632fc199-4ca6-4c93-a231-07263d6284db
-rw-r--r--ChangeLog.txt5
-rw-r--r--simd/jsimd_mips.c4
2 files changed, 9 insertions, 0 deletions
diff --git a/ChangeLog.txt b/ChangeLog.txt
index 822effe..4a147a9 100644
--- a/ChangeLog.txt
+++ b/ChangeLog.txt
@@ -38,6 +38,11 @@ which speeds up the compression of RGB and CMYK JPEGs by 5-20% when using
64-bit code and 0-3% when using 32-bit code, and the decompression of those
images by 10-30% when using 64-bit code and 3-12% when using 32-bit code.
+[5] Fixed an "illegal instruction" error that occurred when djpeg from a
+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.
+
1.4.0
=====
diff --git a/simd/jsimd_mips.c b/simd/jsimd_mips.c
index abcd19f..cf87b32 100644
--- a/simd/jsimd_mips.c
+++ b/simd/jsimd_mips.c
@@ -562,6 +562,8 @@ jsimd_h2v1_fancy_upsample (j_decompress_ptr cinfo,
GLOBAL(int)
jsimd_can_h2v2_merged_upsample (void)
{
+ init_simd();
+
if (BITS_IN_JSAMPLE != 8)
return 0;
if (sizeof(JDIMENSION) != 4)
@@ -576,6 +578,8 @@ jsimd_can_h2v2_merged_upsample (void)
GLOBAL(int)
jsimd_can_h2v1_merged_upsample (void)
{
+ init_simd();
+
if (BITS_IN_JSAMPLE != 8)
return 0;
if (sizeof(JDIMENSION) != 4)