示例#1
0
double HLE::SystemVABI::VAListStruct::GetFPR(u32 fpr) const
{
  if (!m_has_fpr_area || fpr < 1 || fpr > 8)
  {
    ERROR_LOG(OSHLE, "VAListStruct at %08x doesn't have FPR%d!", m_address, fpr);
    return 0.0;
  }
  const u32 fpr_address = Common::AlignUp(GetFPRArea() + 8 * (fpr - 1), 8);
  return PowerPC::HostRead_F64(fpr_address);
}
示例#2
0
double HLE::SystemVABI::VAListStruct::GetFPR(u32 fpr) const
{
  double value = 0.0;

  if (!m_has_fpr_area || fpr < 1 || fpr > 8)
  {
    ERROR_LOG(OSHLE, "VAListStruct at %08x doesn't have FPR%d!", m_address, fpr);
  }
  else
  {
    const u32 fpr_address = Common::AlignUp(GetFPRArea() + 8 * (fpr - 1), 8);
    const u64 integral = PowerPC::HostRead_U64(fpr_address);
    std::memcpy(&value, &integral, sizeof(double));
  }
  return value;
}