- 0431D4E5164D5119F81331E3A7EF2F69A397D4A35655274D79A809B69CD10324BEFF9359194A503DBC5AB085B2214E96AFEE97DB984E6625233BB975D9407FAB
+ FB02A2987355F4C355D4FD14C817A53E3B72B5694D53D250FB9B196409606E7B1226E951C5B8C95FEE206F39758ACADDCF8DECCC6C85687EBD5D3E3DD7D10A6D
ffa/libffa/word_ops.adb
(39 . 7)(39 . 6)
2233 return WBool(Shift_Right((A and B) or ((A or B) and (not S)),
2234 Bitness - 1));
2235 end W_Carry;
2236 pragma Inline_Always(W_Carry);
2237
2238
2239 -- Find the Borrow, from a subtraction where it is known that A - B == D:
(49 . 7)(48 . 6)
2241 return WBool(Shift_Right(((not A) and B) or (((not A) or B) and D),
2242 Bitness - 1));
2243 end W_Borrow;
2244 pragma Inline_Always(W_Borrow);
2245
2246 -- A+B+C is the output bit of 1-bit adder; C is carry-in;
2247 -- A-B-C is the output bit of 1-bit subber; C is borrow-in.
(86 . 6)(84 . 5)
2249 begin
2250 return B xor ((Sel - 1) and (A xor B));
2251 end W_Mux;
2252 pragma Inline_Always(W_Mux);
2253
2254 end Word_Ops;