Skip to content

Commit 581fdac

Browse files
Valhalla support to merge latest OpenJDK contents
Updated Access APIs according to Valhalla JavaLangAccess; Added Unsafe.getAndSetReference/getAndSetReferenceAcquire/getAndSetReferenceRelease/notifyStrictStaticAccess stub methods; Removed Unsafe.uninitializedDefaultValue/newArrayInstance; Removed @ImplicitlyConstructible; Removed JVM_IsImplicitlyConstructibleClass/JVM_NewNullRestrictedArray; Added JVM_CopyOfSpecialArray/JVM_IsAtomicArray/JVM_NewNullRestrictedNonAtomicArray stub methods; Updated VALUE_TYPES_MAJOR_VERSION; Replaced ValueClass.newNullRestrictedArray() with ValueClass.newNullRestrictedAtomicArray(); Added @strict annotations; Removed CheckedType/NormalCheckedType/NullRestrictedCheckedType, ValueClass isImplicitlyConstructible references; Disabled tests expecting implicitly constructible classes as inputs; Keep the array initialization temporarily; Updated test build setup. Co-authored-by: Theresa Mammarella <Theresa.T.Mammarella@ibm.com> Signed-off-by: Jason Feng <fengj@ca.ibm.com>
1 parent 8afbce1 commit 581fdac

28 files changed

+266
-385
lines changed

jcl/src/java.base/share/classes/java/lang/Access.java

Lines changed: 49 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -353,7 +353,7 @@ public List<Method> getDeclaredPublicMethods(Class<?> clz, String name, Class<?>
353353
public void addOpensToAllUnnamed(Module fromModule, Iterator<String> packages) {
354354
fromModule.implAddOpensToAllUnnamed(packages);
355355
}
356-
/*[ELSEIF (JAVA_SPEC_VERSION < 25) | INLINE-TYPES]*/
356+
/*[ELSEIF JAVA_SPEC_VERSION < 25]*/
357357
@Override
358358
public void addOpensToAllUnnamed(Module fromModule, Set<String> concealedPackages, Set<String> exportedPackages) {
359359
fromModule.implAddOpensToAllUnnamed(concealedPackages, exportedPackages);
@@ -370,7 +370,7 @@ public boolean isReflectivelyExported(Module fromModule, String pkg, Module toMo
370370
return fromModule.isReflectivelyExported(pkg, toModule);
371371
}
372372

373-
/*[IF ((10 <= JAVA_SPEC_VERSION) & (JAVA_SPEC_VERSION < 26)) | INLINE-TYPES]*/
373+
/*[IF (10 <= JAVA_SPEC_VERSION) & (JAVA_SPEC_VERSION < 26)]*/
374374
@Override
375375
public String newStringUTF8NoRepl(byte[] bytes, int offset, int length) {
376376
/*[IF JAVA_SPEC_VERSION < 17]*/
@@ -381,7 +381,9 @@ public String newStringUTF8NoRepl(byte[] bytes, int offset, int length) {
381381
return String.newStringUTF8NoRepl(bytes, offset, length, true);
382382
/*[ENDIF] JAVA_SPEC_VERSION < 17 */
383383
}
384+
/*[ENDIF] (10 <= JAVA_SPEC_VERSION) & (JAVA_SPEC_VERSION < 26) */
384385

386+
/*[IF ((10 <= JAVA_SPEC_VERSION) & (JAVA_SPEC_VERSION < 26)) | INLINE-TYPES]*/
385387
@Override
386388
public byte[] getBytesUTF8NoRepl(String str) {
387389
/*[IF JAVA_SPEC_VERSION < 17]*/
@@ -402,7 +404,7 @@ public void blockedOn(Interruptible interruptible) {
402404
/*[ENDIF] JAVA_SPEC_VERSION >= 23 */
403405
}
404406

405-
/*[IF (JAVA_SPEC_VERSION < 25) | INLINE-TYPES]*/
407+
/*[IF JAVA_SPEC_VERSION < 25]*/
406408
@Override
407409
public byte[] getBytesNoRepl(String str, Charset charset) throws CharacterCodingException {
408410
/*[IF JAVA_SPEC_VERSION < 17]*/
@@ -420,7 +422,9 @@ public String newStringNoRepl(byte[] bytes, Charset charset) throws CharacterCod
420422
return String.newStringNoRepl(bytes, charset);
421423
/*[ENDIF] JAVA_SPEC_VERSION < 17 */
422424
}
423-
/*[ELSEIF JAVA_SPEC_VERSION == 25]*/
425+
/*[ENDIF] JAVA_SPEC_VERSION < 25 */
426+
427+
/*[IF (JAVA_SPEC_VERSION == 25) | INLINE-TYPES]*/
424428
@Override
425429
public byte[] uncheckedGetBytesNoRepl(String str, Charset charset) throws CharacterCodingException {
426430
return String.getBytesNoRepl(str, charset);
@@ -430,7 +434,7 @@ public byte[] uncheckedGetBytesNoRepl(String str, Charset charset) throws Charac
430434
public String uncheckedNewStringNoRepl(byte[] bytes, Charset charset) throws CharacterCodingException {
431435
return String.newStringNoRepl(bytes, charset);
432436
}
433-
/*[ENDIF] (JAVA_SPEC_VERSION < 25) | INLINE-TYPES] */
437+
/*[ENDIF] (JAVA_SPEC_VERSION == 25) | INLINE-TYPES */
434438
/*[ENDIF] JAVA_SPEC_VERSION >= 11 */
435439

436440
/*[IF JAVA_SPEC_VERSION >= 12]*/
@@ -496,20 +500,20 @@ public void addExports(Module fromModule, String pkg) {
496500

497501
/*[IF JAVA_SPEC_VERSION >= 17]*/
498502
@Override
499-
/*[IF (JAVA_SPEC_VERSION == 25) & !INLINE-TYPES]*/
503+
/*[IF JAVA_SPEC_VERSION == 25]*/
500504
public int uncheckedDecodeASCII(byte[] srcBytes, int srcPos, char[] dstChars, int dstPos, int length) {
501-
/*[ELSE] (JAVA_SPEC_VERSION == 25) & !INLINE-TYPES */
505+
/*[ELSE] JAVA_SPEC_VERSION == 25 */
502506
public int decodeASCII(byte[] srcBytes, int srcPos, char[] dstChars, int dstPos, int length) {
503-
/*[ENDIF] (JAVA_SPEC_VERSION == 25) & !INLINE-TYPES */
507+
/*[ENDIF] JAVA_SPEC_VERSION == 25 */
504508
return String.decodeASCII(srcBytes, srcPos, dstChars, dstPos, length);
505509
}
506510

507511
@Override
508-
/*[IF (JAVA_SPEC_VERSION == 25) & !INLINE-TYPES]*/
512+
/*[IF JAVA_SPEC_VERSION == 25]*/
509513
public void uncheckedInflateBytesToChars(byte[] srcBytes, int srcOffset, char[] dstChars, int dstOffset, int length) {
510-
/*[ELSE] (JAVA_SPEC_VERSION == 25) & !INLINE-TYPES */
514+
/*[ELSE] JAVA_SPEC_VERSION == 25 */
511515
public void inflateBytesToChars(byte[] srcBytes, int srcOffset, char[] dstChars, int dstOffset, int length) {
512-
/*[ENDIF] (JAVA_SPEC_VERSION == 25) & !INLINE-TYPES */
516+
/*[ENDIF] JAVA_SPEC_VERSION == 25 */
513517
StringLatin1.inflate(srcBytes, srcOffset, dstChars, dstOffset, length);
514518
}
515519

@@ -583,11 +587,11 @@ public int getCharsUTF16(long i, int index, byte[] buf) {
583587
/*[ENDIF] JAVA_SPEC_VERSION < 25 */
584588

585589
@Override
586-
/*[IF (JAVA_SPEC_VERSION >= 25) & !INLINE-TYPES]*/
590+
/*[IF JAVA_SPEC_VERSION >= 25]*/
587591
public void uncheckedPutCharUTF16(byte[] val, int index, int c) {
588-
/*[ELSE] (JAVA_SPEC_VERSION >= 25) & !INLINE-TYPES */
592+
/*[ELSE] JAVA_SPEC_VERSION >= 25 */
589593
public void putCharUTF16(byte[] val, int index, int c) {
590-
/*[ENDIF] (JAVA_SPEC_VERSION >= 25) & !INLINE-TYPES */
594+
/*[ENDIF] JAVA_SPEC_VERSION >= 25 */
591595
StringUTF16.putChar(val, index, c);
592596
}
593597

@@ -623,24 +627,24 @@ public long findNative(ClassLoader loader, String entryName) {
623627
}
624628
/*[ENDIF] JAVA_SPEC_VERSION < 25 */
625629

626-
/*[IF (JAVA_SPEC_VERSION < 25) | INLINE-TYPES]*/
630+
/*[IF JAVA_SPEC_VERSION < 25]*/
627631
@Override
628632
public void exit(int status) {
629633
Shutdown.exit(status);
630634
}
631-
/*[ENDIF] (JAVA_SPEC_VERSION < 25) | INLINE-TYPES */
635+
/*[ENDIF] JAVA_SPEC_VERSION < 25 */
632636

633637
@Override
634-
/*[IF (JAVA_SPEC_VERSION == 25) & !INLINE-TYPES]*/
638+
/*[IF JAVA_SPEC_VERSION == 25]*/
635639
public int uncheckedEncodeASCII(char[] sa, int sp, byte[] da, int dp, int len) {
636-
/*[ELSE] (JAVA_SPEC_VERSION == 25) & !INLINE-TYPES */
640+
/*[ELSE] JAVA_SPEC_VERSION == 25 */
637641
public int encodeASCII(char[] sa, int sp, byte[] da, int dp, int len) {
638-
/*[ENDIF] (JAVA_SPEC_VERSION == 25) & !INLINE-TYPES */
639-
/*[IF (JAVA_SPEC_VERSION >= 26) & !INLINE-TYPES]*/
642+
/*[ENDIF] JAVA_SPEC_VERSION == 25 */
643+
/*[IF JAVA_SPEC_VERSION >= 26]*/
640644
return StringCoding.encodeAsciiArray(sa, sp, da, dp, len);
641-
/*[ELSE] (JAVA_SPEC_VERSION >= 26) & !INLINE-TYPES */
645+
/*[ELSE] JAVA_SPEC_VERSION >= 26 */
642646
return StringCoding.implEncodeAsciiArray(sa, sp, da, dp, len);
643-
/*[ENDIF] (JAVA_SPEC_VERSION >= 26) & !INLINE-TYPES */
647+
/*[ENDIF] JAVA_SPEC_VERSION >= 26 */
644648
}
645649
/*[ENDIF] JAVA_SPEC_VERSION >= 17 */
646650

@@ -703,20 +707,20 @@ public InputStream initialSystemIn() {
703707

704708
/*[IF JAVA_SPEC_VERSION >= 21]*/
705709
@Override
706-
/*[IF (JAVA_SPEC_VERSION >= 25) & !INLINE-TYPES]*/
710+
/*[IF JAVA_SPEC_VERSION >= 25]*/
707711
public char uncheckedGetUTF16Char(byte[] val, int index) {
708-
/*[ELSE] (JAVA_SPEC_VERSION >= 25) & !INLINE-TYPES */
712+
/*[ELSE] JAVA_SPEC_VERSION >= 25 */
709713
public char getUTF16Char(byte[] val, int index) {
710-
/*[ENDIF] (JAVA_SPEC_VERSION >= 25) & !INLINE-TYPES */
714+
/*[ENDIF] JAVA_SPEC_VERSION >= 25 */
711715
return StringUTF16.getChar(val, index);
712716
}
713717

714718
@Override
715-
/*[IF (JAVA_SPEC_VERSION == 25) & !INLINE-TYPES]*/
719+
/*[IF JAVA_SPEC_VERSION == 25]*/
716720
public int uncheckedCountPositives(byte[] ba, int off, int len) {
717-
/*[ELSE] (JAVA_SPEC_VERSION == 25) & !INLINE-TYPES */
721+
/*[ELSE] JAVA_SPEC_VERSION == 25 */
718722
public int countPositives(byte[] ba, int off, int len) {
719-
/*[ENDIF] (JAVA_SPEC_VERSION == 25) & !INLINE-TYPES */
723+
/*[ENDIF] JAVA_SPEC_VERSION == 25 */
720724
return StringCoding.countPositives(ba, off, len);
721725
}
722726

@@ -829,12 +833,12 @@ private static <T> ThreadLocal<T> asThreadLocal(CarrierThreadLocal<T> local) {
829833
return local;
830834
}
831835

832-
/*[IF (JAVA_SPEC_VERSION < 25) | INLINE-TYPES]*/
836+
/*[IF JAVA_SPEC_VERSION < 25]*/
833837
@Override
834838
public boolean isCarrierThreadLocalPresent(CarrierThreadLocal<?> carrierThreadlocal) {
835839
return asThreadLocal(carrierThreadlocal).isCarrierThreadLocalPresent();
836840
}
837-
/*[ENDIF] (JAVA_SPEC_VERSION < 25) | INLINE-TYPES */
841+
/*[ENDIF] JAVA_SPEC_VERSION < 25 */
838842

839843
@Override
840844
public <T> T getCarrierThreadLocal(CarrierThreadLocal<T> carrierThreadlocal) {
@@ -901,11 +905,11 @@ public int classFileFormatVersion(Class<?> c) {
901905

902906
/*[IF JAVA_SPEC_VERSION >= 24]*/
903907
@Override
904-
/*[IF (JAVA_SPEC_VERSION >= 25) & !INLINE-TYPES]*/
908+
/*[IF JAVA_SPEC_VERSION >= 25]*/
905909
public Object uncheckedStringConcat1(String[] constants) {
906-
/*[ELSE] (JAVA_SPEC_VERSION >= 25) & !INLINE-TYPES */
910+
/*[ELSE] JAVA_SPEC_VERSION >= 25 */
907911
public Object stringConcat1(String[] constants) {
908-
/*[ENDIF] (JAVA_SPEC_VERSION >= 25) & !INLINE-TYPES */
912+
/*[ENDIF] JAVA_SPEC_VERSION >= 25 */
909913
return new StringConcatHelper.Concat1(constants);
910914
}
911915

@@ -939,31 +943,32 @@ public Executor virtualThreadDefaultScheduler() {
939943
return VirtualThread.defaultScheduler();
940944
}
941945

942-
/*[IF (JAVA_SPEC_VERSION < 25) | INLINE-TYPES]*/
946+
/*[IF JAVA_SPEC_VERSION < 25]*/
943947
@Override
944948
public Stream<ScheduledExecutorService> virtualThreadDelayedTaskSchedulers() {
945949
return VirtualThread.delayedTaskSchedulers();
946950
}
947-
/*[ENDIF] (JAVA_SPEC_VERSION < 25) | INLINE-TYPES */
951+
/*[ENDIF] JAVA_SPEC_VERSION < 25 */
948952
/*[ENDIF] JAVA_SPEC_VERSION >= 24 */
949953
/*[ENDIF] JAVA_SPEC_VERSION >= 9 */
950954

951-
/*[IF (JAVA_SPEC_VERSION >= 25) & !INLINE-TYPES]*/
955+
/*[IF JAVA_SPEC_VERSION >= 25]*/
952956
@Override
953957
public int classFileVersion(Class<?> clazz) {
954958
return clazz.getClassFileVersion();
955959
}
956-
/*[ENDIF] (JAVA_SPEC_VERSION >= 25) & !INLINE-TYPES */
960+
/*[ENDIF] JAVA_SPEC_VERSION >= 25 */
957961

958-
/*[IF (JAVA_SPEC_VERSION >= 26) & !INLINE-TYPES]*/
962+
/*[IF JAVA_SPEC_VERSION >= 26]*/
959963
@Override
960-
public byte[] getBytesUTF8OrThrow(String s) throws CharacterCodingException {
961-
return String.getBytesUTF8OrThrow(s);
964+
public int getClassFileAccessFlags(Class<?> clazz) {
965+
return clazz.getClassFileAccessFlags();
962966
}
963967

968+
/*[IF !INLINE-TYPES]*/
964969
@Override
965-
public int getClassFileAccessFlags(Class<?> clazz) {
966-
return clazz.getClassFileAccessFlags();
970+
public byte[] getBytesUTF8OrThrow(String s) throws CharacterCodingException {
971+
return String.getBytesUTF8OrThrow(s);
967972
}
968973

969974
@Override
@@ -975,10 +980,11 @@ public byte[] uncheckedGetBytesOrThrow(String s, Charset cs) throws CharacterCod
975980
public String uncheckedNewStringOrThrow(byte[] bytes, Charset cs) throws CharacterCodingException {
976981
return String.newStringOrThrow(bytes, cs);
977982
}
983+
/*[ENDIF] !INLINE-TYPES */
978984

979985
@Override
980986
public String uncheckedNewStringWithLatin1Bytes(byte[] src) {
981987
return String.newStringWithLatin1Bytes(src);
982988
}
983-
/*[ENDIF] (JAVA_SPEC_VERSION >= 26) & !INLINE-TYPES */
989+
/*[ENDIF] JAVA_SPEC_VERSION >= 26 */
984990
}

jcl/src/java.base/share/classes/jdk/internal/misc/Unsafe.java

Lines changed: 19 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4430,6 +4430,25 @@ public final Object getAndSetReference(Object obj, long offset, Object value) {
44304430
}
44314431
}
44324432

4433+
/*[IF INLINE-TYPES]*/
4434+
public final Object getAndSetReference(Object obj, long offset, Class<?> valueType, Object value) {
4435+
throw new Error("getAndSetReference() unimplemented"); //$NON-NLS-1$
4436+
}
4437+
4438+
public final Object getAndSetReferenceAcquire(Object obj, long offset, Class<?> valueType, Object value) {
4439+
return getAndSetReference(obj, offset, valueType, value);
4440+
}
4441+
4442+
public final Object getAndSetReferenceRelease(Object obj, long offset, Class<?> valueType, Object value) {
4443+
return getAndSetReference(obj, offset, valueType, value);
4444+
}
4445+
4446+
public void notifyStrictStaticAccess(Class<?> clz, long staticFieldOffset, boolean writing) {
4447+
Objects.requireNonNull(clz);
4448+
throw new Error("notifyStrictStaticAccess() unimplemented"); //$NON-NLS-1$
4449+
}
4450+
/*[ENDIF] INLINE-TYPES */
4451+
44334452
/**
44344453
* Atomically sets value at offset in obj
44354454
* and returns the value of the field prior to the update.
@@ -6629,14 +6648,6 @@ private static char convEndian(boolean isBigEndian, char value) {
66296648
*/
66306649
public native <V> void putValue(Object obj, long offset, Class<?> clz, V value);
66316650

6632-
/**
6633-
* Returns the uninitialized default instance of the specified value class
6634-
*
6635-
* @param clz the specificed value class
6636-
* @return the uninitialized default instance of clz
6637-
*/
6638-
public native <V> V uninitializedDefaultValue(Class<?> clz);
6639-
66406651
/**
66416652
* Determines the size of the header for a specified value class
66426653
*

runtime/bcutil/ClassFileOracle.cpp

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -90,9 +90,6 @@ ClassFileOracle::KnownAnnotation ClassFileOracle::_knownAnnotations[] = {
9090
#define NULLRESTRICTED_SIGNATURE "Ljdk/internal/vm/annotation/NullRestricted;"
9191
{NULLRESTRICTED_SIGNATURE , sizeof(NULLRESTRICTED_SIGNATURE)},
9292
#undef NULLRESTRICTED_SIGNATURE
93-
#define IMPLICITLYCONSTRUCTIBLE_SIGNATURE "Ljdk/internal/vm/annotation/ImplicitlyConstructible;"
94-
{IMPLICITLYCONSTRUCTIBLE_SIGNATURE , sizeof(IMPLICITLYCONSTRUCTIBLE_SIGNATURE)},
95-
#undef IMPLICITLYCONSTRUCTIBLE_SIGNATURE
9693
#define LOOSELYCONSISTENTVALUE_SIGNATURE "Ljdk/internal/vm/annotation/LooselyConsistentValue;"
9794
{LOOSELYCONSISTENTVALUE_SIGNATURE , sizeof(LOOSELYCONSISTENTVALUE_SIGNATURE)},
9895
#undef LOOSELYCONSISTENTVALUE_SIGNATURE
@@ -564,7 +561,6 @@ ClassFileOracle::walkAttributes()
564561
knownAnnotations = addAnnotationBit(knownAnnotations, UNMODIFIABLE_ANNOTATION);
565562
knownAnnotations = addAnnotationBit(knownAnnotations, VALUEBASED_ANNOTATION);
566563
#if defined(J9VM_OPT_VALHALLA_FLATTENABLE_VALUE_TYPES)
567-
knownAnnotations = addAnnotationBit(knownAnnotations, IMPLICITLYCONSTRUCTIBLE_ANNOTATION);
568564
knownAnnotations = addAnnotationBit(knownAnnotations, LOOSELYCONSISTENTVALUE_ANNOTATION);
569565
#endif /* defined(J9VM_OPT_VALHALLA_FLATTENABLE_VALUE_TYPES) */
570566
_annotationsAttribute = (J9CfrAttributeRuntimeVisibleAnnotations *)attrib;
@@ -580,10 +576,6 @@ ClassFileOracle::walkAttributes()
580576
_isClassValueBased = true;
581577
}
582578
#if defined(J9VM_OPT_VALHALLA_FLATTENABLE_VALUE_TYPES)
583-
if (containsKnownAnnotation(foundAnnotations, IMPLICITLYCONSTRUCTIBLE_ANNOTATION)) {
584-
_hasImplicitCreationAttribute = true;
585-
_implicitCreationFlags |= J9AccImplicitCreateHasDefaultValue;
586-
}
587579
if (containsKnownAnnotation(foundAnnotations, LOOSELYCONSISTENTVALUE_ANNOTATION)) {
588580
_hasImplicitCreationAttribute = true;
589581
_implicitCreationFlags |= J9AccImplicitCreateNonAtomic;

runtime/bcutil/ClassFileOracle.hpp

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1089,7 +1089,6 @@ class RecordComponentIterator
10891089
#endif /* JAVA_SPEC_VERSION >= 20 */
10901090
#if defined(J9VM_OPT_VALHALLA_FLATTENABLE_VALUE_TYPES)
10911091
NULLRESTRICTED_ANNOTATION,
1092-
IMPLICITLYCONSTRUCTIBLE_ANNOTATION,
10931092
LOOSELYCONSISTENTVALUE_ANNOTATION,
10941093
#endif /* defined(J9VM_OPT_VALHALLA_FLATTENABLE_VALUE_TYPES) */
10951094
KNOWN_ANNOTATION_COUNT

runtime/compiler/codegen/J9RecognizedMethodsEnum.hpp

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -541,9 +541,6 @@
541541
LastVectorMethod = LastVectorIntrinsicMethod,
542542

543543
java_lang_reflect_Array_getLength,
544-
jdk_internal_value_ValueClass_newArrayInstance,
545-
jdk_internal_value_ValueClass_newNullRestrictedArray,
546-
jdk_internal_value_NullRestrictedCheckedType_of,
547544
java_lang_reflect_Method_invoke,
548545
java_util_Arrays_fill,
549546
java_util_Arrays_equals,
@@ -1247,7 +1244,6 @@
12471244
java_lang_J9VMInternals_isClassModifierPublic,
12481245
java_lang_J9VMInternals_getArrayLengthAsObject,
12491246
java_lang_J9VMInternals_rawNewInstance,
1250-
java_lang_J9VMInternals_rawNewArrayInstance,
12511247
java_lang_J9VMInternals_defaultClone,
12521248
java_lang_J9VMInternals_getNumBitsInReferenceField,
12531249
java_lang_J9VMInternals_getNumBytesInReferenceField,

runtime/compiler/env/VMJ9.cpp

Lines changed: 0 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -8014,19 +8014,6 @@ TR_J9VM::inlineNativeCall(TR::Compilation * comp, TR::TreeTop * callNodeTreeTop,
80148014
}
80158015
return callNode;
80168016
}
8017-
case TR::java_lang_J9VMInternals_rawNewArrayInstance:
8018-
{
8019-
TR::Node::recreate(callNode, TR::variableNewArray);
8020-
callNode->setSymbolReference(comp->getSymRefTab()->findOrCreateANewArraySymbolRef(callNode->getSymbol()->castToResolvedMethodSymbol()));
8021-
TR::Node *newNode = TR::Node::createWithSymRef(callNode, TR::aloadi, 1, comp->getSymRefTab()->findOrCreateArrayComponentTypeSymbolRef());
8022-
TR::Node *newNodeChild = TR::Node::createWithSymRef(callNode, TR::aloadi, 1, comp->getSymRefTab()->findOrCreateClassFromJavaLangClassAsPrimitiveSymbolRef());
8023-
newNode->setAndIncChild(0, newNodeChild);
8024-
newNode->setNumChildren(1);
8025-
newNodeChild->setChild(0, callNode->getChild(1));
8026-
newNodeChild->setNumChildren(1);
8027-
callNode->setAndIncChild(1,newNode);
8028-
return callNode;
8029-
}
80308017
case TR::java_lang_J9VMInternals_getArrayLengthAsObject:
80318018
{
80328019
TR::Node::recreate(callNode, TR::iloadi);

0 commit comments

Comments
 (0)