diff options
author | xueliang.zhong <xueliang.zhong@linaro.org> | 2017-10-13 12:06:56 +0100 |
---|---|---|
committer | Evgeny Astigeevich <evgeny.astigeevich@linaro.org> | 2018-11-02 10:07:12 +0000 |
commit | cb58b07d233c5f8e910e6e5946da8ac4ec3099f5 (patch) | |
tree | bd19cb9a44555adf51e2d145c322a592c6cd3527 /compiler/optimizing/intrinsics_x86_64.cc | |
parent | e2acc339ede3c620a476827880cf68d044dcd53e (diff) | |
download | android_art-cb58b07d233c5f8e910e6e5946da8ac4ec3099f5.tar.gz android_art-cb58b07d233c5f8e910e6e5946da8ac4ec3099f5.tar.bz2 android_art-cb58b07d233c5f8e910e6e5946da8ac4ec3099f5.zip |
ART: Add CRC32.udate(int,int) intrinsic for ARM64
Use crc32 instructions for java.util.zip.CRC32.update(int,int).
Note that CRC32 is an optional feature on ARMv8, this intrinsic
is only enabled for devices with CRC32 intruction support.
Original author: tim.zhang@linaro.org
Performance improvements in CRC32Bench.UpdateInt:
Pixel 2: 22.8x
Nexus 6P:
little core: 28.3x
big core : 21.6x
Test: m test-art-target-gtest
Test: testrunner.py --target --optimizing --jit --interpreter
Test: 580-crc32
Change-Id: I1a9bc2befd2934b04103a27ce05806e919874070
Diffstat (limited to 'compiler/optimizing/intrinsics_x86_64.cc')
-rw-r--r-- | compiler/optimizing/intrinsics_x86_64.cc | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/compiler/optimizing/intrinsics_x86_64.cc b/compiler/optimizing/intrinsics_x86_64.cc index 96f6eaaf33..7db26dc9be 100644 --- a/compiler/optimizing/intrinsics_x86_64.cc +++ b/compiler/optimizing/intrinsics_x86_64.cc @@ -2732,6 +2732,7 @@ void IntrinsicCodeGeneratorX86_64::VisitReachabilityFence(HInvoke* invoke ATTRIB UNIMPLEMENTED_INTRINSIC(X86_64, ReferenceGetReferent) UNIMPLEMENTED_INTRINSIC(X86_64, FloatIsInfinite) UNIMPLEMENTED_INTRINSIC(X86_64, DoubleIsInfinite) +UNIMPLEMENTED_INTRINSIC(X86_64, CRC32Update) UNIMPLEMENTED_INTRINSIC(X86_64, StringStringIndexOf); UNIMPLEMENTED_INTRINSIC(X86_64, StringStringIndexOfAfter); |