(0 . 0)(1 . 34)
486 with FZ_Type; use FZ_Type;
487 with Words; use Words;
488
489
490 package FZ_BitOp is
491
492 pragma Pure;
493
494 -- Result := X & Y
495 procedure FZ_And(X : in FZ; Y : in FZ; Result : out FZ);
496 pragma Precondition(X'Length = Y'Length and X'Length = Result'Length);
497
498 -- N := N & W, W is a word
499 procedure FZ_And_W(N : in out FZ; W : in Word);
500
501 -- Result := X | Y
502 procedure FZ_Or(X : in FZ; Y : in FZ; Result : out FZ);
503 pragma Precondition(X'Length = Y'Length and X'Length = Result'Length);
504
505 -- N := N | W, W is a word
506 procedure FZ_Or_W(N : in out FZ; W : in Word);
507
508 -- Result := X ^ Y
509 procedure FZ_Xor(X : in FZ; Y : in FZ; Result : out FZ);
510 pragma Precondition(X'Length = Y'Length and X'Length = Result'Length);
511
512 -- N := N ^ W, W is a word
513 procedure FZ_Xor_W(N : in out FZ; W : in Word);
514
515 -- NotN := ~N
516 procedure FZ_Neg(N : in FZ; NotN : out FZ);
517 pragma Precondition(N'Length = NotN'Length);
518
519 end FZ_BitOp;