diff options
author | Gabe Black <gblack@eecs.umich.edu> | 2010-06-02 12:58:03 -0500 |
---|---|---|
committer | Gabe Black <gblack@eecs.umich.edu> | 2010-06-02 12:58:03 -0500 |
commit | b6b2f8891a809eeec0409906f820e3e2dc60caa0 (patch) | |
tree | 872bd3333e02f10b780612f628aa575d01186d64 /src/arch/arm/insts/branch.hh | |
parent | d082705b01d9ce648651c147636e8e9976406ab2 (diff) | |
download | gem5-b6b2f8891a809eeec0409906f820e3e2dc60caa0.tar.xz |
ARM: Eliminate the old style branch instructions.
Diffstat (limited to 'src/arch/arm/insts/branch.hh')
-rw-r--r-- | src/arch/arm/insts/branch.hh | 74 |
1 files changed, 0 insertions, 74 deletions
diff --git a/src/arch/arm/insts/branch.hh b/src/arch/arm/insts/branch.hh index 185d34bab..fbdd10d68 100644 --- a/src/arch/arm/insts/branch.hh +++ b/src/arch/arm/insts/branch.hh @@ -46,36 +46,6 @@ namespace ArmISA { -/** - * Base class for instructions whose disassembly is not purely a - * function of the machine instruction (i.e., it depends on the - * PC). This class overrides the disassemble() method to check - * the PC and symbol table values before re-using a cached - * disassembly string. This is necessary for branches and jumps, - * where the disassembly string includes the target address (which - * may depend on the PC and/or symbol table). - */ -class PCDependentDisassembly : public PredOp -{ - protected: - /// Cached program counter from last disassembly - mutable Addr cachedPC; - - /// Cached symbol table pointer from last disassembly - mutable const SymbolTable *cachedSymtab; - - /// Constructor - PCDependentDisassembly(const char *mnem, ExtMachInst _machInst, - OpClass __opClass) - : PredOp(mnem, _machInst, __opClass), - cachedPC(0), cachedSymtab(0) - { - } - - const std::string & - disassemble(Addr pc, const SymbolTable *symtab) const; -}; - // Branch to a target computed with an immediate class BranchImm : public PredOp { @@ -160,50 +130,6 @@ class BranchImmReg : public PredOp {} }; -/** - * Base class for branches (PC-relative control transfers), - * conditional or unconditional. - */ -class Branch : public PCDependentDisassembly -{ - protected: - /// target address (signed) Displacement . - int32_t disp; - - /// Constructor. - Branch(const char *mnem, ExtMachInst _machInst, OpClass __opClass) - : PCDependentDisassembly(mnem, _machInst, __opClass), - disp(machInst.offset << 2) - { - //If Bit 26 is 1 then Sign Extend - if ( (disp & 0x02000000) > 0 ) { - disp |= 0xFC000000; - } - } - - Addr branchTarget(Addr branchPC) const; - - std::string - generateDisassembly(Addr pc, const SymbolTable *symtab) const; -}; - -/** - * Base class for branch and exchange instructions on the ARM - */ -class BranchExchange : public PredOp -{ - protected: - /// Constructor - BranchExchange(const char *mnem, ExtMachInst _machInst, - OpClass __opClass) - : PredOp(mnem, _machInst, __opClass) - { - } - - std::string - generateDisassembly(Addr pc, const SymbolTable *symtab) const; -}; - } #endif //__ARCH_ARM_INSTS_BRANCH_HH__ |