gem5 [DEVELOP-FOR-25.0]
Loading...
Searching...
No Matches
faults.cc File Reference
#include "arch/sparc/faults.hh"
#include <algorithm>
#include "arch/sparc/mmu.hh"
#include "arch/sparc/process.hh"
#include "arch/sparc/se_workload.hh"
#include "arch/sparc/sparc_traits.hh"
#include "arch/sparc/types.hh"
#include "base/bitfield.hh"
#include "base/compiler.hh"
#include "base/trace.hh"
#include "cpu/base.hh"
#include "cpu/thread_context.hh"
#include "mem/page_table.hh"
#include "sim/full_system.hh"
#include "sim/process.hh"

Go to the source code of this file.

Namespaces

namespace  gem5
 Copyright (c) 2024 Arm Limited All rights reserved.
 
namespace  gem5::SparcISA
 

Functions

void gem5::SparcISA::enterREDState (ThreadContext *tc)
 This causes the thread context to enter RED state.
 
void gem5::SparcISA::doREDFault (ThreadContext *tc, TrapType tt)
 This sets everything up for a RED state trap except for actually jumping to the handler.
 
void gem5::SparcISA::doNormalFault (ThreadContext *tc, TrapType tt, bool gotoHpriv)
 This sets everything up for a normal trap except for actually jumping to the handler.
 
void gem5::SparcISA::getREDVector (RegVal TT, Addr &PC, Addr &NPC)
 
void gem5::SparcISA::getHyperVector (ThreadContext *tc, Addr &PC, Addr &NPC, RegVal TT)
 
void gem5::SparcISA::getPrivVector (ThreadContext *tc, Addr &PC, Addr &NPC, RegVal TT, RegVal TL)
 

Variables

template<>
SparcFaultBase::FaultVals gem5::SparcISA::SparcFault< PowerOnReset >::vals ("power_on_reset", 0x001, 0, {{H, H, H}})
 
template<>
SparcFaultBase::FaultVals gem5::SparcISA::SparcFault< WatchDogReset >::vals ("watch_dog_reset", 0x002, 120, {{H, H, H}})
 
template<>
SparcFaultBase::FaultVals gem5::SparcISA::SparcFault< ExternallyInitiatedReset >::vals ("externally_initiated_reset", 0x003, 110, {{H, H, H}})
 
template<>
SparcFaultBase::FaultVals gem5::SparcISA::SparcFault< SoftwareInitiatedReset >::vals ("software_initiated_reset", 0x004, 130, {{SH, SH, H}})
 
template<>
SparcFaultBase::FaultVals gem5::SparcISA::SparcFault< REDStateException >::vals ("RED_state_exception", 0x005, 1, {{H, H, H}})
 
template<>
SparcFaultBase::FaultVals gem5::SparcISA::SparcFault< StoreError >::vals ("store_error", 0x007, 201, {{H, H, H}})
 
template<>
SparcFaultBase::FaultVals gem5::SparcISA::SparcFault< InstructionAccessException >::vals ("instruction_access_exception", 0x008, 300, {{H, H, H}})
 
template<>
SparcFaultBase::FaultVals gem5::SparcISA::SparcFault< InstructionAccessError >::vals ("instruction_access_error", 0x00A, 400, {{H, H, H}})
 
template<>
SparcFaultBase::FaultVals gem5::SparcISA::SparcFault< IllegalInstruction >::vals ("illegal_instruction", 0x010, 620, {{H, H, H}})
 
template<>
SparcFaultBase::FaultVals gem5::SparcISA::SparcFault< PrivilegedOpcode >::vals ("privileged_opcode", 0x011, 700, {{P, SH, SH}})
 
template<>
SparcFaultBase::FaultVals gem5::SparcISA::SparcFault< FpDisabled >::vals ("fp_disabled", 0x020, 800, {{P, P, H}})
 
template<>
SparcFaultBase::FaultVals gem5::SparcISA::SparcFault< VecDisabled >::vals ("fp_disabled", 0x020, 800, {{P, P, H}})
 
template<>
SparcFaultBase::FaultVals gem5::SparcISA::SparcFault< FpExceptionIEEE754 >::vals ("fp_exception_ieee_754", 0x021, 1110, {{P, P, H}})
 
template<>
SparcFaultBase::FaultVals gem5::SparcISA::SparcFault< FpExceptionOther >::vals ("fp_exception_other", 0x022, 1110, {{P, P, H}})
 
template<>
SparcFaultBase::FaultVals gem5::SparcISA::SparcFault< TagOverflow >::vals ("tag_overflow", 0x023, 1400, {{P, P, H}})
 
template<>
SparcFaultBase::FaultVals gem5::SparcISA::SparcFault< CleanWindow >::vals ("clean_window", 0x024, 1010, {{P, P, H}})
 
template<>
SparcFaultBase::FaultVals gem5::SparcISA::SparcFault< DivisionByZero >::vals ("division_by_zero", 0x028, 1500, {{P, P, H}})
 
template<>
SparcFaultBase::FaultVals gem5::SparcISA::SparcFault< InternalProcessorError >::vals ("internal_processor_error", 0x029, 4, {{H, H, H}})
 
template<>
SparcFaultBase::FaultVals gem5::SparcISA::SparcFault< InstructionInvalidTSBEntry >::vals ("instruction_invalid_tsb_entry", 0x02A, 210, {{H, H, SH}})
 
template<>
SparcFaultBase::FaultVals gem5::SparcISA::SparcFault< DataInvalidTSBEntry >::vals ("data_invalid_tsb_entry", 0x02B, 1203, {{H, H, H}})
 
template<>
SparcFaultBase::FaultVals gem5::SparcISA::SparcFault< DataAccessException >::vals ("data_access_exception", 0x030, 1201, {{H, H, H}})
 
template<>
SparcFaultBase::FaultVals gem5::SparcISA::SparcFault< DataAccessError >::vals ("data_access_error", 0x032, 1210, {{H, H, H}})
 
template<>
SparcFaultBase::FaultVals gem5::SparcISA::SparcFault< DataAccessProtection >::vals ("data_access_protection", 0x033, 1207, {{H, H, H}})
 
template<>
SparcFaultBase::FaultVals gem5::SparcISA::SparcFault< MemAddressNotAligned >::vals ("mem_address_not_aligned", 0x034, 1020, {{H, H, H}})
 
template<>
SparcFaultBase::FaultVals gem5::SparcISA::SparcFault< LDDFMemAddressNotAligned >::vals ("LDDF_mem_address_not_aligned", 0x035, 1010, {{H, H, H}})
 
template<>
SparcFaultBase::FaultVals gem5::SparcISA::SparcFault< STDFMemAddressNotAligned >::vals ("STDF_mem_address_not_aligned", 0x036, 1010, {{H, H, H}})
 
template<>
SparcFaultBase::FaultVals gem5::SparcISA::SparcFault< PrivilegedAction >::vals ("privileged_action", 0x037, 1110, {{H, H, SH}})
 
template<>
SparcFaultBase::FaultVals gem5::SparcISA::SparcFault< LDQFMemAddressNotAligned >::vals ("LDQF_mem_address_not_aligned", 0x038, 1010, {{H, H, H}})
 
template<>
SparcFaultBase::FaultVals gem5::SparcISA::SparcFault< STQFMemAddressNotAligned >::vals ("STQF_mem_address_not_aligned", 0x039, 1010, {{H, H, H}})
 
template<>
SparcFaultBase::FaultVals gem5::SparcISA::SparcFault< InstructionRealTranslationMiss >::vals ("instruction_real_translation_miss", 0x03E, 208, {{H, H, SH}})
 
template<>
SparcFaultBase::FaultVals gem5::SparcISA::SparcFault< DataRealTranslationMiss >::vals ("data_real_translation_miss", 0x03F, 1203, {{H, H, H}})
 
template<>
SparcFaultBase::FaultVals gem5::SparcISA::SparcFault< InterruptLevelN >::vals ("interrupt_level_n", 0x040, 0, {{P, P, SH}})
 
template<>
SparcFaultBase::FaultVals gem5::SparcISA::SparcFault< HstickMatch >::vals ("hstick_match", 0x05E, 1601, {{H, H, H}})
 
template<>
SparcFaultBase::FaultVals gem5::SparcISA::SparcFault< TrapLevelZero >::vals ("trap_level_zero", 0x05F, 202, {{H, H, SH}})
 
template<>
SparcFaultBase::FaultVals gem5::SparcISA::SparcFault< InterruptVector >::vals ("interrupt_vector", 0x060, 2630, {{H, H, H}})
 
template<>
SparcFaultBase::FaultVals gem5::SparcISA::SparcFault< PAWatchpoint >::vals ("PA_watchpoint", 0x061, 1209, {{H, H, H}})
 
template<>
SparcFaultBase::FaultVals gem5::SparcISA::SparcFault< VAWatchpoint >::vals ("VA_watchpoint", 0x062, 1120, {{P, P, SH}})
 
template<>
SparcFaultBase::FaultVals gem5::SparcISA::SparcFault< FastInstructionAccessMMUMiss >::vals ("fast_instruction_access_MMU_miss", 0x064, 208, {{H, H, SH}})
 
template<>
SparcFaultBase::FaultVals gem5::SparcISA::SparcFault< FastDataAccessMMUMiss >::vals ("fast_data_access_MMU_miss", 0x068, 1203, {{H, H, H}})
 
template<>
SparcFaultBase::FaultVals gem5::SparcISA::SparcFault< FastDataAccessProtection >::vals ("fast_data_access_protection", 0x06C, 1207, {{H, H, H}})
 
template<>
SparcFaultBase::FaultVals gem5::SparcISA::SparcFault< InstructionBreakpoint >::vals ("instruction_break", 0x076, 610, {{H, H, H}})
 
template<>
SparcFaultBase::FaultVals gem5::SparcISA::SparcFault< CpuMondo >::vals ("cpu_mondo", 0x07C, 1608, {{P, P, SH}})
 
template<>
SparcFaultBase::FaultVals gem5::SparcISA::SparcFault< DevMondo >::vals ("dev_mondo", 0x07D, 1611, {{P, P, SH}})
 
template<>
SparcFaultBase::FaultVals gem5::SparcISA::SparcFault< ResumableError >::vals ("resume_error", 0x07E, 3330, {{P, P, SH}})
 
template<>
SparcFaultBase::FaultVals gem5::SparcISA::SparcFault< SpillNNormal >::vals ("spill_n_normal", 0x080, 900, {{P, P, H}})
 
template<>
SparcFaultBase::FaultVals gem5::SparcISA::SparcFault< SpillNOther >::vals ("spill_n_other", 0x0A0, 900, {{P, P, H}})
 
template<>
SparcFaultBase::FaultVals gem5::SparcISA::SparcFault< FillNNormal >::vals ("fill_n_normal", 0x0C0, 900, {{P, P, H}})
 
template<>
SparcFaultBase::FaultVals gem5::SparcISA::SparcFault< FillNOther >::vals ("fill_n_other", 0x0E0, 900, {{P, P, H}})
 
template<>
SparcFaultBase::FaultVals gem5::SparcISA::SparcFault< TrapInstruction >::vals ("trap_instruction", 0x100, 1602, {{P, P, H}})
 

Generated on Mon May 26 2025 09:19:15 for gem5 by doxygen 1.13.2