hotspot/src/cpu/sparc/vm/templateTable_sparc.cpp
// The Rcache register must be set before call
void TemplateTable::load_field_cp_cache_entry(Register Robj,
                                              Register Rcache,
                                              Register index,
                                              Register Roffset,
                                              Register Rflags,
                                              bool is_static) {
  {- -------------------------------------------
  (1) (assert)
      ---------------------------------------- -}
      assert_different_registers(Rcache, Rflags, Roffset);
  {- -------------------------------------------
  (1) (変数宣言など)
      ---------------------------------------- -}
      ByteSize cp_base_offset = constantPoolCacheOopDesc::base_offset();
  {- -------------------------------------------
  (1) コード生成:
      「CPcache エントリ中から, 以下の情報をそれぞれ取得して, レジスタに格納する.
        * _flags 情報 -> Rflags レジスタ
        * _f2 情報 -> Roffset レジスタ
        * _f1 情報 -> Robj レジスタ (ただしこれは is_static が true の場合のみ取得)」
      ---------------------------------------- -}
      __ ld_ptr(Rcache, cp_base_offset + ConstantPoolCacheEntry::flags_offset(), Rflags);
      __ ld_ptr(Rcache, cp_base_offset + ConstantPoolCacheEntry::f2_offset(), Roffset);
      if (is_static) {
        __ ld_ptr(Rcache, cp_base_offset + ConstantPoolCacheEntry::f1_offset(), Robj);
      }
    }
This document is available under the GNU GENERAL PUBLIC LICENSE Version 2.