From: Luke Kenneth Casson Leighton Date: Mon, 18 Feb 2019 21:13:04 +0000 (+0000) Subject: special cases, sign of zero and inf matters: a.s ^ b.s X-Git-Tag: ls180-24jan2020~1886 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=b1e75f684543b121fd25635e9c393c25331c5037;p=ieee754fpu.git special cases, sign of zero and inf matters: a.s ^ b.s --- 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"