hotspot/src/cpu/x86/vm/templateTable_x86_64.cpp
// Multi arrays
void TemplateTable::multianewarray() {
{- -------------------------------------------
(1) InterpreterRuntime::multianewarray() を呼び出すだけ.
---------------------------------------- -}
transition(vtos, atos);
__ load_unsigned_byte(rax, at_bcp(3)); // get number of dimensions
// last dim is on top of stack; we want address of first one:
// first_addr = last_addr + (ndims - 1) * wordSize
__ lea(c_rarg1, Address(rsp, rax, Address::times_8, -wordSize));
call_VM(rax,
CAST_FROM_FN_PTR(address, InterpreterRuntime::multianewarray),
c_rarg1);
__ load_unsigned_byte(rbx, at_bcp(3));
__ lea(rsp, Address(rsp, rbx, Address::times_8));
}
This document is available under the GNU GENERAL PUBLIC LICENSE Version 2.