diff options
Diffstat (limited to 'src/arch/arm/insts/mem.cc')
-rw-r--r-- | src/arch/arm/insts/mem.cc | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/src/arch/arm/insts/mem.cc b/src/arch/arm/insts/mem.cc index 521499847..394c159d1 100644 --- a/src/arch/arm/insts/mem.cc +++ b/src/arch/arm/insts/mem.cc @@ -62,6 +62,31 @@ Swap::generateDisassembly(Addr pc, const SymbolTable *symtab) const return ss.str(); } +string +RfeOp::generateDisassembly(Addr pc, const SymbolTable *symtab) const +{ + stringstream ss; + switch (mode) { + case DecrementAfter: + printMnemonic(ss, "da"); + break; + case DecrementBefore: + printMnemonic(ss, "db"); + break; + case IncrementAfter: + printMnemonic(ss, "ia"); + break; + case IncrementBefore: + printMnemonic(ss, "ib"); + break; + } + printReg(ss, base); + if (wb) { + ss << "!"; + } + return ss.str(); +} + void Memory::printInst(std::ostream &os, AddrMode addrMode) const { |