- 0B95A8D43DF2253DD2677A8D52DADB5673A6089FF5C745FE57FA46C58CB1FBA62681973DB9EE76AE7828C9BB4DF98378F2DA8928097F787825E025D5C5665335
+ 0D60E63CF1527DE3C76D96FE3F58151B0E02814EEF0FBA0D7F4AB5E28B938FFE0430D3B05B378695D942217110D323EB41934C818B187F5EE50D6C402CA35C57
ffa/libffa/w_mul.ads
(33 . 17)(33 . 23)
2106
2107 -- Multiply half-words X and Y, producing a Word-sized product (Iron)
2108 function Mul_HalfWord_Iron(X : in HalfWord; Y : in HalfWord) return Word;
2109 pragma Inline_Always(Mul_HalfWord_Iron);
2110
2111 -- Multiply half-words X and Y, producing a Word-sized product (Egyptian)
2112 function Mul_HalfWord_Soft(X : in HalfWord; Y : in HalfWord) return Word;
2113 pragma Inline_Always(Mul_HalfWord_Soft);
2114
2115 -- Get the bottom half of a Word
2116 function BottomHW(W : in Word) return HalfWord;
2117 pragma Inline_Always(BottomHW);
2118
2119 -- Get the top half of a Word
2120 function TopHW(W : in Word) return HalfWord;
2121 pragma Inline_Always(TopHW);
2122
2123 -- Carry out X*Y mult, return lower word XY_LW and upper word XY_HW (Iron)
2124 procedure Mul_Word(X : in Word; Y : in Word; XY_LW : out Word; XY_HW : out Word);
2125 procedure Mul_Word(X : in Word; Y : in Word;
2126 XY_LW : out Word; XY_HW : out Word);
2127 pragma Inline_Always(Mul_Word);
2128
2129 end W_Mul;