On Sun, 17 Apr 2022 at 19:08, Richard Henderson
<richard.henderson@linaro.org> wrote:
Remove a possible source of error by removing REGINFO_SENTINEL
and using ARRAY_SIZE (convinently hidden inside a macro) to
find the end of the set of regs being registered or modified.
The space saved by not having the extra array element reduces
the executable's .data.rel.ro section by about 9k.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
---
+#define define_arm_cp_regs_with_opaque(CPU, REGS, OPAQUE) \
+ do { \
+ QEMU_BUILD_BUG_ON(ARRAY_SIZE(REGS) == 0); \
+ if (ARRAY_SIZE(REGS) == 1) { \
+ define_one_arm_cp_reg_with_opaque(CPU, REGS, OPAQUE); \
+ } else { \
+ define_arm_cp_regs_with_opaque_len(CPU, REGS, OPAQUE, \
+ ARRAY_SIZE(REGS)); \
+ } \
+ } while (0)
Do we actually need to special case "array has one element" here,
or is this just efficiency?
Anyway
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>