265a266,267
> const bool wb = (bits(machInst, 21) == 1);
> const bool add = (bits(machInst, 24, 23) == 0x3);
267d268
< const bool add = (bits(machInst, 24, 23) == 0x3);
269d269
< const bool wb = (bits(machInst, 21) == 1);
282c282,295
< return new WarnUnimplemented("srs", machInst);
---
> const uint32_t mode = bits(machInst, 4, 0);
> if (!add && !wb) {
> return new %(srs)s(machInst, mode,
> SrsOp::DecrementBefore, wb);
> } else if (add && !wb) {
> return new %(srs_u)s(machInst, mode,
> SrsOp::IncrementAfter, wb);
> } else if (!add && wb) {
> return new %(srs_w)s(machInst, mode,
> SrsOp::DecrementBefore, wb);
> } else {
> return new %(srs_uw)s(machInst, mode,
> SrsOp::IncrementAfter, wb);
> }
289c302,306
< "rfe_uw" : "RFE_" + loadImmClassName(True, True, True, 8)
---
> "rfe_uw" : "RFE_" + loadImmClassName(True, True, True, 8),
> "srs" : "SRS_" + storeImmClassName(False, False, False, 8),
> "srs_u" : "SRS_" + storeImmClassName(True, True, False, 8),
> "srs_w" : "SRS_" + storeImmClassName(False, False, True, 8),
> "srs_uw" : "SRS_" + storeImmClassName(True, True, True, 8)