Description
cheriot_instr_csethigh_cross1
and cheriot_instr_cgethigh_cross1
involve cross-products of capability {exponent, top, bottom, correction factor} and address population count. These are, mm, let's say interesting quantities, and so doubtless the correct things to consider, but will give rise to similarly interestingly shaped impossible subsets of the cross-product.
For example, it is not possible for...
-
a capability with
T
andB
both all-zeros to be anything other than correction factor vector3'b000
(witha_mid
>=B
, at that) or3'b100
(3'b111
is ruled out becausea_mid
cannot be smaller than all zeros).- all-ones
T
andB
, on the other hand, permit more variance ina_mid
: it can be>= B
(by being equal), or can be<
, but only if the exponent is non-zero.
- all-ones
-
an address with fewer than 9 bits set (
cp_cd_address
binsvalid[24]
throughvalid[32]
) to have itsa_mid
field be anything other than less than an all-onesB
field, or greater-or-equal-to an all-zerosB
field.
I'm sure there're many more such constraints. Help?