add more fpsqrt specialcases
authorLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Tue, 23 Jul 2019 15:43:04 +0000 (16:43 +0100)
committerLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Tue, 23 Jul 2019 15:43:04 +0000 (16:43 +0100)
src/ieee754/fpdiv/specialcases.py

index 56a76657feb6a2e73521f0ba584a1d0c2cdc7874..47e87abb6821292b1ad5923b3f5336476006df76 100644 (file)
@@ -108,6 +108,17 @@ class FPDIVSpecialCasesMod(Elaboratable):
             with m.If(a1.s):
                 m.d.comb += self.o.out_do_z.eq(1)
                 m.d.comb += self.o.z.nan(0)
+
+            # if a is inf return inf
+            with m.Elif(a1.is_inf):
+                m.d.comb += self.o.out_do_z.eq(1)
+                m.d.comb += self.o.z.inf(sabx)
+
+            # if a is zero return zero
+            with m.Elif(a1.is_zero):
+                m.d.comb += self.o.out_do_z.eq(1)
+                m.d.comb += self.o.z.zero(0)
+
             # Denormalised Number checks next, so pass a/b data through
             with m.Else():
                 m.d.comb += self.o.out_do_z.eq(0)