The current code cannot handle register class names like 'i32', which is a valid register class name in WebAssembly.
When parsing %0:i32, in which i32 is a register class name, this i32 token is lexed here, before calling parseRegisterClassOrBank function. And the token is created here in lexMIToken function. So if the name is i32, it will be categorized as an integer type rather than an identifier type, the prerequisite that this gets checked against register class/bank names.
This check will pass if the token is a single character s or p identifier, and it probably shouldn't.