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:01 -0500
committerGabe Black <gblack@eecs.umich.edu>2010-06-02 12:58:01 -0500
commit190502476681b972f65697a7d2b3e3da35d40cd1 (patch)
tree1e36bfdad5fae57761781554fc2fcf26cf601ece /src/arch/arm/insts/macromem.hh
parent55465844dc9d7e9560bd067672f5b54bf3d63e8f (diff)
downloadgem5-190502476681b972f65697a7d2b3e3da35d40cd1.tar.xz
ARM: Eliminate decoding for the very deprecated FPA instructions.
Diffstat (limited to 'src/arch/arm/insts/macromem.hh')
-rw-r--r--src/arch/arm/insts/macromem.hh80
1 files changed, 14 insertions, 66 deletions
diff --git a/src/arch/arm/insts/macromem.hh b/src/arch/arm/insts/macromem.hh
index 714b8bb7e..6c2db2026 100644
--- a/src/arch/arm/insts/macromem.hh
+++ b/src/arch/arm/insts/macromem.hh
@@ -1,4 +1,17 @@
-/* Copyright (c) 2007-2008 The Florida State University
+/*
+ * Copyright (c) 2010 ARM Limited
+ * All rights reserved
+ *
+ * The license below extends only to copyright in the software and shall
+ * not be construed as granting a license to any other intellectual
+ * property including but not limited to intellectual property relating
+ * to a hardware implementation of the functionality of the software
+ * licensed hereunder. You may use the software subject to the license
+ * terms below provided that you ensure that this notice is replicated
+ * unmodified and in its entirety in all distributions of the software,
+ * modified or unmodified, in source code or in binary form.
+ *
+ * Copyright (c) 2007-2008 The Florida State University
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -102,71 +115,6 @@ class ArmMacroMemoryOp : public PredMacroOp
microOps = new StaticInstPtr[numMicroops];
}
};
-
-/**
- * Arm Macro FPA operations to fix ldfd and stfd instructions
- */
-class ArmMacroFPAOp : public PredMacroOp
-{
- protected:
- uint32_t puswl,
- prepost,
- up,
- psruser,
- writeback,
- loadop;
- int32_t disp8;
-
- ArmMacroFPAOp(const char *mnem, ExtMachInst _machInst, OpClass __opClass)
- : PredMacroOp(mnem, _machInst, __opClass),
- puswl(machInst.puswl),
- prepost(machInst.puswl.prepost),
- up(machInst.puswl.up),
- psruser(machInst.puswl.psruser),
- writeback(machInst.puswl.writeback),
- loadop(machInst.puswl.loadOp),
- disp8(machInst.immed7_0 << 2)
- {
- numMicroops = 3 + writeback;
- microOps = new StaticInstPtr[numMicroops];
- }
-};
-
-/**
- * Arm Macro FM operations to fix lfm and sfm
- */
-class ArmMacroFMOp : public PredMacroOp
-{
- protected:
- uint32_t punwl,
- prepost,
- up,
- n1bit,
- writeback,
- loadop,
- n0bit,
- count;
- int32_t disp8;
-
- ArmMacroFMOp(const char *mnem, ExtMachInst _machInst, OpClass __opClass)
- : PredMacroOp(mnem, _machInst, __opClass),
- punwl(machInst.punwl),
- prepost(machInst.puswl.prepost),
- up(machInst.puswl.up),
- n1bit(machInst.opcode22),
- writeback(machInst.puswl.writeback),
- loadop(machInst.puswl.loadOp),
- n0bit(machInst.opcode15),
- disp8(machInst.immed7_0 << 2)
- {
- // Transfer 1-4 registers based on n1 and n0 bits (with 00 repr. 4)
- count = (n1bit << 1) | n0bit;
- if (count == 0)
- count = 4;
- numMicroops = (3*count) + writeback;
- microOps = new StaticInstPtr[numMicroops];
- }
-};
}
#endif //__ARCH_ARM_INSTS_MACROMEM_HH__