diff --git a/libs/symfpu b/libs/symfpu index 04da5d228..95b27d8f2 160000 --- a/libs/symfpu +++ b/libs/symfpu @@ -1 +1 @@ -Subproject commit 04da5d2283989b51fe0ab44472cc598c9c50c83f +Subproject commit 95b27d8f2f7cd965e13ca5ff33fd7b47c410b561 diff --git a/passes/cmds/symfpu.cc b/passes/cmds/symfpu.cc index 90b83ca25..b35270bd4 100644 --- a/passes/cmds/symfpu.cc +++ b/passes/cmds/symfpu.cc @@ -453,6 +453,7 @@ struct SymFpuPass : public Pass { || op.compare("sub") == 0 || op.compare("mul") == 0 || op.compare("altdiv") == 0 // currently undocumented + || op.compare("alt2div") == 0 // currently undocumented || op.compare("div") == 0) inputs = 2; else if (op.compare("muladd") == 0) @@ -530,7 +531,9 @@ struct SymFpuPass : public Pass { else if (op.compare("muladd") == 0) return symfpu::fma_flagged(format, rounding_mode, a, b, c); else if (op.compare("altdiv") == 0) - return symfpu::falseDivide_flagged(format, rounding_mode, a, b); + return symfpu::falseDivide_flagged(format, rounding_mode, a, b, prop(true)); + else if (op.compare("alt2div") == 0) + return symfpu::falseDivide_flagged(format, rounding_mode, a, b, prop(false)); else log_abort(); };