(output_scc_di): Swap operands when needed.

From-SVN: r10408
This commit is contained in:
Richard Kenner 1995-09-28 14:04:29 -04:00
parent 241fa1a221
commit d9832fd253
1 changed files with 13 additions and 1 deletions

View File

@ -706,7 +706,19 @@ output_scc_di(op, operand1, operand2, dest)
rtx dest;
{
rtx loperands[7];
enum rtx_code op_code = GET_CODE (op);
/* The m68k cmp.l instruction requires operand1 to be a reg as used
below. Swap the operands and change the op if these requirements
are not fulfilled. */
if (GET_CODE (operand2) == REG && GET_CODE (operand1) != REG)
{
rtx tmp = operand1;
operand1 = operand2;
operand2 = tmp;
op_code = swap_condition (op_code);
}
loperands[0] = operand1;
if (GET_CODE (operand1) == REG)
loperands[1] = gen_rtx (REG, SImode, REGNO (operand1) + 1);
@ -743,7 +755,7 @@ output_scc_di(op, operand1, operand2, dest)
#endif
loperands[5] = dest;
switch (GET_CODE (op))
switch (op_code)
{
case EQ:
ASM_OUTPUT_INTERNAL_LABEL (asm_out_file, "L",