[PATCH 24/31] VAX: Fix predicates and constraints for bitfield comparison insns
Sat Nov 21 17:27:46 GMT 2020
On 11/19/20 8:36 PM, Maciej W. Rozycki wrote:
> It makes no sense for insn operand predicates, as long as they accept a
> register operand, to be more restrictive than the set of the associated
> constraints, because expand will choose the insn based on the relevant
> operand being a pseudo register then and reload keep it happily as a
> memory reference if a constraint permits it. So the restriction posed
> by such a predicate will be happily ignored, and moreover if a splitter
> is added, such as required for MODE_CC support, the new instructions
> will reject the original operands supplied, causing an ICE. An actual
> example will be given with a subsequent change.
> Therefore, similarly to EXTV/EXTZV/INSV insns, remove inconsistencies
> with predicates and constraints of bitfield comparison insns, observing
> that a bitfield located in memory is byte-addressed by the respective
> machine instructions and therefore SImode may only be used with a
> register or an offsettable memory operand (i.e. not an indexed,
> pre-decremented, or post-incremented one).
> Also give the insns names, for easier reference here and elsewhere.
> * config/vax/vax.md (*cmpv_2): Name insn.
> (*cmpv, *cmpzv, *cmpzv_2): Likewise. Fix location predicate and
More information about the Gcc-patches