LABEL_REF, and CONST operands.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@13834
138bc75d-0d04-0410-961f-
82ee72b054a4
/* Sanity check. */
if (GET_CODE (operands[1]) == SIGN_EXTEND
&& code1 != REG
/* Sanity check. */
if (GET_CODE (operands[1]) == SIGN_EXTEND
&& code1 != REG
+ && code1 != CONST_INT
+ /* The following three can happen as the result of a questionable
+ cast. */
+ && code1 != LABEL_REF
+ && code1 != SYMBOL_REF
+ && code1 != CONST)
abort ();
if (code0 == REG)
abort ();
if (code0 == REG)
if (TARGET_STATS)
mips_count_memory_refs (op1, 2);
if (TARGET_STATS)
mips_count_memory_refs (op1, 2);
+ if (GET_CODE (operands[1]) == SIGN_EXTEND)
+ /* We deliberately remove the 'a' from '%1', so that we don't
+ have to add SIGN_EXTEND support to print_operand_address.
+ print_operand will just call print_operand_address in this
+ case, so there is no problem. */
+ ret = "la\t%0,%1";
+ else
+ ret = "dla\t%0,%a1";