8319111: Mismatched MemorySegment heap access is not consistently intrinsified

Reviewed-by: sviswanathan, psandoz, thartmann
This commit is contained in:
Jatin Bhateja 2023-12-06 09:58:06 +00:00
parent a0920aa436
commit 2678e4cd94
14 changed files with 205 additions and 156 deletions

View file

@ -355,7 +355,7 @@ public class ScopedMemoryAccess {
session.checkValidStateRaw();
return VectorSupport.load(vmClass, e, length,
msp.unsafeGetBase(), msp.unsafeGetOffset() + offset,
msp.unsafeGetBase(), msp.unsafeGetOffset() + offset, true,
msp, offset, s,
defaultImpl);
} finally {
@ -397,7 +397,7 @@ public class ScopedMemoryAccess {
session.checkValidStateRaw();
return VectorSupport.loadMasked(vmClass, maskClass, e, length,
msp.unsafeGetBase(), msp.unsafeGetOffset() + offset, m, offsetInRange,
msp.unsafeGetBase(), msp.unsafeGetOffset() + offset, true, m, offsetInRange,
msp, offset, s,
defaultImpl);
} finally {
@ -438,7 +438,7 @@ public class ScopedMemoryAccess {
session.checkValidStateRaw();
VectorSupport.store(vmClass, e, length,
msp.unsafeGetBase(), msp.unsafeGetOffset() + offset,
msp.unsafeGetBase(), msp.unsafeGetOffset() + offset, true,
v,
msp, offset,
defaultImpl);
@ -480,7 +480,7 @@ public class ScopedMemoryAccess {
session.checkValidStateRaw();
VectorSupport.storeMasked(vmClass, maskClass, e, length,
msp.unsafeGetBase(), msp.unsafeGetOffset() + offset,
msp.unsafeGetBase(), msp.unsafeGetOffset() + offset, true,
v, m,
msp, offset,
defaultImpl);

View file

@ -421,7 +421,7 @@ public class VectorSupport {
S extends VectorSpecies<E>>
VM load(Class<? extends VM> vmClass, Class<E> eClass,
int length,
Object base, long offset,
Object base, long offset, boolean fromSegment,
C container, long index, S s,
LoadOperation<C, VM, S> defaultImpl) {
assert isNonCapturingLambda(defaultImpl) : defaultImpl;
@ -445,7 +445,7 @@ public class VectorSupport {
S extends VectorSpecies<E>,
M extends VectorMask<E>>
V loadMasked(Class<? extends V> vClass, Class<M> mClass, Class<E> eClass,
int length, Object base, long offset,
int length, Object base, long offset, boolean fromSegment,
M m, int offsetInRange,
C container, long index, S s,
LoadVectorMaskedOperation<C, V, S, M> defaultImpl) {
@ -494,7 +494,7 @@ public class VectorSupport {
V extends VectorPayload>
void store(Class<?> vClass, Class<?> eClass,
int length,
Object base, long offset,
Object base, long offset, boolean fromSegment,
V v, C container, long index,
StoreVectorOperation<C, V> defaultImpl) {
assert isNonCapturingLambda(defaultImpl) : defaultImpl;
@ -515,7 +515,7 @@ public class VectorSupport {
E>
void storeMasked(Class<? extends V> vClass, Class<M> mClass, Class<E> eClass,
int length,
Object base, long offset,
Object base, long offset, boolean fromSegment,
V v, M m, C container, long index,
StoreVectorMaskedOperation<C, V, M> defaultImpl) {
assert isNonCapturingLambda(defaultImpl) : defaultImpl;