This patch cleans up and fixes issues in the M-Class system register handling:
- It defines the system registers and the encoding (SYSm values) in one place: ARMRegisterInfo.td, removing the hand-coded values which existed duplicated in multiple places - ARMISelDAGToDAG.cpp, ARMAsmParser.cpp and ARMInstPrinter.cpp.
- Some system registers e.g. BASEPRI_MAX_NS which do not exist (reference - ARMv6/7/8M architecture reference manual) were being allowed.
I have tried to solve those issues by clearly defining in one places which registers exist and in which mode.
These masks are duplicated in a few different places, would it be better to have a few functions in the ARM/Utils library to check if a register is valid, extract the encoding bits, etc?