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.
This line means that Utils depends on MCTargetDesc. But MCTargetDesc depends on InstPrinter, which depends on Util. So this gives us a logical dependency cycle. Can you fix this?