-
Notifications
You must be signed in to change notification settings - Fork 6.1k
8360520: RISC-V: C1: Fix primitive array clone intrinsic regression after JDK-8333154 #25976
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Changes from 6 commits
445f903
7af2ea3
be98042
a3c6a09
3a502f8
ca628e1
eb0e2ed
26148c2
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -351,7 +351,7 @@ LIR_OpArrayCopy::LIR_OpArrayCopy(LIR_Opr src, LIR_Opr src_pos, LIR_Opr dst, LIR_ | |
, _expected_type(expected_type) | ||
, _flags(flags) { | ||
#if defined(X86) || defined(AARCH64) || defined(S390) || defined(RISCV64) || defined(PPC64) | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Do we still need this #if? It would be nice if we can eventually remove it, but I guess arm32 support is missing. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. You are right, ARM32 support is not available, so we have to keep these platform guards for now. |
||
if (expected_type != nullptr && flags == 0) { | ||
if (expected_type != nullptr && ((flags & ~LIR_OpArrayCopy::unaligned) == 0)) { | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I was concerned that this is platform-specific, but I checked and all platforms can handle unaligned or overlapping w/o using the stub. So maybe this should be using LIR_OpArrayCopy::unaligned|LIR_OpArrayCopy::overlapping? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Yes, LIR_OpArrayCopy::overlapping was also reset if |
||
_stub = nullptr; | ||
} else { | ||
_stub = new ArrayCopyStub(this); | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should be LIR_OpArrayCopy::unaligned|LIR_OpArrayCopy::overlapping? See below.