You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
There is in the function that Ethan and I were working on, a set of inequalities that do
if (x>1.0) {
} elseif (X<1.0) {
}
where 1.0 is a double
For the first load, mips2c correctly sees that the load into the comparison register is a double
But when the double 1.0 is reused for the second case, it seems to only see the 0 load into the register and outputs instead
if (x>1.0) {
} elseif (X<0.0) {
}
The issue here is that the rhs of the comparison (1.0/0.0) is from a PhiExpr. In assign_phis(), although the type of the phi is known to be f64, it only reads the value from final_register_states of the main float reg, instead of combining it like InstrArgs.dreg() does.
This may get even more complicated if both regs are PhiExprs?
The text was updated successfully, but these errors were encountered:
Brought up by JoshDuMan on Discord from the
appendGfx_message
function in PM.The issue here is that the rhs of the comparison (
1.0
/0.0
) is from aPhiExpr
. Inassign_phis()
, although the type of the phi is known to bef64
, it only reads the value fromfinal_register_states
of the main float reg, instead of combining it likeInstrArgs.dreg()
does.This may get even more complicated if both regs are
PhiExpr
s?The text was updated successfully, but these errors were encountered: