summaryrefslogtreecommitdiff
path: root/src/arch/arm/insts/macromem.hh
diff options
context:
space:
mode:
Diffstat (limited to 'src/arch/arm/insts/macromem.hh')
-rw-r--r--src/arch/arm/insts/macromem.hh22
1 files changed, 21 insertions, 1 deletions
diff --git a/src/arch/arm/insts/macromem.hh b/src/arch/arm/insts/macromem.hh
index fc8e3e1b7..412337d06 100644
--- a/src/arch/arm/insts/macromem.hh
+++ b/src/arch/arm/insts/macromem.hh
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2010-2013 ARM Limited
+ * Copyright (c) 2010-2014 ARM Limited
* All rights reserved
*
* The license below extends only to copyright in the software and shall
@@ -395,6 +395,26 @@ class MicroMemOp : public MicroIntImmOp
std::string generateDisassembly(Addr pc, const SymbolTable *symtab) const;
};
+class MicroMemPairOp : public MicroOp
+{
+ protected:
+ RegIndex dest, dest2, urb;
+ bool up;
+ int32_t imm;
+ unsigned memAccessFlags;
+
+ MicroMemPairOp(const char *mnem, ExtMachInst machInst, OpClass __opClass,
+ RegIndex _dreg1, RegIndex _dreg2, RegIndex _base,
+ bool _up, uint8_t _imm)
+ : MicroOp(mnem, machInst, __opClass),
+ dest(_dreg1), dest2(_dreg2), urb(_base), up(_up), imm(_imm),
+ memAccessFlags(TLB::MustBeOne | TLB::AlignWord)
+ {
+ }
+
+ std::string generateDisassembly(Addr pc, const SymbolTable *symtab) const;
+};
+
/**
* Base class for microcoded integer memory instructions.
*/