History log of /external/libjpeg-turbo/simd/jsimd_arm64_neon.S
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
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