From b1e75f684543b121fd25635e9c393c25331c5037 Mon Sep 17 00:00:00 2001 From: Luke Kenneth Casson Leighton Date: Mon, 18 Feb 2019 21:13:04 +0000 Subject: [PATCH] special cases, sign of zero and inf matters: a.s ^ b.s --- src/add/fmul.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/add/fmul.py b/src/add/fmul.py index 1b9f4618..1e02fa87 100644 --- a/src/add/fmul.py +++ b/src/add/fmul.py @@ -54,14 +54,14 @@ class FPMUL(FPBase): #if a is inf return inf with m.Elif(a.is_inf()): m.next = "put_z" - m.d.sync += z.inf(0) + m.d.sync += z.inf(a.s ^ b.s) #if b is zero return NaN with m.If(b.is_zero()): m.d.sync += z.nan(1) #if b is inf return inf with m.Elif(b.is_inf()): m.next = "put_z" - m.d.sync += z.inf(0) + m.d.sync += z.inf(a.s ^ b.s) #if a is zero return NaN with m.If(a.is_zero()): m.next = "put_z" @@ -69,11 +69,11 @@ class FPMUL(FPBase): #if a is zero return zero with m.Elif(a.is_zero()): m.next = "put_z" - m.d.sync += z.zero(0) + m.d.sync += z.zero(a.s ^ b.s) #if b is zero return zero with m.Elif(b.is_zero()): m.next = "put_z" - m.d.sync += z.zero(0) + m.d.sync += z.zero(a.s ^ b.s) # Denormalised Number checks with m.Else(): m.next = "normalise_a" -- 2.30.2