src/cpu/x86/vm/vtableStubs_x86_64.cpp
Index
Unified diffs
Context diffs
Sdiffs
Patch
New
Old
Previous File
Next File
*** old/src/cpu/x86/vm/vtableStubs_x86_64.cpp Thu Apr 24 15:53:06 2014
--- new/src/cpu/x86/vm/vtableStubs_x86_64.cpp Thu Apr 24 15:53:06 2014
*** 63,73 ****
--- 63,73 ----
__ incrementl(ExternalAddress((address) SharedRuntime::nof_megamorphic_calls_addr()));
}
#endif
// get receiver (need to skip return address on top of stack)
! assert(VtableStub::receiver_location() == j_rarg0->as_VMReg(), "receiver expected in j_rarg0");
! assert(VtableStub::receiver_location() == j_rarg0.as_VMReg(), "receiver expected in j_rarg0");
// Free registers (non-args) are rax, rbx
// get receiver klass
address npe_addr = __ pc();
*** 152,162 ****
--- 152,162 ----
// Free registers (non-args) are rax (interface), rbx
// get receiver (need to skip return address on top of stack)
! assert(VtableStub::receiver_location() == j_rarg0->as_VMReg(), "receiver expected in j_rarg0");
! assert(VtableStub::receiver_location() == j_rarg0.as_VMReg(), "receiver expected in j_rarg0");
// get receiver klass (also an implicit null-check)
address npe_addr = __ pc();
// Most registers are in use; we'll use rax, rbx, r10, r11
// (various calling sequences use r[cd]x, r[sd]i, r[89]; stay away from them)
src/cpu/x86/vm/vtableStubs_x86_64.cpp
Index
Unified diffs
Context diffs
Sdiffs
Patch
New
Old
Previous File
Next File