On 11/19/20 8:34 PM, Maciej W. Rozycki wrote:
> The `builtins.md' machine description fragment is not included anywhere
> and is therefore dead code, which has become bitrotten due to non-use.
>
> If actually enabled, it does not build due to the use of an unknown `t'
> constraint:
>
> .../gcc/config/vax/builtins.md:42:1: error: undefined machine-specific 
> constraint at this point: "t"
> .../gcc/config/vax/builtins.md:42:1: note:  in operand 1
>
> which came from commit becb93d02cc1 ("builtins.md (ffssi2_internal):
> Correct constraint."), which was not applied as posted and reviewed; `T'
> was meant to be used instead.
>
> Once this has been fixed this code still fails building:
>
> .../gcc/config/vax/builtins.md: In function 'rtx_def* gen_ffssi2(rtx, rtx)':
> .../gcc/config/vax/builtins.md:35:19: error: 'gen_bne' was not declared in 
> this
> scope; did you mean 'gen_use'?
>    35 |   emit_jump_insn (gen_bne (label));
>       |                   ^~~~~~~
>       |                   gen_use
> make[2]: *** [Makefile:1122: insn-emit.o] Error 1
>
> Finally the FFS machine instruction sets the Z condition code according
> to the comparison of the value held in the source operand against zero
> rather than the value held in the target operand.  If the source operand
> is found hold zero, then the target operand is set to the width of the
> source operand, 32 for SImode (FFS supports arbitrary widths).
>
> Correct the build issues then and update RTL to match the operation of
> the machine instruction.  A test case will be added separately.
>
>       gcc/
>       * config/vax/builtins.md (ffssi2): Make preparation statements
>       actually buildable.
>       (ffssi2_internal): Fix input constraints; make the RTL pattern
>       match reality for `cc0'.
OK
jeff

Reply via email to