When DWARF_FRAME_REGISTERS isn't defined, the default is FIRST_PSEUDO_REGISTER which means that if you add faked registers to the port, used for frame-context related elimination, room is allocated for them in the register context used for frame-unwinding, which is wasteful because they're eliminated before the final form of the code that is emitted.
Stopping after MOF saves two register slots in the unwind contest, compared to the current default. For regular C programming this is uninteresting, but defining DWARF_FRAME_REGISTERS now also avoids the need to remember to define it later, when twiddling with additional faked registers (alternatively suffering churn from comparing differences in unwind context). As expected, no effect on test-results, coremark or local (C-specific) microbenchmarks. gcc: * config/cris/cris.h (DWARF_FRAME_REGISTERS): Define. --- gcc/config/cris/cris.h | 3 +++ 1 file changed, 3 insertions(+) diff --git a/gcc/config/cris/cris.h b/gcc/config/cris/cris.h index 1f8ccc5dec98..4d04ef869f3d 100644 --- a/gcc/config/cris/cris.h +++ b/gcc/config/cris/cris.h @@ -588,6 +588,9 @@ enum reg_class #define STATIC_CHAIN_REGNUM CRIS_STATIC_CHAIN_REGNUM +/* No unwind context is needed for faked registers nor DCCR. Currently not MOF + too, but let's keep that open. */ +#define DWARF_FRAME_REGISTERS (CRIS_MOF_REGNUM + 1) /* Node: Elimination */ -- 2.11.0