On 12/12/20 5:05 AM, Maciej W. Rozycki wrote:
> Check the output operand for representing pushing a value onto the stack
> rather than the constant 0 input in determining whether to use the PUSHL
> or the CLRL instruction for a SImode move. The latter actually works by
> means of using the predecrement addressing mode with the SP register and
> the machine code produced even takes the same number of bytes, however
> at least with some VAX implementations it incurs a performance penalty.
> Besides, we don't want to check the wrong operand anyway and have code
> that works by chance only.
>
> Add a test case covering push operations; for operands different from
> constant zero there is actually a code size advantage for using PUSHL
> rather than the equivalent MOVL instruction.
>
> gcc/
> * config/vax/vax.c (vax_output_int_move): Check the correct
> operand for constant 0 push operation.
>
> gcc/testsuite/
> * gcc.target/vax/push.c: New test.
OK
jeff