summaryrefslogtreecommitdiff
path: root/src/arch/arm/insts/macromem.hh
diff options
context:
space:
mode:
authorGabe Black <gblack@eecs.umich.edu>2010-06-02 12:58:02 -0500
committerGabe Black <gblack@eecs.umich.edu>2010-06-02 12:58:02 -0500
commit51bde086d578e09e1058b17c40fae99404a325dc (patch)
tree52266766aba471241f4018b56bc69659e3547a6d /src/arch/arm/insts/macromem.hh
parent93a371481697f3f68f8189da6a7b14934fa93723 (diff)
downloadgem5-51bde086d578e09e1058b17c40fae99404a325dc.tar.xz
ARM: Reimplement load/store multiple external to the decoder.
--HG-- rename : src/arch/arm/isa/formats/macromem.isa => src/arch/arm/isa/insts/macromem.isa rename : src/arch/arm/isa/formats/macromem.isa => src/arch/arm/isa/templates/macromem.isa
Diffstat (limited to 'src/arch/arm/insts/macromem.hh')
-rw-r--r--src/arch/arm/insts/macromem.hh28
1 files changed, 3 insertions, 25 deletions
diff --git a/src/arch/arm/insts/macromem.hh b/src/arch/arm/insts/macromem.hh
index 6c2db2026..e1ae1dae8 100644
--- a/src/arch/arm/insts/macromem.hh
+++ b/src/arch/arm/insts/macromem.hh
@@ -82,39 +82,17 @@ class MicroIntOp : public PredOp
class MicroMemOp : public MicroIntOp
{
protected:
+ bool up;
unsigned memAccessFlags;
MicroMemOp(const char *mnem, ExtMachInst machInst, OpClass __opClass,
- RegIndex _ura, RegIndex _urb, uint8_t _imm)
+ RegIndex _ura, RegIndex _urb, bool _up, uint8_t _imm)
: MicroIntOp(mnem, machInst, __opClass, _ura, _urb, _imm),
- memAccessFlags(0)
+ up(_up), memAccessFlags(0)
{
}
};
-/**
- * Arm Macro Memory operations like LDM/STM
- */
-class ArmMacroMemoryOp : public PredMacroOp
-{
- protected:
- /// Memory request flags. See mem_req_base.hh.
- unsigned memAccessFlags;
-
- uint32_t reglist;
- uint32_t ones;
-
- ArmMacroMemoryOp(const char *mnem, ExtMachInst _machInst,
- OpClass __opClass)
- : PredMacroOp(mnem, _machInst, __opClass), memAccessFlags(0),
- reglist(machInst.regList), ones(0)
- {
- ones = number_of_ones(reglist);
- numMicroops = ones + machInst.puswl.writeback + 1;
- // Remember that writeback adds a uop
- microOps = new StaticInstPtr[numMicroops];
- }
-};
}
#endif //__ARCH_ARM_INSTS_MACROMEM_HH__