Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
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
12 changes: 6 additions & 6 deletions src/hotspot/cpu/aarch64/c1_Runtime1_aarch64.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -91,10 +91,10 @@ int StubAssembler::call_RT(Register oop_result1, Register metadata_result, addre
// exception pending => remove activation and forward to exception handler
// make sure that the vm_results are cleared
if (oop_result1->is_valid()) {
str(zr, Address(rthread, JavaThread::vm_result_offset()));
str(zr, Address(rthread, JavaThread::vm_result_oop_offset()));
}
if (metadata_result->is_valid()) {
str(zr, Address(rthread, JavaThread::vm_result_2_offset()));
str(zr, Address(rthread, JavaThread::vm_result_metadata_offset()));
}
if (frame_size() == no_frame_size) {
leave();
Expand All @@ -108,10 +108,10 @@ int StubAssembler::call_RT(Register oop_result1, Register metadata_result, addre
}
// get oop results if there are any and reset the values in the thread
if (oop_result1->is_valid()) {
get_vm_result(oop_result1, rthread);
get_vm_result_oop(oop_result1, rthread);
}
if (metadata_result->is_valid()) {
get_vm_result_2(metadata_result, rthread);
get_vm_result_metadata(metadata_result, rthread);
}
return call_offset;
}
Expand Down Expand Up @@ -406,8 +406,8 @@ OopMapSet* Runtime1::generate_handle_exception(C1StubId id, StubAssembler *sasm)
__ authenticate_return_address(exception_pc);

// make sure that the vm_results are cleared (may be unnecessary)
__ str(zr, Address(rthread, JavaThread::vm_result_offset()));
__ str(zr, Address(rthread, JavaThread::vm_result_2_offset()));
__ str(zr, Address(rthread, JavaThread::vm_result_oop_offset()));
__ str(zr, Address(rthread, JavaThread::vm_result_metadata_offset()));
break;
case C1StubId::handle_exception_nofpu_id:
case C1StubId::handle_exception_id:
Expand Down
14 changes: 7 additions & 7 deletions src/hotspot/cpu/aarch64/macroAssembler_aarch64.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -849,7 +849,7 @@ void MacroAssembler::call_VM_base(Register oop_result,

// get oop result if there is one and reset the value in the thread
if (oop_result->is_valid()) {
get_vm_result(oop_result, java_thread);
get_vm_result_oop(oop_result, java_thread);
}
}

Expand Down Expand Up @@ -1145,15 +1145,15 @@ void MacroAssembler::call_VM(Register oop_result,
}


void MacroAssembler::get_vm_result(Register oop_result, Register java_thread) {
ldr(oop_result, Address(java_thread, JavaThread::vm_result_offset()));
str(zr, Address(java_thread, JavaThread::vm_result_offset()));
void MacroAssembler::get_vm_result_oop(Register oop_result, Register java_thread) {
ldr(oop_result, Address(java_thread, JavaThread::vm_result_oop_offset()));
str(zr, Address(java_thread, JavaThread::vm_result_oop_offset()));
verify_oop_msg(oop_result, "broken oop in call_VM_base");
}

void MacroAssembler::get_vm_result_2(Register metadata_result, Register java_thread) {
ldr(metadata_result, Address(java_thread, JavaThread::vm_result_2_offset()));
str(zr, Address(java_thread, JavaThread::vm_result_2_offset()));
void MacroAssembler::get_vm_result_metadata(Register metadata_result, Register java_thread) {
ldr(metadata_result, Address(java_thread, JavaThread::vm_result_metadata_offset()));
str(zr, Address(java_thread, JavaThread::vm_result_metadata_offset()));
}

void MacroAssembler::align(int modulus) {
Expand Down
4 changes: 2 additions & 2 deletions src/hotspot/cpu/aarch64/macroAssembler_aarch64.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -823,8 +823,8 @@ class MacroAssembler: public Assembler {
Register arg_1, Register arg_2, Register arg_3,
bool check_exceptions = true);

void get_vm_result (Register oop_result, Register thread);
void get_vm_result_2(Register metadata_result, Register thread);
void get_vm_result_oop(Register oop_result, Register thread);
void get_vm_result_metadata(Register metadata_result, Register thread);

// These always tightly bind to MacroAssembler::call_VM_base
// bypassing the virtual implementation
Expand Down
4 changes: 2 additions & 2 deletions src/hotspot/cpu/aarch64/sharedRuntime_aarch64.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2783,7 +2783,7 @@ RuntimeStub* SharedRuntime::generate_resolve_blob(SharedStubId id, address desti
__ cbnz(rscratch1, pending);

// get the returned Method*
__ get_vm_result_2(rmethod, rthread);
__ get_vm_result_metadata(rmethod, rthread);
__ str(rmethod, Address(sp, reg_save.reg_offset_in_bytes(rmethod)));

// r0 is where we want to jump, overwrite rscratch1 which is saved and scratch
Expand All @@ -2802,7 +2802,7 @@ RuntimeStub* SharedRuntime::generate_resolve_blob(SharedStubId id, address desti

// exception pending => remove activation and forward to exception handler

__ str(zr, Address(rthread, JavaThread::vm_result_offset()));
__ str(zr, Address(rthread, JavaThread::vm_result_oop_offset()));

__ ldr(r0, Address(rthread, Thread::pending_exception_offset()));
__ far_jump(RuntimeAddress(StubRoutines::forward_exception_entry()));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1978,11 +1978,11 @@ void TemplateInterpreterGenerator::generate_throw_exception() {

// preserve exception over this code sequence
__ pop_ptr(r0);
__ str(r0, Address(rthread, JavaThread::vm_result_offset()));
__ str(r0, Address(rthread, JavaThread::vm_result_oop_offset()));
// remove the activation (without doing throws on illegalMonitorExceptions)
__ remove_activation(vtos, false, true, false);
// restore exception
__ get_vm_result(r0, rthread);
__ get_vm_result_oop(r0, rthread);

// In between activations - previous activation type unknown yet
// compute continuation point - the continuation point expects the
Expand Down
8 changes: 3 additions & 5 deletions src/hotspot/cpu/aarch64/templateTable_aarch64.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -484,7 +484,7 @@ void TemplateTable::condy_helper(Label& Done)
__ mov(rarg, (int) bytecode());
__ call_VM(obj, entry, rarg);

__ get_vm_result_2(flags, rthread);
__ get_vm_result_metadata(flags, rthread);

// VMr = obj = base address to find primitive value to push
// VMr2 = flags = (tos, off) using format of CPCE::_flags
Expand Down Expand Up @@ -3723,8 +3723,7 @@ void TemplateTable::checkcast()

__ push(atos); // save receiver for result, and for GC
call_VM(r0, CAST_FROM_FN_PTR(address, InterpreterRuntime::quicken_io_cc));
// vm_result_2 has metadata result
__ get_vm_result_2(r0, rthread);
__ get_vm_result_metadata(r0, rthread);
__ pop(r3); // restore receiver
__ b(resolved);

Expand Down Expand Up @@ -3777,8 +3776,7 @@ void TemplateTable::instanceof() {

__ push(atos); // save receiver for result, and for GC
call_VM(r0, CAST_FROM_FN_PTR(address, InterpreterRuntime::quicken_io_cc));
// vm_result_2 has metadata result
__ get_vm_result_2(r0, rthread);
__ get_vm_result_metadata(r0, rthread);
__ pop(r3); // restore receiver
__ verify_oop(r3);
__ load_klass(r3, r3);
Expand Down
4 changes: 2 additions & 2 deletions src/hotspot/cpu/arm/c1_Runtime1_arm.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -70,11 +70,11 @@ int StubAssembler::call_RT(Register oop_result1, Register metadata_result, addre

if (oop_result1->is_valid()) {
assert_different_registers(oop_result1, R3, Rtemp);
get_vm_result(oop_result1, Rtemp);
get_vm_result_oop(oop_result1, Rtemp);
}
if (metadata_result->is_valid()) {
assert_different_registers(metadata_result, R3, Rtemp);
get_vm_result_2(metadata_result, Rtemp);
get_vm_result_metadata(metadata_result, Rtemp);
}

// Check for pending exception
Expand Down
14 changes: 7 additions & 7 deletions src/hotspot/cpu/arm/macroAssembler_arm.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -424,7 +424,7 @@ void MacroAssembler::call_VM_helper(Register oop_result, address entry_point, in

// get oop result if there is one and reset the value in the thread
if (oop_result->is_valid()) {
get_vm_result(oop_result, tmp);
get_vm_result_oop(oop_result, tmp);
}
}

Expand Down Expand Up @@ -528,17 +528,17 @@ void MacroAssembler::call_VM_leaf(address entry_point, Register arg_1, Register
call_VM_leaf_helper(entry_point, 4);
}

void MacroAssembler::get_vm_result(Register oop_result, Register tmp) {
void MacroAssembler::get_vm_result_oop(Register oop_result, Register tmp) {
assert_different_registers(oop_result, tmp);
ldr(oop_result, Address(Rthread, JavaThread::vm_result_offset()));
str(zero_register(tmp), Address(Rthread, JavaThread::vm_result_offset()));
ldr(oop_result, Address(Rthread, JavaThread::vm_result_oop_offset()));
str(zero_register(tmp), Address(Rthread, JavaThread::vm_result_oop_offset()));
verify_oop(oop_result);
}

void MacroAssembler::get_vm_result_2(Register metadata_result, Register tmp) {
void MacroAssembler::get_vm_result_metadata(Register metadata_result, Register tmp) {
assert_different_registers(metadata_result, tmp);
ldr(metadata_result, Address(Rthread, JavaThread::vm_result_2_offset()));
str(zero_register(tmp), Address(Rthread, JavaThread::vm_result_2_offset()));
ldr(metadata_result, Address(Rthread, JavaThread::vm_result_metadata_offset()));
str(zero_register(tmp), Address(Rthread, JavaThread::vm_result_metadata_offset()));
}

void MacroAssembler::add_rc(Register dst, Register arg1, RegisterOrConstant arg2) {
Expand Down
4 changes: 2 additions & 2 deletions src/hotspot/cpu/arm/macroAssembler_arm.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -257,8 +257,8 @@ class MacroAssembler: public Assembler {
void call_VM_leaf(address entry_point, Register arg_1, Register arg_2, Register arg_3);
void call_VM_leaf(address entry_point, Register arg_1, Register arg_2, Register arg_3, Register arg_4);

void get_vm_result(Register oop_result, Register tmp);
void get_vm_result_2(Register metadata_result, Register tmp);
void get_vm_result_oop(Register oop_result, Register tmp);
void get_vm_result_metadata(Register metadata_result, Register tmp);

// Always sets/resets sp, which default to SP if (last_sp == noreg)
// Optionally sets/resets fp (use noreg to avoid setting it)
Expand Down
4 changes: 2 additions & 2 deletions src/hotspot/cpu/arm/sharedRuntime_arm.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1717,7 +1717,7 @@ RuntimeStub* SharedRuntime::generate_resolve_blob(SharedStubId id, address desti
// Overwrite saved register values

// Place metadata result of VM call into Rmethod
__ get_vm_result_2(R1, Rtemp);
__ get_vm_result_metadata(R1, Rtemp);
__ str(R1, Address(SP, RegisterSaver::Rmethod_offset * wordSize));

// Place target address (VM call result) into Rtemp
Expand All @@ -1730,7 +1730,7 @@ RuntimeStub* SharedRuntime::generate_resolve_blob(SharedStubId id, address desti

RegisterSaver::restore_live_registers(masm);
const Register Rzero = __ zero_register(Rtemp);
__ str(Rzero, Address(Rthread, JavaThread::vm_result_2_offset()));
__ str(Rzero, Address(Rthread, JavaThread::vm_result_metadata_offset()));
__ mov(Rexception_pc, LR);
__ jump(StubRoutines::forward_exception_entry(), relocInfo::runtime_call_type, Rtemp);

Expand Down
4 changes: 2 additions & 2 deletions src/hotspot/cpu/arm/templateInterpreterGenerator_arm.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1467,11 +1467,11 @@ void TemplateInterpreterGenerator::generate_throw_exception() {

// preserve exception over this code sequence
__ pop_ptr(R0_tos);
__ str(R0_tos, Address(Rthread, JavaThread::vm_result_offset()));
__ str(R0_tos, Address(Rthread, JavaThread::vm_result_oop_offset()));
// remove the activation (without doing throws on illegalMonitorExceptions)
__ remove_activation(vtos, Rexception_pc, false, true, false);
// restore exception
__ get_vm_result(Rexception_obj, Rtemp);
__ get_vm_result_oop(Rexception_obj, Rtemp);

// In between activations - previous activation type unknown yet
// compute continuation point - the continuation point expects
Expand Down
8 changes: 3 additions & 5 deletions src/hotspot/cpu/arm/templateTable_arm.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -538,7 +538,7 @@ void TemplateTable::condy_helper(Label& Done)

__ mov(rtmp, (int) bytecode());
__ call_VM(obj, CAST_FROM_FN_PTR(address, InterpreterRuntime::resolve_ldc), rtmp);
__ get_vm_result_2(flags, rtmp);
__ get_vm_result_metadata(flags, rtmp);

// VMr = obj = base address to find primitive value to push
// VMr2 = flags = (tos, off) using format of CPCE::_flags
Expand Down Expand Up @@ -4143,8 +4143,7 @@ void TemplateTable::checkcast() {

__ push(atos);
call_VM(noreg, CAST_FROM_FN_PTR(address, InterpreterRuntime::quicken_io_cc));
// vm_result_2 has metadata result
__ get_vm_result_2(Rsuper, Robj);
__ get_vm_result_metadata(Rsuper, Robj);
__ pop_ptr(Robj);
__ b(resolved);

Expand Down Expand Up @@ -4214,8 +4213,7 @@ void TemplateTable::instanceof() {

__ push(atos);
call_VM(noreg, CAST_FROM_FN_PTR(address, InterpreterRuntime::quicken_io_cc));
// vm_result_2 has metadata result
__ get_vm_result_2(Rsuper, Robj);
__ get_vm_result_metadata(Rsuper, Robj);
__ pop_ptr(Robj);
__ b(resolved);

Expand Down
8 changes: 4 additions & 4 deletions src/hotspot/cpu/ppc/c1_Runtime1_ppc.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -82,10 +82,10 @@ int StubAssembler::call_RT(Register oop_result1, Register metadata_result,
if (oop_result1->is_valid() || metadata_result->is_valid()) {
li(R0, 0);
if (oop_result1->is_valid()) {
std(R0, in_bytes(JavaThread::vm_result_offset()), R16_thread);
std(R0, in_bytes(JavaThread::vm_result_oop_offset()), R16_thread);
}
if (metadata_result->is_valid()) {
std(R0, in_bytes(JavaThread::vm_result_2_offset()), R16_thread);
std(R0, in_bytes(JavaThread::vm_result_metadata_offset()), R16_thread);
}
}

Expand All @@ -112,10 +112,10 @@ int StubAssembler::call_RT(Register oop_result1, Register metadata_result,

// Get oop results if there are any and reset the values in the thread.
if (oop_result1->is_valid()) {
get_vm_result(oop_result1);
get_vm_result_oop(oop_result1);
}
if (metadata_result->is_valid()) {
get_vm_result_2(metadata_result);
get_vm_result_metadata(metadata_result);
}

return (int)(return_pc - code_section()->start());
Expand Down
22 changes: 11 additions & 11 deletions src/hotspot/cpu/ppc/macroAssembler_ppc.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1337,7 +1337,7 @@ void MacroAssembler::call_VM_base(Register oop_result,

// Get oop result if there is one and reset the value in the thread.
if (oop_result->is_valid()) {
get_vm_result(oop_result);
get_vm_result_oop(oop_result);
}

_last_calls_return_pc = return_pc;
Expand Down Expand Up @@ -3425,34 +3425,34 @@ void MacroAssembler::set_top_ijava_frame_at_SP_as_last_Java_frame(Register sp, R
set_last_Java_frame(/*sp=*/sp, /*pc=*/tmp1);
}

void MacroAssembler::get_vm_result(Register oop_result) {
void MacroAssembler::get_vm_result_oop(Register oop_result) {
// Read:
// R16_thread
// R16_thread->in_bytes(JavaThread::vm_result_offset())
// R16_thread->in_bytes(JavaThread::vm_result_oop_offset())
//
// Updated:
// oop_result
// R16_thread->in_bytes(JavaThread::vm_result_offset())
// R16_thread->in_bytes(JavaThread::vm_result_oop_offset())

ld(oop_result, in_bytes(JavaThread::vm_result_offset()), R16_thread);
ld(oop_result, in_bytes(JavaThread::vm_result_oop_offset()), R16_thread);
li(R0, 0);
std(R0, in_bytes(JavaThread::vm_result_offset()), R16_thread);
std(R0, in_bytes(JavaThread::vm_result_oop_offset()), R16_thread);

verify_oop(oop_result, FILE_AND_LINE);
}

void MacroAssembler::get_vm_result_2(Register metadata_result) {
void MacroAssembler::get_vm_result_metadata(Register metadata_result) {
// Read:
// R16_thread
// R16_thread->in_bytes(JavaThread::vm_result_2_offset())
// R16_thread->in_bytes(JavaThread::vm_result_metadata_offset())
//
// Updated:
// metadata_result
// R16_thread->in_bytes(JavaThread::vm_result_2_offset())
// R16_thread->in_bytes(JavaThread::vm_result_metadata_offset())

ld(metadata_result, in_bytes(JavaThread::vm_result_2_offset()), R16_thread);
ld(metadata_result, in_bytes(JavaThread::vm_result_metadata_offset()), R16_thread);
li(R0, 0);
std(R0, in_bytes(JavaThread::vm_result_2_offset()), R16_thread);
std(R0, in_bytes(JavaThread::vm_result_metadata_offset()), R16_thread);
}

Register MacroAssembler::encode_klass_not_null(Register dst, Register src) {
Expand Down
4 changes: 2 additions & 2 deletions src/hotspot/cpu/ppc/macroAssembler_ppc.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -745,8 +745,8 @@ class MacroAssembler: public Assembler {
void set_top_ijava_frame_at_SP_as_last_Java_frame(Register sp, Register tmp1, Label* jpc = nullptr);

// Read vm result from thread: oop_result = R16_thread->result;
void get_vm_result (Register oop_result);
void get_vm_result_2(Register metadata_result);
void get_vm_result_oop(Register oop_result);
void get_vm_result_metadata(Register metadata_result);

static bool needs_explicit_null_check(intptr_t offset);
static bool uses_implicit_null_check(void* address);
Expand Down
4 changes: 2 additions & 2 deletions src/hotspot/cpu/ppc/sharedRuntime_ppc.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -3404,7 +3404,7 @@ RuntimeStub* SharedRuntime::generate_resolve_blob(SharedStubId id, address desti
RegisterSaver::restore_live_registers_and_pop_frame(masm, frame_size_in_bytes, /*restore_ctr*/ false);

// Get the returned method.
__ get_vm_result_2(R19_method);
__ get_vm_result_metadata(R19_method);

__ bctr();

Expand All @@ -3418,7 +3418,7 @@ RuntimeStub* SharedRuntime::generate_resolve_blob(SharedStubId id, address desti

__ li(R11_scratch1, 0);
__ ld(R3_ARG1, thread_(pending_exception));
__ std(R11_scratch1, in_bytes(JavaThread::vm_result_offset()), R16_thread);
__ std(R11_scratch1, in_bytes(JavaThread::vm_result_oop_offset()), R16_thread);
__ b64_patchable(StubRoutines::forward_exception_entry(), relocInfo::runtime_call_type);

// -------------
Expand Down
4 changes: 2 additions & 2 deletions src/hotspot/cpu/ppc/templateInterpreterGenerator_ppc.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2160,12 +2160,12 @@ void TemplateInterpreterGenerator::generate_throw_exception() {
{
__ pop_ptr(Rexception);
__ verify_oop(Rexception);
__ std(Rexception, in_bytes(JavaThread::vm_result_offset()), R16_thread);
__ std(Rexception, in_bytes(JavaThread::vm_result_oop_offset()), R16_thread);

__ unlock_if_synchronized_method(vtos, /* throw_monitor_exception */ false, true);
__ notify_method_exit(false, vtos, InterpreterMacroAssembler::SkipNotifyJVMTI, false);

__ get_vm_result(Rexception);
__ get_vm_result_oop(Rexception);

// We are done with this activation frame; find out where to go next.
// The continuation point will be an exception handler, which expects
Expand Down
Loading