JDK-8081277 : Basic string intrinsics for x86
  • Type: Sub-task
  • Component: hotspot
  • Sub-Component: compiler
  • Affected Version: 9
  • Priority: P2
  • Status: Resolved
  • Resolution: Fixed
  • CPU: x86,x86_64
  • Submitted: 2015-05-27
  • Updated: 2015-05-27
  • Resolved: 2015-05-27
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
JDK 9
9Fixed
Description
We need to adapt the following string related intrinsics on x86 to compact strings:
- String.equals
- String.compareTo
- String.indexOf

We need new intrinsics for the following methods:
- StringCoderLatin1.toBytes0 (inline_string_copy(true), StrCompressedCopy, string_compress)
- StringCoderLatin1.toChars0 (inline_string_copy(false), StrInflatedCopy, string_inflate)
- StringCoderUTF16.toBytes (inline_string_toBytesU, uses arraycopy)
- StringCoderUTF16.getChars (inline_string_getCharsU, uses arraycopy)
- StringCoderUTF16.getChar (inline_string_char_access)
- StringCoderUTF16.putChar (inline_string_char_access)
Comments
JDK-8054307-branch: String.equals and String.compareTo intrinsics for x86. http://hg.openjdk.java.net/jdk9/sandbox/jdk/rev/3469e653d8fe http://hg.openjdk.java.net/jdk9/sandbox/hotspot/rev/3a3353b917e9 http://cr.openjdk.java.net/~thartmann/sd/jdk/webrev.01/ http://cr.openjdk.java.net/~thartmann/sd/hotspot/webrev.01/ JDK-8054307-branch: Fixed String.equals intrinsic signature. http://hg.openjdk.java.net/jdk9/sandbox/hotspot/rev/c0f34beb595e JDK-8054307-branch: String.indexOf intrinsics for x86. http://hg.openjdk.java.net/jdk9/sandbox/jdk/rev/2c6dc8a63e5a http://hg.openjdk.java.net/jdk9/sandbox/hotspot/rev/59f7fc1c4ff1 http://cr.openjdk.java.net/~thartmann/sd/jdk/webrev.04/ http://cr.openjdk.java.net/~thartmann/sd/hotspot/webrev.04/ JDK-8054307-branch: Fixed String.index of intrinsic for x86_32. http://hg.openjdk.java.net/jdk9/sandbox/hotspot/rev/df2648310872 JDK-8054307-branch: Fixed AVX2 version of String.equals intrinsic. http://hg.openjdk.java.net/jdk9/sandbox/hotspot/rev/c23158e92f2a JDK-8054307-branch: Added missing length check to StringCoder.indexOf implementations. http://hg.openjdk.java.net/jdk9/sandbox/jdk/rev/30b12a92acb4 JDK-8054307-branch: Added shortcut for Latin1.indexOf(UTF16-String) case. http://hg.openjdk.java.net/jdk9/sandbox/jdk/rev/c89fa063a570 JDK-8054307-branch: Removed unnecessary range/safety checks for the UTF16.getChar()/putChar() intrinsic. http://cr.openjdk.java.net/~thartmann/sd/hotspot/webrev.08/ http://hg.openjdk.java.net/jdk9/sandbox/hotspot/rev/fa0e27b614c4 JDK-8054307-branch: Fixed computation of size difference in String.compareTo intrinsic. http://hg.openjdk.java.net/jdk9/sandbox/hotspot/rev/8f7036e363da JDK-8054307-branch: Removed redundant pointer equality check in arrays_equals intrinsic. http://hg.openjdk.java.net/jdk9/sandbox/hotspot/rev/b6572c2d0225
27-05-2015