IR: Implement FPMulAdd

This commit is contained in:
MerryMage 2018-06-06 20:03:12 +01:00
parent 24e3299276
commit 8c90fcf58e
7 changed files with 207 additions and 1 deletions

View file

@ -77,6 +77,8 @@ static u32 GenRandomInst(u64 pc, bool is_last_inst) {
"LDLAR",
// Dynarmic and QEMU currently differ on how the exclusive monitor's address range works.
"STXR", "STLXR", "STXP", "STLXP", "LDXR", "LDAXR", "LDXP", "LDAXP",
// Approximation. Produces inaccurate results.
"FMADD_float", "FMSUB_float", "FNMADD_float", "FNMSUB_float",
};
for (const auto& [fn, bitstring] : list) {
@ -89,7 +91,6 @@ static u32 GenRandomInst(u64 pc, bool is_last_inst) {
}
result.emplace_back(InstructionGenerator{bitstring});
}
return result;
}();
@ -115,6 +116,8 @@ static u32 GenFloatInst(u64 pc, bool is_last_inst) {
const std::vector<std::string> do_not_test {
// QEMU's implementation of FCVT is incorrect
"FCVT_float",
// Approximation. Produces incorrect results.
"FMADD_float", "FMSUB_float", "FNMADD_float", "FNMSUB_float",
};
std::vector<InstructionGenerator> result;