Skip to content

Commit 47af3be

Browse files
Automatic merge of master into galahad
2 parents 6f92c7c + 007426e commit 47af3be

File tree

17 files changed

+86
-39
lines changed

17 files changed

+86
-39
lines changed

common.json

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -53,13 +53,13 @@
5353
"labsjdk-ee-25Debug": {"name": "labsjdk", "version": "ee-25+30-jvmci-b01-debug", "platformspecific": true },
5454
"labsjdk-ee-25-llvm": {"name": "labsjdk", "version": "ee-25+30-jvmci-b01-sulong", "platformspecific": true },
5555

56-
"oraclejdk-latest": {"name": "jpg-jdk", "version": "26", "build_id": "jdk-26+9", "platformspecific": true, "extrabundles": ["static-libs"]},
57-
"labsjdk-ce-latest": {"name": "labsjdk", "version": "ce-26+9-jvmci-b01", "platformspecific": true },
58-
"labsjdk-ce-latestDebug": {"name": "labsjdk", "version": "ce-26+9-jvmci-b01-debug", "platformspecific": true },
59-
"labsjdk-ce-latest-llvm": {"name": "labsjdk", "version": "ce-26+9-jvmci-b01-sulong", "platformspecific": true },
60-
"labsjdk-ee-latest": {"name": "labsjdk", "version": "ee-26+9-jvmci-b01", "platformspecific": true },
61-
"labsjdk-ee-latestDebug": {"name": "labsjdk", "version": "ee-26+9-jvmci-b01-debug", "platformspecific": true },
62-
"labsjdk-ee-latest-llvm": {"name": "labsjdk", "version": "ee-26+9-jvmci-b01-sulong", "platformspecific": true }
56+
"oraclejdk-latest": {"name": "jpg-jdk", "version": "26", "build_id": "jdk-26+10", "platformspecific": true, "extrabundles": ["static-libs"]},
57+
"labsjdk-ce-latest": {"name": "labsjdk", "version": "ce-26+10-jvmci-b01", "platformspecific": true },
58+
"labsjdk-ce-latestDebug": {"name": "labsjdk", "version": "ce-26+10-jvmci-b01-debug", "platformspecific": true },
59+
"labsjdk-ce-latest-llvm": {"name": "labsjdk", "version": "ce-26+10-jvmci-b01-sulong", "platformspecific": true },
60+
"labsjdk-ee-latest": {"name": "labsjdk", "version": "ee-26+10-jvmci-b01", "platformspecific": true },
61+
"labsjdk-ee-latestDebug": {"name": "labsjdk", "version": "ee-26+10-jvmci-b01-debug", "platformspecific": true },
62+
"labsjdk-ee-latest-llvm": {"name": "labsjdk", "version": "ee-26+10-jvmci-b01-sulong", "platformspecific": true }
6363
},
6464

6565
"eclipse": {

compiler/src/jdk.graal.compiler/src/jdk/graal/compiler/hotspot/JVMCIVersionCheck.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -57,8 +57,8 @@ public final class JVMCIVersionCheck {
5757
// Checkstyle: stop stable iteration order check
5858
private static final Map<String, Map<String, Version>> JVMCI_MIN_VERSIONS = Map.of(
5959
"26", Map.of(
60-
"Oracle Corporation", createLabsJDKVersion("26+9", 1),
61-
DEFAULT_VENDOR_ENTRY, createLabsJDKVersion("26+9", 1)));
60+
"Oracle Corporation", createLabsJDKVersion("26+10", 1),
61+
DEFAULT_VENDOR_ENTRY, createLabsJDKVersion("26+10", 1)));
6262
// Checkstyle: resume stable iteration order check
6363

6464
private static final int NA = 0;

compiler/src/jdk.graal.compiler/src/jdk/graal/compiler/hotspot/meta/UnimplementedGraalIntrinsics.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,8 @@ private static void add(Collection<String> c, String... elements) {
8787

8888
public UnimplementedGraalIntrinsics(Architecture arch) {
8989
add(toBeInvestigated, // @formatter:off
90+
// JDK-8360559: Optimize Math.sinh for x86 64 bit platforms
91+
"java/lang/Math.sinh(D)D",
9092
// JDK-8342103: C2 compiler support for Float16 type and associated
9193
// scalar operations
9294
"jdk/internal/vm/vector/Float16Math.fma(Ljava/lang/Class;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljdk/internal/vm/vector/Float16Math$TernaryOperator;)Ljava/lang/Object;",

espresso-shared/src/com.oracle.truffle.espresso.classfile/src/com/oracle/truffle/espresso/classfile/JavaVersion.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ public static final class VersionRange {
4343
public static final VersionRange VERSION_22_OR_HIGHER = higher(22);
4444
public static final VersionRange VERSION_24_OR_LOWER = lower(24);
4545
public static final VersionRange VERSION_25_OR_HIGHER = higher(25);
46+
public static final VersionRange VERSION_26_OR_HIGHER = higher(26);
4647

4748
public static final VersionRange ALL = between(0, LATEST_SUPPORTED);
4849
public static final VersionRange VERSION_9_TO_21 = between(9, 21);
@@ -211,6 +212,14 @@ public boolean java25OrLater() {
211212
return version >= 25;
212213
}
213214

215+
public boolean java25OrEarlier() {
216+
return version <= 25;
217+
}
218+
219+
public boolean java26OrLater() {
220+
return version >= 26;
221+
}
222+
214223
public boolean inRange(int low, int high) {
215224
return version >= low && version <= high;
216225
}

espresso/src/com.oracle.truffle.espresso/src/com/oracle/truffle/espresso/descriptors/EspressoSymbols.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -612,6 +612,7 @@ public static class Names {
612612
public static final Symbol<Name> componentType = SYMBOLS.putName("componentType");
613613
public static final Symbol<Name> protectionDomain = SYMBOLS.putName("protectionDomain");
614614
public static final Symbol<Name> modifiers = SYMBOLS.putName("modifiers");
615+
public static final Symbol<Name> classFileAccessFlags = SYMBOLS.putName("classFileAccessFlags");
615616
public static final Symbol<Name> primitive = SYMBOLS.putName("primitive");
616617
public static final Symbol<Name> signers = SYMBOLS.putName("signers");
617618
// j.l.ClassLoader

espresso/src/com.oracle.truffle.espresso/src/com/oracle/truffle/espresso/libs/libjava/impl/Target_java_lang_Class.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -186,6 +186,7 @@ public static boolean isRecord0(@JavaType(Class.class) StaticObject self, @Injec
186186
}
187187

188188
@Substitution(hasReceiver = true)
189+
// Method no longer exists in 26.
189190
public static int getClassAccessFlagsRaw0(@JavaType(Class.class) StaticObject self, @Inject EspressoContext ctx) {
190191
return ctx.getVM().JVM_GetClassAccessFlags(self);
191192
}

espresso/src/com.oracle.truffle.espresso/src/com/oracle/truffle/espresso/libs/libjava/impl/Target_jdk_internal_reflect_Reflection.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,11 +29,12 @@
2929
import com.oracle.truffle.espresso.substitutions.Inject;
3030
import com.oracle.truffle.espresso.substitutions.JavaType;
3131
import com.oracle.truffle.espresso.substitutions.Substitution;
32+
import com.oracle.truffle.espresso.substitutions.VersionFilter;
3233
import com.oracle.truffle.espresso.vm.VM;
3334

3435
@EspressoSubstitutions(type = "Ljdk/internal/reflect/Reflection;", group = LibJava.class)
3536
public final class Target_jdk_internal_reflect_Reflection {
36-
@Substitution
37+
@Substitution(languageFilter = VersionFilter.Java25OrEarlier.class)
3738
public static int getClassAccessFlags(@JavaType(Class.class) StaticObject cls, @Inject EspressoContext ctx) {
3839
return ctx.getVM().JVM_GetClassAccessFlags(cls);
3940
}

espresso/src/com.oracle.truffle.espresso/src/com/oracle/truffle/espresso/meta/Meta.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@
3434
import static com.oracle.truffle.espresso.classfile.JavaVersion.VersionRange.VERSION_22_TO_23;
3535
import static com.oracle.truffle.espresso.classfile.JavaVersion.VersionRange.VERSION_24_OR_LOWER;
3636
import static com.oracle.truffle.espresso.classfile.JavaVersion.VersionRange.VERSION_25_OR_HIGHER;
37+
import static com.oracle.truffle.espresso.classfile.JavaVersion.VersionRange.VERSION_26_OR_HIGHER;
3738
import static com.oracle.truffle.espresso.classfile.JavaVersion.VersionRange.VERSION_8_OR_LOWER;
3839
import static com.oracle.truffle.espresso.classfile.JavaVersion.VersionRange.VERSION_9_OR_HIGHER;
3940
import static com.oracle.truffle.espresso.classfile.JavaVersion.VersionRange.VERSION_9_TO_21;
@@ -118,6 +119,9 @@ public Meta(EspressoContext context) {
118119
java_lang_Class_modifiers = diff() //
119120
.field(VERSION_25_OR_HIGHER, Names.modifiers, Types._char) //
120121
.notRequiredField(java_lang_Class);
122+
java_lang_Class_classFileAccessFlags = diff() //
123+
.field(VERSION_26_OR_HIGHER, Names.classFileAccessFlags, Types._char) //
124+
.notRequiredField(java_lang_Class);
121125
java_lang_Class_primitive = diff() //
122126
.field(VERSION_25_OR_HIGHER, Names.primitive, Types._boolean) //
123127
.notRequiredField(java_lang_Class);
@@ -1391,6 +1395,7 @@ private DiffVersionLoadHelper diff() {
13911395
public final Field java_lang_Class_module;
13921396
public final Field java_lang_Class_classLoader;
13931397
public final Field java_lang_Class_modifiers;
1398+
public final Field java_lang_Class_classFileAccessFlags;
13941399
public final Field java_lang_Class_primitive;
13951400
public final Field sun_reflect_ConstantPool_constantPoolOop;
13961401
public final ArrayKlass java_lang_Class_array;

espresso/src/com.oracle.truffle.espresso/src/com/oracle/truffle/espresso/runtime/GuestAllocator.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -178,6 +178,10 @@ public StaticObject createClass(Klass klass) {
178178
meta.java_lang_Class_modifiers.setChar(newObj, (char) klass.getClassModifiers());
179179
meta.java_lang_Class_primitive.setBoolean(newObj, klass.isPrimitive());
180180
}
181+
if (lang.getJavaVersion().java26OrLater()) {
182+
assert meta.java_lang_Class_classFileAccessFlags != null;
183+
meta.java_lang_Class_classFileAccessFlags.setChar(newObj, (char) VM.getClassAccessFlags(klass));
184+
}
181185
return trackAllocation(klass, newObj);
182186
}
183187

espresso/src/com.oracle.truffle.espresso/src/com/oracle/truffle/espresso/substitutions/VersionFilter.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -225,4 +225,16 @@ public boolean isValidFor(JavaVersion version) {
225225
return version.java25OrLater();
226226
}
227227
}
228+
229+
final class Java25OrEarlier implements VersionFilter {
230+
public static final Java25OrEarlier INSTANCE = new Java25OrEarlier();
231+
232+
private Java25OrEarlier() {
233+
}
234+
235+
@Override
236+
public boolean isValidFor(JavaVersion version) {
237+
return version.java25OrEarlier();
238+
}
239+
}
228240
}

0 commit comments

Comments
 (0)