- A207AFCFF3ED13797843CA0F376E2E78404E8A2D695E06F4C8C1D3346FDAFB75B6BD507AEEB85CFD93D9CFF955FCD312C60BAFA2AA869EAB10500BBD6CB800EE
+ 990ABD54E1786DA34415CDE07148189077B5AD6A36E527B1DE4FB22DDE308D1BA505FC6923AF2F7AFFCC9846A59CB6C465DE9F02F215CFBE59696CFD3B036B2F
ffa/libffa/fz_arith.adb
(42 . 7)(42 . 6)
1086 end loop;
1087 Overflow := Carry;
1088 end FZ_Add_D;
1089 pragma Inline_Always(FZ_Add_D);
1090
1091
1092 -- Destructive Add: X := X + W; Overflow := Carry
(62 . 7)(61 . 6)
1094 end loop;
1095 Overflow := Carry;
1096 end FZ_Add_D_W;
1097 pragma Inline_Always(FZ_Add_D_W);
1098
1099
1100 -- Sum := X + Y; Overflow := Carry
(84 . 7)(82 . 6)
1102 end loop;
1103 Overflow := Carry;
1104 end FZ_Add;
1105 pragma Inline_Always(FZ_Add);
1106
1107
1108 -- Gate = 1: Sum := X + Y; Overflow := Carry
(109 . 7)(106 . 6)
1110 end loop;
1111 Overflow := Carry;
1112 end FZ_Add_Gated_O;
1113 pragma Inline_Always(FZ_Add_Gated_O);
1114
1115
1116 -- Same as FZ_Add_Gated_O, but without Overflow output
(122 . 7)(118 . 6)
1118 begin
1119 FZ_Add_Gated_O(X, Y, Gate, Sum, Overflow);
1120 end FZ_Add_Gated;
1121 pragma Inline_Always(FZ_Add_Gated);
1122
1123
1124 -- Difference := X - Y; Underflow := Borrow
(144 . 7)(139 . 6)
1126 end loop;
1127 Underflow := Borrow;
1128 end FZ_Sub;
1129 pragma Inline_Always(FZ_Sub);
1130
1131
1132 -- Destructive: If Cond is 1, NotN := ~N; otherwise NotN := N.
(164 . 7)(158 . 6)
1134 end loop;
1135
1136 end FZ_Not_Cond_D;
1137 pragma Inline_Always(FZ_Not_Cond_D);
1138
1139
1140 -- Subtractor that gets absolute value if underflowed, in const. time
(188 . 7)(181 . 6)
1142 FZ_Add_D_W(Difference, Underflow, O);
1143
1144 end FZ_Sub_Abs;
1145 pragma Inline_Always(FZ_Sub_Abs);
1146
1147
1148 end FZ_Arith;