diff --git a/src/arch/arm/kvm/arm_cpu.cc b/src/arch/arm/kvm/arm_cpu.cc index becb6b9a46..42aeea603e 100644 --- a/src/arch/arm/kvm/arm_cpu.cc +++ b/src/arch/arm/kvm/arm_cpu.cc @@ -773,8 +773,8 @@ ArmKvmCPU::updateKvmStateVFP(uint64_t id, bool show_warnings) const unsigned idx_hi = idx_base + 1; const unsigned idx_lo = idx_base + 0; uint64_t value = - ((uint64_t)tc->readFloatRegFlat(idx_hi) << 32) | - tc->readFloatRegFlat(idx_lo); + ((uint64_t)tc->getRegFlat(RegId(FloatRegClass, idx_hi)) << 32) | + tc->getRegFlat(RegId(FloatRegClass, idx_lo)); setOneReg(id, value); } else if (regIsVfpCtrl(id)) { @@ -915,8 +915,9 @@ ArmKvmCPU::updateTCStateVFP(uint64_t id, bool show_warnings) const unsigned idx_lo = idx_base + 0; uint64_t value = getOneRegU64(id); - tc->setFloatRegFlat(idx_hi, (value >> 32) & 0xFFFFFFFF); - tc->setFloatRegFlat(idx_lo, value & 0xFFFFFFFF); + tc->setRegFlat(RegId(FloatRegClass, idx_hi), + (value >> 32) & 0xFFFFFFFF); + tc->setRegFlat(RegId(FloatRegClass, idx_lo), value & 0xFFFFFFFF); } else if (regIsVfpCtrl(id)) { MiscRegIndex idx = decodeVFPCtrlReg(id); if (idx == NUM_MISCREGS) { diff --git a/src/arch/arm/tracers/tarmac_record.cc b/src/arch/arm/tracers/tarmac_record.cc index 4ae379b397..94dbc518e6 100644 --- a/src/arch/arm/tracers/tarmac_record.cc +++ b/src/arch/arm/tracers/tarmac_record.cc @@ -246,7 +246,8 @@ TarmacTracerRecord::TraceRegEntry::updateFloat( regValid = true; regName = "f" + std::to_string(regRelIdx); - values[Lo] = bitsToFloat32(thread->readFloatReg(regRelIdx)); + RegId reg(FloatRegClass, regRelIdx); + values[Lo] = bitsToFloat32(thread->getReg(reg)); } void