mirror of
https://github.com/openjdk/jdk.git
synced 2025-08-15 13:49:42 +02:00
8365229: ARM32: c2i_no_clinit_check_entry assert failed after JDK-8364269
Some checks failed
OpenJDK GHA Sanity Checks / Prepare the run (push) Failing after 56s
OpenJDK GHA Sanity Checks / linux-x64 (push) Has been cancelled
OpenJDK GHA Sanity Checks / linux-x64-hs-nopch (push) Has been cancelled
OpenJDK GHA Sanity Checks / linux-x64-hs-zero (push) Has been cancelled
OpenJDK GHA Sanity Checks / linux-x64-hs-minimal (push) Has been cancelled
OpenJDK GHA Sanity Checks / linux-x64-hs-optimized (push) Has been cancelled
OpenJDK GHA Sanity Checks / linux-x64-static (push) Has been cancelled
OpenJDK GHA Sanity Checks / linux-x64-static-libs (push) Has been cancelled
OpenJDK GHA Sanity Checks / linux-cross-compile (push) Has been cancelled
OpenJDK GHA Sanity Checks / alpine-linux-x64 (push) Has been cancelled
OpenJDK GHA Sanity Checks / macos-x64 (push) Has been cancelled
OpenJDK GHA Sanity Checks / macos-aarch64 (push) Has been cancelled
OpenJDK GHA Sanity Checks / windows-x64 (push) Has been cancelled
OpenJDK GHA Sanity Checks / windows-aarch64 (push) Has been cancelled
OpenJDK GHA Sanity Checks / docs (push) Has been cancelled
Some checks failed
OpenJDK GHA Sanity Checks / Prepare the run (push) Failing after 56s
OpenJDK GHA Sanity Checks / linux-x64 (push) Has been cancelled
OpenJDK GHA Sanity Checks / linux-x64-hs-nopch (push) Has been cancelled
OpenJDK GHA Sanity Checks / linux-x64-hs-zero (push) Has been cancelled
OpenJDK GHA Sanity Checks / linux-x64-hs-minimal (push) Has been cancelled
OpenJDK GHA Sanity Checks / linux-x64-hs-optimized (push) Has been cancelled
OpenJDK GHA Sanity Checks / linux-x64-static (push) Has been cancelled
OpenJDK GHA Sanity Checks / linux-x64-static-libs (push) Has been cancelled
OpenJDK GHA Sanity Checks / linux-cross-compile (push) Has been cancelled
OpenJDK GHA Sanity Checks / alpine-linux-x64 (push) Has been cancelled
OpenJDK GHA Sanity Checks / macos-x64 (push) Has been cancelled
OpenJDK GHA Sanity Checks / macos-aarch64 (push) Has been cancelled
OpenJDK GHA Sanity Checks / windows-x64 (push) Has been cancelled
OpenJDK GHA Sanity Checks / windows-aarch64 (push) Has been cancelled
OpenJDK GHA Sanity Checks / docs (push) Has been cancelled
Reviewed-by: kvn, adinn, bulasevich, phh
This commit is contained in:
parent
9660320041
commit
9c266ae83c
3 changed files with 19 additions and 9 deletions
|
@ -56,11 +56,11 @@ void SharedRuntime::generate_i2c2i_adapters(MacroAssembler *masm,
|
||||||
const BasicType *sig_bt,
|
const BasicType *sig_bt,
|
||||||
const VMRegPair *regs,
|
const VMRegPair *regs,
|
||||||
AdapterHandlerEntry* handler) {
|
AdapterHandlerEntry* handler) {
|
||||||
|
// VM expects i2c entry to be always filled. The rest can be unset.
|
||||||
handler->set_entry_points(CAST_FROM_FN_PTR(address,zero_null_code_stub),
|
handler->set_entry_points(CAST_FROM_FN_PTR(address,zero_null_code_stub),
|
||||||
CAST_FROM_FN_PTR(address,zero_null_code_stub),
|
nullptr,
|
||||||
CAST_FROM_FN_PTR(address,zero_null_code_stub),
|
nullptr,
|
||||||
nullptr);
|
nullptr);
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
nmethod *SharedRuntime::generate_native_wrapper(MacroAssembler *masm,
|
nmethod *SharedRuntime::generate_native_wrapper(MacroAssembler *masm,
|
||||||
|
|
|
@ -450,8 +450,10 @@ AdapterBlob::AdapterBlob(int size, CodeBuffer* cb, int entry_offset[AdapterBlob:
|
||||||
BufferBlob("I2C/C2I adapters", CodeBlobKind::Adapter, cb, size, sizeof(AdapterBlob)) {
|
BufferBlob("I2C/C2I adapters", CodeBlobKind::Adapter, cb, size, sizeof(AdapterBlob)) {
|
||||||
assert(entry_offset[0] == 0, "sanity check");
|
assert(entry_offset[0] == 0, "sanity check");
|
||||||
for (int i = 1; i < AdapterBlob::ENTRY_COUNT; i++) {
|
for (int i = 1; i < AdapterBlob::ENTRY_COUNT; i++) {
|
||||||
assert(entry_offset[i] > 0 && entry_offset[i] < cb->insts()->size(),
|
// The entry is within the adapter blob or unset.
|
||||||
"invalid entry offset 0x%x", entry_offset[i]);
|
assert((entry_offset[i] > 0 && entry_offset[i] < cb->insts()->size()) ||
|
||||||
|
(entry_offset[i] == -1),
|
||||||
|
"invalid entry offset[%d] = 0x%x", i, entry_offset[i]);
|
||||||
}
|
}
|
||||||
_c2i_offset = entry_offset[1];
|
_c2i_offset = entry_offset[1];
|
||||||
_c2i_unverified_offset = entry_offset[2];
|
_c2i_unverified_offset = entry_offset[2];
|
||||||
|
|
|
@ -2778,7 +2778,12 @@ AdapterBlob* AdapterHandlerLibrary::lookup_aot_cache(AdapterHandlerEntry* handle
|
||||||
adapter_blob->get_offsets(offsets);
|
adapter_blob->get_offsets(offsets);
|
||||||
address i2c_entry = adapter_blob->content_begin();
|
address i2c_entry = adapter_blob->content_begin();
|
||||||
assert(offsets[0] == 0, "sanity check");
|
assert(offsets[0] == 0, "sanity check");
|
||||||
handler->set_entry_points(i2c_entry, i2c_entry + offsets[1], i2c_entry + offsets[2], i2c_entry + offsets[3]);
|
handler->set_entry_points(
|
||||||
|
i2c_entry,
|
||||||
|
(offsets[1] != -1) ? (i2c_entry + offsets[1]) : nullptr,
|
||||||
|
(offsets[2] != -1) ? (i2c_entry + offsets[2]) : nullptr,
|
||||||
|
(offsets[3] != -1) ? (i2c_entry + offsets[3]) : nullptr
|
||||||
|
);
|
||||||
}
|
}
|
||||||
return adapter_blob;
|
return adapter_blob;
|
||||||
}
|
}
|
||||||
|
@ -2842,9 +2847,12 @@ bool AdapterHandlerLibrary::generate_adapter_code(AdapterBlob*& adapter_blob,
|
||||||
assert(AdapterBlob::ENTRY_COUNT == 4, "sanity");
|
assert(AdapterBlob::ENTRY_COUNT == 4, "sanity");
|
||||||
address i2c_entry = handler->get_i2c_entry();
|
address i2c_entry = handler->get_i2c_entry();
|
||||||
entry_offset[0] = 0; // i2c_entry offset
|
entry_offset[0] = 0; // i2c_entry offset
|
||||||
entry_offset[1] = handler->get_c2i_entry() - i2c_entry;
|
entry_offset[1] = (handler->get_c2i_entry() != nullptr) ?
|
||||||
entry_offset[2] = handler->get_c2i_unverified_entry() - i2c_entry;
|
(handler->get_c2i_entry() - i2c_entry) : -1;
|
||||||
entry_offset[3] = handler->get_c2i_no_clinit_check_entry() - i2c_entry;
|
entry_offset[2] = (handler->get_c2i_unverified_entry() != nullptr) ?
|
||||||
|
(handler->get_c2i_unverified_entry() - i2c_entry) : -1;
|
||||||
|
entry_offset[3] = (handler->get_c2i_no_clinit_check_entry() != nullptr) ?
|
||||||
|
(handler->get_c2i_no_clinit_check_entry() - i2c_entry) : -1;
|
||||||
|
|
||||||
adapter_blob = AdapterBlob::create(&buffer, entry_offset);
|
adapter_blob = AdapterBlob::create(&buffer, entry_offset);
|
||||||
if (adapter_blob == nullptr) {
|
if (adapter_blob == nullptr) {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue