(*opp)->isaddr = cop->isaddr;
}
+ if ((*opp)->type==VALUE &&
+ IS_SYMOP(cop) &&
+ !IS_SPEC(OP_SYMBOL(cop)->type)) {
+ // this could be a pointer to some space, so we can not
+ *opp=NULL;
+ return 0;
+ }
+
return 1;
}
/* special case for inductions */
if (induction &&
OP_SYMBOL(IC_RIGHT(ic))->isreqv &&
+ !OP_SYMBOL(IC_RESULT (ic))->noSpilLoc &&
!SPIL_LOC(IC_RESULT(ic))) {
SPIL_LOC (IC_RESULT (ic)) = SPIL_LOC (IC_RIGHT (ic));
}
{
sym_link *t1 = operandType (IC_LEFT (ic)), *t2;
- if (TARGET_IS_DS390)
+ /* if (TARGET_IS_DS390) */
+ if (options.model == MODEL_FLAT24)
{
/* hack-o-matic! */
return;
{
/* update the spill location for this */
- updateSpillLocation (ic,1);
+ updateSpillLocation (ic,0);
if (POINTER_SET (ic) &&
!(IS_BITFIELD (OP_SYMBOL (IC_RESULT (ic))->etype)))