diff options
Diffstat (limited to 'src/arch/arm/isa/formats/macromem.isa')
-rw-r--r-- | src/arch/arm/isa/formats/macromem.isa | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/arch/arm/isa/formats/macromem.isa b/src/arch/arm/isa/formats/macromem.isa index 95b7ccd6a..98505be84 100644 --- a/src/arch/arm/isa/formats/macromem.isa +++ b/src/arch/arm/isa/formats/macromem.isa @@ -43,3 +43,16 @@ def format ArmMacroMem() {{ PSRUSER, WRITEBACK, LOADOP, machInst.regList); ''' }}; + +def format Thumb16MacroMem() {{ + decode_block = ''' + { + const IntRegIndex rn = (IntRegIndex)(uint32_t)bits(machInst, 10, 8); + const bool load = (bits(machInst, 11) == 1); + const uint32_t regList = bits(machInst, 7, 0); + const bool writeback = (!load || bits(regList, rn) == 0); + return new LdmStm(machInst, rn, true, true, false, + writeback, load, regList); + } + ''' +}}; |