int useAccelerator; /* use ds390 Arithmetic Accelerator */
char *calleeSaves[128]; /* list of functions using callee save */
char *excludeRegs[32]; /* registers excluded from saving */
-
+ int all_callee_saves; /* callee saves for all functions */
/* starting address of the segments */
int xstack_loc; /* initial location of external stack */
int stack_loc; /* initial value of internal stack pointer */
ic->rlive = bitVectSetBit (ic->rlive, lrange->key);
}
}
+#if 0
/* overlapping live ranges should be eliminated */
if (ASSIGN_ITEMP_TO_ITEMP (ic)) {
if (SPIL_LOC(IC_RIGHT(ic)) == SPIL_LOC(IC_RESULT(ic)) && /* left & right share the same spil location */
SPIL_LOC(IC_RIGHT(ic)) = NULL; /* then cannot share */
}
}
+#endif
}
}
}
{ 0, OPTION_SHORT_IS_8BITS, NULL, "Make short 8bits (for old times sake)" },
{ 0, "--profile", &options.profile, "On supported ports, generate extra profiling information" },
{ 0, "--fommit-frame-pointer", &options.ommitFramePtr, "Leave out the frame pointer." },
+ { 0, "--all-callee-saves", &options.all_callee_saves, "callee will always save registers used" },
{ 0, "--use-accelerator", &options.useAccelerator,"generate code for DS390 Arithmetic Accelerator"}
};
{
int i;
+ if (options.all_callee_saves) return 1;
for (i = 0; options.calleeSaves[i]; i++)
if (strcmp (options.calleeSaves[i], s) == 0)
return 1;