gem5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Namespaces | Classes | Typedefs | Enumerations | Functions | Variables
AlphaISA Namespace Reference

Namespaces

 Kernel
 

Classes

class  Decoder
 
class  AlphaFault
 
class  MachineCheckFault
 
class  AlignmentFault
 
class  ResetFault
 
class  ArithmeticFault
 
class  InterruptFault
 
class  DtbFault
 
class  NDtbMissFault
 
class  PDtbMissFault
 
class  DtbPageFault
 
class  DtbAcvFault
 
class  DtbAlignmentFault
 
class  ItbFault
 
class  ItbPageFault
 
class  ItbAcvFault
 
class  UnimplementedOpcodeFault
 
class  FloatEnableFault
 
class  PalFault
 
class  IntegerOverflowFault
 
class  Interrupts
 
class  ISA
 
class  AlphaLinuxProcess
 A process with emulated Alpha/Linux syscalls. More...
 
struct  VAddr
 
struct  PageTableEntry
 
struct  TlbEntry
 
union  AnyReg
 
class  RemoteGDB
 
class  ProcessInfo
 
class  StackTrace
 
class  TLB
 
struct  AlphaRequestFlags
 Alpha-specific memory request flags. More...
 

Typedefs

typedef Addr FaultVect
 
typedef uint8_t RegIndex
 
typedef uint64_t IntReg
 
typedef double FloatReg
 
typedef uint64_t FloatRegBits
 
typedef uint64_t MiscReg
 
typedef uint8_t CCReg
 
typedef uint32_t MachInst
 
typedef uint64_t ExtMachInst
 
typedef
GenericISA::SimplePCState
< MachInst
PCState
 

Enumerations

enum  md_ipr_names {
  RAW_IPR_ISR = 0x100, RAW_IPR_ITB_TAG = 0x101, RAW_IPR_ITB_PTE = 0x102, RAW_IPR_ITB_ASN = 0x103,
  RAW_IPR_ITB_PTE_TEMP = 0x104, RAW_IPR_ITB_IA = 0x105, RAW_IPR_ITB_IAP = 0x106, RAW_IPR_ITB_IS = 0x107,
  RAW_IPR_SIRR = 0x108, RAW_IPR_ASTRR = 0x109, RAW_IPR_ASTER = 0x10a, RAW_IPR_EXC_ADDR = 0x10b,
  RAW_IPR_EXC_SUM = 0x10c, RAW_IPR_EXC_MASK = 0x10d, RAW_IPR_PAL_BASE = 0x10e, RAW_IPR_ICM = 0x10f,
  RAW_IPR_IPLR = 0x110, RAW_IPR_INTID = 0x111, RAW_IPR_IFAULT_VA_FORM = 0x112, RAW_IPR_IVPTBR = 0x113,
  RAW_IPR_HWINT_CLR = 0x115, RAW_IPR_SL_XMIT = 0x116, RAW_IPR_SL_RCV = 0x117, RAW_IPR_ICSR = 0x118,
  RAW_IPR_IC_FLUSH = 0x119, RAW_IPR_IC_PERR_STAT = 0x11a, RAW_IPR_PMCTR = 0x11c, RAW_IPR_PALtemp0 = 0x140,
  RAW_IPR_PALtemp1 = 0x141, RAW_IPR_PALtemp2 = 0x142, RAW_IPR_PALtemp3 = 0x143, RAW_IPR_PALtemp4 = 0x144,
  RAW_IPR_PALtemp5 = 0x145, RAW_IPR_PALtemp6 = 0x146, RAW_IPR_PALtemp7 = 0x147, RAW_IPR_PALtemp8 = 0x148,
  RAW_IPR_PALtemp9 = 0x149, RAW_IPR_PALtemp10 = 0x14a, RAW_IPR_PALtemp11 = 0x14b, RAW_IPR_PALtemp12 = 0x14c,
  RAW_IPR_PALtemp13 = 0x14d, RAW_IPR_PALtemp14 = 0x14e, RAW_IPR_PALtemp15 = 0x14f, RAW_IPR_PALtemp16 = 0x150,
  RAW_IPR_PALtemp17 = 0x151, RAW_IPR_PALtemp18 = 0x152, RAW_IPR_PALtemp19 = 0x153, RAW_IPR_PALtemp20 = 0x154,
  RAW_IPR_PALtemp21 = 0x155, RAW_IPR_PALtemp22 = 0x156, RAW_IPR_PALtemp23 = 0x157, RAW_IPR_DTB_ASN = 0x200,
  RAW_IPR_DTB_CM = 0x201, RAW_IPR_DTB_TAG = 0x202, RAW_IPR_DTB_PTE = 0x203, RAW_IPR_DTB_PTE_TEMP = 0x204,
  RAW_IPR_MM_STAT = 0x205, RAW_IPR_VA = 0x206, RAW_IPR_VA_FORM = 0x207, RAW_IPR_MVPTBR = 0x208,
  RAW_IPR_DTB_IAP = 0x209, RAW_IPR_DTB_IA = 0x20a, RAW_IPR_DTB_IS = 0x20b, RAW_IPR_ALT_MODE = 0x20c,
  RAW_IPR_CC = 0x20d, RAW_IPR_CC_CTL = 0x20e, RAW_IPR_MCSR = 0x20f, RAW_IPR_DC_FLUSH = 0x210,
  RAW_IPR_DC_PERR_STAT = 0x212, RAW_IPR_DC_TEST_CTL = 0x213, RAW_IPR_DC_TEST_TAG = 0x214, RAW_IPR_DC_TEST_TAG_TEMP = 0x215,
  RAW_IPR_DC_MODE = 0x216, RAW_IPR_MAF_MODE = 0x217, MaxInternalProcRegs
}
 
enum  MiscRegIpr {
  MinWriteOnlyIpr, IPR_HWINT_CLR = MinWriteOnlyIpr, IPR_SL_XMIT, IPR_DC_FLUSH,
  IPR_IC_FLUSH, IPR_ALT_MODE, IPR_DTB_IA, IPR_DTB_IAP,
  IPR_ITB_IA, MaxWriteOnlyIpr, IPR_ITB_IAP = MaxWriteOnlyIpr, MinReadOnlyIpr,
  IPR_INTID = MinReadOnlyIpr, IPR_SL_RCV, IPR_MM_STAT, IPR_ITB_PTE_TEMP,
  MaxReadOnlyIpr, IPR_DTB_PTE_TEMP = MaxReadOnlyIpr, IPR_ISR, IPR_ITB_TAG,
  IPR_ITB_PTE, IPR_ITB_ASN, IPR_ITB_IS, IPR_SIRR,
  IPR_ASTRR, IPR_ASTER, IPR_EXC_ADDR, IPR_EXC_SUM,
  IPR_EXC_MASK, IPR_PAL_BASE, IPR_ICM, IPR_IPLR,
  IPR_IFAULT_VA_FORM, IPR_IVPTBR, IPR_ICSR, IPR_IC_PERR_STAT,
  IPR_PMCTR, IPR_PALtemp0, IPR_PALtemp1, IPR_PALtemp2,
  IPR_PALtemp3, IPR_PALtemp4, IPR_PALtemp5, IPR_PALtemp6,
  IPR_PALtemp7, IPR_PALtemp8, IPR_PALtemp9, IPR_PALtemp10,
  IPR_PALtemp11, IPR_PALtemp12, IPR_PALtemp13, IPR_PALtemp14,
  IPR_PALtemp15, IPR_PALtemp16, IPR_PALtemp17, IPR_PALtemp18,
  IPR_PALtemp19, IPR_PALtemp20, IPR_PALtemp21, IPR_PALtemp22,
  IPR_PALtemp23, IPR_DTB_ASN, IPR_DTB_CM, IPR_DTB_TAG,
  IPR_DTB_PTE, IPR_VA, IPR_VA_FORM, IPR_MVPTBR,
  IPR_DTB_IS, IPR_CC, IPR_CC_CTL, IPR_MCSR,
  IPR_DC_PERR_STAT, IPR_DC_TEST_CTL, IPR_DC_TEST_TAG, IPR_DC_TEST_TAG_TEMP,
  IPR_DC_MODE, IPR_MAF_MODE, NumInternalProcRegs
}
 
enum  InterruptLevels {
  INTLEVEL_SOFTWARE_MIN = 4, INTLEVEL_SOFTWARE_MAX = 19, INTLEVEL_EXTERNAL_MIN = 20, INTLEVEL_EXTERNAL_MAX = 34,
  INTLEVEL_IRQ0 = 20, INTLEVEL_IRQ1 = 21, INTINDEX_ETHERNET = 0, INTINDEX_SCSI = 1,
  INTLEVEL_IRQ2 = 22, INTLEVEL_IRQ3 = 23, INTLEVEL_SERIAL = 33, NumInterruptLevels = INTLEVEL_EXTERNAL_MAX
}
 
enum  mode_type {
  mode_kernel = 0, mode_executive = 1, mode_supervisor = 2, mode_user = 3,
  mode_number
}
 
enum  MiscRegIndex {
  MISCREG_FPCR = NumInternalProcRegs, MISCREG_UNIQ, MISCREG_LOCKFLAG, MISCREG_LOCKADDR,
  MISCREG_INTR, NUM_MISCREGS
}
 
enum  DependenceTags { FP_Reg_Base = NumIntRegs, CC_Reg_Base = FP_Reg_Base + NumFloatRegs, Misc_Reg_Base = CC_Reg_Base + NumCCRegs, Max_Reg_Index = Misc_Reg_Base + NumMiscRegs + NumInternalProcRegs }
 
enum  annotes { ANNOTE_NONE = 0, ITOUCH_ANNOTE = 0xffffffff }
 

Functions

void initCPU (ThreadContext *tc, int cpuId)
 
template<class CPU >
void zeroRegisters (CPU *cpu)
 
void initIPRs (ThreadContext *tc, int cpuId)
 
void copyIprs (ThreadContext *src, ThreadContext *dest)
 
Addr VAddrImpl (Addr a)
 
Addr VAddrVPN (Addr a)
 
Addr VAddrOffset (Addr a)
 
Addr VAddrSpaceEV5 (Addr a)
 
Addr VAddrSpaceEV6 (Addr a)
 
bool PAddrIprSpace (Addr a)
 
Addr Phys2K0Seg (Addr addr)
 
int DTB_ASN_ASN (uint64_t reg)
 
Addr DTB_PTE_PPN (uint64_t reg)
 
int DTB_PTE_XRE (uint64_t reg)
 
int DTB_PTE_XWE (uint64_t reg)
 
int DTB_PTE_FONR (uint64_t reg)
 
int DTB_PTE_FONW (uint64_t reg)
 
int DTB_PTE_GH (uint64_t reg)
 
int DTB_PTE_ASMA (uint64_t reg)
 
int ITB_ASN_ASN (uint64_t reg)
 
Addr ITB_PTE_PPN (uint64_t reg)
 
int ITB_PTE_XRE (uint64_t reg)
 
bool ITB_PTE_FONR (uint64_t reg)
 
bool ITB_PTE_FONW (uint64_t reg)
 
int ITB_PTE_GH (uint64_t reg)
 
bool ITB_PTE_ASMA (uint64_t reg)
 
uint64_t MCSR_SP (uint64_t reg)
 
bool ICSR_SDE (uint64_t reg)
 
int ICSR_SPE (uint64_t reg)
 
bool ICSR_FPE (uint64_t reg)
 
uint64_t ALT_MODE_AM (uint64_t reg)
 
uint64_t DTB_CM_CM (uint64_t reg)
 
uint64_t ICM_CM (uint64_t reg)
 
int Opcode (MachInst inst)
 
int Ra (MachInst inst)
 
void initializeIprTable ()
 
bool IprIsWritable (int index)
 
bool IprIsReadable (int index)
 
StaticInstPtr decodeInst (ExtMachInst)
 
template<class XC >
void handleLockedSnoop (XC *xc, PacketPtr pkt, Addr cacheBlockMask)
 
template<class XC >
void handleLockedRead (XC *xc, Request *req)
 
template<class XC >
void handleLockedSnoopHit (XC *xc)
 
template<class XC >
bool handleLockedWrite (XC *xc, Request *req, Addr cacheBlockMask)
 
template<class TC >
unsigned getVirtProcNum (TC *tc)
 
template<class TC >
unsigned getTargetThread (TC *tc)
 
uint64_t getArgument (ThreadContext *tc, int &number, uint16_t size, bool fp)
 
void copyRegs (ThreadContext *src, ThreadContext *dest)
 
void copyMiscRegs (ThreadContext *src, ThreadContext *dest)
 
void skipFunction (ThreadContext *tc)
 
PCState buildRetPC (const PCState &curPC, const PCState &callPC)
 
bool inUserMode (ThreadContext *tc)
 
template<class TC >
void zeroRegisters (TC *tc)
 Function to insure ISA semantics about 0 registers. More...
 
bool PcPAL (Addr addr)
 
void startupCPU (ThreadContext *tc, int cpuId)
 
Addr PteAddr (Addr a)
 
bool IsUSeg (Addr a)
 
bool IsK0Seg (Addr a)
 
Addr K0Seg2Phys (Addr addr)
 
bool IsK1Seg (Addr a)
 
Addr TruncPage (Addr addr)
 
Addr RoundPage (Addr addr)
 
void advancePC (PCState &pc, const StaticInstPtr &inst)
 
uint64_t getExecutingAsid (ThreadContext *tc)
 
PageTableEntry kernel_pte_lookup (PortProxy &mem, Addr ptbr, VAddr vaddr)
 
Addr vtophys (Addr vaddr)
 
Addr vtophys (ThreadContext *tc, Addr addr)
 

Variables

int break_ipl = -1
 
const uint64_t AsnMask = ULL(0xff)
 
const int VAddrImplBits = 43
 
const Addr VAddrImplMask = (ULL(1) << VAddrImplBits) - 1
 
const Addr VAddrUnImplMask = ~VAddrImplMask
 
const int PAddrImplBits = 44
 
const Addr PAddrImplMask = (ULL(1) << PAddrImplBits) - 1
 
const Addr PAddrUncachedBit39 = ULL(0x8000000000)
 
const Addr PAddrUncachedBit40 = ULL(0x10000000000)
 
const Addr PAddrUncachedBit43 = ULL(0x80000000000)
 
const Addr PAddrUncachedMask = ULL(0x807ffffffff)
 
const uint64_t MM_STAT_BAD_VA_MASK = ULL(0x0020)
 
const uint64_t MM_STAT_DTB_MISS_MASK = ULL(0x0010)
 
const uint64_t MM_STAT_FONW_MASK = ULL(0x0008)
 
const uint64_t MM_STAT_FONR_MASK = ULL(0x0004)
 
const uint64_t MM_STAT_ACV_MASK = ULL(0x0002)
 
const uint64_t MM_STAT_WR_MASK = ULL(0x0001)
 
const Addr PalBase = 0x4000
 
const Addr PalMax = 0x10000
 
md_ipr_names MiscRegIndexToIpr [NumInternalProcRegs]
 
int IprToMiscRegIndex [MaxInternalProcRegs]
 
const Addr PageShift = 13
 
const Addr PageBytes = ULL(1) << PageShift
 
const Addr PageMask = ~(PageBytes - 1)
 
const Addr PageOffset = PageBytes - 1
 
const Addr PteShift = 3
 
const Addr NPtePageShift = PageShift - PteShift
 
const Addr NPtePage = ULL(1) << NPtePageShift
 
const Addr PteMask = NPtePage - 1
 
const Addr USegBase = ULL(0x0)
 
const Addr USegEnd = ULL(0x000003ffffffffff)
 
const Addr K0SegBase = ULL(0xfffffc0000000000)
 
const Addr K0SegEnd = ULL(0xfffffdffffffffff)
 
const Addr K1SegBase = ULL(0xfffffe0000000000)
 
const Addr K1SegEnd = ULL(0xffffffffffffffff)
 
const int MachineBytes = 8
 
const ExtMachInst NoopMachInst = 0x2ffe0000
 
const bool HasUnalignedMemAcc = false
 
const bool CurThreadInfoImplemented = true
 
const int CurThreadInfoReg = AlphaISA::IPR_PALtemp23
 
const int MaxMiscDestRegs = AlphaISAInst::MaxMiscDestRegs + 1
 
const RegIndex ZeroReg = 31
 
const RegIndex StackPointerReg = 30
 
const RegIndex GlobalPointerReg = 29
 
const RegIndex ProcedureValueReg = 27
 
const RegIndex ReturnAddressReg = 26
 
const RegIndex ReturnValueReg = 0
 
const RegIndex FramePointerReg = 15
 
const RegIndex SyscallNumReg = 0
 
const RegIndex FirstArgumentReg = 16
 
const RegIndex SyscallPseudoReturnReg = 20
 
const RegIndex SyscallSuccessReg = 19
 
const int NumIntArchRegs = 32
 
const int NumPALShadowRegs = 8
 
const int NumFloatArchRegs = 32
 
const int NumIntRegs = NumIntArchRegs + NumPALShadowRegs
 
const int NumFloatRegs = NumFloatArchRegs
 
const int NumCCRegs = 0
 
const int NumMiscRegs = NUM_MISCREGS
 
const int TotalNumRegs
 
const int reg_redir [NumIntRegs]
 

Typedef Documentation

typedef uint8_t AlphaISA::CCReg

Definition at line 57 of file registers.hh.

typedef uint64_t AlphaISA::ExtMachInst

Definition at line 41 of file types.hh.

Definition at line 43 of file faults.hh.

typedef double AlphaISA::FloatReg

Definition at line 50 of file registers.hh.

typedef uint64_t AlphaISA::FloatRegBits

Definition at line 51 of file registers.hh.

typedef uint64_t AlphaISA::IntReg

Definition at line 47 of file registers.hh.

typedef uint32_t AlphaISA::MachInst

Definition at line 40 of file types.hh.

typedef uint64_t AlphaISA::MiscReg

Definition at line 54 of file registers.hh.

Definition at line 43 of file types.hh.

typedef uint8_t AlphaISA::RegIndex

Definition at line 46 of file registers.hh.

Enumeration Type Documentation

Enumerator
ANNOTE_NONE 
ITOUCH_ANNOTE 

Definition at line 45 of file types.hh.

Enumerator
FP_Reg_Base 
CC_Reg_Base 
Misc_Reg_Base 
Max_Reg_Index 

Definition at line 104 of file registers.hh.

Enumerator
INTLEVEL_SOFTWARE_MIN 
INTLEVEL_SOFTWARE_MAX 
INTLEVEL_EXTERNAL_MIN 
INTLEVEL_EXTERNAL_MAX 
INTLEVEL_IRQ0 
INTLEVEL_IRQ1 
INTINDEX_ETHERNET 
INTINDEX_SCSI 
INTLEVEL_IRQ2 
INTLEVEL_IRQ3 
INTLEVEL_SERIAL 
NumInterruptLevels 

Definition at line 82 of file isa_traits.hh.

Enumerator
RAW_IPR_ISR 
RAW_IPR_ITB_TAG 
RAW_IPR_ITB_PTE 
RAW_IPR_ITB_ASN 
RAW_IPR_ITB_PTE_TEMP 
RAW_IPR_ITB_IA 
RAW_IPR_ITB_IAP 
RAW_IPR_ITB_IS 
RAW_IPR_SIRR 
RAW_IPR_ASTRR 
RAW_IPR_ASTER 
RAW_IPR_EXC_ADDR 
RAW_IPR_EXC_SUM 
RAW_IPR_EXC_MASK 
RAW_IPR_PAL_BASE 
RAW_IPR_ICM 
RAW_IPR_IPLR 
RAW_IPR_INTID 
RAW_IPR_IFAULT_VA_FORM 
RAW_IPR_IVPTBR 
RAW_IPR_HWINT_CLR 
RAW_IPR_SL_XMIT 
RAW_IPR_SL_RCV 
RAW_IPR_ICSR 
RAW_IPR_IC_FLUSH 
RAW_IPR_IC_PERR_STAT 
RAW_IPR_PMCTR 
RAW_IPR_PALtemp0 
RAW_IPR_PALtemp1 
RAW_IPR_PALtemp2 
RAW_IPR_PALtemp3 
RAW_IPR_PALtemp4 
RAW_IPR_PALtemp5 
RAW_IPR_PALtemp6 
RAW_IPR_PALtemp7 
RAW_IPR_PALtemp8 
RAW_IPR_PALtemp9 
RAW_IPR_PALtemp10 
RAW_IPR_PALtemp11 
RAW_IPR_PALtemp12 
RAW_IPR_PALtemp13 
RAW_IPR_PALtemp14 
RAW_IPR_PALtemp15 
RAW_IPR_PALtemp16 
RAW_IPR_PALtemp17 
RAW_IPR_PALtemp18 
RAW_IPR_PALtemp19 
RAW_IPR_PALtemp20 
RAW_IPR_PALtemp21 
RAW_IPR_PALtemp22 
RAW_IPR_PALtemp23 
RAW_IPR_DTB_ASN 
RAW_IPR_DTB_CM 
RAW_IPR_DTB_TAG 
RAW_IPR_DTB_PTE 
RAW_IPR_DTB_PTE_TEMP 
RAW_IPR_MM_STAT 
RAW_IPR_VA 
RAW_IPR_VA_FORM 
RAW_IPR_MVPTBR 
RAW_IPR_DTB_IAP 
RAW_IPR_DTB_IA 
RAW_IPR_DTB_IS 
RAW_IPR_ALT_MODE 
RAW_IPR_CC 
RAW_IPR_CC_CTL 
RAW_IPR_MCSR 
RAW_IPR_DC_FLUSH 
RAW_IPR_DC_PERR_STAT 
RAW_IPR_DC_TEST_CTL 
RAW_IPR_DC_TEST_TAG 
RAW_IPR_DC_TEST_TAG_TEMP 
RAW_IPR_DC_MODE 
RAW_IPR_MAF_MODE 
MaxInternalProcRegs 

Definition at line 41 of file ipr.hh.

Enumerator
MISCREG_FPCR 
MISCREG_UNIQ 
MISCREG_LOCKFLAG 
MISCREG_LOCKADDR 
MISCREG_INTR 
NUM_MISCREGS 

Definition at line 66 of file registers.hh.

Enumerator
MinWriteOnlyIpr 
IPR_HWINT_CLR 
IPR_SL_XMIT 
IPR_DC_FLUSH 
IPR_IC_FLUSH 
IPR_ALT_MODE 
IPR_DTB_IA 
IPR_DTB_IAP 
IPR_ITB_IA 
MaxWriteOnlyIpr 
IPR_ITB_IAP 
MinReadOnlyIpr 
IPR_INTID 
IPR_SL_RCV 
IPR_MM_STAT 
IPR_ITB_PTE_TEMP 
MaxReadOnlyIpr 
IPR_DTB_PTE_TEMP 
IPR_ISR 
IPR_ITB_TAG 
IPR_ITB_PTE 
IPR_ITB_ASN 
IPR_ITB_IS 
IPR_SIRR 
IPR_ASTRR 
IPR_ASTER 
IPR_EXC_ADDR 
IPR_EXC_SUM 
IPR_EXC_MASK 
IPR_PAL_BASE 
IPR_ICM 
IPR_IPLR 
IPR_IFAULT_VA_FORM 
IPR_IVPTBR 
IPR_ICSR 
IPR_IC_PERR_STAT 
IPR_PMCTR 
IPR_PALtemp0 
IPR_PALtemp1 
IPR_PALtemp2 
IPR_PALtemp3 
IPR_PALtemp4 
IPR_PALtemp5 
IPR_PALtemp6 
IPR_PALtemp7 
IPR_PALtemp8 
IPR_PALtemp9 
IPR_PALtemp10 
IPR_PALtemp11 
IPR_PALtemp12 
IPR_PALtemp13 
IPR_PALtemp14 
IPR_PALtemp15 
IPR_PALtemp16 
IPR_PALtemp17 
IPR_PALtemp18 
IPR_PALtemp19 
IPR_PALtemp20 
IPR_PALtemp21 
IPR_PALtemp22 
IPR_PALtemp23 
IPR_DTB_ASN 
IPR_DTB_CM 
IPR_DTB_TAG 
IPR_DTB_PTE 
IPR_VA 
IPR_VA_FORM 
IPR_MVPTBR 
IPR_DTB_IS 
IPR_CC 
IPR_CC_CTL 
IPR_MCSR 
IPR_DC_PERR_STAT 
IPR_DC_TEST_CTL 
IPR_DC_TEST_TAG 
IPR_DC_TEST_TAG_TEMP 
IPR_DC_MODE 
IPR_MAF_MODE 
NumInternalProcRegs 

Definition at line 126 of file ipr.hh.

Enumerator
mode_kernel 
mode_executive 
mode_supervisor 
mode_user 
mode_number 

Definition at line 103 of file isa_traits.hh.

Function Documentation

void AlphaISA::advancePC ( PCState &  pc,
const StaticInstPtr inst 
)
inline
uint64_t AlphaISA::ALT_MODE_AM ( uint64_t  reg)
inline

Definition at line 95 of file ev5.hh.

Referenced by AlphaISA::TLB::translateData().

PCState AlphaISA::buildRetPC ( const PCState &  curPC,
const PCState &  callPC 
)
inline

Definition at line 46 of file utility.hh.

References GenericISA::SimplePCState< MachInst >::advance().

Referenced by BPredUnit::predict().

void AlphaISA::copyIprs ( ThreadContext src,
ThreadContext dest 
)
void AlphaISA::copyMiscRegs ( ThreadContext src,
ThreadContext dest 
)
void AlphaISA::copyRegs ( ThreadContext src,
ThreadContext dest 
)
StaticInstPtr AlphaISA::decodeInst ( ExtMachInst  )
int AlphaISA::DTB_ASN_ASN ( uint64_t  reg)
inline
uint64_t AlphaISA::DTB_CM_CM ( uint64_t  reg)
inline

Definition at line 96 of file ev5.hh.

Referenced by AlphaISA::TLB::translateData().

int AlphaISA::DTB_PTE_ASMA ( uint64_t  reg)
inline

Definition at line 78 of file ev5.hh.

Referenced by AlphaISA::ISA::setIpr().

int AlphaISA::DTB_PTE_FONR ( uint64_t  reg)
inline

Definition at line 75 of file ev5.hh.

Referenced by AlphaISA::ISA::setIpr().

int AlphaISA::DTB_PTE_FONW ( uint64_t  reg)
inline

Definition at line 76 of file ev5.hh.

Referenced by AlphaISA::ISA::setIpr().

int AlphaISA::DTB_PTE_GH ( uint64_t  reg)
inline

Definition at line 77 of file ev5.hh.

Referenced by AlphaISA::ISA::setIpr().

Addr AlphaISA::DTB_PTE_PPN ( uint64_t  reg)
inline

Definition at line 71 of file ev5.hh.

References PAddrImplBits, PageShift, and ULL.

Referenced by AlphaISA::ISA::setIpr().

int AlphaISA::DTB_PTE_XRE ( uint64_t  reg)
inline

Definition at line 73 of file ev5.hh.

Referenced by AlphaISA::ISA::setIpr().

int AlphaISA::DTB_PTE_XWE ( uint64_t  reg)
inline

Definition at line 74 of file ev5.hh.

Referenced by AlphaISA::ISA::setIpr().

uint64_t AlphaISA::getArgument ( ThreadContext tc,
int &  number,
uint16_t  size,
bool  fp 
)
uint64_t AlphaISA::getExecutingAsid ( ThreadContext tc)
inline
template<class TC >
unsigned AlphaISA::getTargetThread ( TC *  tc)
inline

Definition at line 62 of file mt.hh.

References fatal.

template<class TC >
unsigned AlphaISA::getVirtProcNum ( TC *  tc)
inline

Definition at line 53 of file mt.hh.

References fatal.

template<class XC >
void AlphaISA::handleLockedRead ( XC *  xc,
Request req 
)
inline
template<class XC >
void AlphaISA::handleLockedSnoop ( XC *  xc,
PacketPtr  pkt,
Addr  cacheBlockMask 
)
inline
template<class XC >
void AlphaISA::handleLockedSnoopHit ( XC *  xc)
inline

Definition at line 96 of file locked_mem.hh.

Referenced by LSQUnit< Impl >::checkSnoop().

template<class XC >
bool AlphaISA::handleLockedWrite ( XC *  xc,
Request req,
Addr  cacheBlockMask 
)
inline
uint64_t AlphaISA::ICM_CM ( uint64_t  reg)
inline

Definition at line 97 of file ev5.hh.

Referenced by AlphaISA::TLB::translateInst().

bool AlphaISA::ICSR_FPE ( uint64_t  reg)
inline

Definition at line 93 of file ev5.hh.

bool AlphaISA::ICSR_SDE ( uint64_t  reg)
inline

Definition at line 91 of file ev5.hh.

int AlphaISA::ICSR_SPE ( uint64_t  reg)
inline

Definition at line 92 of file ev5.hh.

void AlphaISA::initCPU ( ThreadContext tc,
int  cpuId 
)
void AlphaISA::initializeIprTable ( )
void AlphaISA::initIPRs ( ThreadContext tc,
int  cpuId 
)
bool AlphaISA::inUserMode ( ThreadContext tc)
inline
bool AlphaISA::IprIsReadable ( int  index)
inline

Definition at line 227 of file ipr.hh.

References MaxWriteOnlyIpr.

bool AlphaISA::IprIsWritable ( int  index)
inline

Definition at line 221 of file ipr.hh.

References MaxReadOnlyIpr.

bool AlphaISA::IsK0Seg ( Addr  a)
inline

Definition at line 84 of file utility.hh.

References K0SegBase, and K0SegEnd.

Referenced by AlphaISA::RemoteGDB::acc(), and vtophys().

bool AlphaISA::IsK1Seg ( Addr  a)
inline

Definition at line 88 of file utility.hh.

References K1SegBase, and K1SegEnd.

bool AlphaISA::IsUSeg ( Addr  a)
inline

Definition at line 81 of file utility.hh.

References USegBase, and USegEnd.

Referenced by vtophys().

int AlphaISA::ITB_ASN_ASN ( uint64_t  reg)
inline

Definition at line 80 of file ev5.hh.

References AsnMask.

Referenced by AlphaISA::ISA::setIpr().

bool AlphaISA::ITB_PTE_ASMA ( uint64_t  reg)
inline

Definition at line 87 of file ev5.hh.

Referenced by AlphaISA::ISA::setIpr().

bool AlphaISA::ITB_PTE_FONR ( uint64_t  reg)
inline

Definition at line 84 of file ev5.hh.

Referenced by AlphaISA::ISA::setIpr().

bool AlphaISA::ITB_PTE_FONW ( uint64_t  reg)
inline

Definition at line 85 of file ev5.hh.

Referenced by AlphaISA::ISA::setIpr().

int AlphaISA::ITB_PTE_GH ( uint64_t  reg)
inline

Definition at line 86 of file ev5.hh.

Referenced by AlphaISA::ISA::setIpr().

Addr AlphaISA::ITB_PTE_PPN ( uint64_t  reg)
inline

Definition at line 81 of file ev5.hh.

References PAddrImplBits, PageShift, and ULL.

Referenced by AlphaISA::ISA::setIpr().

int AlphaISA::ITB_PTE_XRE ( uint64_t  reg)
inline

Definition at line 83 of file ev5.hh.

Referenced by AlphaISA::ISA::setIpr().

Addr AlphaISA::K0Seg2Phys ( Addr  addr)
inline

Definition at line 85 of file utility.hh.

References K0SegBase.

Referenced by vtophys().

PageTableEntry AlphaISA::kernel_pte_lookup ( PortProxy mem,
Addr  ptbr,
VAddr  vaddr 
)
uint64_t AlphaISA::MCSR_SP ( uint64_t  reg)
inline

Definition at line 89 of file ev5.hh.

int AlphaISA::Opcode ( MachInst  inst)
inline

Definition at line 105 of file ev5.hh.

Referenced by AlphaISA::DtbFault::invoke().

bool AlphaISA::PAddrIprSpace ( Addr  a)
inline

Definition at line 52 of file ev5.hh.

References ULL.

Referenced by AlphaISA::TLB::checkCacheability().

bool AlphaISA::PcPAL ( Addr  addr)
inline
Addr AlphaISA::Phys2K0Seg ( Addr  addr)
inline

Definition at line 61 of file ev5.hh.

References K0SegBase, PAddrUncachedBit40, PAddrUncachedBit43, and PAddrUncachedMask.

Referenced by AlphaSystem::setAlphaAccess().

Addr AlphaISA::PteAddr ( Addr  a)
inline

Definition at line 78 of file utility.hh.

References PteMask, and PteShift.

Referenced by AlphaISA::VAddr::level1(), AlphaISA::VAddr::level2(), and AlphaISA::VAddr::level3().

int AlphaISA::Ra ( MachInst  inst)
inline

Definition at line 106 of file ev5.hh.

Referenced by AlphaISA::DtbFault::invoke().

Addr AlphaISA::RoundPage ( Addr  addr)
inline

Definition at line 95 of file utility.hh.

References PageBytes.

Referenced by AlphaISA::RemoteGDB::acc().

void AlphaISA::skipFunction ( ThreadContext tc)
void AlphaISA::startupCPU ( ThreadContext tc,
int  cpuId 
)
inline

Definition at line 70 of file utility.hh.

References ThreadContext::activate().

Referenced by System::initState().

Addr AlphaISA::TruncPage ( Addr  addr)
inline

Definition at line 91 of file utility.hh.

References PageBytes.

Referenced by AlphaISA::RemoteGDB::acc().

Addr AlphaISA::VAddrImpl ( Addr  a)
inline

Definition at line 46 of file ev5.hh.

References VAddrImplMask.

Addr AlphaISA::VAddrOffset ( Addr  a)
inline

Definition at line 48 of file ev5.hh.

References PageOffset.

Addr AlphaISA::VAddrSpaceEV5 ( Addr  a)
inline

Definition at line 49 of file ev5.hh.

Addr AlphaISA::VAddrSpaceEV6 ( Addr  a)
inline

Definition at line 50 of file ev5.hh.

Referenced by AlphaISA::TLB::translateData(), and AlphaISA::TLB::translateInst().

Addr AlphaISA::VAddrVPN ( Addr  a)
inline

Definition at line 47 of file ev5.hh.

References PageShift.

Addr AlphaISA::vtophys ( Addr  vaddr)
Addr AlphaISA::vtophys ( ThreadContext tc,
Addr  addr 
)
template<class TC >
void AlphaISA::zeroRegisters ( TC *  tc)

Function to insure ISA semantics about 0 registers.

Parameters
tcThe thread context.
template<class CPU >
void AlphaISA::zeroRegisters ( CPU *  cpu)

Definition at line 67 of file ev5.cc.

References ZeroReg.

Variable Documentation

const uint64_t AlphaISA::AsnMask = ULL(0xff)

Definition at line 42 of file ev5.hh.

Referenced by DTB_ASN_ASN(), and ITB_ASN_ASN().

int AlphaISA::break_ipl = -1

Definition at line 199 of file ev5.cc.

const bool AlphaISA::CurThreadInfoImplemented = true

Definition at line 121 of file isa_traits.hh.

Referenced by Linux::ThreadInfo::curThreadInfo().

const int AlphaISA::CurThreadInfoReg = AlphaISA::IPR_PALtemp23

Definition at line 122 of file isa_traits.hh.

Referenced by Linux::ThreadInfo::curThreadInfo().

const RegIndex AlphaISA::FirstArgumentReg = 16

Definition at line 87 of file registers.hh.

const RegIndex AlphaISA::FramePointerReg = 15

Definition at line 84 of file registers.hh.

const RegIndex AlphaISA::GlobalPointerReg = 29

Definition at line 80 of file registers.hh.

Referenced by AlphaProcess::initState().

const bool AlphaISA::HasUnalignedMemAcc = false
int AlphaISA::IprToMiscRegIndex

Definition at line 126 of file ipr.cc.

Referenced by initializeIprTable().

const Addr AlphaISA::K0SegBase = ULL(0xfffffc0000000000)

Definition at line 71 of file isa_traits.hh.

Referenced by AlphaISA::RemoteGDB::acc(), IsK0Seg(), K0Seg2Phys(), and Phys2K0Seg().

const Addr AlphaISA::K0SegEnd = ULL(0xfffffdffffffffff)

Definition at line 72 of file isa_traits.hh.

Referenced by IsK0Seg().

const Addr AlphaISA::K1SegBase = ULL(0xfffffe0000000000)

Definition at line 75 of file isa_traits.hh.

Referenced by IsK1Seg().

const Addr AlphaISA::K1SegEnd = ULL(0xffffffffffffffff)

Definition at line 76 of file isa_traits.hh.

Referenced by IsK1Seg().

const int AlphaISA::MachineBytes = 8

Definition at line 112 of file isa_traits.hh.

Referenced by AlphaProcess::initState(), and PowerProcess::initState().

const int AlphaISA::MaxMiscDestRegs = AlphaISAInst::MaxMiscDestRegs + 1

Definition at line 44 of file registers.hh.

Referenced by BaseO3DynInst< Impl >::setMiscReg().

md_ipr_names AlphaISA::MiscRegIndexToIpr

Definition at line 38 of file ipr.cc.

Referenced by initializeIprTable().

const uint64_t AlphaISA::MM_STAT_ACV_MASK = ULL(0x0002)

Definition at line 103 of file ev5.hh.

Referenced by AlphaISA::TLB::translateData().

const uint64_t AlphaISA::MM_STAT_BAD_VA_MASK = ULL(0x0020)

Definition at line 99 of file ev5.hh.

Referenced by AlphaISA::TLB::translateData().

const uint64_t AlphaISA::MM_STAT_DTB_MISS_MASK = ULL(0x0010)

Definition at line 100 of file ev5.hh.

Referenced by AlphaISA::TLB::translateData().

const uint64_t AlphaISA::MM_STAT_FONR_MASK = ULL(0x0004)

Definition at line 102 of file ev5.hh.

Referenced by AlphaISA::TLB::translateData().

const uint64_t AlphaISA::MM_STAT_FONW_MASK = ULL(0x0008)

Definition at line 101 of file ev5.hh.

Referenced by AlphaISA::TLB::translateData().

const uint64_t AlphaISA::MM_STAT_WR_MASK = ULL(0x0001)

Definition at line 104 of file ev5.hh.

Referenced by AlphaISA::TLB::translateData().

const ExtMachInst AlphaISA::NoopMachInst = 0x2ffe0000

Definition at line 116 of file isa_traits.hh.

Referenced by DefaultFetch< Impl >::finishTranslation().

const Addr AlphaISA::NPtePage = ULL(1) << NPtePageShift

Definition at line 63 of file isa_traits.hh.

const Addr AlphaISA::NPtePageShift = PageShift - PteShift

Definition at line 62 of file isa_traits.hh.

Referenced by AlphaISA::VAddr::level1(), and AlphaISA::VAddr::level2().

const int AlphaISA::NumCCRegs = 0
const int AlphaISA::NumFloatArchRegs = 32

Definition at line 93 of file registers.hh.

Referenced by AlphaISA::RemoteGDB::AlphaGdbRegCache::setRegs().

const int AlphaISA::NumFloatRegs = NumFloatArchRegs
const int AlphaISA::NumIntArchRegs = 32
const int AlphaISA::NumIntRegs = NumIntArchRegs + NumPALShadowRegs
const int AlphaISA::NumMiscRegs = NUM_MISCREGS

Definition at line 98 of file registers.hh.

Referenced by ThreadContext::compare().

const int AlphaISA::NumPALShadowRegs = 8

Definition at line 92 of file registers.hh.

const int AlphaISA::PAddrImplBits = 44

Definition at line 53 of file ev5.hh.

Referenced by DTB_PTE_PPN(), and ITB_PTE_PPN().

const Addr AlphaISA::PAddrImplMask = (ULL(1) << PAddrImplBits) - 1

Definition at line 54 of file ev5.hh.

Referenced by AlphaISA::TLB::translateData(), and AlphaISA::TLB::translateInst().

const Addr AlphaISA::PAddrUncachedBit39 = ULL(0x8000000000)

Definition at line 55 of file ev5.hh.

const Addr AlphaISA::PAddrUncachedBit40 = ULL(0x10000000000)

Definition at line 56 of file ev5.hh.

Referenced by Phys2K0Seg(), AlphaISA::TLB::translateData(), and AlphaISA::TLB::translateInst().

const Addr AlphaISA::PAddrUncachedBit43 = ULL(0x80000000000)

Definition at line 57 of file ev5.hh.

Referenced by AlphaISA::TLB::checkCacheability(), and Phys2K0Seg().

const Addr AlphaISA::PAddrUncachedMask = ULL(0x807ffffffff)

Definition at line 58 of file ev5.hh.

Referenced by AlphaISA::TLB::checkCacheability(), and Phys2K0Seg().

const Addr AlphaISA::PageBytes = ULL(1) << PageShift

Definition at line 52 of file isa_traits.hh.

Referenced by AlphaISA::RemoteGDB::acc(), Process::allocateMem(), AlphaProcess::AlphaProcess(), AlphaProcess::argsInit(), RiscvProcess::argsInit(), ArmProcess32::ArmProcess32(), ArmProcess64::ArmProcess64(), brkFunc(), TLBCoalescer::canCoalesce(), CopyStringIn(), IdeDisk::doDmaRead(), IdeDisk::doDmaWrite(), Process::fixupStackFault(), DecodeCache::AddrMap< RefCountingPtr >::getPage(), System::getPageBytes(), getpagesizeFunc(), X86ISA::GpuTLB::handleFuncTranslationReturn(), AlphaProcess::initState(), MipsProcess::initState(), PowerProcess::initState(), RiscvProcess::initState(), ArmProcess32::initState(), ArmLinuxProcess32::initState(), ArmProcess64::initState(), Sparc32Process::initState(), Sparc64Process::initState(), X86ISA::GpuTLB::issueTLBLookup(), DecodeCache::AddrMap< RefCountingPtr >::lookup(), FSTranslatingPortProxy::memsetBlob(), MipsProcess::MipsProcess(), Shader::mmap(), mmapImpl(), mremapFunc(), PowerProcess::PowerProcess(), TLBCoalescer::IssueProbeEvent::process(), FSTranslatingPortProxy::readBlob(), TLBCoalescer::CpuSidePort::recvFunctional(), X86ISA::GpuTLB::CpuSidePort::recvFunctional(), X86ISA::GpuTLB::MemSidePort::recvTimingResp(), ComputeUnit::DTLBPort::recvTimingResp(), Process::replicatePage(), RiscvProcess::RiscvProcess(), RoundPage(), TruncPage(), SETranslatingPortProxy::tryMemsetBlob(), SETranslatingPortProxy::tryReadBlob(), SETranslatingPortProxy::tryWriteBlob(), Process::updateBias(), ComputeUnit::updatePageDivergenceDist(), TLBCoalescer::updatePhysAddresses(), and FSTranslatingPortProxy::writeBlob().

const Addr AlphaISA::PageMask = ~(PageBytes - 1)

Definition at line 53 of file isa_traits.hh.

Referenced by AlphaISA::VAddr::page().

const Addr AlphaISA::PageOffset = PageBytes - 1

Definition at line 54 of file isa_traits.hh.

Referenced by AlphaISA::VAddr::offset(), and VAddrOffset().

const Addr AlphaISA::PageShift = 13
const Addr AlphaISA::PalBase = 0x4000

Definition at line 108 of file ev5.hh.

Referenced by initIPRs().

const Addr AlphaISA::PalMax = 0x10000

Definition at line 109 of file ev5.hh.

Referenced by vtophys().

const RegIndex AlphaISA::ProcedureValueReg = 27

Definition at line 81 of file registers.hh.

const Addr AlphaISA::PteMask = NPtePage - 1

Definition at line 64 of file isa_traits.hh.

Referenced by PteAddr().

const Addr AlphaISA::PteShift = 3

Definition at line 61 of file isa_traits.hh.

Referenced by PteAddr().

const int AlphaISA::reg_redir
Initial value:
= {
0, 1, 2, 3, 4, 5, 6, 7,
32, 33, 34, 35, 36, 37, 38, 15,
16, 17, 18, 19, 20, 21, 22, 23,
24, 39, 26, 27, 28, 29, 30, 31 }

Definition at line 37 of file regredir.cc.

Referenced by AlphaISA::RemoteGDB::AlphaGdbRegCache::getRegs(), and AlphaISA::RemoteGDB::AlphaGdbRegCache::setRegs().

const RegIndex AlphaISA::ReturnAddressReg = 26

Definition at line 82 of file registers.hh.

Referenced by AlphaISA::StackTrace::decodePrologue(), and skipFunction().

const RegIndex AlphaISA::ReturnValueReg = 0
const RegIndex AlphaISA::StackPointerReg = 30
const RegIndex AlphaISA::SyscallNumReg = 0

Definition at line 86 of file registers.hh.

const RegIndex AlphaISA::SyscallPseudoReturnReg = 20
const RegIndex AlphaISA::SyscallSuccessReg = 19
const int AlphaISA::TotalNumRegs
Initial value:
=
const int NumFloatRegs
Definition: registers.hh:65
const int NumIntRegs
Definition: registers.hh:58
const int NumMiscRegs
Definition: registers.hh:55

Definition at line 100 of file registers.hh.

const Addr AlphaISA::USegBase = ULL(0x0)

Definition at line 67 of file isa_traits.hh.

Referenced by IsUSeg().

const Addr AlphaISA::USegEnd = ULL(0x000003ffffffffff)

Definition at line 68 of file isa_traits.hh.

Referenced by IsUSeg().

const int AlphaISA::VAddrImplBits = 43

Definition at line 43 of file ev5.hh.

const Addr AlphaISA::VAddrImplMask = (ULL(1) << VAddrImplBits) - 1

Definition at line 44 of file ev5.hh.

Referenced by VAddrImpl().

const Addr AlphaISA::VAddrUnImplMask = ~VAddrImplMask

Definition at line 45 of file ev5.hh.

Referenced by AlphaISA::TLB::validVirtualAddress().

const RegIndex AlphaISA::ZeroReg = 31

Generated on Fri Jun 9 2017 13:04:24 for gem5 by doxygen 1.8.6