/* Used in loop.c and combine.c as a marker. */
total = 0;
break;
+ case ASM_OPERANDS:
+ /* We don't want these to be used in substitutions because
+ we have no way of validating the resulting insn. So assign
+ anything containing an ASM_OPERANDS a very high cost. */
+ total = 1000;
+ break;
default:
total = 2;
}
{
next = p->next_same_hash;
if (GET_CODE (p->exp) != REG && reg_mentioned_p (x, p->exp)
- && exp_equiv_p (p->exp, p->exp, 1)
+ && exp_equiv_p (p->exp, p->exp, 1, 0)
&& i != (hash = safe_hash (p->exp, p->mode) % NBUCKETS))
{
if (p->next_same_hash)
switch (code)
{
case PLUS:
- val = arg0 + arg1;
+ val = arg0s + arg1s;
break;
case MINUS:
- val = arg0 - arg1;
+ val = arg0s - arg1s;
break;
case MULT:
/* We might have two BARRIERs separated by notes. Delete the second
one if so. */
- if (p != insn && GET_CODE (NEXT_INSN (p)) == BARRIER)
+ if (p != insn && NEXT_INSN (p) != 0
+ && GET_CODE (NEXT_INSN (p)) == BARRIER)
delete_insn (NEXT_INSN (p));
cse_jumps_altered = 1;