Skip to content

Commit 98ba30a

Browse files
Merge tag 'jdk-26+2' into labsjdk/adopt-jdk-26+2-master
Added tag jdk-26+2 for changeset d7aa349
2 parents 9861bde + d7aa349 commit 98ba30a

File tree

289 files changed

+4541
-3939
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

289 files changed

+4541
-3939
lines changed

make/autoconf/lib-tests.m4

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828
################################################################################
2929

3030
# Minimum supported versions
31-
JTREG_MINIMUM_VERSION=7.5.1
31+
JTREG_MINIMUM_VERSION=7.5.2
3232
GTEST_MINIMUM_VERSION=1.14.0
3333

3434
################################################################################

make/conf/github-actions.conf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626
# Versions and download locations for dependencies used by GitHub Actions (GHA)
2727

2828
GTEST_VERSION=1.14.0
29-
JTREG_VERSION=7.5.1+1
29+
JTREG_VERSION=7.5.2+1
3030

3131
LINUX_X64_BOOT_JDK_EXT=tar.gz
3232
LINUX_X64_BOOT_JDK_URL=https://download.java.net/java/GA/jdk24/1f9ff9062db4449d8ca828c504ffae90/36/GPL/openjdk-24_linux-x64_bin.tar.gz

make/conf/jib-profiles.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1187,9 +1187,9 @@ var getJibProfilesDependencies = function (input, common) {
11871187
jtreg: {
11881188
server: "jpg",
11891189
product: "jtreg",
1190-
version: "7.5.1",
1190+
version: "7.5.2",
11911191
build_number: "1",
1192-
file: "bundles/jtreg-7.5.1+1.zip",
1192+
file: "bundles/jtreg-7.5.2+1.zip",
11931193
environment_name: "JT_HOME",
11941194
environment_path: input.get("jtreg", "home_path") + "/bin",
11951195
configure_args: "--with-jtreg=" + input.get("jtreg", "home_path"),
@@ -1205,8 +1205,8 @@ var getJibProfilesDependencies = function (input, common) {
12051205
server: "jpg",
12061206
product: "jcov",
12071207
version: "3.0",
1208-
build_number: "1",
1209-
file: "bundles/jcov-3.0+1.zip",
1208+
build_number: "3",
1209+
file: "bundles/jcov-3.0+3.zip",
12101210
environment_name: "JCOV_HOME",
12111211
},
12121212

make/modules/java.base/Gensrc.gmk

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,8 @@ CLDR_GEN_DONE := $(GENSRC_DIR)/_cldr-gensrc.marker
4646
TZ_DATA_DIR := $(MODULE_SRC)/share/data/tzdata
4747
ZONENAME_TEMPLATE := $(MODULE_SRC)/share/classes/java/time/format/ZoneName.java.template
4848

49+
# The `-utf8` option is used even for US English, as some names
50+
# may contain non-ASCII characters, such as “Türkiye”.
4951
$(CLDR_GEN_DONE): $(wildcard $(CLDR_DATA_DIR)/dtd/*.dtd) \
5052
$(wildcard $(CLDR_DATA_DIR)/main/en*.xml) \
5153
$(wildcard $(CLDR_DATA_DIR)/supplemental/*.xml) \
@@ -61,7 +63,8 @@ $(CLDR_GEN_DONE): $(wildcard $(CLDR_DATA_DIR)/dtd/*.dtd) \
6163
-basemodule \
6264
-year $(COPYRIGHT_YEAR) \
6365
-zntempfile $(ZONENAME_TEMPLATE) \
64-
-tzdatadir $(TZ_DATA_DIR))
66+
-tzdatadir $(TZ_DATA_DIR) \
67+
-utf8)
6568
$(TOUCH) $@
6669

6770
TARGETS += $(CLDR_GEN_DONE)

make/modules/jdk.localedata/Gensrc.gmk

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,8 @@ $(CLDR_GEN_DONE): $(wildcard $(CLDR_DATA_DIR)/dtd/*.dtd) \
4545
-baselocales "en-US" \
4646
-year $(COPYRIGHT_YEAR) \
4747
-o $(GENSRC_DIR) \
48-
-tzdatadir $(TZ_DATA_DIR))
48+
-tzdatadir $(TZ_DATA_DIR) \
49+
-utf8)
4950
$(TOUCH) $@
5051

5152
TARGETS += $(CLDR_GEN_DONE)

src/demo/share/jfc/Stylepad/HelloWorld.java

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -187,22 +187,18 @@ static class Run {
187187
new Run("none", "Hello from Cupertino")
188188
}),
189189
new Paragraph("title", new Run[] {
190-
new Run("none", "\u53F0\u5317\u554F\u5019\u60A8\u0021")
190+
new Run("none", "台北問候您!")
191191
}),
192192
new Paragraph("title", new Run[] {
193-
new Run("none", "\u0391\u03B8\u03B7\u03BD\u03B1\u03B9\u0020" // Greek
194-
+ "\u03B1\u03C3\u03C0\u03B1\u03B6\u03BF\u03BD"
195-
+ "\u03C4\u03B1\u03B9\u0020\u03C5\u03BC\u03B1"
196-
+ "\u03C2\u0021")
193+
new Run("none", "Αθηναι ασπαζονται υμας!") // Greek
197194
}),
198195
new Paragraph("title", new Run[] {
199-
new Run("none", "\u6771\u4eac\u304b\u3089\u4eca\u65e5\u306f")
196+
new Run("none", "東京から今日は")
200197
}),
201198
new Paragraph("title", new Run[] {
202-
new Run("none", "\u05e9\u05dc\u05d5\u05dd \u05de\u05d9\u05e8\u05d5"
203-
+ "\u05e9\u05dc\u05d9\u05dd")
199+
new Run("none", "שלום מירושלים")
204200
}),
205201
new Paragraph("title", new Run[] {
206-
new Run("none", "\u0633\u0644\u0627\u0645")
202+
new Run("none", "سلام")
207203
}), };
208204
}

src/hotspot/cpu/aarch64/aarch64.ad

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3921,6 +3921,10 @@ ins_attrib ins_alignment(4); // Required alignment attribute (must
39213921
// compute_padding() function must be
39223922
// provided for the instruction
39233923

3924+
// Whether this node is expanded during code emission into a sequence of
3925+
// instructions and the first instruction can perform an implicit null check.
3926+
ins_attrib ins_is_late_expanded_null_check_candidate(false);
3927+
39243928
//----------OPERANDS-----------------------------------------------------------
39253929
// Operand definitions must precede instruction definitions for correct parsing
39263930
// in the ADLC because operands constitute user defined types which are used in

src/hotspot/cpu/aarch64/gc/z/z_aarch64.ad

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,13 @@ instruct zLoadP(iRegPNoSp dst, memory8 mem, rFlagsReg cr)
106106
match(Set dst (LoadP mem));
107107
predicate(UseZGC && !needs_acquiring_load(n) && n->as_Load()->barrier_data() != 0);
108108
effect(TEMP dst, KILL cr);
109+
// The main load is a candidate to implement implicit null checks, as long as
110+
// legitimize_address() does not require a preceding lea instruction to
111+
// materialize the memory operand. The absence of a preceding lea instruction
112+
// is guaranteed for immLoffset8 memory operands, because these do not lead to
113+
// out-of-range offsets (see definition of immLoffset8). Fortunately,
114+
// immLoffset8 memory operands are the most common ones in practice.
115+
ins_is_late_expanded_null_check_candidate(opnd_array(1)->opcode() == INDOFFL8);
109116

110117
ins_cost(4 * INSN_COST);
111118

@@ -117,7 +124,11 @@ instruct zLoadP(iRegPNoSp dst, memory8 mem, rFlagsReg cr)
117124
// Fix up any out-of-range offsets.
118125
assert_different_registers(rscratch2, as_Register($mem$$base));
119126
assert_different_registers(rscratch2, $dst$$Register);
120-
ref_addr = __ legitimize_address(ref_addr, 8, rscratch2);
127+
int size = 8;
128+
assert(!this->is_late_expanded_null_check_candidate() ||
129+
!MacroAssembler::legitimize_address_requires_lea(ref_addr, size),
130+
"an instruction that can be used for implicit null checking should emit the candidate memory access first");
131+
ref_addr = __ legitimize_address(ref_addr, size, rscratch2);
121132
}
122133
__ ldr($dst$$Register, ref_addr);
123134
z_load_barrier(masm, this, ref_addr, $dst$$Register, rscratch1);

src/hotspot/cpu/aarch64/macroAssembler_aarch64.hpp

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -129,16 +129,21 @@ class MacroAssembler: public Assembler {
129129
a.lea(this, r);
130130
}
131131

132+
// Whether materializing the given address for a LDR/STR requires an
133+
// additional lea instruction.
134+
static bool legitimize_address_requires_lea(const Address &a, int size) {
135+
return a.getMode() == Address::base_plus_offset &&
136+
!Address::offset_ok_for_immed(a.offset(), exact_log2(size));
137+
}
138+
132139
/* Sometimes we get misaligned loads and stores, usually from Unsafe
133140
accesses, and these can exceed the offset range. */
134141
Address legitimize_address(const Address &a, int size, Register scratch) {
135-
if (a.getMode() == Address::base_plus_offset) {
136-
if (! Address::offset_ok_for_immed(a.offset(), exact_log2(size))) {
137-
block_comment("legitimize_address {");
138-
lea(scratch, a);
139-
block_comment("} legitimize_address");
140-
return Address(scratch);
141-
}
142+
if (legitimize_address_requires_lea(a, size)) {
143+
block_comment("legitimize_address {");
144+
lea(scratch, a);
145+
block_comment("} legitimize_address");
146+
return Address(scratch);
142147
}
143148
return a;
144149
}

src/hotspot/cpu/ppc/gc/z/z_ppc.ad

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -141,6 +141,7 @@ instruct zLoadP(iRegPdst dst, memoryAlg4 mem, flagsRegCR0 cr0)
141141
%{
142142
match(Set dst (LoadP mem));
143143
effect(TEMP_DEF dst, KILL cr0);
144+
ins_is_late_expanded_null_check_candidate(true);
144145
ins_cost(MEMORY_REF_COST);
145146

146147
predicate((UseZGC && n->as_Load()->barrier_data() != 0)
@@ -160,6 +161,7 @@ instruct zLoadP_acq(iRegPdst dst, memoryAlg4 mem, flagsRegCR0 cr0)
160161
%{
161162
match(Set dst (LoadP mem));
162163
effect(TEMP_DEF dst, KILL cr0);
164+
ins_is_late_expanded_null_check_candidate(true);
163165
ins_cost(3 * MEMORY_REF_COST);
164166

165167
// Predicate on instruction order is implicitly present due to the predicate of the cheaper zLoadP operation

0 commit comments

Comments
 (0)