arm: Use a static_assert to test that miscRegName[] is complete
Instead of statically defining miscRegName to contain NUM_MISCREGS elements, let the compiler determine the length of the array. This allows us to use a static_assert to test that all registers are listed in the name vector.
This commit is contained in:
parent
4544f3def4
commit
6f603e0807
1 changed files with 5 additions and 1 deletions
|
@ -43,6 +43,7 @@
|
|||
#define __ARCH_ARM_MISCREGS_HH__
|
||||
|
||||
#include "base/bitunion.hh"
|
||||
#include "base/compiler.hh"
|
||||
|
||||
namespace ArmISA
|
||||
{
|
||||
|
@ -250,7 +251,7 @@ namespace ArmISA
|
|||
unsigned crm, unsigned opc2);
|
||||
|
||||
|
||||
const char * const miscRegName[NUM_MISCREGS] = {
|
||||
const char * const miscRegName[] = {
|
||||
"cpsr", "cpsr_q", "spsr", "spsr_fiq", "spsr_irq", "spsr_svc",
|
||||
"spsr_mon", "spsr_und", "spsr_abt",
|
||||
"fpsr", "fpsid", "fpscr", "fpscr_qc", "fpscr_exc", "fpexc",
|
||||
|
@ -325,6 +326,9 @@ namespace ArmISA
|
|||
"nop", "raz"
|
||||
};
|
||||
|
||||
static_assert(sizeof(miscRegName) / sizeof(*miscRegName) == NUM_MISCREGS,
|
||||
"The miscRegName array and NUM_MISCREGS are inconsistent.");
|
||||
|
||||
BitUnion32(CPSR)
|
||||
Bitfield<31,30> nz;
|
||||
Bitfield<29> c;
|
||||
|
|
Loading…
Reference in a new issue