Michael Starzinger
Edwin Steiner
- $Id: simplereg.c 5549 2006-09-28 17:02:56Z edwin $
+ $Id: simplereg.c 5584 2006-09-29 14:02:39Z edwin $
*/
/* if this is a copy of another variable, just decrement the copy counter */
+ /* XXX split reg/mem variables on arm may need special handling here */
+
if (v->flags & INMEMORY) {
if (v->vv.regoff < rd->memcopycountsize && rd->memcopycount[v->vv.regoff]) {
rd->memcopycount[v->vv.regoff]--;
}
}
else {
+#if defined(SUPPORT_COMBINE_INTEGER_REGISTERS)
+ if (rd->regcopycount[GET_LOW_REG(v->vv.regoff)]) {
+ rd->regcopycount[GET_LOW_REG(v->vv.regoff)]--;
+ return;
+ }
+#else
if (rd->regcopycount[v->vv.regoff]) {
rd->regcopycount[v->vv.regoff]--;
return;
}
+#endif
}
#if defined(SUPPORT_COMBINE_INTEGER_REGISTERS)
rd->memcopycount[v->vv.regoff]++;
}
else {
+ /* XXX split reg/mem variables on arm may need special handling here */
+
+#if defined(SUPPORT_COMBINE_INTEGER_REGISTERS)
+ rd->regcopycount[GET_LOW_REG(v->vv.regoff)]++;
+#else
rd->regcopycount[v->vv.regoff]++;
+#endif
}
}
break;