Skip to content

Commit ee89001

Browse files
committed
Merge tag 'jdk-26.0.1+8' into sapmachine26
Added tag jdk-26.0.1+8 for changeset fcc00fc
2 parents dfaab67 + fcc00fc commit ee89001

390 files changed

Lines changed: 8590 additions & 6169 deletions

File tree

Some content is hidden

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

.jcheck/conf

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
[general]
2-
project=jdk
2+
project=jdk-updates
33
jbs=JDK
4-
version=26
4+
version=26.0.1
55

66
[checks]
77
error=author,committer,reviewers,merge,issues,executable,symlink,message,hg-tag,whitespace,problemlists,copyright

make/modules/java.base/Copy.gmk

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
#
2-
# Copyright (c) 2014, 2025, Oracle and/or its affiliates. All rights reserved.
2+
# Copyright (c) 2014, 2026, Oracle and/or its affiliates. All rights reserved.
33
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
44
#
55
# This code is free software; you can redistribute it and/or modify it
@@ -172,6 +172,10 @@ ifeq ($(USE_EXTERNAL_LIBZ), true)
172172
LEGAL_EXCLUDES += zlib.md
173173
endif
174174

175+
ifneq ($(TOOLCHAIN_TYPE), gcc)
176+
LEGAL_EXCLUDES += gcc.md
177+
endif
178+
175179
$(eval $(call SetupCopyLegalFiles, COPY_LEGAL, \
176180
EXCLUDES := $(LEGAL_EXCLUDES), \
177181
))

src/hotspot/cpu/aarch64/aarch64.ad

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7702,10 +7702,11 @@ instruct bytes_reverse_unsigned_short(iRegINoSp dst, iRegIorL2I src) %{
77027702
match(Set dst (ReverseBytesUS src));
77037703

77047704
ins_cost(INSN_COST);
7705-
format %{ "rev16w $dst, $src" %}
7705+
format %{ "rev16w $dst, $src\t# $dst -> unsigned short" %}
77067706

77077707
ins_encode %{
77087708
__ rev16w(as_Register($dst$$reg), as_Register($src$$reg));
7709+
__ narrow_subword_type(as_Register($dst$$reg), T_CHAR);
77097710
%}
77107711

77117712
ins_pipe(ialu_reg);

src/hotspot/cpu/aarch64/macroAssembler_aarch64.cpp

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2665,6 +2665,17 @@ void MacroAssembler::store_sized_value(Address dst, Register src, size_t size_in
26652665
}
26662666
}
26672667

2668+
void MacroAssembler::narrow_subword_type(Register reg, BasicType bt) {
2669+
assert(is_subword_type(bt), "required");
2670+
switch (bt) {
2671+
case T_BOOLEAN: andw(reg, reg, 1); break;
2672+
case T_BYTE: sxtbw(reg, reg); break;
2673+
case T_CHAR: uxthw(reg, reg); break;
2674+
case T_SHORT: sxthw(reg, reg); break;
2675+
default: ShouldNotReachHere();
2676+
}
2677+
}
2678+
26682679
void MacroAssembler::decrementw(Register reg, int value)
26692680
{
26702681
if (value < 0) { incrementw(reg, -value); return; }

src/hotspot/cpu/aarch64/macroAssembler_aarch64.hpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@
3333
#include "oops/compressedOops.hpp"
3434
#include "oops/compressedKlass.hpp"
3535
#include "runtime/vm_version.hpp"
36+
#include "utilities/globalDefinitions.hpp"
3637
#include "utilities/powerOfTwo.hpp"
3738

3839
class OopMap;
@@ -721,6 +722,9 @@ class MacroAssembler: public Assembler {
721722
// Support for sign-extension (hi:lo = extend_sign(lo))
722723
void extend_sign(Register hi, Register lo);
723724

725+
// Clean up a subword typed value to the representation in compliance with JVMS §2.3
726+
void narrow_subword_type(Register reg, BasicType bt);
727+
724728
// Load and store values by size and signed-ness
725729
void load_sized_value(Register dst, Address src, size_t size_in_bytes, bool is_signed);
726730
void store_sized_value(Address dst, Register src, size_t size_in_bytes);

src/hotspot/cpu/arm/arm.ad

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9199,10 +9199,12 @@ instruct bytes_reverse_long(iRegL dst, iRegL src) %{
91999199

92009200
instruct bytes_reverse_unsigned_short(iRegI dst, iRegI src) %{
92019201
match(Set dst (ReverseBytesUS src));
9202-
size(4);
9203-
format %{ "REV16 $dst,$src" %}
9202+
size(8);
9203+
format %{ "REV32 $dst,$src\n\t"
9204+
"LSR $dst,$dst,#16" %}
92049205
ins_encode %{
9205-
__ rev16($dst$$Register, $src$$Register);
9206+
__ rev($dst$$Register, $src$$Register);
9207+
__ mov($dst$$Register, AsmOperand($dst$$Register, lsr, 16));
92069208
%}
92079209
ins_pipe( iload_mem ); // FIXME
92089210
%}

src/hotspot/cpu/ppc/interp_masm_ppc_64.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1109,11 +1109,11 @@ void InterpreterMacroAssembler::verify_method_data_pointer() {
11091109
lhz(R11_scratch1, in_bytes(DataLayout::bci_offset()), R28_mdx);
11101110
ld(R12_scratch2, in_bytes(Method::const_offset()), R19_method);
11111111
addi(R11_scratch1, R11_scratch1, in_bytes(ConstMethod::codes_offset()));
1112-
add(R11_scratch1, R12_scratch2, R12_scratch2);
1112+
add(R11_scratch1, R11_scratch1, R12_scratch2);
11131113
cmpd(CR0, R11_scratch1, R14_bcp);
11141114
beq(CR0, verify_continue);
11151115

1116-
call_VM_leaf(CAST_FROM_FN_PTR(address, InterpreterRuntime::verify_mdp ), R19_method, R14_bcp, R28_mdx);
1116+
call_VM_leaf(CAST_FROM_FN_PTR(address, InterpreterRuntime::verify_mdp), R19_method, R14_bcp, R28_mdx);
11171117

11181118
bind(verify_continue);
11191119
#endif

src/hotspot/cpu/ppc/ppc.ad

Lines changed: 17 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -12391,6 +12391,19 @@ instruct countTrailingZerosL_cnttzd(iRegIdst dst, iRegLsrc src) %{
1239112391
ins_pipe(pipe_class_default);
1239212392
%}
1239312393

12394+
// Expand nodes for byte_reverse_int/ushort/short.
12395+
instruct rlwinm(iRegIdst dst, iRegIsrc src, immI16 shift, immI16 mb, immI16 me) %{
12396+
effect(DEF dst, USE src, USE shift, USE mb, USE me);
12397+
predicate(false);
12398+
12399+
format %{ "RLWINM $dst, $src, $shift, $mb, $me" %}
12400+
size(4);
12401+
ins_encode %{
12402+
__ rlwinm($dst$$Register, $src$$Register, $shift$$constant, $mb$$constant, $me$$constant);
12403+
%}
12404+
ins_pipe(pipe_class_default);
12405+
%}
12406+
1239412407
// Expand nodes for byte_reverse_int.
1239512408
instruct insrwi_a(iRegIdst dst, iRegIsrc src, immI16 n, immI16 b) %{
1239612409
effect(DEF dst, USE src, USE n, USE b);
@@ -12547,34 +12560,22 @@ instruct bytes_reverse_long(iRegLdst dst, iRegLsrc src) %{
1254712560
ins_pipe(pipe_class_default);
1254812561
%}
1254912562

12563+
// Need zero extend. Must not use brh only.
1255012564
instruct bytes_reverse_ushort_Ex(iRegIdst dst, iRegIsrc src) %{
1255112565
match(Set dst (ReverseBytesUS src));
12552-
predicate(!UseByteReverseInstructions);
1255312566
ins_cost(2*DEFAULT_COST);
1255412567

1255512568
expand %{
12569+
immI16 imm31 %{ (int) 31 %}
12570+
immI16 imm24 %{ (int) 24 %}
1255612571
immI16 imm16 %{ (int) 16 %}
1255712572
immI16 imm8 %{ (int) 8 %}
1255812573

12559-
urShiftI_reg_imm(dst, src, imm8);
12574+
rlwinm(dst, src, imm24, imm24, imm31);
1256012575
insrwi(dst, src, imm8, imm16);
1256112576
%}
1256212577
%}
1256312578

12564-
instruct bytes_reverse_ushort(iRegIdst dst, iRegIsrc src) %{
12565-
match(Set dst (ReverseBytesUS src));
12566-
predicate(UseByteReverseInstructions);
12567-
ins_cost(DEFAULT_COST);
12568-
size(4);
12569-
12570-
format %{ "BRH $dst, $src" %}
12571-
12572-
ins_encode %{
12573-
__ brh($dst$$Register, $src$$Register);
12574-
%}
12575-
ins_pipe(pipe_class_default);
12576-
%}
12577-
1257812579
instruct bytes_reverse_short_Ex(iRegIdst dst, iRegIsrc src) %{
1257912580
match(Set dst (ReverseBytesS src));
1258012581
predicate(!UseByteReverseInstructions);

src/hotspot/cpu/riscv/sharedRuntime_riscv.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -213,7 +213,7 @@ void RegisterSaver::restore_live_registers(MacroAssembler* masm) {
213213
// Is vector's size (in bytes) bigger than a size saved by default?
214214
// riscv does not ovlerlay the floating-point registers on vector registers like aarch64.
215215
bool SharedRuntime::is_wide_vector(int size) {
216-
return UseRVV;
216+
return UseRVV && size > 0;
217217
}
218218

219219
// ---------------------------------------------------------------------------

src/hotspot/cpu/riscv/vm_version_riscv.cpp

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -167,11 +167,6 @@ void VM_Version::common_initialize() {
167167
(unaligned_scalar.value() == MISALIGNED_SCALAR_FAST));
168168
}
169169

170-
if (FLAG_IS_DEFAULT(AlignVector)) {
171-
FLAG_SET_DEFAULT(AlignVector,
172-
unaligned_vector.value() != MISALIGNED_VECTOR_FAST);
173-
}
174-
175170
#ifdef __riscv_ztso
176171
// Hotspot is compiled with TSO support, it will only run on hardware which
177172
// supports Ztso
@@ -242,6 +237,11 @@ void VM_Version::c2_initialize() {
242237
}
243238
}
244239

240+
if (FLAG_IS_DEFAULT(AlignVector)) {
241+
FLAG_SET_DEFAULT(AlignVector,
242+
unaligned_vector.value() != MISALIGNED_VECTOR_FAST);
243+
}
244+
245245
// NOTE: Make sure codes dependent on UseRVV are put after MaxVectorSize initialize,
246246
// as there are extra checks inside it which could disable UseRVV
247247
// in some situations.

0 commit comments

Comments
 (0)