break;
case IR_PHI:
- if (!array_appendu(&promotable, ir))
- {
- if (ir->left)
- promote(ir->left);
- if (ir->right)
- promote(ir->right);
- }
+ {
+ int i;
+ for (i=0; i<ir->u.phivalue.count; i++)
+ array_appendu(&promotable, ir->u.phivalue.item[i].right);
break;
+ }
}
}
emit "la %out, $value"
cost 8;
- out:(int)reg = value:CONSTF4
- emit "lfs %out, address-containing-$value"
- cost 8;
-
-
/* FPU operations */
+ out:(float)reg = value:CONSTF4
+ emit "lfs %out, address-containing-$value"
+ cost 8;
+
out:(float)reg = ADDF4(left:(float)reg, right:(float)reg)
emit "fadds %out, %left, %right"
cost 4;
+ out:(float)reg = SUBF4(left:(float)reg, right:(float)reg)
+ emit "fsubs %out, %left, %right"
+ cost 4;
+
+
/* vim: set sw=4 ts=4 expandtab : */