- 868D35F9327D08B5CBEC9F573FBFD453BD3639E2B1CB93BA0C8264591C396E920883132037716798AB607A3CB0AC6A95AD819D8B39180693BD2B768B666AC6EE
+ 4E704ADD5330464A8DF437A836B5232F754D31E1C27141A79C7ADD51EDCA2A2BF4F3C63F098110BE6A751D29DB1FE99776A961CD089B920651D3A4324A43E33F
ffa/libffa/fz_basic.adb
(31 . 7)(31 . 6)
1216 begin
1217 return N'Length * Words.Bitness;
1218 end FZ_Bitness;
1219 pragma Inline_Always(FZ_Bitness);
1220
1221
1222 -- N := 0
(39 . 7)(38 . 6)
1224 begin
1225 N := (others => 0);
1226 end FZ_Clear;
1227 pragma Inline_Always(FZ_Clear);
1228
1229
1230 -- Set given FZ to a given truth value
(48 . 7)(46 . 6)
1232 FZ_Clear(N);
1233 FZ_Set_Head(N, V);
1234 end WBool_To_FZ;
1235 pragma Inline_Always(WBool_To_FZ);
1236
1237
1238 -- First word of N := Source
(56 . 7)(53 . 6)
1240 begin
1241 N(N'First) := Source;
1242 end FZ_Set_Head;
1243 pragma Inline_Always(FZ_Set_Head);
1244
1245
1246 -- First word of N
(64 . 7)(60 . 6)
1248 begin
1249 return N(N'First);
1250 end FZ_Get_Head;
1251 pragma Inline_Always(FZ_Get_Head);
1252
1253
1254 -- Exchange X and Y
(75 . 7)(70 . 6)
1256 X := Y;
1257 Y := T;
1258 end FZ_Swap;
1259 pragma Inline_Always(FZ_Swap);
1260
1261
1262 -- Constant-time MUX: Sel = 0: Result := X; Sel = 1: Result := Y
(85 . 6)(79 . 5)
1264 Result(i) := W_Mux(X(i), Y(i), Sel);
1265 end loop;
1266 end FZ_Mux;
1267 pragma Inline_Always(FZ_Mux);
1268
1269 end FZ_Basic;