Commit 8365d59b by Torbjorn Granlund

(output_ior): Don't handle reg operands.

From-SVN: r3636
parent d5db6922
...@@ -1445,34 +1445,29 @@ char * ...@@ -1445,34 +1445,29 @@ char *
output_ior (operands) output_ior (operands)
rtx *operands; rtx *operands;
{ {
if (GET_CODE (operands[2]) == CONST_INT) unsigned mask = INTVAL (operands[2]);
{ int bs0, bs1, bs2, p, len;
unsigned mask = INTVAL (operands[2]);
int bs0, bs1, bs2, p, len;
if (INTVAL (operands[2]) == 0) if (INTVAL (operands[2]) == 0)
return "copy %1,%0"; return "copy %1,%0";
for (bs0 = 0; bs0 < 32; bs0++) for (bs0 = 0; bs0 < 32; bs0++)
if ((mask & (1 << bs0)) != 0) if ((mask & (1 << bs0)) != 0)
break; break;
for (bs1 = bs0; bs1 < 32; bs1++) for (bs1 = bs0; bs1 < 32; bs1++)
if ((mask & (1 << bs1)) == 0) if ((mask & (1 << bs1)) == 0)
break; break;
if (bs1 != 32 && ((unsigned) 1 << bs1) <= mask) if (bs1 != 32 && ((unsigned) 1 << bs1) <= mask)
abort(); abort();
p = 31 - bs0; p = 31 - bs0;
len = bs1 - bs0; len = bs1 - bs0;
operands[2] = gen_rtx (CONST_INT, VOIDmode, p); operands[2] = gen_rtx (CONST_INT, VOIDmode, p);
operands[3] = gen_rtx (CONST_INT, VOIDmode, len); operands[3] = gen_rtx (CONST_INT, VOIDmode, len);
return "depi -1,%2,%3,%0"; return "depi -1,%2,%3,%0";
}
else
return "or %1,%2,%0";
} }
/* Output an ascii string. */ /* Output an ascii string. */
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment