hotspot/src/cpu/sparc/vm/assembler_sparc.inline.hpp
#ifdef _LP64
inline void MacroAssembler::store_float_argument( FloatRegister s, Argument& a ) {
{- -------------------------------------------
(1) コード生成:
引数で指定されたコピー先に応じて以下のどちらかのコードを生成.
* store 先がレジスタの場合:
「fmov 命令でコピーする.」
* そうではない場合:
「stf でストアする.」
---------------------------------------- -}
if (a.is_float_register())
// V9 ABI has F1, F3, F5 are used to pass instead of O0, O1, O2
fmov(FloatRegisterImpl::S, s, a.as_float_register() );
else
// Floats are stored in the high half of the stack entry
// The low half is undefined per the ABI.
stf(FloatRegisterImpl::S, s, a.as_address(), sizeof(jfloat));
}
This document is available under the GNU GENERAL PUBLIC LICENSE Version 2.