6eb7d3798b5a79347c62825fc4c16f7ce673bdd0 |
|
16-Oct-2016 |
Alex Naidis <alex.naidis@linux.com> |
libjpeg-turbo: Upgrade to 1.5.1 The changes from 1.4.2 to 1.5.1 include a big amount of fixes and huge performance improvements. As highlights there is a full ARM 64-bit (ARMv8) NEON SIMD implementation which improves compression of full-color JPEGs by about 2-2.5x on average on Cortex-A53 and Cortex-A57 cores. Also SIMD acceleration for Huffman encoding on NEON-capable ARM 32-bit and 64-bit platforms was added. Performance on x86/x86_64 was also improved by adding better optimized SSE2 routines. For the full changelog, please see the ChangeLog.md file. Partial decoding optimizations, the security fix to adress b/27494207 and the fix for the AARCH64 conformance issueare present in the release. The README.android file was edited to reflect this. The configuration files were regenerated and all Android specific changes were applied. BUG:28268702 Change-Id: I538291d894df1da01d3f733771647df1fb61ec42 Signed-off-by: Alex Naidis <alex.naidis@linux.com>
/external/libjpeg-turbo/simd/jsimd_arm64_neon.S
|
e7bf3c56cadcd76c624a9bd1798d64c03c2a1210 |
|
13-Jul-2016 |
Matt Sarett <msarett@google.com> |
Cherry-pick of "Fix AArch64 ABI conformance issue in SIMD code" In the AArch64 ABI, the high (unused) DWORD of a 32-bit argument's register is undefined, so it was incorrect to use 64-bit instructions to transfer a JDIMENSION argument in the 64-bit NEON SIMD functions. The code worked thus far only because the existing compiler optimizers weren't smart enough to do anything else with the register in question, so the upper 32 bits happened to be all zeroes. The latest builds of Clang/LLVM have a smarter optimizer, and under certain circumstances, it will attempt to load-combine adjacent 32-bit integers from one of the libjpeg structures into a single 64-bit integer and pass that 64-bit integer as a 32-bit argument to one of the SIMD functions (which is allowed by the ABI, since the upper 32 bits of the 32-bit argument's register are undefined.) This caused the libjpeg-turbo regression tests to crash. This patch tries to use the Wn registers whenever possible. Otherwise, it uses a zero-extend instruction to avoid using the upper 32 bits of the 64-bit registers, which are not guaranteed to be valid for 32-bit arguments. Based on sebpop@1fbae13 Closes #91. Refer also to android-ndk/ndk#110 and https://llvm.org/bugs/show_bug.cgi?id=28393 BUG:31780857 Change-Id: Id80143ac13ba8d427196daf04f00be2214f85c86
/external/libjpeg-turbo/simd/jsimd_arm64_neon.S
|
d6d1b51c5f134ff25669fda54cf7777664242b3f |
|
14-Dec-2015 |
DRC <information@libjpeg-turbo.org> |
Remove unnecessary .arch directive in ARM64 code This directive was preventing the code from assembling using the integrated assembler in clang. Fixes Upstream-Issue-33 https://github.com/libjpeg-turbo/libjpeg-turbo/issues/33 https://github.com/libjpeg-turbo/libjpeg-turbo/commit/d70a5c12fcb72443483456a2cc8dd18a4c238618 Change-Id: I9e361d509be759cd45ed8d8061f939059ad5fe4a
/external/libjpeg-turbo/simd/jsimd_arm64_neon.S
|
62999d7708592b9c59c3d9c576dd769db73df085 |
|
19-Dec-2014 |
DRC <dcommander@users.sourceforge.net> |
Modify the ARM64 assembly file so that it uses only syntax that the clang assembler in XCode 5.x can understand. These changes should all be cosmetic in nature-- they do not change the meaning or readability of the code nor the ability to build it for Linux. Actually, the code is now more in compliance with the ARM64 programming manual. In addition to these changes, there were a couple of instructions that clang simply doesn't support, so gas-preprocessor.pl was modified so that it now converts those into equivalent instructions that clang can handle. git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/branches/1.4.x@1450 632fc199-4ca6-4c93-a231-07263d6284db
/external/libjpeg-turbo/simd/jsimd_arm64_neon.S
|
0a9a25265484a09fd9eaadc4f5de336942acd19e |
|
29-Aug-2014 |
DRC <dcommander@users.sourceforge.net> |
Rename the ARM64 assembly file to match the C file git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/trunk@1390 632fc199-4ca6-4c93-a231-07263d6284db
/external/libjpeg-turbo/simd/jsimd_arm64_neon.S
|