- Unaligned : constant Boolean := (RA or XA or YA) mod VU /= 0;
- -- False iff one or more argument addresses is not aligned
+ VI : constant Integer_Address := To_Integer (VU);
+
+ Unaligned : constant Integer_Address :=
+ Boolean'Pos (ModA (OrA (OrA (RA, XA), YA), VU) /= 0) - 1;
+ -- Zero iff one or more argument addresses is not aligned, else all 1's