< prev index next >

src/hotspot/cpu/ppc/templateTable_ppc_64.cpp

Print this page




2207 // The Rcache and Rindex registers must be set before call.
2208 // Input:
2209 //   - Rcache, Rindex
2210 // Output:
2211 //   - Robj, Roffset, Rflags
2212 void TemplateTable::load_field_cp_cache_entry(Register Robj,
2213                                               Register Rcache,
2214                                               Register Rindex /* unused on PPC64 */,
2215                                               Register Roffset,
2216                                               Register Rflags,
2217                                               bool is_static = false) {
2218   assert_different_registers(Rcache, Rflags, Roffset);
2219   // assert(Rindex == noreg, "parameter not used on PPC64");
2220 
2221   ByteSize cp_base_offset = ConstantPoolCache::base_offset();
2222   __ ld(Rflags, in_bytes(cp_base_offset) + in_bytes(ConstantPoolCacheEntry::flags_offset()), Rcache);
2223   __ ld(Roffset, in_bytes(cp_base_offset) + in_bytes(ConstantPoolCacheEntry::f2_offset()), Rcache);
2224   if (is_static) {
2225     __ ld(Robj, in_bytes(cp_base_offset) + in_bytes(ConstantPoolCacheEntry::f1_offset()), Rcache);
2226     __ ld(Robj, in_bytes(Klass::java_mirror_offset()), Robj);

2227     // Acquire not needed here. Following access has an address dependency on this value.
2228   }
2229 }
2230 
2231 // Load the constant pool cache entry at invokes into registers.
2232 // Resolve if necessary.
2233 
2234 // Input Registers:
2235 //   - None, bcp is used, though
2236 //
2237 // Return registers:
2238 //   - Rmethod       (f1 field or f2 if invokevirtual)
2239 //   - Ritable_index (f2 field)
2240 //   - Rflags        (flags field)
2241 //
2242 // Kills:
2243 //   - R21
2244 //
2245 void TemplateTable::load_invoke_cp_cache_entry(int byte_no,
2246                                                Register Rmethod,




2207 // The Rcache and Rindex registers must be set before call.
2208 // Input:
2209 //   - Rcache, Rindex
2210 // Output:
2211 //   - Robj, Roffset, Rflags
2212 void TemplateTable::load_field_cp_cache_entry(Register Robj,
2213                                               Register Rcache,
2214                                               Register Rindex /* unused on PPC64 */,
2215                                               Register Roffset,
2216                                               Register Rflags,
2217                                               bool is_static = false) {
2218   assert_different_registers(Rcache, Rflags, Roffset);
2219   // assert(Rindex == noreg, "parameter not used on PPC64");
2220 
2221   ByteSize cp_base_offset = ConstantPoolCache::base_offset();
2222   __ ld(Rflags, in_bytes(cp_base_offset) + in_bytes(ConstantPoolCacheEntry::flags_offset()), Rcache);
2223   __ ld(Roffset, in_bytes(cp_base_offset) + in_bytes(ConstantPoolCacheEntry::f2_offset()), Rcache);
2224   if (is_static) {
2225     __ ld(Robj, in_bytes(cp_base_offset) + in_bytes(ConstantPoolCacheEntry::f1_offset()), Rcache);
2226     __ ld(Robj, in_bytes(Klass::java_mirror_offset()), Robj);
2227     __ resolve_oop_handle(Robj);
2228     // Acquire not needed here. Following access has an address dependency on this value.
2229   }
2230 }
2231 
2232 // Load the constant pool cache entry at invokes into registers.
2233 // Resolve if necessary.
2234 
2235 // Input Registers:
2236 //   - None, bcp is used, though
2237 //
2238 // Return registers:
2239 //   - Rmethod       (f1 field or f2 if invokevirtual)
2240 //   - Ritable_index (f2 field)
2241 //   - Rflags        (flags field)
2242 //
2243 // Kills:
2244 //   - R21
2245 //
2246 void TemplateTable::load_invoke_cp_cache_entry(int byte_no,
2247                                                Register Rmethod,


< prev index next >