aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHans-Peter Nilsson <hp@axis.com>2021-03-10 03:54:16 +0100
committerHans-Peter Nilsson <hp@axis.com>2021-03-10 04:01:30 +0100
commit5987d8a79cda1069c774e5c302d5597310270026 (patch)
tree2453ef062219529e4ff34da22ef34b00fc0f02a7
parent8dc225d311ed87633fa970164bdda19bf228b8a3 (diff)
downloadgcc-5987d8a79cda1069c774e5c302d5597310270026.zip
gcc-5987d8a79cda1069c774e5c302d5597310270026.tar.gz
gcc-5987d8a79cda1069c774e5c302d5597310270026.tar.bz2
cris: define DWARF_FRAME_REGISTERS
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.
-rw-r--r--gcc/config/cris/cris.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/gcc/config/cris/cris.h b/gcc/config/cris/cris.h
index 1f8ccc5..4d04ef8 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 */