FPU: Normalize B operand for multiply-add instructions

Otherwise the result can get rounded incorrectly when B is denorm but
the A * C product is much smaller.

Signed-off-by: Paul Mackerras <paulus@ozlabs.org>
pull/457/head
Paul Mackerras 2 weeks ago
parent d33f31509b
commit 37edba4da7

@ -1149,6 +1149,7 @@ begin
v.is_subtract := not (e_in.fra(63) xor e_in.frb(63) xor
e_in.frc(63) xor e_in.insn(1));
v.negate := e_in.insn(2);
v.do_renorm_b := '1';
when "10010" => -- fdiv
v.is_inverse := '1';
v.result_sign := e_in.fra(63) xor e_in.frb(63);

Loading…
Cancel
Save