In gcc/config/mn13000/mn10300.c, the expand_prologue prologue
function is pretty readable, and has a nice explanation of how the
prologue is generated. The prologues generated by that code will
- have the following form:
+ have the following form (NOTE: the current code doesn't handle all
+ this!):
+ If this is an old-style varargs function, then its arguments
need to be flushed back to the stack:
fmov fsM,(OFFSETM,sp)
...
+ Note that, if OFFSETN happens to be zero, you'll get the
+ different opcode: fmov fsN,(sp)
+
. Or, set a0 to the start of the save area, and then use
post-increment addressing to save the FP registers.
else
{
int byte;
- if (TARGET_BYTE_ORDER == BIG_ENDIAN)
+ if (TARGET_BYTE_ORDER == BFD_ENDIAN_BIG)
{
for (byte = REGISTER_RAW_SIZE (regnum) - REGISTER_VIRTUAL_SIZE (regnum);
byte < REGISTER_RAW_SIZE (regnum);