bool LocalMapping::is_cache_reg(LIR_Opr opr) const { if (opr->is_register()) { return is_cache_reg(opr->rinfo()); } else { return false; } }
// Handle fanout of fpu registers: return false if no fanout; // If fanout than, we copy the value of float register into a new one, // so that the new FPU register has ref-count 1 bool LIRGenerator::fpu_fanout_handled() { if (result()->is_register() && (value()->type()->is_float_kind())) { // The item is float or double register with a use_count > 1 LIR_Opr reg = rlock(value()); emit()->copy_fpu_item(reg->rinfo(), result()); set_result(value(), reg); return true; } else { return false; } }
bool LocalMapping::is_local_name_cached_in_reg(int local_name, LIR_Opr opr) { return _mapping->at(local_name).is_same(opr->rinfo()); }