/* since the pack the registers depending strictly on the MCU */
/*-----------------------------------------------------------------*/
-extern void gen390Code(iCode *);
-
/* Global data */
static struct {
bitVect *spiltSet;
/* if we need ptr regs for the right side
then mark it */
- if (POINTER_GET(ic) && getSize(OP_SYMBOL(IC_LEFT(ic))->type)
+ if (POINTER_GET(ic) && IS_SYMOP(IC_LEFT(ic))
+ && getSize(OP_SYMBOL(IC_LEFT(ic))->type)
<= PTRSIZE)
{
ds390_ptrRegReq++;
/*-----------------------------------------------------------------*/
static iCode *packRegsForOneuse (iCode *ic, operand *op , eBBlock *ebp)
{
+#if 1
+
+ /* I can't figure out how to make this safe yet. */
+ ic; op; ebp;
+ return NULL;
+
+
+#else
bitVect *uses ;
iCode *dic, *sic;
OP_SYMBOL(op)->ruonly = 1;
return sic;
-
+#endif
}
/*-----------------------------------------------------------------*/
bitVectnBitsOn(OP_DEFS(IC_RESULT(ic))) == 1 &&
IS_OP_LITERAL(IC_RIGHT(ic))) ) {
- int i = operandLitValue(IC_RIGHT(ic));
+ //int i = operandLitValue(IC_RIGHT(ic));
OP_SYMBOL(IC_RESULT(ic))->remat = 1;
OP_SYMBOL(IC_RESULT(ic))->rematiCode = ic;
OP_SYMBOL(IC_RESULT(ic))->usl.spillLoc = NULL;
link *toType = operandType(IC_LEFT(ic));
if (IS_INTEGRAL(fromType) && IS_INTEGRAL(toType) &&
- getSize(fromType) != getSize(toType) ) {
+ getSize(fromType) != getSize(toType) &&
+ SPEC_USIGN(fromType) == SPEC_USIGN(toType)) {
iCode *dic = packRegsForOneuse(ic,IC_RIGHT(ic),ebp);
if (dic) {