ARM64: Improve String.equals() intrinsic for const strings.
And add additional tests to 021-string2.
aosp_angler-userdebug:
before:
arm64 boot*.oat: 43324664
arm64 boot*.oat/string compression: 43411112
after:
arm64 boot*.oat: 43300136 (-24528)
arm64 boot*.oat/string compression: 43345464 (-65648)
The string compression code size difference drops from
86448 to 45328.
Test: m test-art-target on Nexus 6P
Test: m test-art-target on Nexus 6P with string compression enabled.
Bug: 31040547
Change-Id: I99a3777b91b248da2b0ac25abd260f9e5abb2c09
diff --git a/runtime/mirror/string.h b/runtime/mirror/string.h
index 409c6c2..38f6dd4 100644
--- a/runtime/mirror/string.h
+++ b/runtime/mirror/string.h
@@ -184,7 +184,9 @@
bool IsValueNull() REQUIRES_SHARED(Locks::mutator_lock_);
template<typename MemoryType>
- static bool AllASCII(const MemoryType* const chars, const int length);
+ static bool AllASCII(const MemoryType* chars, const int length);
+
+ static bool DexFileStringAllASCII(const char* chars, const int length);
ALWAYS_INLINE static bool IsCompressed(int32_t count) {
return GetCompressionFlagFromCount(count) == StringCompressionFlag::kCompressed;