Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
48 commits
Select commit Hold shift + click to select a range
333deb2
8380967: Canceled HttpClient.sendAsync futures throw inconsistent exc…
benjaminp Jul 9, 2026
31dede3
8368180: RISC-V: Remove redundant ext_Zicboz.enable_feature()
DingliZhang Jul 9, 2026
7753c98
8386475: C2 x64: -XX:-UseBMI2Instructions is broken for AVX-512
Jul 9, 2026
d425cbe
8286300: Port JEP 425 to S390X
offamitkumar Jul 9, 2026
ab116d0
8385945: Deprecate the CompilationMode flag
mhaessig Jul 9, 2026
095cf06
8387404: Make ClassLoaderData::oops_do inlineable
shipilev Jul 9, 2026
a230a60
8387795: Remove hard coded set of locales in LocaleData
naotoj Jul 9, 2026
7544c91
8387961: Shenandoah: Rework marked objects loop prefetch
shipilev Jul 9, 2026
4d3723b
8382536: C2: sharpen_type_after_if: assert(val->find_edge(con) > 0) f…
Jul 9, 2026
cd7b5fc
8386872: Test gc/shenandoah/generational/TestOldGrowthTriggers still …
Jul 9, 2026
05be7e5
8387806: Shenandoah: Reduce allocation-path contention from Shenandoa…
Jul 10, 2026
3354ad3
8386586: [s390x] TestSyncOnValueBasedClassEvent.java fails due to inc…
offamitkumar Jul 10, 2026
3e2366e
8387742: Reclaim CodeCache nmethods more promptly
albertnetymk Jul 10, 2026
978dfec
8387580: [S390x] OpenJDK build crashes with SIGSEGV in HashMap::resize()
vpa1977 Jul 10, 2026
7295b8a
8386953: sun/security/ssl/CertificateCompression/CompressedCertMsgCac…
artur-oracle Jul 10, 2026
6eccdd8
8387578: Test sun/security/ssl/SSLSessionImpl/ResumeChecksServer.java…
artur-oracle Jul 10, 2026
119fe21
8388001: Test java/awt/Frame/PackTwiceTest.java fails because the fra…
lawrence-andrew Jul 10, 2026
c0a3082
8388008: AArch64: data race accessing CodeHeap::high in CodeCache::ma…
Jul 10, 2026
d3e5304
8382841: Revert annotation parsing changes from libgraal
aprilivy Jul 10, 2026
7a5e6ef
8388035: RISC-V: Auto-enable Zfa extension features
zifeihan Jul 13, 2026
b3d9895
8387996: Remove reference to -d64 from serviceability tool manpages
aprilivy Jul 13, 2026
f6d8976
8387702: Linux/clang: enable linktime-gc on libjvm.so too, when it is…
MBaesken Jul 13, 2026
6247550
8388117: [s390x] is_z_illtrap should recognise all forms
offamitkumar Jul 13, 2026
bc1bd75
8388122: NMT: Remove unused comm_size variable from RegionsTree::visi…
albertnetymk Jul 13, 2026
0dcfa72
8388120: [s390x] c2: c_return_value is redundant
aprilivy Jul 13, 2026
d343e6c
8387455: Restrict legacy Locale compatibility handling to exact matches
justin-curtis-lu Jul 13, 2026
151516f
8387985: sun/tools/jstat shell tests fail on platforms that do not su…
Jul 13, 2026
30abe0b
8373487: Out-of-bounds access in AlignmentGapAccess test
Jul 13, 2026
6ec04bb
8387675: IS_WINVISTA macro is obsolete
MBaesken Jul 13, 2026
be40b6b
8387188: JImageExtractTest.java test should deny APPEND_DATA ACL in `…
raneashay Jul 14, 2026
6e2a4f8
8386322: Float16Vector.toString should render lane values using Float…
Jul 14, 2026
feb944c
8387637: Dead code for upwards interpreter stacks
benjaminp Jul 14, 2026
f71c37b
8358549: O(n²) time complexity in java.security.Provider.parseLegacy(…
Jul 14, 2026
e452e6c
8374783: C2 compilation asserts with "slice of address and input slic…
Jul 14, 2026
499a25b
8386503: C2: assert(adr_type == nullptr || adr_type->isa_aryptr() != …
merykitty Jul 14, 2026
5d24cec
8387048: NMTCommittedVirtualMemoryTracker.test_committed_virtualmemor…
albertnetymk Jul 14, 2026
0efadf5
8388139: Shenandoah: -XX:+VerifyOops fails on forwarded objects with COH
shipilev Jul 14, 2026
189dde7
8388173: Shenandoah: Overly strict assertion failure in CAS barrier
Jul 14, 2026
fe430ad
8387940: C2: Stress allocation elimination failures
Jul 14, 2026
0381286
8376748: Emit runtime warnings for JCE algorithms that will be disabled
Jul 14, 2026
6ae23a0
8388058: Shenandoah: Refactor arraycopy_work
Jul 14, 2026
10ec62d
8388016: [s390x] Remove the alignment from stubGenerator
Jul 15, 2026
5c673a1
8387414: Insufficient feature gate in vm_version_x86 for UseKyberIntr…
Jul 15, 2026
2b05a13
8387328: C2: A Phi must not have a narrower Type than its inputs
merykitty Jul 15, 2026
f146847
8380549: HttpCookie.expiryDate2DeltaSeconds returns 0 on parse failur…
ehs208 Jul 15, 2026
d689946
8380166: C2: crash in compiled code due to zero division because of w…
rwestrel Jul 15, 2026
2a262d2
8387149: C2: assert(regs[i] != regs[j]) failed: regs[2] and regs[3] a…
Jul 15, 2026
4086d11
8388188: NMT: Remove unused local variable in RegionIterator::next_co…
albertnetymk Jul 15, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions make/autoconf/flags-ldflags.m4
Original file line number Diff line number Diff line change
Expand Up @@ -81,6 +81,7 @@ AC_DEFUN([FLAGS_SETUP_LDFLAGS_HELPER],
fi
if test "x$ENABLE_LINKTIME_GC" = xtrue; then
BASIC_LDFLAGS_JVM_ONLY="$BASIC_LDFLAGS_JVM_ONLY -Wl,--gc-sections -Wl,--undefined=_ZTV8Metadata"
BASIC_LDFLAGS_JDK_ONLY="$BASIC_LDFLAGS_JDK_ONLY -Wl,--gc-sections"
fi
fi
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Arrays;
import java.util.Comparator;
import java.util.Formatter;
import java.util.HashSet;
import java.util.HashMap;
Expand All @@ -39,6 +40,7 @@
import java.util.Set;
import java.util.SortedSet;
import java.util.stream.Collectors;
import static java.util.ResourceBundle.Control;

class ResourceBundleGenerator implements BundleGenerator {
// preferred timezones - keeping compatibility with JDK1.1 3 letter abbreviations
Expand Down Expand Up @@ -69,6 +71,9 @@ class ResourceBundleGenerator implements BundleGenerator {
// For duplicated values
private static final String META_VALUE_PREFIX = "metaValue_";

// locales in the base module
private final Set<Locale> baseModuleLocales = new HashSet<>();

@Override
public void generateBundle(String packageName, String baseName, String localeID,
Map<String, ?> map, BundleType type) throws IOException {
Expand All @@ -80,8 +85,15 @@ public void generateBundle(String packageName, String baseName, String localeID,
return;
}

// Assume that non-base resources go into jdk.localedata
if (!CLDRConverter.isBaseModule) {
if (CLDRConverter.isBaseModule) {
if (!localeID.equals("root")) {
baseModuleLocales.addAll(
Control.getControl(Control.FORMAT_DEFAULT)
.getCandidateLocales("",
Locale.forLanguageTag(CLDRConverter.toLanguageTag(localeID))));
}
} else {
// Assume that non-base resources go into jdk.localedata
dirName = dirName + File.separator + "ext";
packageName = packageName + ".ext";
}
Expand Down Expand Up @@ -284,6 +296,7 @@ public void generateMetaInfo(Map<String, SortedSet<String>> metaInfo) throws IOE
import java.util.HashMap;
import java.util.Locale;
import java.util.Map;
import java.util.Set;
import sun.util.locale.provider.LocaleDataMetaInfo;
import sun.util.locale.provider.LocaleProviderAdapter;
Expand All @@ -296,6 +309,7 @@ public class %s implements LocaleDataMetaInfo {
out.printf("""
private static final Map<Locale, String[]> parentLocalesMap = HashMap.newHashMap(%d);
private static final Map<String, String> languageAliasMap = HashMap.newHashMap(%d);
private static final Set<Locale> baseModuleLocales;
static final boolean nonlikelyScript = %s; // package access from CLDRLocaleProviderAdapter
static {
Expand All @@ -322,7 +336,23 @@ public class %s implements LocaleDataMetaInfo {
CLDRConverter.handlerSupplMeta.getLanguageAliasData().forEach((key, value) -> {
out.printf(" languageAliasMap.put(\"%s\", \"%s\");\n", CLDRConverter.escape(key), CLDRConverter.escape(value));
});
out.printf(" }\n\n");
out.println();

// for baseModuleLocales
out.printf(" baseModuleLocales = Set.of(\n");
out.printf(" %s",
baseModuleLocales.stream()
.map(Locale::toLanguageTag)
.sorted(Comparator.comparing(l -> l.equals("und") ? "" : l))
.map(l -> switch(l) {
case "und" -> "Locale.ROOT";
case "en" -> "Locale.ENGLISH";
case "en-US" -> "Locale.US";
default -> "Locale.forLanguageTag(\"" + l + "\")";
})
.collect(Collectors.joining(",\n ")));
out.printf("\n );");
out.println("\n }\n");

// end of static initializer block.

Expand Down Expand Up @@ -391,6 +421,10 @@ public Map<Locale, String[]> parentLocales() {
return parentLocalesMap;
}
public Set<Locale> baseModuleLocales() {
return baseModuleLocales;
}
// package access from CLDRLocaleProviderAdapter
Map<String, String> likelyScriptMap() {
return CLDRMapHolder.likelyScriptMap;
Expand Down
9 changes: 6 additions & 3 deletions src/hotspot/cpu/aarch64/c2_MacroAssembler_aarch64.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2728,7 +2728,8 @@ void C2_MacroAssembler::reconstruct_frame_pointer(Register rtmp) {
void C2_MacroAssembler::select_from_two_vectors_neon(FloatRegister dst, FloatRegister src1,
FloatRegister src2, FloatRegister index,
FloatRegister tmp, unsigned vector_length_in_bytes) {
assert_different_registers(dst, src1, src2, tmp);
assert_different_registers(src2, tmp);
assert_different_registers(index, tmp);
SIMD_Arrangement size = vector_length_in_bytes == 16 ? T16B : T8B;

if (vector_length_in_bytes == 16) {
Expand Down Expand Up @@ -2757,7 +2758,8 @@ void C2_MacroAssembler::select_from_two_vectors_sve(FloatRegister dst, FloatRegi
FloatRegister src2, FloatRegister index,
FloatRegister tmp, SIMD_RegVariant T,
unsigned vector_length_in_bytes) {
assert_different_registers(dst, src1, src2, index, tmp);
assert_different_registers(src2, tmp);
assert_different_registers(index, tmp);

if (vector_length_in_bytes == 8) {
// We need to fit both the source vectors (src1, src2) in a single vector register because the
Expand All @@ -2784,7 +2786,8 @@ void C2_MacroAssembler::select_from_two_vectors(FloatRegister dst, FloatRegister
FloatRegister tmp, BasicType bt,
unsigned vector_length_in_bytes) {

assert_different_registers(dst, src1, src2, index, tmp);
assert_different_registers(dst, src1, src2, tmp);
assert_different_registers(index, tmp);

// The cases that can reach this method are -
// - UseSVE = 0/1, vector_length_in_bytes = 8 or 16, excluding double and long types
Expand Down
2 changes: 0 additions & 2 deletions src/hotspot/cpu/aarch64/frame_aarch64.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -186,8 +186,6 @@
// deoptimization support
void interpreter_frame_set_last_sp(intptr_t* sp);

static jint interpreter_frame_expression_stack_direction() { return -1; }

// returns the sending frame, without applying any barriers
inline frame sender_raw(RegisterMap* map) const;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -420,6 +420,32 @@ void ShenandoahBarrierSetAssembler::try_peek_weak_handle_in_nmethod(MacroAssembl
__ bind(done);
}

void ShenandoahBarrierSetAssembler::check_oop(MacroAssembler* masm, Register obj, Register tmp1, Register tmp2, Label& L_error) {
// Check if the oop is in the right area of memory
__ mov(tmp2, (intptr_t) Universe::verify_oop_mask());
__ andr(tmp1, obj, tmp2);
__ mov(tmp2, (intptr_t) Universe::verify_oop_bits());

// Compare tmp1 and tmp2. We don't use a compare
// instruction here because the flags register is live.
__ eor(tmp1, tmp1, tmp2);
__ cbnz(tmp1, L_error);

// This routine is sometimes called before applying GC barriers.
// With +COH, loading the klass may end up loading forwarding pointer instead.
Label L_skip;
if (UseCompactObjectHeaders) {
Address gc_state(rthread, in_bytes(ShenandoahThreadLocalData::gc_state_offset()));
__ ldrb(tmp1, gc_state);
__ tbnz(tmp1, ShenandoahHeap::HAS_FORWARDED_BITPOS, L_skip);
}

// Make sure klass is 'reasonable', which is not zero.
__ load_narrow_klass(tmp1, obj);
__ cbz(tmp1, L_error);
__ bind(L_skip);
}

void ShenandoahBarrierSetAssembler::gen_write_ref_array_post_barrier(MacroAssembler* masm, DecoratorSet decorators,
Register start, Register count, Register scratch) {
assert(ShenandoahCardBarrier, "Should have been checked by caller");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -74,6 +74,7 @@ class ShenandoahBarrierSetAssembler: public BarrierSetAssembler {
Register obj, Register tmp, Label& slowpath);
virtual void try_peek_weak_handle_in_nmethod(MacroAssembler* masm, Register weak_handle, Register obj,
Register tmp, Label& slow_path);
virtual void check_oop(MacroAssembler* masm, Register obj, Register tmp1, Register tmp2, Label& L_error);

#ifdef COMPILER1
void keepalive_barrier_c1_stub(LIR_Assembler* ce, ShenandoahKeepaliveBarrierStub* stub);
Expand Down
2 changes: 0 additions & 2 deletions src/hotspot/cpu/arm/frame_arm.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -122,6 +122,4 @@
// helper to update a map with callee-saved FP
static void update_map_with_saved_link(RegisterMap* map, intptr_t** link_addr);

static jint interpreter_frame_expression_stack_direction() { return -1; }

#endif // CPU_ARM_FRAME_ARM_HPP
2 changes: 0 additions & 2 deletions src/hotspot/cpu/ppc/frame_ppc.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -407,8 +407,6 @@
align_wiggle = 1
};

static jint interpreter_frame_expression_stack_direction() { return -1; }

// returns the sending frame, without applying any barriers
inline frame sender_raw(RegisterMap* map) const;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -659,6 +659,26 @@ void ShenandoahBarrierSetAssembler::try_peek_weak_handle_in_nmethod(MacroAssembl
__ block_comment("} try_peek_weak_handle_in_nmethod (shenandoahgc)");
}

void ShenandoahBarrierSetAssembler::check_oop(MacroAssembler *masm, Register obj, const char* msg) {
if (!VerifyOops) {
return;
}

__ mr(R0, obj);

// This routine is sometimes called before applying GC barriers.
// With +COH, verification can touch the klass that may end up loading forwarding pointer instead.
Label L_skip;
if (UseCompactObjectHeaders) {
__ lbz(R0, in_bytes(ShenandoahThreadLocalData::gc_state_offset()), R16_thread);
__ andi_(R0, R0, ShenandoahHeap::HAS_FORWARDED);
__ bne(CR0, L_skip);
}

__ verify_oop(R0, msg);
__ bind(L_skip);
}

void ShenandoahBarrierSetAssembler::gen_write_ref_array_post_barrier(MacroAssembler* masm, DecoratorSet decorators,
Register addr, Register count, Register preserve) {
assert(ShenandoahCardBarrier, "Should have been checked by caller");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -125,6 +125,8 @@ class ShenandoahBarrierSetAssembler: public BarrierSetAssembler {
virtual void try_peek_weak_handle_in_nmethod(MacroAssembler* masm, Register weak_handle, Register obj,
Register tmp, Label& slow_path);

virtual void check_oop(MacroAssembler *masm, Register obj, const char* msg);

#ifdef COMPILER2
// Entry points from Matcher
void load_c2(const MachNode* node, MacroAssembler* masm, Register dst, Register addr, int disp, Register tmp1, Register tmp2, bool narrow, bool acquire);
Expand Down
2 changes: 0 additions & 2 deletions src/hotspot/cpu/riscv/frame_riscv.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -218,8 +218,6 @@
// deoptimization support
void interpreter_frame_set_last_sp(intptr_t* last_sp);

static jint interpreter_frame_expression_stack_direction() { return -1; }

// returns the sending frame, without applying any barriers
inline frame sender_raw(RegisterMap* map) const;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -433,6 +433,32 @@ void ShenandoahBarrierSetAssembler::try_peek_weak_handle_in_nmethod(MacroAssembl
__ bind(done);
}

void ShenandoahBarrierSetAssembler::check_oop(MacroAssembler* masm, Register obj, Register tmp1, Register tmp2, Label& L_error) {
// Check if the oop is in the right area of memory
__ mv(tmp2, (intptr_t) Universe::verify_oop_mask());
__ andr(tmp1, obj, tmp2);
__ mv(tmp2, (intptr_t) Universe::verify_oop_bits());

// Compare tmp1 and tmp2.
__ bne(tmp1, tmp2, L_error);

// This routine is sometimes called before applying GC barriers.
// With +COH, loading the klass may end up loading forwarding pointer instead.
Label L_skip;
if (UseCompactObjectHeaders) {
Address gc_state(xthread, ShenandoahThreadLocalData::gc_state_offset());
__ lbu(tmp1, gc_state);
__ test_bit(tmp1, tmp1, ShenandoahHeap::HAS_FORWARDED_BITPOS);
__ bnez(tmp1, L_skip);
}

// Make sure klass is 'reasonable', which is not zero.
__ load_narrow_klass(tmp1, obj);
__ beqz(tmp1, L_error);

__ bind(L_skip);
}

void ShenandoahBarrierSetAssembler::gen_write_ref_array_post_barrier(MacroAssembler* masm, DecoratorSet decorators,
Register start, Register count, Register tmp) {
assert(ShenandoahCardBarrier, "Did you mean to enable ShenandoahCardBarrier?");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,7 @@ class ShenandoahBarrierSetAssembler: public BarrierSetAssembler {
Register obj, Register tmp, Label& slowpath);
virtual void try_peek_weak_handle_in_nmethod(MacroAssembler* masm, Register weak_handle, Register obj,
Register tmp, Label& slow_path);
virtual void check_oop(MacroAssembler* masm, Register obj, Register tmp1, Register tmp2, Label& L_error);

#ifdef COMPILER1
void keepalive_barrier_c1_stub(LIR_Assembler* ce, ShenandoahKeepaliveBarrierStub* stub);
Expand Down
2 changes: 1 addition & 1 deletion src/hotspot/cpu/riscv/globals_riscv.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -103,7 +103,7 @@ define_pd_global(intx, InlineSmallCode, 1000);
product(bool, UseZbb, false, DIAGNOSTIC, "Use Zbb instructions") \
product(bool, UseZbkb, false, EXPERIMENTAL, "Use Zbkb instructions") \
product(bool, UseZbs, false, DIAGNOSTIC, "Use Zbs instructions") \
product(bool, UseZfa, false, EXPERIMENTAL, "Use Zfa instructions") \
product(bool, UseZfa, false, DIAGNOSTIC, "Use Zfa instructions") \
product(bool, UseZfh, false, DIAGNOSTIC, "Use Zfh instructions") \
product(bool, UseZfhmin, false, DIAGNOSTIC, "Use Zfhmin instructions") \
product(bool, UseZacas, false, EXPERIMENTAL, "Use Zacas instructions") \
Expand Down
8 changes: 5 additions & 3 deletions src/hotspot/cpu/s390/abstractInterpreter_s390.cpp
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*
* Copyright (c) 2016, 2025, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2016, 2026, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2016 SAP SE. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
Expand Down Expand Up @@ -197,8 +197,10 @@ void AbstractInterpreter::layout_activation(Method* method,
assert(is_bottom_frame && (sender_sp == caller->unextended_sp()),
"must initialize sender_sp of bottom skeleton frame when pushing it");
} else {
assert(caller->is_entry_frame() || caller->is_upcall_stub_frame(), "is there a new frame type??");
sender_sp = caller->sp(); // Call_stub only uses it's fp.
// For entry, upcall_stub, and native frames, sender_sp is simply the caller's sp.
// These frames use the standard C ABI and don't require adjustment.
assert(caller->is_entry_frame() || caller->is_upcall_stub_frame() || caller->is_native_frame(), "is there a new frame type??");
sender_sp = caller->sp();
}

interpreter_frame->interpreter_frame_set_method(method);
Expand Down
5 changes: 4 additions & 1 deletion src/hotspot/cpu/s390/assembler_s390.hpp
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*
* Copyright (c) 2016, 2025, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2016, 2026, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2016, 2024 SAP SE. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
Expand Down Expand Up @@ -3279,6 +3279,9 @@ class Assembler : public AbstractAssembler {
static bool is_z_nop(address x) {
return is_z_nop(* (short *) x);
}
static bool is_z_illtrap(address x) {
return *(uint8_t*)x == 0u;
}
static bool is_z_br(long x) {
return is_z_bcr(x) && ((x & 0x00f0) == 0x00f0);
}
Expand Down
4 changes: 3 additions & 1 deletion src/hotspot/cpu/s390/c1_LIRAssembler_s390.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -524,6 +524,7 @@ void LIR_Assembler::call(LIR_OpJavaCall* op, relocInfo::relocType rtype) {
__ z_nop();
__ z_brasl(Z_R14, op->addr());
add_call_info(code_offset(), op->info());
__ post_call_nop();
}

void LIR_Assembler::ic_call(LIR_OpJavaCall* op) {
Expand All @@ -539,7 +540,7 @@ void LIR_Assembler::ic_call(LIR_OpJavaCall* op) {
// CALL to fixup routine. Fixup routine uses ScopeDesc info
// to determine who we intended to call.
__ relocate(virtual_call_Relocation::spec(virtual_call_oop_addr));
call(op, relocInfo::none);
call(op, relocInfo::none); // call will emit a post call nop, see above method.
}

void LIR_Assembler::move_regs(Register from_reg, Register to_reg) {
Expand Down Expand Up @@ -2792,6 +2793,7 @@ void LIR_Assembler::rt_call(LIR_Opr result, address dest,
if (info != nullptr) {
add_call_info_here(info);
}
__ post_call_nop();
}

void LIR_Assembler::volatile_move_op(LIR_Opr src, LIR_Opr dest, BasicType type, CodeEmitInfo* info) {
Expand Down
Loading
Loading