Details
Backports
Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build |
---|---|---|---|---|---|---|
JDK-8260753 | openjdk8u292 | Andrew Hughes | P4 | Resolved | Fixed | b01 |
Description
Arraycopy without overlap can safely perform optimizations like SIMD copy (load any values in src before writing any values in dest is legal for none-overlap array copy).
For compile time unknown array copy, stub code will check if arraycopy src and dest array overlap, if not overlap, perform faster none-overlap array copy.
In current aarch64 implementation, stub code check only if dest below src, this doesn’t cover cases dest above src but still not overlap case (as X86 did both tests).
__ cmp(d, s);
__ br(Assembler::LS, nooverlap_target);
For compile time unknown array copy, stub code will check if arraycopy src and dest array overlap, if not overlap, perform faster none-overlap array copy.
In current aarch64 implementation, stub code check only if dest below src, this doesn’t cover cases dest above src but still not overlap case (as X86 did both tests).
__ cmp(d, s);
__ br(Assembler::LS, nooverlap_target);
Attachments
Issue Links
- backported by
-
JDK-8260753 AArch64: Recognize disjoint array copy in stub code
-
- Resolved
-
- relates to
-
JDK-8257192 Integrate AArch64 JIT port into 8u
-
- Resolved
-