227,229c227,243
< // A8-660
< // B6-29
< return new WarnUnimplemented("vmsr", machInst);
---
> const IntRegIndex rt =
> (IntRegIndex)(uint32_t)bits(machInst, 15, 12);
> uint32_t specReg = bits(machInst, 19, 16);
> switch (specReg) {
> case 0:
> specReg = MISCREG_FPSID;
> break;
> case 1:
> specReg = MISCREG_FPSCR;
> break;
> case 8:
> specReg = MISCREG_FPEXC;
> break;
> default:
> return new Unknown(machInst);
> }
> return new Vmsr(machInst, (IntRegIndex)specReg, rt);