diff options
Diffstat (limited to 'src/arch/arm/insts/pseudo.cc')
-rw-r--r-- | src/arch/arm/insts/pseudo.cc | 69 |
1 files changed, 0 insertions, 69 deletions
diff --git a/src/arch/arm/insts/pseudo.cc b/src/arch/arm/insts/pseudo.cc index 2e8c3f10d..83a7a5dcc 100644 --- a/src/arch/arm/insts/pseudo.cc +++ b/src/arch/arm/insts/pseudo.cc @@ -181,75 +181,6 @@ WarnUnimplemented::generateDisassembly(Addr pc, const SymbolTable *symtab) const fullMnemonic.size() ? fullMnemonic.c_str() : mnemonic); } -McrMrcMiscInst::McrMrcMiscInst(const char *_mnemonic, ExtMachInst _machInst, - uint64_t _iss, MiscRegIndex _miscReg) - : ArmStaticInst(_mnemonic, _machInst, No_OpClass) -{ - flags[IsNonSpeculative] = true; - iss = _iss; - miscReg = _miscReg; -} - -Fault -McrMrcMiscInst::execute(ExecContext *xc, Trace::InstRecord *traceData) const -{ - uint32_t cpsr = xc->readMiscReg(MISCREG_CPSR); - uint32_t hcr = xc->readMiscReg(MISCREG_HCR); - uint32_t scr = xc->readMiscReg(MISCREG_SCR); - uint32_t hdcr = xc->readMiscReg(MISCREG_HDCR); - uint32_t hstr = xc->readMiscReg(MISCREG_HSTR); - uint32_t hcptr = xc->readMiscReg(MISCREG_HCPTR); - - bool hypTrap = mcrMrc15TrapToHyp(miscReg, hcr, cpsr, scr, hdcr, hstr, - hcptr, iss); - if (hypTrap) { - return std::make_shared<HypervisorTrap>(machInst, iss, - EC_TRAPPED_CP15_MCR_MRC); - } else { - return NoFault; - } -} - -std::string -McrMrcMiscInst::generateDisassembly(Addr pc, const SymbolTable *symtab) const -{ - return csprintf("%-10s (pipe flush)", mnemonic); -} - -McrMrcImplDefined::McrMrcImplDefined(const char *_mnemonic, - ExtMachInst _machInst, uint64_t _iss, - MiscRegIndex _miscReg) - : McrMrcMiscInst(_mnemonic, _machInst, _iss, _miscReg) -{} - -Fault -McrMrcImplDefined::execute(ExecContext *xc, Trace::InstRecord *traceData) const -{ - uint32_t cpsr = xc->readMiscReg(MISCREG_CPSR); - uint32_t hcr = xc->readMiscReg(MISCREG_HCR); - uint32_t scr = xc->readMiscReg(MISCREG_SCR); - uint32_t hdcr = xc->readMiscReg(MISCREG_HDCR); - uint32_t hstr = xc->readMiscReg(MISCREG_HSTR); - uint32_t hcptr = xc->readMiscReg(MISCREG_HCPTR); - - bool hypTrap = mcrMrc15TrapToHyp(miscReg, hcr, cpsr, scr, hdcr, hstr, - hcptr, iss); - if (hypTrap) { - return std::make_shared<HypervisorTrap>(machInst, iss, - EC_TRAPPED_CP15_MCR_MRC); - } else { - return std::make_shared<UndefinedInstruction>(machInst, false, - mnemonic); - } -} - -std::string -McrMrcImplDefined::generateDisassembly(Addr pc, - const SymbolTable *symtab) const -{ - return csprintf("%-10s (implementation defined)", mnemonic); -} - IllegalExecInst::IllegalExecInst(ExtMachInst _machInst) : ArmStaticInst("Illegal Execution", _machInst, No_OpClass) {} |