static_inst.cc (12788:fe6d6ae79d7c) static_inst.cc (12789:b28b286fa57d)
1/*
2 * Copyright (c) 2010-2014, 2016-2018 ARM Limited
3 * Copyright (c) 2013 Advanced Micro Devices, Inc.
4 * All rights reserved
5 *
6 * The license below extends only to copyright in the software and shall
7 * not be construed as granting a license to any other intellectual
8 * property including but not limited to intellectual property relating

--- 591 unchanged lines hidden (view full) ---

600ArmStaticInst::generateDisassembly(Addr pc,
601 const SymbolTable *symtab) const
602{
603 std::stringstream ss;
604 printMnemonic(ss);
605 return ss.str();
606}
607
1/*
2 * Copyright (c) 2010-2014, 2016-2018 ARM Limited
3 * Copyright (c) 2013 Advanced Micro Devices, Inc.
4 * All rights reserved
5 *
6 * The license below extends only to copyright in the software and shall
7 * not be construed as granting a license to any other intellectual
8 * property including but not limited to intellectual property relating

--- 591 unchanged lines hidden (view full) ---

600ArmStaticInst::generateDisassembly(Addr pc,
601 const SymbolTable *symtab) const
602{
603 std::stringstream ss;
604 printMnemonic(ss);
605 return ss.str();
606}
607
608Fault
609ArmStaticInst::softwareBreakpoint32(ExecContext *xc, uint16_t imm) const
610{
611 const auto tc = xc->tcBase();
612 const HCR hcr = tc->readMiscReg(MISCREG_HCR_EL2);
613 const HDCR mdcr = tc->readMiscRegNoEffect(MISCREG_MDCR_EL2);
614 if ((ArmSystem::haveEL(tc, EL2) && !inSecureState(tc) &&
615 !ELIs32(tc, EL2) && (hcr.tge == 1 || mdcr.tde == 1)) ||
616 !ELIs32(tc, EL1)) {
617 // Route to AArch64 Software Breakpoint
618 return std::make_shared<SoftwareBreakpoint>(machInst, imm);
619 } else {
620 // Execute AArch32 Software Breakpoint
621 return std::make_shared<PrefetchAbort>(readPC(xc),
622 ArmFault::DebugEvent);
623 }
624}
608
609Fault
610ArmStaticInst::advSIMDFPAccessTrap64(ExceptionLevel el) const
611{
612 switch (el) {
613 case EL1:
614 return std::make_shared<SupervisorTrap>(machInst, 0x1E00000,
615 EC_TRAPPED_SIMD_FP);

--- 462 unchanged lines hidden ---
625
626Fault
627ArmStaticInst::advSIMDFPAccessTrap64(ExceptionLevel el) const
628{
629 switch (el) {
630 case EL1:
631 return std::make_shared<SupervisorTrap>(machInst, 0x1E00000,
632 EC_TRAPPED_SIMD_FP);

--- 462 unchanged lines hidden ---