gem5
|
This is exposed globally, independent of the ISA. More...
Namespaces | |
ACPI | |
ConditionTests | |
IntelMP | |
Kernel | |
SMBios | |
Classes | |
class | E820Entry |
class | E820Table |
struct | CpuidResult |
class | Decoder |
struct | EmulEnv |
class | X86FaultBase |
class | X86Fault |
class | X86Trap |
class | X86Abort |
class | X86Interrupt |
class | UnimpInstFault |
class | DivideError |
class | DebugException |
class | NonMaskableInterrupt |
class | Breakpoint |
class | OverflowTrap |
class | BoundRange |
class | InvalidOpcode |
class | DeviceNotAvailable |
class | DoubleFault |
class | InvalidTSS |
class | SegmentNotPresent |
class | StackFault |
class | GeneralProtection |
class | PageFault |
class | X87FpExceptionPending |
class | AlignmentCheck |
class | MachineCheck |
class | SIMDFloatingPointFault |
class | SecurityException |
class | ExternalInterrupt |
class | SystemManagementInterrupt |
class | InitInterrupt |
class | StartupInterrupt |
class | SoftwareInterrupt |
class | MacroopBase |
class | FpOp |
Base classes for FpOps which provides a generateDisassembly method. More... | |
class | MemOp |
Base class for memory ops. More... | |
class | LdStOp |
Base class for load and store ops using one register. More... | |
class | LdStSplitOp |
Base class for load and store ops using two registers, we will call them split ops for this reason. More... | |
class | MediaOpBase |
class | MediaOpReg |
class | MediaOpImm |
class | X86MicroopBase |
class | RegOpBase |
Base classes for RegOps which provides a generateDisassembly method. More... | |
class | RegOp |
class | RegOpImm |
struct | InstRegIndex |
Class for register indices passed to instruction constructors. More... | |
class | X86StaticInst |
Base class for all X86 static instructions. More... | |
class | Interrupts |
class | ISA |
class | X86_64LinuxProcess |
class | I386LinuxProcess |
class | PageTableOps |
Page table operations specific to x86 ISA. More... | |
class | Walker |
class | X86Process |
class | X86_64Process |
class | I386Process |
union | AnyReg |
class | RemoteGDB |
class | ProcessInfo |
class | StackTrace |
class | TLB |
struct | ExtMachInst |
class | PCState |
class | Cmos |
class | PS2Device |
class | PS2Mouse |
class | PS2Keyboard |
class | I8042 |
class | I82094AA |
class | I8237 |
class | I8254 |
class | I8259 |
class | IntDevice |
class | IntSinkPin |
class | IntSourcePin |
class | IntLine |
class | Speaker |
class | GpuTlbEntry |
class | GpuTLB |
Typedefs | |
typedef MultiLevelPageTable < PageTableOps > | ArchPageTable |
Declaration of architectural page table for x86. More... | |
typedef uint64_t | IntReg |
typedef uint64_t | CCReg |
typedef uint64_t | MiscReg |
typedef double | FloatReg |
typedef uint64_t | FloatRegBits |
typedef uint16_t | RegIndex |
typedef MsrMap::value_type | MsrVal |
typedef std::unordered_map < Addr, MiscRegIndex > | MsrMap |
typedef uint64_t | MachInst |
typedef std::list< int > | ApicList |
Functions | |
uint64_t | stringToRegister (const char *str) |
bool | doCpuid (ThreadContext *tc, uint32_t function, uint32_t index, CpuidResult &result) |
ApicRegIndex | decodeAddr (Addr paddr) |
BitUnion32 (TriggerIntMessage) Bitfield<7 | |
EndBitUnion (TriggerIntMessage) namespace DeliveryMode | |
static PacketPtr | prepIntRequest (const uint8_t id, Addr offset, Addr size) |
template<class T > | |
PacketPtr | buildIntRequest (const uint8_t id, T payload, Addr offset, Addr size) |
static PacketPtr | buildIntRequest (const uint8_t id, TriggerIntMessage payload) |
static PacketPtr | buildIntResponse () |
template<class XC > | |
void | handleLockedSnoop (XC *xc, PacketPtr pkt, Addr cacheBlockMask) |
template<class XC > | |
void | handleLockedRead (XC *xc, Request *req) |
template<class XC > | |
bool | handleLockedWrite (XC *xc, Request *req, Addr cacheBlockMask) |
template<class XC > | |
void | handleLockedSnoopHit (XC *xc) |
template<class XC > | |
Fault | initiateMemRead (XC *xc, Trace::InstRecord *traceData, Addr addr, unsigned dataSize, Request::Flags flags) |
Initiate a read from memory in timing mode. More... | |
static void | getMem (PacketPtr pkt, uint64_t &mem, unsigned dataSize, Trace::InstRecord *traceData) |
template<size_t N> | |
void | getMem (PacketPtr pkt, std::array< uint64_t, N > &mem, unsigned dataSize, Trace::InstRecord *traceData) |
template<class XC > | |
Fault | readMemAtomic (XC *xc, Trace::InstRecord *traceData, Addr addr, uint64_t &mem, unsigned dataSize, Request::Flags flags) |
template<class XC , size_t N> | |
Fault | readMemAtomic (XC *xc, Trace::InstRecord *traceData, Addr addr, std::array< uint64_t, N > &mem, unsigned dataSize, unsigned flags) |
template<class XC > | |
Fault | writeMemTiming (XC *xc, Trace::InstRecord *traceData, uint64_t mem, unsigned dataSize, Addr addr, Request::Flags flags, uint64_t *res) |
template<class XC , size_t N> | |
Fault | writeMemTiming (XC *xc, Trace::InstRecord *traceData, std::array< uint64_t, N > &mem, unsigned dataSize, Addr addr, unsigned flags, uint64_t *res) |
template<class XC > | |
Fault | writeMemAtomic (XC *xc, Trace::InstRecord *traceData, uint64_t mem, unsigned dataSize, Addr addr, Request::Flags flags, uint64_t *res) |
template<class XC , size_t N> | |
Fault | writeMemAtomic (XC *xc, Trace::InstRecord *traceData, std::array< uint64_t, N > &mem, unsigned dataSize, Addr addr, unsigned flags, uint64_t *res) |
Cycles | handleIprRead (ThreadContext *xc, Packet *pkt) |
Cycles | handleIprWrite (ThreadContext *xc, Packet *pkt) |
BitUnion64 (VAddr) Bitfield< 20 | |
EndBitUnion (VAddr) BitUnion64(PageTableEntry) Bitfield< 63 > nx | |
TlbEntry (Addr asn, Addr _vaddr, Addr _paddr, bool uncacheable, bool read_only) | |
TlbEntry () | |
void | updateVaddr (Addr new_vaddr) |
Addr | pageStart () |
int | size () |
void | serialize (CheckpointOut &cp) const override |
void | unserialize (CheckpointIn &cp) override |
void | m5Syscall (ThreadContext *tc) |
void | m5PageFault (ThreadContext *tc) |
static ApicRegIndex | APIC_IN_SERVICE (int index) |
static ApicRegIndex | APIC_TRIGGER_MODE (int index) |
static ApicRegIndex | APIC_INTERRUPT_REQUEST (int index) |
BitUnion32 (InterruptCommandRegLow) Bitfield<7 | |
EndBitUnion (InterruptCommandRegLow) BitUnion32(InterruptCommandRegHigh) Bitfield< 31 | |
static FloatRegIndex | FLOATREG_MMX (int index) |
static FloatRegIndex | FLOATREG_FPR (int index) |
static FloatRegIndex | FLOATREG_XMM_LOW (int index) |
static FloatRegIndex | FLOATREG_XMM_HIGH (int index) |
static FloatRegIndex | FLOATREG_MICROFP (int index) |
static FloatRegIndex | FLOATREG_STACK (int index, int top) |
BitUnion64 (X86IntReg) Bitfield< 63 | |
EndBitUnion (X86IntReg) enum IntRegIndex | |
static IntRegIndex | INTREG_MICRO (int index) |
static IntRegIndex | INTREG_IMPLICIT (int index) |
static IntRegIndex | INTREG_FOLDED (int index, int foldBit) |
static bool | isValidMiscReg (int index) |
static MiscRegIndex | MISCREG_CR (int index) |
static MiscRegIndex | MISCREG_DR (int index) |
static MiscRegIndex | MISCREG_MTRR_PHYS_BASE (int index) |
static MiscRegIndex | MISCREG_MTRR_PHYS_MASK (int index) |
static MiscRegIndex | MISCREG_MC_CTL (int index) |
static MiscRegIndex | MISCREG_MC_STATUS (int index) |
static MiscRegIndex | MISCREG_MC_ADDR (int index) |
static MiscRegIndex | MISCREG_MC_MISC (int index) |
static MiscRegIndex | MISCREG_PERF_EVT_SEL (int index) |
static MiscRegIndex | MISCREG_PERF_EVT_CTR (int index) |
static MiscRegIndex | MISCREG_IORR_BASE (int index) |
static MiscRegIndex | MISCREG_IORR_MASK (int index) |
static MiscRegIndex | MISCREG_SEG_SEL (int index) |
static MiscRegIndex | MISCREG_SEG_BASE (int index) |
static MiscRegIndex | MISCREG_SEG_EFF_BASE (int index) |
static MiscRegIndex | MISCREG_SEG_LIMIT (int index) |
static MiscRegIndex | MISCREG_SEG_ATTR (int index) |
BitUnion64 (CCFlagBits) Bitfield< 11 > of | |
A type to describe the condition code bits of the RFLAGS register, plus two flags, EZF and ECF, which are only visible to microcode. More... | |
EndBitUnion (CCFlagBits) BitUnion64(RFLAGS) Bitfield< 21 > id | |
RFLAGS. More... | |
EndBitUnion (RFLAGS) BitUnion64(HandyM5Reg) Bitfield< 0 > mode | |
EndBitUnion (HandyM5Reg) BitUnion64(CR0) Bitfield< 31 > pg | |
Control registers. More... | |
EndBitUnion (CR0) BitUnion64(CR2) Bitfield< 31 | |
EndBitUnion (CR2) BitUnion64(CR3) Bitfield< 51 | |
EndBitUnion (CR3) BitUnion64(CR4) Bitfield< 18 > osxsave | |
EndBitUnion (CR4) BitUnion64(CR8) Bitfield<3 | |
EndBitUnion (CR8) BitUnion64(DR6) Bitfield< 0 > b0 | |
EndBitUnion (DR6) BitUnion64(DR7) Bitfield< 0 > l0 | |
EndBitUnion (DR7) BitUnion64(MTRRcap) Bitfield<7 | |
EndBitUnion (MTRRcap) BitUnion64(SysenterCS) Bitfield< 15 | |
SYSENTER configuration registers. More... | |
EndBitUnion (SysenterCS) BitUnion64(SysenterESP) Bitfield< 31 | |
EndBitUnion (SysenterESP) BitUnion64(SysenterEIP) Bitfield< 31 | |
EndBitUnion (SysenterEIP) BitUnion64(McgCap) Bitfield<7 | |
Global machine check registers. More... | |
EndBitUnion (McgCap) BitUnion64(McgStatus) Bitfield< 0 > ripv | |
EndBitUnion (McgStatus) BitUnion64(DebugCtlMsr) Bitfield< 0 > lbr | |
EndBitUnion (DebugCtlMsr) BitUnion64(MtrrPhysBase) Bitfield<7 | |
EndBitUnion (MtrrPhysBase) BitUnion64(MtrrPhysMask) Bitfield< 11 > valid | |
EndBitUnion (MtrrPhysMask) BitUnion64(MtrrFixed) EndBitUnion(MtrrFixed) BitUnion64(Pat) EndBitUnion(Pat) BitUnion64(MtrrDefType) Bitfield<7 | |
EndBitUnion (MtrrDefType) BitUnion64(McStatus) Bitfield< 15 | |
Machine check. More... | |
EndBitUnion (McStatus) BitUnion64(McCtl) EndBitUnion(McCtl) BitUnion64(Efer) Bitfield< 0 > sce | |
EndBitUnion (Efer) BitUnion64(Star) Bitfield< 31 | |
EndBitUnion (Star) BitUnion64(SfMask) Bitfield< 31 | |
EndBitUnion (SfMask) BitUnion64(PerfEvtSel) Bitfield<7 | |
EndBitUnion (PerfEvtSel) BitUnion32(Syscfg) Bitfield< 18 > mfde | |
EndBitUnion (Syscfg) BitUnion64(IorrBase) Bitfield< 3 > wr | |
EndBitUnion (IorrBase) BitUnion64(IorrMask) Bitfield< 11 > v | |
EndBitUnion (IorrMask) BitUnion64(Tom) Bitfield< 51 | |
EndBitUnion (Tom) BitUnion64(VmCrMsr) Bitfield< 0 > dpd | |
EndBitUnion (VmCrMsr) BitUnion64(IgnneMsr) Bitfield< 0 > ignne | |
EndBitUnion (IgnneMsr) BitUnion64(SmmCtlMsr) Bitfield< 0 > dismiss | |
EndBitUnion (SmmCtlMsr) BitUnion64(SegSelector) Bitfield< 63 | |
Segment Selector. More... | |
EndBitUnion (SegSelector) BitUnion64(SegDescriptor) Bitfield< 63 | |
Segment Descriptors. More... | |
SubBitUnion (type, 43, 40) Bitfield< 43 > codeOrData | |
EndSubBitUnion (type) EndBitUnion(SegDescriptor) BitUnion64(TSSlow) Bitfield< 63 | |
TSS Descriptor (long mode - 128 bits) the lower 64 bits. More... | |
EndBitUnion (TSShigh) BitUnion64(SegAttr) Bitfield<1 | |
EndBitUnion (SegAttr) BitUnion64(GateDescriptor) Bitfield< 63 | |
EndBitUnion (GateDescriptor) BitUnion64(GateDescriptorLow) Bitfield< 63 | |
Long Mode Gate Descriptor. More... | |
EndBitUnion (GateDescriptorLow) BitUnion64(GateDescriptorHigh) Bitfield< 31 | |
EndBitUnion (GateDescriptorHigh) BitUnion64(GDTR) EndBitUnion(GDTR) BitUnion64(IDTR) EndBitUnion(IDTR) BitUnion64(LDTR) EndBitUnion(LDTR) BitUnion64(TR) EndBitUnion(TR) BitUnion64(LocalApicBase) Bitfield< 51 | |
Descriptor-Table Registers. More... | |
const MsrMap | msrMap (msrMapData, msrMapData+msrMapSize) |
bool | msrAddrToIndex (MiscRegIndex ®Num, Addr addr) |
Find and return the misc reg corresponding to an MSR address. More... | |
void | installSegDesc (ThreadContext *tc, SegmentRegIndex seg, SegDescriptor desc, bool longmode) |
BitUnion8 (LegacyPrefixVector) Bitfield<7 | |
EndBitUnion (LegacyPrefixVector) BitUnion8(ModRM) Bitfield<7 | |
EndBitUnion (ModRM) BitUnion8(Sib) Bitfield<7 | |
EndBitUnion (Sib) BitUnion8(Rex) Bitfield< 6 > present | |
EndBitUnion (Rex) BitUnion8(Vex2Of3) Bitfield< 7 > r | |
EndBitUnion (Vex2Of3) BitUnion8(Vex3Of3) Bitfield< 7 > w | |
EndBitUnion (Vex3Of3) BitUnion8(Vex2Of2) Bitfield< 7 > r | |
EndBitUnion (Vex2Of2) BitUnion8(VexInfo) Bitfield<6 | |
EndBitUnion (VexInfo) enum OpcodeType | |
static const char * | opcodeTypeToStr (OpcodeType type) |
BitUnion8 (Opcode) Bitfield<7 | |
EndBitUnion (Opcode) BitUnion8(OperatingMode) Bitfield< 3 > mode | |
EndBitUnion (OperatingMode) enum X86Mode | |
static std::ostream & | operator<< (std::ostream &os, const ExtMachInst &emi) |
static bool | operator== (const ExtMachInst &emi1, const ExtMachInst &emi2) |
uint64_t | getArgument (ThreadContext *tc, int &number, uint16_t size, bool fp) |
void | initCPU (ThreadContext *tc, int cpuId) |
void | startupCPU (ThreadContext *tc, int cpuId) |
void | copyMiscRegs (ThreadContext *src, ThreadContext *dest) |
void | copyRegs (ThreadContext *src, ThreadContext *dest) |
void | skipFunction (ThreadContext *tc) |
uint64_t | getRFlags (ThreadContext *tc) |
Reconstruct the rflags register from the internal gem5 register state. More... | |
void | setRFlags (ThreadContext *tc, uint64_t val) |
Set update the rflags register and internal gem5 state. More... | |
uint8_t | convX87TagsToXTags (uint16_t ftw) |
Convert an x87 tag word to abridged tag format. More... | |
uint16_t | convX87XTagsToTags (uint8_t ftwx) |
Convert an x87 xtag word to normal tags format. More... | |
uint16_t | genX87Tags (uint16_t ftw, uint8_t top, int8_t spm) |
Generate and updated x87 tag register after a push/pop operation. More... | |
double | loadFloat80 (const void *mem) |
Load an 80-bit float from memory and convert it to double. More... | |
void | storeFloat80 (void *mem, double value) |
Convert and store a double as an 80-bit float. More... | |
PCState | buildRetPC (const PCState &curPC, const PCState &callPC) |
static bool | inUserMode (ThreadContext *tc) |
template<class TC > | |
void | zeroRegisters (TC *tc) |
Function to insure ISA semantics about 0 registers. More... | |
void | advancePC (PCState &pc, const StaticInstPtr &inst) |
uint64_t | getExecutingAsid (ThreadContext *tc) |
uint64_t | getDoubleBits (double val) |
Extract the bit string representing a double value. More... | |
Addr | vtophys (Addr vaddr) |
Addr | vtophys (ThreadContext *tc, Addr vaddr) |
static Addr | x86IOAddress (const uint32_t port) |
static Addr | x86PciConfigAddress (const uint32_t addr) |
static Addr | x86LocalAPICAddress (const uint8_t id, const uint16_t addr) |
static Addr | x86InterruptAddress (const uint8_t id, const uint16_t addr) |
Variables | |
static const int | vendorStringSize = 13 |
static const char | vendorString [vendorStringSize] = "M5 Simulator" |
static const int | nameStringSize = 48 |
static const char | nameString [nameStringSize] = "Fake M5 x86_64 CPU" |
const uint8_t | CS = CSOverride |
const uint8_t | DS = DSOverride |
const uint8_t | ES = ESOverride |
const uint8_t | FS = FSOverride |
const uint8_t | GS = GSOverride |
const uint8_t | SS = SSOverride |
const uint8_t | OO = OperandSizeOverride |
const uint8_t | AO = AddressSizeOverride |
const uint8_t | LO = Lock |
const uint8_t | RE = Rep |
const uint8_t | RN = Repne |
const uint8_t | RX = RexPrefix |
const uint8_t | V2 = Vex2Prefix |
const uint8_t | V3 = Vex3Prefix |
const StaticInstPtr | badMicroop |
destination | |
Bitfield< 15, 8 > | vector |
Bitfield< 18, 16 > | deliveryMode |
Bitfield< 19 > | destMode |
Bitfield< 20 > | level |
Bitfield< 21 > | trigger |
static const Addr | TriggerIntOffset = 0 |
const Addr | PageShift = 12 |
const Addr | PageBytes = ULL(1) << PageShift |
const bool | HasUnalignedMemAcc = true |
const bool | CurThreadInfoImplemented = false |
const int | CurThreadInfoReg = -1 |
const ExtMachInst NoopMachInst | M5_VAR_USED |
const Request::FlagsType M5_VAR_USED | SegmentFlagMask = mask(4) |
const int | FlagShift = 4 |
longl1 | |
Bitfield< 29, 21 > | longl2 |
Bitfield< 38, 30 > | longl3 |
Bitfield< 47, 39 > | longl4 |
Bitfield< 20, 12 > | pael1 |
Bitfield< 29, 21 > | pael2 |
Bitfield< 31, 30 > | pael3 |
Bitfield< 21, 12 > | norml1 |
Bitfield< 31, 22 > | norml2 |
Bitfield< 51, 12 > | base |
Bitfield< 11, 9 > | avl |
Bitfield< 8 > | g |
Bitfield< 7 > | ps |
Bitfield< 6 > | d |
Bitfield< 5 > | a |
Bitfield< 4 > | pcd |
Bitfield< 3 > | pwt |
Bitfield< 2 > | u |
Bitfield< 1 > | w |
Bitfield< 0 > | p |
EndBitUnion(PageTableEntry) struct TlbEntry Addr | vaddr |
unsigned | logBytes |
bool | writable |
bool | user |
bool | uncacheable |
bool | global |
bool | patBit |
bool | noExec |
uint64_t | lruSeq |
TlbEntryTrie::Handle | trieHandle |
const std::vector< uint8_t > | PageTableLayout = {9, 9, 9, 9} |
The size of each level of the page table expressed in base 2 logarithmic values. More... | |
const int | NumMiscRegs = NUM_MISCREGS |
const int | NumIntArchRegs = NUM_INTREGS |
const int | NumIntRegs = NumIntArchRegs + NumMicroIntRegs + NumImplicitIntRegs |
const int | NumCCRegs = NUM_CCREGS |
const int | NumFloatRegs |
const int | ZeroReg = NUM_INTREGS |
const int | StackPointerReg = INTREG_RSP |
const int | ReturnAddressReg = 0 |
const int | ReturnValueReg = INTREG_RAX |
const int | FramePointerReg = INTREG_RBP |
const int | SyscallPseudoReturnReg = INTREG_RDX |
Bitfield< 12 > | deliveryStatus |
Bitfield< 19, 18 > | destShorthand |
R | |
SignedBitfield< 63, 0 > | SR |
Bitfield< 31, 0 > | E |
SignedBitfield< 31, 0 > | SE |
Bitfield< 15, 0 > | X |
SignedBitfield< 15, 0 > | SX |
Bitfield< 15, 8 > | H |
SignedBitfield< 15, 8 > | SH |
Bitfield< 7, 0 > | L |
SignedBitfield< 7, 0 > | SL |
static const IntRegIndex | IntFoldBit = (IntRegIndex)(1 << 6) |
const uint32_t | cfofMask = CFBit | OFBit |
const uint32_t | ccFlagMask = PFBit | AFBit | ZFBit | SFBit |
Bitfield< 7 > | sf |
Bitfield< 6 > | zf |
Bitfield< 5 > | ezf |
Bitfield< 4 > | af |
Bitfield< 3 > | ecf |
Bitfield< 2 > | pf |
Bitfield< 0 > | cf |
Bitfield< 20 > | vip |
Bitfield< 19 > | vif |
Bitfield< 18 > | ac |
Bitfield< 17 > | vm |
Bitfield< 16 > | rf |
Bitfield< 14 > | nt |
Bitfield< 13, 12 > | iopl |
Bitfield< 11 > | of |
Bitfield< 10 > | df |
Bitfield< 9 > | intf |
Bitfield< 8 > | tf |
Bitfield< 3, 1 > | submode |
Bitfield< 5, 4 > | cpl |
Bitfield< 6 > | paging |
Bitfield< 7 > | prot |
Bitfield< 9, 8 > | defOp |
Bitfield< 11, 10 > | altOp |
Bitfield< 13, 12 > | defAddr |
Bitfield< 15, 14 > | altAddr |
Bitfield< 17, 16 > | stack |
Bitfield< 30 > | cd |
Bitfield< 29 > | nw |
Bitfield< 18 > | am |
Bitfield< 16 > | wp |
Bitfield< 5 > | ne |
Bitfield< 4 > | et |
Bitfield< 3 > | ts |
Bitfield< 2 > | em |
Bitfield< 1 > | mp |
Bitfield< 0 > | pe |
legacy | |
longPdtb | |
Bitfield< 31, 12 > | pdtb |
Bitfield< 31, 5 > | paePdtb |
Bitfield< 16 > | fsgsbase |
Bitfield< 10 > | osxmmexcpt |
Bitfield< 9 > | osfxsr |
Bitfield< 8 > | pce |
Bitfield< 7 > | pge |
Bitfield< 6 > | mce |
Bitfield< 5 > | pae |
Bitfield< 4 > | pse |
Bitfield< 3 > | de |
Bitfield< 2 > | tsd |
Bitfield< 1 > | pvi |
Bitfield< 0 > | vme |
tpr | |
Bitfield< 1 > | b1 |
Bitfield< 2 > | b2 |
Bitfield< 3 > | b3 |
Bitfield< 13 > | bd |
Bitfield< 14 > | bs |
Bitfield< 15 > | bt |
Bitfield< 1 > | g0 |
Bitfield< 2 > | l1 |
Bitfield< 3 > | g1 |
Bitfield< 4 > | l2 |
Bitfield< 5 > | g2 |
Bitfield< 6 > | l3 |
Bitfield< 7 > | g3 |
Bitfield< 8 > | le |
Bitfield< 9 > | ge |
Bitfield< 13 > | gd |
Bitfield< 17, 16 > | rw0 |
Bitfield< 19, 18 > | len0 |
Bitfield< 21, 20 > | rw1 |
Bitfield< 23, 22 > | len1 |
Bitfield< 25, 24 > | rw2 |
Bitfield< 27, 26 > | len2 |
Bitfield< 29, 28 > | rw3 |
Bitfield< 31, 30 > | len3 |
vcnt | |
Bitfield< 8 > | fix |
Bitfield< 10 > | wc |
targetCS | |
targetESP | |
targetEIP | |
count | |
Bitfield< 8 > | MCGCP |
Bitfield< 1 > | eipv |
Bitfield< 2 > | mcip |
Bitfield< 1 > | btf |
Bitfield< 2 > | pb0 |
Bitfield< 3 > | pb1 |
Bitfield< 4 > | pb2 |
Bitfield< 5 > | pb3 |
type | |
Bitfield< 51, 12 > | physbase |
Bitfield< 51, 12 > | physmask |
Bitfield< 10 > | fe |
Bitfield< 11 > | e |
mcaErrorCode | |
Bitfield< 31, 16 > | modelSpecificCode |
Bitfield< 56, 32 > | otherInfo |
Bitfield< 57 > | pcc |
Bitfield< 58 > | addrv |
Bitfield< 59 > | miscv |
Bitfield< 60 > | en |
Bitfield< 61 > | uc |
Bitfield< 62 > | over |
Bitfield< 63 > | val |
Bitfield< 8 > | lme |
Bitfield< 10 > | lma |
Bitfield< 11 > | nxe |
Bitfield< 12 > | svme |
Bitfield< 14 > | ffxsr |
targetEip | |
Bitfield< 47, 32 > | syscallCsAndSs |
Bitfield< 63, 48 > | sysretCsAndSs |
mask | |
eventMask | |
Bitfield< 15, 8 > | unitMask |
Bitfield< 16 > | usr |
Bitfield< 17 > | os |
Bitfield< 19 > | pc |
Bitfield< 20 > | intEn |
Bitfield< 23 > | inv |
Bitfield< 31, 24 > | counterMask |
Bitfield< 19 > | mfdm |
Bitfield< 20 > | mvdm |
Bitfield< 21 > | tom2 |
Bitfield< 4 > | rd |
physAddr | |
Bitfield< 1 > | rInit |
Bitfield< 2 > | disA20M |
Bitfield< 1 > | enter |
Bitfield< 2 > | smiCycle |
Bitfield< 3 > | exit |
Bitfield< 4 > | rsmCycle |
esi | |
Bitfield< 15, 3 > | si |
Bitfield< 2 > | ti |
Bitfield< 1, 0 > | rpl |
baseHigh | |
Bitfield< 39, 16 > | baseLow |
Bitfield< 54 > | b |
Bitfield< 53 > | l |
Bitfield< 51, 48 > | limitHigh |
Bitfield< 15, 0 > | limitLow |
Bitfield< 46, 45 > | dpl |
Bitfield< 44 > | s |
Bitfield< 42 > | c |
Bitfield< 41 > | r |
Bitfield< 2 > | unusable |
Bitfield< 3 > | defaultSize |
Bitfield< 4 > | longMode |
Bitfield< 6 > | granularity |
Bitfield< 7 > | present |
Bitfield< 13 > | readable |
Bitfield< 14 > | expandDown |
Bitfield< 15 > | system |
offsetHigh | |
Bitfield< 15, 0 > | offsetLow |
Bitfield< 31, 16 > | selector |
Bitfield< 35, 32 > | IST |
offset | |
Bitfield< 11 > | enable |
Bitfield< 8 > | bsp |
const MsrMap::value_type | msrMapData [] |
static const unsigned | msrMapSize = sizeof(msrMapData) / sizeof(msrMapData[0]) |
const MsrMap | msrMap |
Map between MSR addresses and their corresponding misc registers. More... | |
const uint64_t | syscallCodeVirtAddr = 0xffff800000000000 |
const uint64_t | syscallCodePhysAddr = 0x60000 |
const uint64_t | GDTVirtAddr = 0xffff800000001000 |
const uint64_t | GDTPhysAddr = 0x61000 |
const uint64_t | IDTVirtAddr = 0xffff800000002000 |
const uint64_t | IDTPhysAddr = 0x62000 |
const uint64_t | TSSVirtAddr = 0xffff800000003000 |
const uint64_t | TSSPhysAddr = 0x63000 |
const uint64_t | ISTVirtAddr = 0xffff800000004000 |
const uint64_t | ISTPhysAddr = 0x64000 |
const uint64_t | PFHandlerVirtAddr = 0xffff800000005000 |
const uint64_t | PFHandlerPhysAddr = 0x65000 |
const uint64_t | MMIORegionVirtAddr = 0xffffc90000000000 |
const uint64_t | MMIORegionPhysAddr = 0xffff0000 |
const uint64_t | pageTablePhysAddr = 0x70000 |
decodeVal | |
Bitfield< 7 > | repne |
Bitfield< 6 > | rep |
Bitfield< 5 > | lock |
Bitfield< 4 > | op |
Bitfield< 3 > | addr |
Bitfield< 2, 0 > | seg |
mod | |
Bitfield< 5, 3 > | reg |
Bitfield< 2, 0 > | rm |
scale | |
Bitfield< 5, 3 > | index |
Bitfield< 1 > | x |
Bitfield< 4, 0 > | m |
Bitfield< 6, 3 > | v |
top5 | |
Bitfield< 2, 0 > | bottom3 |
const int | NumMicroIntRegs = 16 |
const int | NumImplicitIntRegs = 6 |
const int | NumMMXRegs = 8 |
const int | NumXMMRegs = 16 |
const int | NumMicroFpRegs = 8 |
const int | NumCRegs = 16 |
const int | NumDRegs = 8 |
const int | NumSegments = 6 |
const int | NumSysSegments = 4 |
const Addr | IntAddrPrefixMask = ULL(0xffffffff00000000) |
const Addr | IntAddrPrefixCPUID = ULL(0x100000000) |
const Addr | IntAddrPrefixMSR = ULL(0x200000000) |
const Addr | IntAddrPrefixIO = ULL(0x300000000) |
const Addr | PhysAddrPrefixIO = ULL(0x8000000000000000) |
const Addr | PhysAddrPrefixPciConfig = ULL(0xC000000000000000) |
const Addr | PhysAddrPrefixLocalAPIC = ULL(0x2000000000000000) |
const Addr | PhysAddrPrefixInterrupts = ULL(0xA000000000000000) |
const Addr | PhysAddrAPICRangeSize = 1 << 12 |
This is exposed globally, independent of the ISA.
typedef std::list<int> X86ISA::ApicList |
Declaration of architectural page table for x86.
These page tables are stored in system memory and respect x86 specification.
Definition at line 193 of file process.hh.
typedef uint64_t X86ISA::CCReg |
Definition at line 93 of file registers.hh.
typedef double X86ISA::FloatReg |
Definition at line 98 of file registers.hh.
typedef uint64_t X86ISA::FloatRegBits |
Definition at line 99 of file registers.hh.
typedef uint64_t X86ISA::IntReg |
Definition at line 92 of file registers.hh.
typedef uint64_t X86ISA::MachInst |
typedef uint64_t X86ISA::MiscReg |
Definition at line 94 of file registers.hh.
typedef std::unordered_map<Addr, MiscRegIndex> X86ISA::MsrMap |
typedef MsrMap::value_type X86ISA::MsrVal |
typedef uint16_t X86ISA::RegIndex |
Definition at line 108 of file registers.hh.
enum X86ISA::ApicRegIndex |
enum X86ISA::CCRegIndex |
enum X86ISA::CondFlagBit |
Enumerator | |
---|---|
FP_Reg_Base | |
CC_Reg_Base | |
Misc_Reg_Base | |
Max_Reg_Index |
Definition at line 69 of file registers.hh.
enum X86ISA::FlagBit |
Enumerator | |
---|---|
CPL0FlagBit | |
AddrSizeFlagBit | |
StoreCheck |
Definition at line 53 of file ldstflags.hh.
enum X86ISA::MediaFlag |
Enumerator | |
---|---|
MediaMultHiOp | |
MediaSignedOp | |
MediaScalarOp |
Definition at line 38 of file micromediaop.hh.
enum X86ISA::MiscRegIndex |
enum X86ISA::Prefixes |
enum X86ISA::PTEField |
Enumerator | |
---|---|
PTE_NotPresent | |
PTE_Supervisor | |
PTE_ReadOnly | |
PTE_Uncacheable |
Definition at line 161 of file pagetable.hh.
enum X86ISA::RFLAGBit |
Definition at line 45 of file segment.hh.
enum X86ISA::SizeType |
Enumerator | |
---|---|
NoImm | |
NI | |
ByteImm | |
BY | |
WordImm | |
WO | |
DWordImm | |
DW | |
QWordImm | |
QW | |
OWordImm | |
OW | |
VWordImm | |
VW | |
ZWordImm | |
ZW | |
Enter | |
EN | |
Pointer | |
PO |
Definition at line 169 of file decoder_tables.cc.
Enumerator | |
---|---|
M5_AT_SYSINFO | |
M5_AT_SYSINFO_EHDR |
Definition at line 54 of file process.hh.
enum X86ISA::X86SubMode |
enum X86ISA::X87StatusBit |
|
inline |
Definition at line 90 of file utility.hh.
References StaticInst::advancePC().
|
inlinestatic |
Definition at line 75 of file apic.hh.
References APIC_IN_SERVICE_BASE, and index.
Referenced by decodeAddr(), and X86ISA::Interrupts::setReg().
|
inlinestatic |
Definition at line 87 of file apic.hh.
References APIC_INTERRUPT_REQUEST_BASE, and index.
Referenced by decodeAddr(), and X86ISA::Interrupts::setReg().
|
inlinestatic |
Definition at line 81 of file apic.hh.
References APIC_TRIGGER_MODE_BASE, and index.
Referenced by decodeAddr(), X86ISA::Interrupts::readReg(), and X86ISA::Interrupts::setReg().
X86ISA::BitUnion32 | ( | TriggerIntMessage | ) |
X86ISA::BitUnion32 | ( | InterruptCommandRegLow | ) |
X86ISA::BitUnion64 | ( | X86IntReg | ) |
X86ISA::BitUnion64 | ( | VAddr | ) |
X86ISA::BitUnion64 | ( | CCFlagBits | ) |
A type to describe the condition code bits of the RFLAGS register, plus two flags, EZF and ECF, which are only visible to microcode.
X86ISA::BitUnion8 | ( | LegacyPrefixVector | ) |
X86ISA::BitUnion8 | ( | Opcode | ) |
PacketPtr X86ISA::buildIntRequest | ( | const uint8_t | id, |
T | payload, | ||
Addr | offset, | ||
Addr | size | ||
) |
Definition at line 92 of file intmessage.hh.
References prepIntRequest(), and Packet::set().
Referenced by buildIntRequest(), and X86ISA::IntDevice::IntMasterPort::sendMessage().
|
inlinestatic |
Definition at line 100 of file intmessage.hh.
References buildIntRequest(), and TriggerIntOffset.
|
inlinestatic |
Definition at line 107 of file intmessage.hh.
References panic.
|
inline |
Definition at line 51 of file utility.hh.
References X86ISA::PCState::uEnd().
uint8_t X86ISA::convX87TagsToXTags | ( | uint16_t | ftw | ) |
Convert an x87 tag word to abridged tag format.
Convert from the x87 tag representation to the tag abridged representation used in the FXSAVE area. The classic format uses 2 bits per stack position to indicate if a position is valid, zero, special, or empty. The abridged format only stores whether a position is empty or not.
ftw | Tag word in classic x87 format. |
Definition at line 289 of file utility.cc.
References ArmISA::i.
Referenced by updateKvmStateFPUCommon().
uint16_t X86ISA::convX87XTagsToTags | ( | uint8_t | ftwx | ) |
Convert an x87 xtag word to normal tags format.
Convert from the abridged x87 tag representation used in the FXSAVE area to a full x87 tag. The classic format uses 2 bits per stack position to indicate if a position is valid, zero, special, or empty. The abridged format only stores whether a position is empty or not.
ftwx | Tag word in the abridged format. |
Definition at line 314 of file utility.cc.
References ArmISA::i.
Referenced by updateThreadContextFPUCommon().
void X86ISA::copyMiscRegs | ( | ThreadContext * | src, |
ThreadContext * | dest | ||
) |
Definition at line 214 of file utility.cc.
References ThreadContext::getDTBPtr(), ThreadContext::getITBPtr(), ArmISA::i, isValidMiscReg(), MISCREG_TSC, NUM_MISCREGS, ThreadContext::readMiscReg(), ThreadContext::readMiscRegNoEffect(), ThreadContext::setMiscReg(), and ThreadContext::setMiscRegNoEffect().
Referenced by copyRegs().
void X86ISA::copyRegs | ( | ThreadContext * | src, |
ThreadContext * | dest | ||
) |
Definition at line 235 of file utility.cc.
References copyMiscRegs(), ArmISA::i, NumCCRegs, NumFloatRegs, NumIntRegs, ThreadContext::pcState(), ThreadContext::readCCRegFlat(), ThreadContext::readFloatRegBitsFlat(), ThreadContext::readIntRegFlat(), ThreadContext::setCCRegFlat(), ThreadContext::setFloatRegBitsFlat(), and ThreadContext::setIntRegFlat().
ApicRegIndex X86ISA::decodeAddr | ( | Addr | paddr | ) |
Definition at line 82 of file interrupts.cc.
References APIC_ARBITRATION_PRIORITY, APIC_CURRENT_COUNT, APIC_DESTINATION_FORMAT, APIC_DIVIDE_CONFIGURATION, APIC_EOI, APIC_ERROR_STATUS, APIC_ID, APIC_IN_SERVICE(), APIC_INITIAL_COUNT, APIC_INTERRUPT_COMMAND_HIGH, APIC_INTERRUPT_COMMAND_LOW, APIC_INTERRUPT_REQUEST(), APIC_LOGICAL_DESTINATION, APIC_LVT_ERROR, APIC_LVT_LINT0, APIC_LVT_LINT1, APIC_LVT_PERFORMANCE_MONITORING_COUNTERS, APIC_LVT_THERMAL_SENSOR, APIC_LVT_TIMER, APIC_PROCESSOR_PRIORITY, APIC_SPURIOUS_INTERRUPT_VECTOR, APIC_TASK_PRIORITY, APIC_TRIGGER_MODE(), APIC_VERSION, mask, and panic.
Referenced by X86ISA::Interrupts::read(), and X86ISA::Interrupts::write().
bool X86ISA::doCpuid | ( | ThreadContext * | tc, |
uint32_t | function, | ||
uint32_t | index, | ||
CpuidResult & | result | ||
) |
Definition at line 83 of file cpuid.cc.
References APMInfo, bits(), FamilyModelStepping, FamilyModelSteppingBrandFeatures, L1CacheAndTLB, L2L3CacheAndL2TLB, LongModeAddressSize, nameString, NameString1, NameString2, NameString3, nameStringSize, NumExtendedCpuidFuncs, NumStandardCpuidFuncs, offset, stringToRegister(), VendorAndLargestExtFunc, VendorAndLargestStdFunc, vendorString, vendorStringSize, and warn.
Referenced by X86KvmCPU::updateCPUID().
X86ISA::EndBitUnion | ( | TriggerIntMessage | ) |
Definition at line 50 of file intmessage.hh.
References ArmISA::mode.
X86ISA::EndBitUnion | ( | X86IntReg | ) |
Definition at line 61 of file int.hh.
References ArmISA::INTREG_R10, ArmISA::INTREG_R11, ArmISA::INTREG_R12, ArmISA::INTREG_R13, ArmISA::INTREG_R14, ArmISA::INTREG_R15, ArmISA::INTREG_R8, ArmISA::INTREG_R9, ArmISA::INTREG_SP, and ArmISA::NUM_INTREGS.
X86ISA::EndBitUnion | ( | VAddr | ) |
X86ISA::EndBitUnion | ( | LegacyPrefixVector | ) |
X86ISA::EndBitUnion | ( | ModRM | ) |
X86ISA::EndBitUnion | ( | Sib | ) |
X86ISA::EndBitUnion | ( | InterruptCommandRegLow | ) |
X86ISA::EndBitUnion | ( | Rex | ) |
X86ISA::EndBitUnion | ( | Vex2Of3 | ) |
X86ISA::EndBitUnion | ( | Vex3Of3 | ) |
X86ISA::EndBitUnion | ( | Vex2Of2 | ) |
X86ISA::EndBitUnion | ( | Opcode | ) |
X86ISA::EndBitUnion | ( | CCFlagBits | ) |
RFLAGS.
X86ISA::EndBitUnion | ( | RFLAGS | ) |
X86ISA::EndBitUnion | ( | HandyM5Reg | ) |
Control registers.
X86ISA::EndBitUnion | ( | CR0 | ) |
X86ISA::EndBitUnion | ( | CR2 | ) |
X86ISA::EndBitUnion | ( | CR3 | ) |
X86ISA::EndBitUnion | ( | CR4 | ) |
X86ISA::EndBitUnion | ( | CR8 | ) |
X86ISA::EndBitUnion | ( | DR6 | ) |
X86ISA::EndBitUnion | ( | DR7 | ) |
X86ISA::EndBitUnion | ( | MTRRcap | ) |
SYSENTER configuration registers.
X86ISA::EndBitUnion | ( | SysenterCS | ) |
X86ISA::EndBitUnion | ( | SysenterESP | ) |
X86ISA::EndBitUnion | ( | SysenterEIP | ) |
Global machine check registers.
X86ISA::EndBitUnion | ( | McgCap | ) |
X86ISA::EndBitUnion | ( | McgStatus | ) |
X86ISA::EndBitUnion | ( | DebugCtlMsr | ) |
X86ISA::EndBitUnion | ( | MtrrPhysBase | ) |
X86ISA::EndBitUnion | ( | MtrrPhysMask | ) |
X86ISA::EndBitUnion | ( | MtrrDefType | ) |
Machine check.
X86ISA::EndBitUnion | ( | McStatus | ) |
X86ISA::EndBitUnion | ( | Efer | ) |
X86ISA::EndBitUnion | ( | Star | ) |
X86ISA::EndBitUnion | ( | SfMask | ) |
X86ISA::EndBitUnion | ( | PerfEvtSel | ) |
X86ISA::EndBitUnion | ( | Syscfg | ) |
X86ISA::EndBitUnion | ( | IorrBase | ) |
X86ISA::EndBitUnion | ( | IorrMask | ) |
X86ISA::EndBitUnion | ( | Tom | ) |
X86ISA::EndBitUnion | ( | VmCrMsr | ) |
X86ISA::EndBitUnion | ( | IgnneMsr | ) |
X86ISA::EndBitUnion | ( | SmmCtlMsr | ) |
Segment Selector.
X86ISA::EndBitUnion | ( | SegSelector | ) |
Segment Descriptors.
X86ISA::EndBitUnion | ( | TSShigh | ) |
X86ISA::EndBitUnion | ( | SegAttr | ) |
X86ISA::EndBitUnion | ( | GateDescriptor | ) |
Long Mode Gate Descriptor.
X86ISA::EndBitUnion | ( | GateDescriptorLow | ) |
X86ISA::EndBitUnion | ( | GateDescriptorHigh | ) |
Descriptor-Table Registers.
Task Register Local APIC Base Register
X86ISA::EndSubBitUnion | ( | type | ) |
TSS Descriptor (long mode - 128 bits) the lower 64 bits.
TSS Descriptor (long mode - 128 bits) the upper 64 bits.
|
inlinestatic |
Definition at line 125 of file float.hh.
References FLOATREG_FPR_BASE, and index.
Referenced by FLOATREG_STACK(), updateKvmStateFPUCommon(), and updateThreadContextFPUCommon().
|
inlinestatic |
Definition at line 143 of file float.hh.
References FLOATREG_MICROFP_BASE, and index.
|
inlinestatic |
Definition at line 119 of file float.hh.
References FLOATREG_MMX_BASE, and index.
Referenced by Trace::X86NativeTrace::ThreadState::update().
|
inlinestatic |
Definition at line 149 of file float.hh.
References FLOATREG_FPR().
Referenced by X86ISA::ISA::flattenFloatIndex().
|
inlinestatic |
Definition at line 137 of file float.hh.
References FLOATREG_XMM_BASE.
Referenced by updateKvmStateFPUCommon(), and updateThreadContextFPUCommon().
|
inlinestatic |
Definition at line 131 of file float.hh.
References FLOATREG_XMM_BASE, and index.
Referenced by updateKvmStateFPUCommon(), and updateThreadContextFPUCommon().
uint16_t X86ISA::genX87Tags | ( | uint16_t | ftw, |
uint8_t | top, | ||
int8_t | spm | ||
) |
Generate and updated x87 tag register after a push/pop operation.
ftw | Current value of the FTW register. |
top | Current x87 TOP value. |
spm | Stack displacement. |
Definition at line 335 of file utility.cc.
References ArmISA::i.
uint64_t X86ISA::getArgument | ( | ThreadContext * | tc, |
int & | number, | ||
uint16_t | size, | ||
bool | fp | ||
) |
Definition at line 53 of file utility.cc.
References ArmISA::INTREG_R8, ArmISA::INTREG_R9, panic, and ThreadContext::readIntReg().
|
inline |
Extract the bit string representing a double value.
Definition at line 134 of file utility.hh.
|
inline |
Definition at line 96 of file utility.hh.
|
static |
Definition at line 54 of file memhelpers.hh.
References Packet::get(), panic, and Trace::InstRecord::setData().
void X86ISA::getMem | ( | PacketPtr | pkt, |
std::array< uint64_t, N > & | mem, | ||
unsigned | dataSize, | ||
Trace::InstRecord * | traceData | ||
) |
Definition at line 80 of file memhelpers.hh.
References Packet::getConstPtr(), BigEndianGuest::gtoh(), ArmISA::i, and Trace::InstRecord::setData().
uint64_t X86ISA::getRFlags | ( | ThreadContext * | tc | ) |
Reconstruct the rflags register from the internal gem5 register state.
gem5 stores rflags in several different registers to avoid pipeline dependencies. In order to get the true rflags value, we can't simply read the value of MISCREG_RFLAGS. Instead, we need to read out various state from microcode registers and merge that with MISCREG_RFLAGS.
tc | Thread context to read rflags from. |
Definition at line 257 of file utility.cc.
References CCREG_CFOF, CCREG_DF, CCREG_ZAPS, MISCREG_RFLAGS, ThreadContext::readCCReg(), and ThreadContext::readMiscRegNoEffect().
Referenced by X86KvmCPU::updateKvmStateRegs().
|
inline |
Definition at line 58 of file mmapped_ipr.hh.
References data, Packet::getAddr(), Packet::getSize(), GenericISA::handleGenericIprRead(), BigEndianGuest::htog(), index, GenericISA::isGenericIprAccess(), mask, offset, ThreadContext::readMiscReg(), and Packet::setData().
|
inline |
Definition at line 75 of file mmapped_ipr.hh.
References data, Packet::getAddr(), Packet::getSize(), BigEndianGuest::gtoh(), GenericISA::handleGenericIprWrite(), BigEndianGuest::htog(), index, GenericISA::isGenericIprAccess(), mask, offset, ThreadContext::readMiscRegNoEffect(), ThreadContext::setMiscReg(), and Packet::writeData().
|
inline |
Definition at line 53 of file locked_mem.hh.
|
inline |
Definition at line 47 of file locked_mem.hh.
|
inline |
Definition at line 66 of file locked_mem.hh.
|
inline |
Definition at line 59 of file locked_mem.hh.
void X86ISA::initCPU | ( | ThreadContext * | tc, |
int | cpuId | ||
) |
Definition at line 74 of file utility.cc.
References APIC_ID, APIC_VERSION, ThreadContext::getCpuPtr(), ArmISA::i, index, Stats::init, INTREG_IMPLICIT(), INTREG_MICRO(), X86ISA::InitInterrupt::invoke(), MISCREG_APIC_BASE, MISCREG_CR0, MISCREG_CR8, MISCREG_CSTAR, MISCREG_DEBUG_CTL_MSR, MISCREG_DEF_TYPE, MISCREG_IGNNE, MISCREG_IORR_BASE0, MISCREG_IORR_BASE1, MISCREG_IORR_MASK0, MISCREG_IORR_MASK1, MISCREG_KERNEL_GS_BASE, MISCREG_LAST_BRANCH_FROM_IP, MISCREG_LAST_BRANCH_TO_IP, MISCREG_LAST_EXCEPTION_FROM_IP, MISCREG_LAST_EXCEPTION_TO_IP, MISCREG_LSTAR, MISCREG_MC_ADDR(), MISCREG_MC_CTL(), MISCREG_MC_MISC(), MISCREG_MC_STATUS(), MISCREG_MCG_CAP, MISCREG_MCG_CTL, MISCREG_MCG_STATUS, MISCREG_MTRR_FIX_16K_80000, MISCREG_MTRR_FIX_16K_A0000, MISCREG_MTRR_FIX_4K_C0000, MISCREG_MTRR_FIX_4K_C8000, MISCREG_MTRR_FIX_4K_D0000, MISCREG_MTRR_FIX_4K_D8000, MISCREG_MTRR_FIX_4K_E0000, MISCREG_MTRR_FIX_4K_E8000, MISCREG_MTRR_FIX_4K_F0000, MISCREG_MTRR_FIX_4K_F8000, MISCREG_MTRR_FIX_64K_00000, MISCREG_MTRR_PHYS_BASE(), MISCREG_MTRR_PHYS_MASK(), MISCREG_MTRRCAP, MISCREG_PAT, MISCREG_PERF_EVT_CTR(), MISCREG_PERF_EVT_SEL(), MISCREG_SF_MASK, MISCREG_SMM_CTL, MISCREG_STAR, MISCREG_SYSCFG, MISCREG_SYSENTER_CS, MISCREG_SYSENTER_EIP, MISCREG_SYSENTER_ESP, MISCREG_TOP_MEM, MISCREG_TOP_MEM2, MISCREG_TSC, MISCREG_TSC_AUX, MISCREG_VM_CR, MISCREG_VM_HSAVE_PA, NumImplicitIntRegs, NumMicroIntRegs, GenericISA::UPCState< MachInst >::nupc(), pc, ThreadContext::pcState(), ThreadContext::setIntReg(), ThreadContext::setMiscReg(), X86ISA::Interrupts::setRegNoEffect(), and GenericISA::UPCState< MachInst >::upc().
Fault X86ISA::initiateMemRead | ( | XC * | xc, |
Trace::InstRecord * | traceData, | ||
Addr | addr, | ||
unsigned | dataSize, | ||
Request::Flags | flags | ||
) |
Initiate a read from memory in timing mode.
Definition at line 47 of file memhelpers.hh.
void X86ISA::installSegDesc | ( | ThreadContext * | tc, |
SegmentRegIndex | seg, | ||
SegDescriptor | desc, | ||
bool | longmode | ||
) |
Definition at line 61 of file system.cc.
References ArmISA::attr, base, MISCREG_SEG_ATTR(), MISCREG_SEG_BASE(), MISCREG_SEG_EFF_BASE(), MISCREG_SEG_LIMIT(), SEGMENT_REG_FS, SEGMENT_REG_GS, SEGMENT_REG_TSL, ThreadContext::setMiscReg(), and SYS_SEGMENT_REG_TR.
Referenced by X86System::initState(), and X86ISA::X86_64Process::initState().
|
inlinestatic |
|
inlinestatic |
Definition at line 162 of file int.hh.
References index, ArmISA::NUM_INTREGS, and NumMicroIntRegs.
Referenced by initCPU().
|
inlinestatic |
Definition at line 156 of file int.hh.
References index, and ArmISA::NUM_INTREGS.
Referenced by initCPU(), and X86ISA::X86FaultBase::invoke().
|
inlinestatic |
Definition at line 62 of file utility.hh.
References FullSystem, MISCREG_M5_REG, and ThreadContext::readMiscRegNoEffect().
|
inlinestatic |
Definition at line 403 of file misc.hh.
References MISCREG_CR0, MISCREG_CR1, MISCREG_CR15, MISCREG_CR4, MISCREG_CR8, and NUM_MISCREGS.
Referenced by copyMiscRegs(), X86ISA::ISA::readMiscRegNoEffect(), and X86ISA::ISA::setMiscRegNoEffect().
double X86ISA::loadFloat80 | ( | const void * | mem | ) |
Load an 80-bit float from memory and convert it to double.
mem | Pointer to an 80-bit float. |
Definition at line 355 of file utility.cc.
Referenced by dumpFpuCommon(), and updateThreadContextFPUCommon().
void X86ISA::m5PageFault | ( | ThreadContext * | tc | ) |
Definition at line 65 of file pseudo_inst.cc.
References DPRINTF, Process::fixupStackFault(), ThreadContext::getMemProxy(), ThreadContext::getProcessPtr(), MipsISA::is, ISTVirtAddr, MISCREG_CR2, p, PageBytes, panic, SETranslatingPortProxy::readBlob(), ThreadContext::readMiscReg(), and size().
Referenced by PseudoInst::pseudoInst().
void X86ISA::m5Syscall | ( | ThreadContext * | tc | ) |
Definition at line 48 of file pseudo_inst.cc.
References DPRINTF, MISCREG_RFLAGS, panic, ThreadContext::readIntReg(), ThreadContext::readMiscReg(), ThreadContext::setMiscReg(), and ThreadContext::syscall().
Referenced by PseudoInst::pseudoInst().
|
inlinestatic |
Definition at line 412 of file misc.hh.
References index, MISCREG_CR_BASE, and NumCRegs.
|
inlinestatic |
Definition at line 419 of file misc.hh.
References index, MISCREG_DR_BASE, and NumDRegs.
|
inlinestatic |
Definition at line 490 of file misc.hh.
References index, MISCREG_IORR_BASE_BASE, and MISCREG_IORR_BASE_END.
|
inlinestatic |
Definition at line 498 of file misc.hh.
References index, MISCREG_IORR_MASK_BASE, and MISCREG_IORR_MASK_END.
|
inlinestatic |
Definition at line 458 of file misc.hh.
References index, MISCREG_MC_ADDR_BASE, and MISCREG_MC_ADDR_END.
Referenced by initCPU().
|
inlinestatic |
Definition at line 442 of file misc.hh.
References index, MISCREG_MC_CTL_BASE, and MISCREG_MC_CTL_END.
Referenced by initCPU().
|
inlinestatic |
Definition at line 466 of file misc.hh.
References index, MISCREG_MC_MISC_BASE, and MISCREG_MC_MISC_END.
Referenced by initCPU().
|
inlinestatic |
Definition at line 450 of file misc.hh.
References index, MISCREG_MC_STATUS_BASE, and MISCREG_MC_STATUS_END.
Referenced by initCPU().
|
inlinestatic |
Definition at line 426 of file misc.hh.
References index, MISCREG_MTRR_PHYS_BASE_BASE, and MISCREG_MTRR_PHYS_BASE_END.
Referenced by initCPU().
|
inlinestatic |
Definition at line 434 of file misc.hh.
References index, MISCREG_MTRR_PHYS_MASK_BASE, and MISCREG_MTRR_PHYS_MASK_END.
Referenced by initCPU().
|
inlinestatic |
Definition at line 482 of file misc.hh.
References index, MISCREG_PERF_EVT_CTR_BASE, and MISCREG_PERF_EVT_CTR_END.
Referenced by initCPU().
|
inlinestatic |
Definition at line 474 of file misc.hh.
References index, MISCREG_PERF_EVT_SEL_BASE, and MISCREG_PERF_EVT_SEL_END.
Referenced by initCPU().
|
inlinestatic |
Definition at line 534 of file misc.hh.
References index, MISCREG_SEG_ATTR_BASE, and NUM_SEGMENTREGS.
Referenced by X86ISA::X86_64Process::initState(), X86ISA::I386Process::initState(), installSegDesc(), X86ISA::InitInterrupt::invoke(), setContextSegment(), setKvmSegmentReg(), X86ISA::TLB::translate(), and X86ISA::GpuTLB::translate().
|
inlinestatic |
Definition at line 513 of file misc.hh.
References index, MISCREG_SEG_BASE_BASE, and NUM_SEGMENTREGS.
Referenced by X86ISA::X86_64Process::initState(), X86ISA::I386Process::initState(), installSegDesc(), X86ISA::InitInterrupt::invoke(), setContextSegment(), setKvmDTableReg(), setKvmSegmentReg(), X86ISA::TLB::translate(), and X86ISA::GpuTLB::translate().
|
inlinestatic |
Definition at line 520 of file misc.hh.
References index, MISCREG_SEG_EFF_BASE_BASE, and NUM_SEGMENTREGS.
Referenced by X86ISA::X86_64Process::initState(), X86ISA::I386Process::initState(), installSegDesc(), X86ISA::InitInterrupt::invoke(), and X86ISA::ISA::setMiscReg().
|
inlinestatic |
Definition at line 527 of file misc.hh.
References index, MISCREG_SEG_LIMIT_BASE, and NUM_SEGMENTREGS.
Referenced by X86ISA::I386Process::initState(), installSegDesc(), X86ISA::InitInterrupt::invoke(), setContextSegment(), setKvmDTableReg(), setKvmSegmentReg(), X86ISA::TLB::translate(), and X86ISA::GpuTLB::translate().
|
inlinestatic |
Definition at line 506 of file misc.hh.
References index, MISCREG_SEG_SEL_BASE, and NUM_SEGMENTREGS.
Referenced by X86ISA::I386Process::initState(), X86ISA::InitInterrupt::invoke(), setContextSegment(), setKvmSegmentReg(), X86ISA::TLB::translate(), and X86ISA::GpuTLB::translate().
bool X86ISA::msrAddrToIndex | ( | MiscRegIndex & | regNum, |
Addr | addr | ||
) |
Find and return the misc reg corresponding to an MSR address.
Look for an MSR (addr) in msrMap and return the corresponding misc reg in regNum. The value of regNum is undefined if the MSR was not found.
regNum | misc reg index (out). |
addr | MSR address |
Definition at line 149 of file msr.cc.
References msrMap.
Referenced by X86ISA::TLB::translateInt().
const MsrMap X86ISA::msrMap | ( | msrMapData | , |
msrMapData+ | msrMapSize | ||
) |
|
inlinestatic |
Definition at line 158 of file types.hh.
Referenced by operator<<().
|
inlinestatic |
Definition at line 235 of file types.hh.
References ccprintf(), X86ISA::ExtMachInst::displacement, X86ISA::ExtMachInst::dispSize, X86ISA::ExtMachInst::immediate, X86ISA::ExtMachInst::legacy, X86ISA::ExtMachInst::modRM, X86ISA::ExtMachInst::op, X86ISA::ExtMachInst::opcode, opcodeTypeToStr(), os, X86ISA::ExtMachInst::rex, X86ISA::ExtMachInst::sib, X86ISA::ExtMachInst::type, and X86ISA::ExtMachInst::vex.
|
inlinestatic |
Definition at line 252 of file types.hh.
References X86ISA::ExtMachInst::addrSize, X86ISA::ExtMachInst::displacement, X86ISA::ExtMachInst::dispSize, X86ISA::ExtMachInst::immediate, X86ISA::ExtMachInst::legacy, X86ISA::ExtMachInst::mode, X86ISA::ExtMachInst::modRM, X86ISA::ExtMachInst::op, X86ISA::ExtMachInst::opcode, X86ISA::ExtMachInst::opSize, X86ISA::ExtMachInst::rex, X86ISA::ExtMachInst::sib, X86ISA::ExtMachInst::stackSize, X86ISA::ExtMachInst::type, and X86ISA::ExtMachInst::vex.
Referenced by ArmISA::EndBitUnion().
Addr X86ISA::pageStart | ( | ) |
Definition at line 140 of file pagetable.hh.
Definition at line 80 of file intmessage.hh.
References Packet::allocate(), Request::intMasterId, MemCmd::MessageReq, Request::UNCACHEABLE, and x86InterruptAddress().
Referenced by buildIntRequest().
Fault X86ISA::readMemAtomic | ( | XC * | xc, |
Trace::InstRecord * | traceData, | ||
Addr | addr, | ||
uint64_t & | mem, | ||
unsigned | dataSize, | ||
Request::Flags | flags | ||
) |
Definition at line 102 of file memhelpers.hh.
References BigEndianGuest::gtoh(), NoFault, and Trace::InstRecord::setData().
Fault X86ISA::readMemAtomic | ( | XC * | xc, |
Trace::InstRecord * | traceData, | ||
Addr | addr, | ||
std::array< uint64_t, N > & | mem, | ||
unsigned | dataSize, | ||
unsigned | flags | ||
) |
Definition at line 120 of file memhelpers.hh.
References BigEndianGuest::gtoh(), ArmISA::i, NoFault, and Trace::InstRecord::setData().
|
override |
Referenced by ArmISA::EndBitUnion(), MinorCPU::serialize(), and Serializable::serializeSection().
void X86ISA::setRFlags | ( | ThreadContext * | tc, |
uint64_t | val | ||
) |
Set update the rflags register and internal gem5 state.
tc | Thread context to update |
val | New rflags value to store in TC |
Definition at line 273 of file utility.cc.
References ccFlagMask, CCREG_CFOF, CCREG_DF, CCREG_ECF, CCREG_EZF, CCREG_ZAPS, cfofMask, DFBit, MISCREG_RFLAGS, ThreadContext::setCCReg(), and ThreadContext::setMiscReg().
Referenced by X86KvmCPU::updateThreadContextRegs().
int X86ISA::size | ( | ) |
Definition at line 146 of file pagetable.hh.
Referenced by MemChecker::abortWrite(), FlashDevice::accessDevice(), FUPool::FUIdxQueue::addFU(), StorageSpace::addSymbol(), CacheRecorder::aggregateRecords(), Arguments::Data::alloc(), KvmVM::allocMemSlot(), CopyEngine::CopyEngineChannel::anQ(), RiscvProcess::argsInit(), X86ISA::X86Process::argsInit(), arrayParamIn(), arrayParamOut(), BlockBloomFilter::BlockBloomFilter(), brigNext(), BrigObject::BrigObject(), DefaultFetch< Impl >::buildInst(), BulkBloomFilter::BulkBloomFilter(), RubyTester::checkForDeadlock(), Packet::checkFunctional(), MuxingKvmGic::clearBankedDistRange(), MuxingKvmGic::clearDistRange(), TsunamiCChip::clearDRIR(), MaltaCChip::clearIntr(), KvmVM::coalesceMMIO(), MemChecker::completeRead(), MemChecker::completeWrite(), FunctionProfile::consume(), MuxingKvmGic::copyBankedDistRange(), MuxingKvmGic::copyDistRange(), MuxingKvmGic::copyGicState(), PacketFifo::copyout(), Linux::ThreadInfo::curTaskName(), X86ISA::Decoder::decode(), Shader::doFunctionalAccess(), MemDepUnit< MemDepPred, Impl >::dumpLists(), InstructionQueue< Impl >::dumpLists(), IdeController::EndBitUnion(), ArmISA::EndBitUnion(), LSQUnit< Impl >::executeStore(), Topology::extend_shortest_path(), LTAGE::F(), DefaultFetch< Impl >::fetch(), IGbE::DescCache< T >::fetchComplete(), ArmISA::TableWalker::fetchDescriptor(), IGbE::DescCache< T >::fetchDescriptors(), DefaultFetch< Impl >::finishTranslation(), flit::flit(), getcwdFunc(), FUPool::FUIdxQueue::getFU(), System::getMasterId(), BaseArmKvmCPU::getRegList(), BrigObject::getSectionOffset(), X86ISA::SMBios::SMBiosStructure::getStringLength(), H3BloomFilter::H3BloomFilter(), AbstractController::init(), FetchUnit::initiateFetch(), BaseDynInst< Impl >::initiateMemRead(), LinuxArmSystem::initState(), SubBlock::internalMergeFrom(), SubBlock::internalMergeTo(), VIPERCoalescer::invL1(), VIPERCoalescer::invwbL1(), ClDriver::ioctl(), m5PageFault(), main(), UFSHostDevice::manageWriteTransfer(), PortProxy::memsetBlob(), SimplePoolManager::minAllocatedElements(), Minor::LSQ::StoreBuffer::minorTrace(), mmapImpl(), network_message_to_size(), VirtIOConsole::TermTransQueue::onNotifyDescriptor(), PerfectSwitch::operateVnet(), Stats::DistPrint::operator()(), Terminal::out(), IGbE::TxDescCache::pktComplete(), TsunamiCChip::postDRIR(), MaltaCChip::postIntr(), TsunamiCChip::postRTC(), BPredUnit::predict(), Stats::DataWrapVec< VectorStandardDeviation, VectorDistInfoProxy >::prepare(), Sinic::Device::prepareIO(), DataBlock::print(), print_backtrace(), Net::IpPtr::pstart(), Net::Ip6Ptr::pstart(), Net::TcpPtr::pstart(), Net::UdpPtr::pstart(), Minor::LSQ::pushRequest(), AbstractController::queueMemoryWritePartial(), RangeAddrMapper::RangeAddrMapper(), PciVirtIO::read(), NoMaliGpu::read(), VirtIOBlock::read(), ProtoInputStream::read(), CopyEngine::read(), GenericPciHost::read(), GenericTimerMem::read(), PerfKvmCounter::read(), TraceCPU::ElasticDataGen::InputStream::read(), VirtIODeviceBase::readConfigBlob(), AtomicSimpleCPU::readMem(), CheckerCPU::readMem(), StubSlavePort::recvAtomic(), MemCheckerMonitor::recvFunctional(), MemCheckerMonitor::recvFunctionalSnoop(), MemCheckerMonitor::recvTimingReq(), MemCheckerMonitor::recvTimingResp(), Sinic::regValid(), LdsState::releaseSpace(), DefaultRename< Impl >::removeFromHistory(), DefaultRename< Impl >::renameDestRegs(), UFSHostDevice::requestHandler(), LdsState::reserveSpace(), Sinic::Device::reset(), Stats::DataWrapVec< VectorStandardDeviation, VectorDistInfoProxy >::reset(), MemChecker::reset(), AbstractController::resetStats(), Sinic::Device::rxKick(), UFSHostDevice::SCSIResume(), ComputeUnit::sendRequest(), AlphaISA::TLB::serialize(), Network::setFromNetQueue(), Request::setPhys(), Set::setSize(), Network::setToNetQueue(), ArmISA::Stage2MMU::Stage2Translation::setVirt(), Request::setVirt(), DefaultDecode< Impl >::skidInsert(), DefaultIEW< Impl >::skidInsert(), DefaultRename< Impl >::skidInsert(), NetDest::smallestElement(), BPredUnit::squash(), IdeDisk::startCommand(), MemChecker::startRead(), MemChecker::startWrite(), SubBlock::SubBlock(), FullO3CPU< Impl >::totalInsts(), FullO3CPU< Impl >::totalOps(), AlphaISA::StackTrace::trace(), UFSHostDevice::transferDone(), TrafficGen::transition(), IGbE::txStateMachine(), SymbolTable::unserialize(), AlphaISA::TLB::unserialize(), X86ISA::Decoder::updateNPC(), TLBCoalescer::updatePhysAddresses(), Stats::Text::visit(), ArmISA::VldMultOp::VldMultOp(), ArmISA::VldSingleOp::VldSingleOp(), ArmISA::VstMultOp::VstMultOp(), ArmISA::VstSingleOp::VstSingleOp(), VIPERCoalescer::wbL1(), PciVirtIO::write(), NoMaliGpu::write(), VirtIOBlock::write(), CopyEngine::write(), GenericTimerMem::write(), LSQUnit< Impl >::write(), LSQUnit< Impl >::writebackStores(), VirtIODeviceBase::writeConfigBlob(), UFSHostDevice::writeDevice(), TraceCPU::ElasticDataGen::GraphNode::writeElementAsTrace(), AtomicSimpleCPU::writeMem(), TimingSimpleCPU::writeMem(), BaseDynInst< Impl >::writeMem(), CheckerCPU::writeMem(), X86ISA::SMBios::BiosInformation::writeOut(), X86ISA::SMBios::SMBiosTable::writeOut(), X86ISA::E820Table::writeTo(), and CheckTable::~CheckTable().
void X86ISA::skipFunction | ( | ThreadContext * | tc | ) |
Definition at line 251 of file utility.cc.
References panic.
void X86ISA::startupCPU | ( | ThreadContext * | tc, |
int | cpuId | ||
) |
Definition at line 201 of file utility.cc.
References ThreadContext::activate(), FullSystem, and ThreadContext::suspend().
void X86ISA::storeFloat80 | ( | void * | mem, |
double | value | ||
) |
Convert and store a double as an 80-bit float.
mem | Pointer to destination for the 80-bit float. |
value | Double precision float to store. |
Definition at line 364 of file utility.cc.
Referenced by updateKvmStateFPUCommon().
uint64_t X86ISA::stringToRegister | ( | const char * | str | ) |
X86ISA::SubBitUnion | ( | type | , |
43 | , | ||
40 | |||
) |
Referenced by X86ISA::RemoteGDB::acc(), X86ISA::TLB::demapPage(), AlphaISA::TLB::flushAll(), X86ISA::TLB::insert(), X86ISA::TLB::lookup(), MultiLevelPageTable< ISAOps >::lookup(), MultiLevelPageTable< ISAOps >::map(), FuncPageTable::map(), X86ISA::GpuTLB::CpuSidePort::recvFunctional(), MultiLevelPageTable< ISAOps >::remap(), X86ISA::TLB::translate(), PageTableBase::translate(), X86ISA::GpuTLB::translationReturn(), X86ISA::TLB::unserialize(), and FuncPageTable::unserialize().
X86ISA::TlbEntry | ( | ) |
|
override |
Referenced by ArmISA::EndBitUnion(), MinorCPU::unserialize(), and Serializable::unserializeSection().
void X86ISA::updateVaddr | ( | Addr | new_vaddr | ) |
Definition at line 135 of file pagetable.hh.
Definition at line 55 of file vtophys.cc.
|
inline |
Definition at line 61 of file vtophys.cc.
References addr, DPRINTF, fatal, ThreadContext::getDTBPtr(), logBytes, ArmISA::mask, NoFault, panic, BaseTLB::Read, X86ISA::Walker::startFunctional(), try_translate(), and MipsISA::vaddr.
Fault X86ISA::writeMemAtomic | ( | XC * | xc, |
Trace::InstRecord * | traceData, | ||
uint64_t | mem, | ||
unsigned | dataSize, | ||
Addr | addr, | ||
Request::Flags | flags, | ||
uint64_t * | res | ||
) |
Definition at line 179 of file memhelpers.hh.
References BigEndianGuest::gtoh(), BigEndianGuest::htog(), NoFault, and Trace::InstRecord::setData().
Fault X86ISA::writeMemAtomic | ( | XC * | xc, |
Trace::InstRecord * | traceData, | ||
std::array< uint64_t, N > & | mem, | ||
unsigned | dataSize, | ||
Addr | addr, | ||
unsigned | flags, | ||
uint64_t * | res | ||
) |
Definition at line 197 of file memhelpers.hh.
References BigEndianGuest::gtoh(), BigEndianGuest::htog(), ArmISA::i, NoFault, and Trace::InstRecord::setData().
Fault X86ISA::writeMemTiming | ( | XC * | xc, |
Trace::InstRecord * | traceData, | ||
uint64_t | mem, | ||
unsigned | dataSize, | ||
Addr | addr, | ||
Request::Flags | flags, | ||
uint64_t * | res | ||
) |
Definition at line 144 of file memhelpers.hh.
References BigEndianGuest::htog(), and Trace::InstRecord::setData().
Fault X86ISA::writeMemTiming | ( | XC * | xc, |
Trace::InstRecord * | traceData, | ||
std::array< uint64_t, N > & | mem, | ||
unsigned | dataSize, | ||
Addr | addr, | ||
unsigned | flags, | ||
uint64_t * | res | ||
) |
Definition at line 157 of file memhelpers.hh.
References BigEndianGuest::htog(), ArmISA::i, and Trace::InstRecord::setData().
|
inlinestatic |
Definition at line 100 of file x86_traits.hh.
References PhysAddrAPICRangeSize, and PhysAddrPrefixInterrupts.
Referenced by X86ISA::I82094AA::getIntAddrRange(), X86ISA::Interrupts::getIntAddrRange(), prepIntRequest(), and X86ISA::Interrupts::recvMessage().
|
inlinestatic |
Definition at line 81 of file x86_traits.hh.
References PhysAddrPrefixIO.
Referenced by X86KvmCPU::handleKvmExitIO().
|
inlinestatic |
Definition at line 93 of file x86_traits.hh.
References addr, and PhysAddrPrefixLocalAPIC.
Referenced by X86ISA::TLB::finalizePhysical(), X86ISA::Interrupts::setCPU(), and X86ISA::GpuTLB::translate().
|
inlinestatic |
Definition at line 87 of file x86_traits.hh.
References addr, and PhysAddrPrefixPciConfig.
Referenced by X86KvmCPU::handleKvmExitIO().
void X86ISA::zeroRegisters | ( | TC * | tc | ) |
Function to insure ISA semantics about 0 registers.
tc | The thread context. |
Bitfield< 40 > X86ISA::a |
Definition at line 90 of file pagetable.hh.
Referenced by AlphaISA::VAddr::operator=(), and PowerISA::VAddr::operator=().
Bitfield<18> X86ISA::ac |
Definition at line 562 of file misc.hh.
Referenced by LinuxArmSystem::initState().
Bitfield<3> X86ISA::addr |
Definition at line 81 of file types.hh.
Referenced by X86ISA::PageFault::describe(), X86ISA::PageTableOps::getOffsets(), X86ISA::PageFault::invoke(), X86ISA::ProcessInfo::ProcessInfo(), X86ISA::I8042::read(), X86ISA::TLB::setConfigAddress(), X86ISA::GpuTLB::setConfigAddress(), X86ISA::IntelMP::FloatingPointer::setTableAddr(), X86ISA::SMBios::SMBiosTable::setTableAddr(), X86ISA::Walker::WalkerState::setupWalk(), X86ISA::I8042::write(), x86LocalAPICAddress(), and x86PciConfigAddress().
const uint8_t X86ISA::AO = AddressSizeOverride |
Definition at line 53 of file decoder_tables.cc.
Bitfield< 5 > X86ISA::avl |
Definition at line 86 of file pagetable.hh.
Bitfield<1> X86ISA::b1 |
Definition at line 648 of file misc.hh.
Referenced by ArmISA::mul62x62().
const StaticInstPtr X86ISA::badMicroop |
Definition at line 51 of file badmicroop.cc.
Referenced by X86ISAInst::MicrocodeRom::fetchMicroop(), and X86ISA::MacroopBase::fetchMicroop().
Bitfield< 2, 0 > X86ISA::base |
Definition at line 85 of file pagetable.hh.
Referenced by dumpDmesgEntry(), IdeController::EndBitUnion(), ArmISA::SysDC64::generateDisassembly(), ArmISA::Swap::generateDisassembly(), ArmISA::RfeOp::generateDisassembly(), ArmISA::MemoryDImm64::generateDisassembly(), ArmISA::MemoryDImmEx64::generateDisassembly(), ArmISA::MemoryEx64::generateDisassembly(), ArmISA::ArmFault::getVector(), X86System::initState(), installSegDesc(), Stats::VectorPrint::operator()(), Stats::DistPrint::operator()(), Stats::SparseHistPrint::operator()(), ArmISA::Memory::printInst(), ArmISA::ArmStaticInst::shift_rm_rs(), ArmISA::ArmStaticInst::shiftReg64(), ArmISA::Memory64::startDisassembly(), MipsISA::ProcessInfo::task(), X86ISA::ProcessInfo::task(), AlphaISA::ProcessInfo::task(), ArmISA::ProcessInfo::task(), MemTest::tick(), X86ISA::TLB::translate(), X86ISA::GpuTLB::translate(), and X86ISA::SMBios::SMBiosTable::writeOut().
Bitfield< 42 > X86ISA::c |
Definition at line 888 of file misc.hh.
Referenced by X86ISA::PS2Device::unserialize().
Definition at line 68 of file misc.hh.
Referenced by setRFlags().
Definition at line 67 of file misc.hh.
Referenced by setRFlags().
Bitfield< 36, 32 > X86ISA::count |
Definition at line 704 of file misc.hh.
Referenced by FlashDevice::accessDevice(), DefaultCommit< Impl >::commitInsts(), InstructionQueue< Impl >::completeMemInst(), countBoolVec(), InstructionQueue< Impl >::doSquash(), IGbE::drain(), FunctionProfile::dump(), UFSHostDevice::finalUTP(), BlockBloomFilter::getTotalCount(), BulkBloomFilter::getTotalCount(), LSB_CountingBloomFilter::getTotalCount(), MultiGrainBloomFilter::getTotalCount(), H3BloomFilter::getTotalCount(), NonCountingBloomFilter::getTotalCount(), MultiBitSelBloomFilter::getTotalCount(), X86KvmCPU::handleKvmExitIO(), FlashDevice::initializeFlash(), InstructionQueue< Impl >::insert(), InstructionQueue< Impl >::insertNonSpec(), ElfObject::loadSomeSymbols(), UFSHostDevice::manageReadTransfer(), UFSHostDevice::manageWriteTransfer(), System::markWorkItem(), InstructionQueue< Impl >::numFreeEntries(), MipsISA::Interrupts::onCpuTimerInterrupt(), StackDistCalc::printStack(), SimpleDisk::read(), Intel8254Timer::Counter::read(), UFSHostDevice::UFSSCSIDevice::readFlash(), FlashDevice::remap(), UFSHostDevice::requestHandler(), InstructionQueue< Impl >::resetState(), InstructionQueue< Impl >::scheduleReadyInsts(), UFSHostDevice::UFSSCSIDevice::SCSICMDHandle(), UFSHostDevice::SCSIResume(), FlashDevice::serialize(), FuncPageTable::serialize(), Sinic::Device::serialize(), ActivityRecorder::setActivityCount(), UFSHostDevice::UFSSCSIDevice::statusCheck(), UFSHostDevice::UFSHostDevice(), FlashDevice::unserialize(), FuncPageTable::unserialize(), ActivityRecorder::validate(), Checker< Impl >::verify(), FutexMap::wakeup(), UFSHostDevice::UFSSCSIDevice::writeFlash(), and writevFunc().
const uint8_t X86ISA::CS = CSOverride |
Definition at line 45 of file decoder_tables.cc.
const bool X86ISA::CurThreadInfoImplemented = false |
Definition at line 69 of file isa_traits.hh.
const int X86ISA::CurThreadInfoReg = -1 |
Definition at line 70 of file isa_traits.hh.
Bitfield< 54 > X86ISA::d |
Definition at line 89 of file pagetable.hh.
Bitfield<3> X86ISA::de |
Definition at line 636 of file misc.hh.
Referenced by dumpDmesgEntry(), and OutputDirectory::remove().
Bitfield< 10, 8 > X86ISA::deliveryMode |
Definition at line 46 of file intmessage.hh.
X86ISA::destination |
Definition at line 44 of file intmessage.hh.
Referenced by GarnetSyntheticTraffic::generatePkt(), UFSHostDevice::readDevice(), and UFSHostDevice::transferDone().
Bitfield< 11 > X86ISA::destMode |
Definition at line 47 of file intmessage.hh.
const uint8_t X86ISA::DS = DSOverride |
Definition at line 46 of file decoder_tables.cc.
Bitfield<31,0> X86ISA::E |
Definition at line 53 of file int.hh.
Referenced by ArmISA::ArmStaticInst::cSwap().
Bitfield<2> X86ISA::em |
Definition at line 603 of file misc.hh.
Referenced by Consumer::scheduleEvent(), and Consumer::scheduleEventAbsolute().
Bitfield<11> X86ISA::enable |
Definition at line 1004 of file misc.hh.
Referenced by ArmISA::PMU::updateAllCounters().
const uint8_t X86ISA::ES = ESOverride |
Definition at line 47 of file decoder_tables.cc.
Bitfield<3> X86ISA::exit |
Definition at line 849 of file misc.hh.
Referenced by RoutingUnit::lookupRoutingTable(), main(), Sinic::Device::rxKick(), NSGigE::rxKick(), ArmISA::ArmStaticInst::shift_carry_imm(), ArmISA::ArmStaticInst::shift_carry_rs(), ArmISA::ArmStaticInst::shift_rm_imm(), ArmISA::ArmStaticInst::shift_rm_rs(), ArmISA::ArmStaticInst::shiftReg64(), Sinic::Device::txKick(), NSGigE::txKick(), and usage().
Bitfield<14> X86ISA::expandDown |
Definition at line 949 of file misc.hh.
Referenced by X86ISA::TLB::translate(), and X86ISA::GpuTLB::translate().
const int X86ISA::FlagShift = 4 |
Definition at line 52 of file ldstflags.hh.
Referenced by Sequencer::makeRequest(), GPUCoalescer::makeRequest(), X86ISA::GpuTLB::pagingProtectionChecks(), X86ISA::TLB::translate(), and X86ISA::GpuTLB::translate().
const int X86ISA::FramePointerReg = INTREG_RBP |
Definition at line 86 of file registers.hh.
const uint8_t X86ISA::FS = FSOverride |
Definition at line 48 of file decoder_tables.cc.
Bitfield< 55 > X86ISA::g |
Definition at line 87 of file pagetable.hh.
const uint64_t X86ISA::GDTPhysAddr = 0x61000 |
Definition at line 69 of file system.hh.
Referenced by X86ISA::X86_64Process::initState().
const uint64_t X86ISA::GDTVirtAddr = 0xffff800000001000 |
Definition at line 68 of file system.hh.
Referenced by X86ISA::X86_64Process::initState().
bool X86ISA::global |
Definition at line 120 of file pagetable.hh.
Referenced by X86ISA::TLB::flushNonGlobal(), Stats::initSimStats(), and ArmISA::TLB::insert().
const uint8_t X86ISA::GS = GSOverride |
Definition at line 49 of file decoder_tables.cc.
Bitfield<15,8> X86ISA::H |
Definition at line 57 of file int.hh.
Referenced by SparcISA::SparcFault< T >::vals().
const bool X86ISA::HasUnalignedMemAcc = true |
Definition at line 67 of file isa_traits.hh.
const uint64_t X86ISA::IDTPhysAddr = 0x62000 |
Definition at line 71 of file system.hh.
Referenced by X86ISA::X86_64Process::initState().
const uint64_t X86ISA::IDTVirtAddr = 0xffff800000002000 |
Definition at line 70 of file system.hh.
Referenced by X86ISA::X86_64Process::initState().
Bitfield<5,3> X86ISA::index |
Definition at line 95 of file types.hh.
Referenced by APIC_IN_SERVICE(), APIC_INTERRUPT_REQUEST(), APIC_TRIGGER_MODE(), FLOATREG_FPR(), FLOATREG_MICROFP(), FLOATREG_MMX(), FLOATREG_XMM_LOW(), handleIprRead(), handleIprWrite(), initCPU(), INTREG_FOLDED(), INTREG_IMPLICIT(), INTREG_MICRO(), X86ISA::InitInterrupt::invoke(), MISCREG_CR(), MISCREG_DR(), MISCREG_IORR_BASE(), MISCREG_IORR_MASK(), MISCREG_MC_ADDR(), MISCREG_MC_CTL(), MISCREG_MC_MISC(), MISCREG_MC_STATUS(), MISCREG_MTRR_PHYS_BASE(), MISCREG_MTRR_PHYS_MASK(), MISCREG_PERF_EVT_CTR(), MISCREG_PERF_EVT_SEL(), MISCREG_SEG_ATTR(), MISCREG_SEG_BASE(), MISCREG_SEG_EFF_BASE(), MISCREG_SEG_LIMIT(), MISCREG_SEG_SEL(), X86ISA::I82094AA::readReg(), and X86ISA::I82094AA::writeReg().
Definition at line 68 of file x86_traits.hh.
Referenced by X86ISA::TLB::translateInt(), and X86ISA::GpuTLB::translateInt().
Definition at line 70 of file x86_traits.hh.
Referenced by X86ISA::TLB::translateInt(), and X86ISA::GpuTLB::translateInt().
Definition at line 67 of file x86_traits.hh.
Referenced by X86ISA::TLB::translateInt(), and X86ISA::GpuTLB::translateInt().
Definition at line 69 of file x86_traits.hh.
Referenced by X86ISA::TLB::translateInt(), and X86ISA::GpuTLB::translateInt().
|
static |
Definition at line 153 of file int.hh.
Referenced by X86ISA::ISA::flattenIntIndex(), X86ISA::X86StaticInst::merge(), X86ISA::X86StaticInst::pick(), X86ISA::X86StaticInst::printReg(), and X86ISA::X86StaticInst::signedPick().
Bitfield<23> X86ISA::inv |
Definition at line 809 of file misc.hh.
Referenced by BasePrefetcher::observeAccess().
const uint64_t X86ISA::ISTPhysAddr = 0x64000 |
Definition at line 75 of file system.hh.
Referenced by X86ISA::X86_64Process::initState().
const uint64_t X86ISA::ISTVirtAddr = 0xffff800000004000 |
Definition at line 74 of file system.hh.
Referenced by X86ISA::X86_64Process::initState(), and m5PageFault().
Bitfield<7, 0> X86ISA::L |
Definition at line 59 of file int.hh.
Referenced by ArmProcess32::ArmProcess32(), ArmProcess64::ArmProcess64(), ArmISA::TableWalker::doLongDescriptor(), KvmDevice::ioctl(), Kvm::ioctl(), PerfKvmCounter::ioctl(), KvmVM::ioctl(), BaseKvmCPU::ioctl(), MipsProcess::MipsProcess(), PowerProcess::PowerProcess(), and RiscvProcess::RiscvProcess().
Bitfield< 14 > X86ISA::level |
Definition at line 48 of file intmessage.hh.
Referenced by Trie< Key, Value >::Node::dump(), SparcISA::Interrupts::getInterrupt(), StackDistCalc::getSum(), SparcISA::Interrupts::InterruptLevel(), SparcISA::SparcFaultBase::invoke(), StackDistCalc::sanityCheckTree(), StackDistCalc::updateSum(), and StackDistCalc::updateSumsLeavesToRoot().
const uint8_t X86ISA::LO = Lock |
Definition at line 54 of file decoder_tables.cc.
Bitfield<5> X86ISA::lock |
Definition at line 79 of file types.hh.
Referenced by DistIface::Sync::abort(), doSimLoop(), DrainManager::drainableCount(), DistIface::SyncNode::progress(), DistIface::SyncSwitch::progress(), DrainManager::registerDrainable(), DistIface::SyncNode::requestCkpt(), DistIface::SyncNode::requestExit(), DistIface::SyncNode::run(), DistIface::SyncSwitch::run(), EventQueue::serviceOne(), DrainManager::unregisterDrainable(), and Barrier::wait().
unsigned X86ISA::logBytes |
Definition at line 107 of file pagetable.hh.
Referenced by X86ISA::RemoteGDB::acc(), and vtophys().
X86ISA::longl1 |
Definition at line 67 of file pagetable.hh.
Bitfield<29, 21> X86ISA::longl2 |
Definition at line 68 of file pagetable.hh.
Bitfield<38, 30> X86ISA::longl3 |
Definition at line 69 of file pagetable.hh.
Bitfield<47, 39> X86ISA::longl4 |
Definition at line 70 of file pagetable.hh.
uint64_t X86ISA::lruSeq |
Definition at line 126 of file pagetable.hh.
static const int NumArgumentRegs32 M5_VAR_USED |
Definition at line 72 of file isa_traits.hh.
X86ISA::mask |
Definition at line 797 of file misc.hh.
Referenced by X86ISA::RemoteGDB::acc(), X86ISA::ISA::clear(), X86ISA::Decoder::decode(), decodeAddr(), X86ISA::Decoder::getImmediate(), X86ISA::I386Process::getSyscallArg(), handleIprRead(), handleIprWrite(), X86ISA::Interrupts::read(), X86ISA::Walker::WalkerState::stepWalk(), X86ISA::TLB::translate(), X86ISA::TLB::translateInt(), X86ISA::GpuTLB::translateInt(), X86ISA::I8259::write(), and X86ISA::Interrupts::write().
const uint64_t X86ISA::MMIORegionPhysAddr = 0xffff0000 |
Definition at line 79 of file system.hh.
Referenced by X86ISA::X86_64Process::initState().
const uint64_t X86ISA::MMIORegionVirtAddr = 0xffffc90000000000 |
Definition at line 78 of file system.hh.
Referenced by X86ISA::X86_64Process::initState().
X86ISA::mod |
Definition at line 88 of file types.hh.
Referenced by X86ISA::IntelMP::CompatAddrSpaceMod::writeOut().
Bitfield<1> X86ISA::mp |
Definition at line 604 of file misc.hh.
Referenced by GlobalMemPipeline::exec().
const MsrMap X86ISA::msrMap |
Map between MSR addresses and their corresponding misc registers.
Referenced by X86KvmCPU::getMsrIntersection(), msrAddrToIndex(), X86KvmCPU::updateKvmStateMSRs(), and X86KvmCPU::updateThreadContextMSRs().
|
static |
|
static |
|
static |
bool X86ISA::noExec |
Definition at line 124 of file pagetable.hh.
Bitfield<21, 12> X86ISA::norml1 |
Definition at line 76 of file pagetable.hh.
Bitfield<31, 22> X86ISA::norml2 |
Definition at line 77 of file pagetable.hh.
const int X86ISA::NumCCRegs = NUM_CCREGS |
Definition at line 59 of file registers.hh.
Referenced by copyRegs().
const int X86ISA::NumCRegs = 16 |
Definition at line 61 of file x86_traits.hh.
Referenced by MISCREG_CR().
const int X86ISA::NumDRegs = 8 |
Definition at line 62 of file x86_traits.hh.
Referenced by MISCREG_DR().
const int X86ISA::NumFloatRegs |
const int X86ISA::NumImplicitIntRegs = 6 |
Definition at line 49 of file x86_traits.hh.
Referenced by initCPU().
const int X86ISA::NumIntArchRegs = NUM_INTREGS |
Definition at line 57 of file registers.hh.
const int X86ISA::NumIntRegs = NumIntArchRegs + NumMicroIntRegs + NumImplicitIntRegs |
Definition at line 58 of file registers.hh.
Referenced by copyRegs().
const int X86ISA::NumMicroFpRegs = 8 |
Definition at line 59 of file x86_traits.hh.
Referenced by X86ISA::X86StaticInst::printReg().
const int X86ISA::NumMicroIntRegs = 16 |
Definition at line 47 of file x86_traits.hh.
Referenced by initCPU(), and INTREG_IMPLICIT().
const int X86ISA::NumMiscRegs = NUM_MISCREGS |
Definition at line 55 of file registers.hh.
Referenced by X86ISA::ISA::clear(), X86ISA::ISA::serialize(), and X86ISA::ISA::unserialize().
const int X86ISA::NumMMXRegs = 8 |
Definition at line 57 of file x86_traits.hh.
Referenced by X86ISA::X86StaticInst::printReg().
const int X86ISA::NumSegments = 6 |
Definition at line 64 of file x86_traits.hh.
const int X86ISA::NumSysSegments = 4 |
Definition at line 65 of file x86_traits.hh.
const int X86ISA::NumXMMRegs = 16 |
Definition at line 58 of file x86_traits.hh.
Referenced by X86ISA::X86StaticInst::printReg().
X86ISA::offset |
Definition at line 977 of file misc.hh.
Referenced by doCpuid(), X86ISA::Interrupts::findRegArrayMSB(), handleIprRead(), handleIprWrite(), X86ISA::I8237::read(), X86ISA::I8254::read(), X86ISA::I82094AA::read(), X86ISA::Interrupts::read(), X86ISA::Interrupts::recvMessage(), X86ISA::Interrupts::setReg(), X86ISA::TLB::translate(), X86ISA::GpuTLB::translate(), X86ISA::I8237::write(), X86ISA::I8254::write(), X86ISA::I82094AA::write(), X86ISA::Interrupts::write(), X86ISA::IntelMP::ConfigTable::writeOut(), X86ISA::SMBios::SMBiosTable::writeOut(), and X86ISA::SMBios::SMBiosStructure::writeOutStrings().
const uint8_t X86ISA::OO = OperandSizeOverride |
Definition at line 52 of file decoder_tables.cc.
Bitfield<4> X86ISA::op |
Definition at line 80 of file types.hh.
Referenced by HsailISA::Call::execPseudoInst(), findRegDataType(), ArmISA::fplibRoundInt(), futexFunc(), RegAddrOperand< RegOperandType >::init(), LabelOperand::init(), osf_getsysinfoFunc(), osf_setsysinfoFunc(), Stats::UnaryNode< Op >::result(), Stats::BinaryNode< Op >::result(), Stats::SumNode< Op >::result(), ArmISA::ArmStaticInst::satInt(), HsailISA::StInst< MemDataType, SrcDataType, AddrOperandType >::StInst(), sys_getsysinfoFunc(), sys_setsysinfoFunc(), Stats::BinaryNode< Op >::total(), Stats::SumNode< Op >::total(), and ArmISA::ArmStaticInst::uSatInt().
Bitfield<17> X86ISA::os |
Definition at line 804 of file misc.hh.
Referenced by O3ThreadState< Impl >::dumpFuncProfile(), SimpleThread::dumpFuncProfile(), IdeController::EndBitUnion(), OutputDirectory::findOrCreate(), Minor::LSQ::StoreBuffer::minorTrace(), OutputDirectory::open(), operator<<(), Minor::operator<<(), GenericISA::operator<<(), operator<<(), Linux::DmesgDumpEvent::process(), Linux::KernelPanicEvent::process(), and PseudoInst::writefile().
Bitfield< 1, 0 > X86ISA::p |
Definition at line 95 of file pagetable.hh.
Referenced by m5PageFault(), X86ISA::GpuTLB::CpuSidePort::recvFunctional(), X86ISA::TLB::translate(), X86ISA::GpuTLB::translate(), and X86ISA::GpuTLB::translationReturn().
Bitfield<20, 12> X86ISA::pael1 |
Definition at line 72 of file pagetable.hh.
Bitfield<29, 21> X86ISA::pael2 |
Definition at line 73 of file pagetable.hh.
Bitfield<31, 30> X86ISA::pael3 |
Definition at line 74 of file pagetable.hh.
Definition at line 64 of file isa_traits.hh.
Referenced by X86ISA::X86Process::argsInit(), X86ISA::TLB::finalizePhysical(), X86ISA::I386Process::I386Process(), X86ISA::X86_64Process::initState(), X86ISA::I386Process::initState(), m5PageFault(), X86ISA::GpuTLB::translate(), and X86ISA::X86_64Process::X86_64Process().
const Addr X86ISA::PageShift = 12 |
Definition at line 63 of file isa_traits.hh.
const std::vector<uint8_t> X86ISA::PageTableLayout = {9, 9, 9, 9} |
The size of each level of the page table expressed in base 2 logarithmic values.
Definition at line 158 of file pagetable.hh.
const uint64_t X86ISA::pageTablePhysAddr = 0x70000 |
Definition at line 81 of file system.hh.
Referenced by X86ISA::PageTableOps::getBasePtr(), and X86ISA::X86_64Process::initState().
bool X86ISA::patBit |
Definition at line 122 of file pagetable.hh.
Bitfield<19> X86ISA::pc |
Definition at line 806 of file misc.hh.
Referenced by X86ISA::StackTrace::decodePrologue(), initCPU(), X86ISA::X86FaultBase::invoke(), X86ISA::X86Trap::invoke(), X86ISA::InitInterrupt::invoke(), and X86ISA::I386Process::syscall().
Bitfield< 4 > X86ISA::pcd |
Definition at line 91 of file pagetable.hh.
Bitfield<0> X86ISA::pe |
Definition at line 605 of file misc.hh.
Referenced by EtherLink::Link::serialize().
Bitfield< 2 > X86ISA::pf |
Definition at line 551 of file misc.hh.
Referenced by Cache::recvTimingReq(), and ComputeUnit::DTLBPort::recvTimingResp().
const uint64_t X86ISA::PFHandlerPhysAddr = 0x65000 |
Definition at line 77 of file system.hh.
Referenced by X86ISA::X86_64Process::initState().
const uint64_t X86ISA::PFHandlerVirtAddr = 0xffff800000005000 |
Definition at line 76 of file system.hh.
Referenced by X86ISA::X86_64Process::initState().
X86ISA::physAddr |
Definition at line 832 of file misc.hh.
Referenced by TraceCPU::ElasticDataGen::GraphNode::writeElementAsTrace().
const Addr X86ISA::PhysAddrAPICRangeSize = 1 << 12 |
Definition at line 78 of file x86_traits.hh.
Referenced by X86ISA::I82094AA::getIntAddrRange(), X86ISA::Interrupts::getIntAddrRange(), and x86InterruptAddress().
Definition at line 75 of file x86_traits.hh.
Referenced by x86InterruptAddress().
Definition at line 72 of file x86_traits.hh.
Referenced by X86ISA::TLB::translateInt(), X86ISA::GpuTLB::translateInt(), and x86IOAddress().
Definition at line 74 of file x86_traits.hh.
Referenced by x86LocalAPICAddress().
Definition at line 73 of file x86_traits.hh.
Referenced by X86ISA::TLB::translateInt(), X86ISA::GpuTLB::translateInt(), and x86PciConfigAddress().
Bitfield< 0 > X86ISA::present |
Definition at line 945 of file misc.hh.
Referenced by X86ISA::Walker::WalkerState::pageFault(), X86ISA::PageFault::PageFault(), and PersistentTable::persistentRequestLock().
Bitfield<7> X86ISA::prot |
Definition at line 583 of file misc.hh.
Referenced by mmapImpl().
Bitfield<7> X86ISA::ps |
Definition at line 88 of file pagetable.hh.
Bitfield< 3 > X86ISA::pwt |
Definition at line 92 of file pagetable.hh.
Bitfield< 2 > X86ISA::r |
Definition at line 889 of file misc.hh.
Referenced by X86ISA::RemoteGDB::X86GdbRegCache::getRegs(), X86ISA::RemoteGDB::X86GdbRegCache::setRegs(), and X86ISA::RemoteGDB::AMD64GdbRegCache::setRegs().
const uint8_t X86ISA::RE = Rep |
Definition at line 55 of file decoder_tables.cc.
Bitfield<5,3> X86ISA::reg |
Definition at line 89 of file types.hh.
Referenced by RegAddrOperand< RegOperandType >::calcLane(), RegAddrOperand< RegOperandType >::calcVector(), Minor::Scoreboard::canInstIssue(), ArmISA::canReadAArch64SysReg(), ArmISA::canReadCoprocReg(), ArmISA::canWriteAArch64SysReg(), ArmISA::canWriteCoprocReg(), Minor::Scoreboard::clearInstDests(), HsailISA::decodeBr(), HsailISA::decodeBrn(), HsailISA::decodeCbr(), X86ISA::StackTrace::decodePrologue(), MipsISA::StackTrace::decodePrologue(), AlphaISA::StackTrace::decodePrologue(), RegAddrOperand< RegOperandType >::disassemble(), ArmV8KvmCPU::dump(), Minor::Scoreboard::execSeqNumToWaitFor(), Minor::Scoreboard::findIndex(), findRegDataType(), X86ISA::ISA::flattenCCIndex(), RiscvISA::ISA::flattenCCIndex(), PowerISA::ISA::flattenCCIndex(), AlphaISA::ISA::flattenCCIndex(), MipsISA::ISA::flattenCCIndex(), SparcISA::ISA::flattenCCIndex(), ArmISA::ISA::flattenCCIndex(), X86ISA::ISA::flattenFloatIndex(), RiscvISA::ISA::flattenFloatIndex(), PowerISA::ISA::flattenFloatIndex(), AlphaISA::ISA::flattenFloatIndex(), MipsISA::ISA::flattenFloatIndex(), SparcISA::ISA::flattenFloatIndex(), ArmISA::ISA::flattenFloatIndex(), RiscvISA::ISA::flattenIntIndex(), PowerISA::ISA::flattenIntIndex(), AlphaISA::ISA::flattenIntIndex(), MipsISA::ISA::flattenIntIndex(), ArmISA::ISA::flattenIntIndex(), SparcISA::ISA::flattenIntIndex(), X86ISA::ISA::flattenMiscIndex(), RiscvISA::ISA::flattenMiscIndex(), PowerISA::ISA::flattenMiscIndex(), AlphaISA::ISA::flattenMiscIndex(), MipsISA::ISA::flattenMiscIndex(), SparcISA::ISA::flattenMiscIndex(), ArmISA::ISA::flattenMiscIndex(), ArmISA::flattenMiscRegNsBanked(), Minor::flattenRegIndex(), KvmKernelGicV2::getGicReg(), ArmV8KvmCPU::getSysRegMap(), RegAddrOperand< RegOperandType >::init(), ArmISA::intRegInMode(), ArmISA::MacroMemOp::MacroMemOp(), ArmISA::makeSP(), ArmISA::makeZero(), Minor::Scoreboard::markupInstDests(), ArmISA::TableWalker::memAttrsLPAE(), X86ISA::X86StaticInst::merge(), CustomNoMaliGpu::onReset(), Net::EthAddr::operator uint64_t(), X86ISA::X86StaticInst::pick(), ArmISA::preUnflattenMiscReg(), Minor::printRegName(), EnergyCtrl::read(), X86ISA::Interrupts::read(), Sinic::Device::read(), NSGigE::read(), X86ISA::Interrupts::readReg(), X86ISA::Cmos::readRegister(), Sinic::Device::serialize(), KvmKernelGicV2::setGicReg(), X86ISA::Interrupts::setReg(), X86ISA::Interrupts::setRegNoEffect(), X86ISA::X86StaticInst::signedPick(), stringToRegister(), ArmISA::unflattenMiscReg(), Sinic::Device::unserialize(), ArmV8KvmCPU::updateKvmState(), ArmKvmCPU::updateKvmStateCoProc(), ArmKvmCPU::updateTCStateCoProc(), ArmV8KvmCPU::updateThreadContext(), EnergyCtrl::write(), X86ISA::Interrupts::write(), NSGigE::write(), and X86ISA::Cmos::writeRegister().
const int X86ISA::ReturnAddressReg = 0 |
Definition at line 84 of file registers.hh.
Referenced by X86ISA::StackTrace::decodePrologue().
const int X86ISA::ReturnValueReg = INTREG_RAX |
Definition at line 85 of file registers.hh.
Bitfield<2,0> X86ISA::rm |
Definition at line 90 of file types.hh.
Referenced by X86ISA::EmulEnv::doModRM().
const uint8_t X86ISA::RN = Repne |
Definition at line 56 of file decoder_tables.cc.
const uint8_t X86ISA::RX = RexPrefix |
Definition at line 57 of file decoder_tables.cc.
Bitfield<44> X86ISA::s |
Definition at line 882 of file misc.hh.
Referenced by Float16::Float16(), and Float16::operator float().
X86ISA::scale |
Definition at line 94 of file types.hh.
Referenced by ArmISA::vfpSFixedToFpD(), ArmISA::vfpSFixedToFpS(), ArmISA::vfpUFixedToFpD(), and ArmISA::vfpUFixedToFpS().
Bitfield<2,0> X86ISA::seg |
Definition at line 84 of file types.hh.
Referenced by X86ISA::X86_64Process::initState(), X86ISA::I386Process::initState(), X86ISA::InitInterrupt::invoke(), ElfObject::loadSections(), X86ISA::GpuTLB::tlbLookup(), X86ISA::TLB::translate(), and X86ISA::GpuTLB::translate().
const Request::FlagsType M5_VAR_USED X86ISA::SegmentFlagMask = mask(4) |
Definition at line 51 of file ldstflags.hh.
Referenced by X86ISA::GpuTLB::tlbLookup(), X86ISA::TLB::translate(), and X86ISA::GpuTLB::translate().
SignedBitfield<15,8> X86ISA::SH |
Definition at line 58 of file int.hh.
Referenced by SparcISA::SparcFault< T >::vals().
Bitfield<15, 3> X86ISA::si |
Definition at line 861 of file misc.hh.
Referenced by X86ISA::Decoder::decode().
const uint8_t X86ISA::SS = SSOverride |
Definition at line 50 of file decoder_tables.cc.
Bitfield<17, 16> X86ISA::stack |
Definition at line 588 of file misc.hh.
Referenced by setupAltStack().
const int X86ISA::StackPointerReg = INTREG_RSP |
Definition at line 82 of file registers.hh.
Referenced by X86ISA::X86Process::argsInit().
const uint64_t X86ISA::syscallCodePhysAddr = 0x60000 |
Definition at line 67 of file system.hh.
Referenced by X86ISA::X86_64Process::initState().
const uint64_t X86ISA::syscallCodeVirtAddr = 0xffff800000000000 |
Definition at line 66 of file system.hh.
Referenced by X86ISA::X86_64Process::initState().
const int X86ISA::SyscallPseudoReturnReg = INTREG_RDX |
Definition at line 90 of file registers.hh.
TlbEntryTrie::Handle X86ISA::trieHandle |
Definition at line 128 of file pagetable.hh.
Referenced by X86ISA::TLB::evictLRU(), X86ISA::TLB::flushAll(), X86ISA::TLB::flushNonGlobal(), and X86ISA::TLB::serialize().
Bitfield< 15 > X86ISA::trigger |
Definition at line 49 of file intmessage.hh.
|
static |
Definition at line 77 of file intmessage.hh.
Referenced by buildIntRequest().
const uint64_t X86ISA::TSSPhysAddr = 0x63000 |
Definition at line 73 of file system.hh.
Referenced by X86ISA::X86_64Process::initState().
const uint64_t X86ISA::TSSVirtAddr = 0xffff800000003000 |
Definition at line 72 of file system.hh.
Referenced by X86ISA::X86_64Process::initState().
Bitfield< 43, 40 > X86ISA::type |
Definition at line 728 of file misc.hh.
Referenced by CacheRecorder::addRecord(), broadcast(), GarnetNetwork::collateStats(), HsailISA::LdInst< MemDataType, DestDataType, AddrOperandType >::completeAcc(), KvmVM::createDevice(), createMachineID(), ArmV8KvmCPU::dump(), findRegDataType(), ArmISA::MemoryReg64::generateDisassembly(), ArmISA::PMU::getCounterTypeRegister(), Throttle::getMsgCount(), Switch::getMsgCount(), ArmV8KvmCPU::getSysRegMap(), Sequencer::hitCallback(), GPUCoalescer::hitCallback(), Prefetcher::initializeStream(), iGbReg::TxdOp::isType(), MachineTypeAndNodeIDToMachineID(), mapAddressToRange(), PerfKvmCounterConfig::PerfKvmCounterConfig(), Sequencer::recordMissLatency(), GPUCoalescer::recordMissLatency(), SimpleNetwork::regStats(), Switch::regStats(), Throttle::regStats(), Sinic::Device::rxFilter(), NSGigE::rxFilter(), PipeFDEntry::setEndType(), NetworkLink::setType(), BaseRemoteGDB::trap(), ElasticTrace::TraceInfo::typeToStr(), TraceCPU::ElasticDataGen::GraphNode::typeToStr(), Iob::writeIob(), X86ISA::SMBios::SMBiosStructure::writeOut(), X86ISA::IntelMP::BaseConfigEntry::writeOut(), X86ISA::IntelMP::ExtConfigEntry::writeOut(), and X86ISA::E820Table::writeTo().
Bitfield<2> X86ISA::u |
Definition at line 93 of file pagetable.hh.
bool X86ISA::uncacheable |
Definition at line 118 of file pagetable.hh.
Referenced by X86ISA::Walker::WalkerState::stepWalk(), MemTest::tick(), and TLBCoalescer::updatePhysAddresses().
bool X86ISA::user |
Definition at line 113 of file pagetable.hh.
const uint8_t X86ISA::V2 = Vex2Prefix |
Definition at line 58 of file decoder_tables.cc.
const uint8_t X86ISA::V3 = Vex3Prefix |
Definition at line 59 of file decoder_tables.cc.
EndBitUnion (PageTableEntry) struct TlbEntry Addr X86ISA::vaddr |
Definition at line 96 of file pagetable.hh.
Referenced by X86ISA::GpuTLB::handleFuncTranslationReturn(), X86ISA::GpuTLB::handleTranslationReturn(), X86ISA::GpuTLB::CpuSidePort::recvFunctional(), X86ISA::Walker::WalkerState::setupWalk(), X86ISA::Walker::WalkerState::stepWalk(), AlphaISA::TlbEntry::TlbEntry(), SparcISA::TlbEntry::TlbEntry(), X86ISA::GpuTLB::tlbLookup(), X86ISA::TLB::translate(), X86ISA::GpuTLB::translate(), X86ISA::TLB::translateInt(), X86ISA::GpuTLB::translateInt(), X86ISA::GpuTLB::translationReturn(), and AlphaISA::TlbEntry::updateVaddr().
Bitfield<63> X86ISA::val |
Definition at line 770 of file misc.hh.
Referenced by alignToPowerOfTwo(), ArmISA::AbortFault< T >::annotate(), ArmISA::DataAbort::annotate(), ArmISA::bitsToFp(), composeBitVector(), MuxingKvmGic::copyCpuRegister(), MuxingKvmGic::copyDistRegister(), Stats::StatStor::dec(), PerfKvmCounterConfig::disabled(), ArmV8KvmCPU::dump(), ArmISA::EndBitUnion(), PerfKvmCounterConfig::exclude_host(), PerfKvmCounterConfig::exclude_hv(), HsailISA::LdInst< MemDataType, DestDataType, AddrOperandType >::execute(), MipsISA::ISA::filterCP0Write(), findLsbSet(), ArmISA::fixDest(), ArmISA::fixFpDFpSDest(), ArmISA::fixFpSFpDDest(), ArmISA::fpToBits(), futexFunc(), Wavefront::getContext(), LTAGE::getGHR(), ArmProcess32::getSyscallArg(), H3BloomFilter::hash_H3(), Stats::StatStor::inc(), PseudoInst::initParam(), Trie< Addr, X86ISA::TlbEntry >::insert(), PowerISA::FloatOp::isNan(), RiscvISA::isquietnan< double >(), RiscvISA::isquietnan< float >(), ArmISA::AbortFault< T >::iss(), ArmISA::DataAbort::iss(), RiscvISA::issignalingnan< double >(), RiscvISA::issignalingnan< float >(), X86ISA::X86StaticInst::merge(), GenericISA::DelaySlotPCState< MachInst >::nnpc(), GenericISA::SimplePCState< MachInst >::npc(), GenericISA::UPCState< MachInst >::nupc(), GenericISA::DelaySlotUPCState< MachInst >::nupc(), GenericISA::SimplePCState< MachInst >::pc(), DefaultCommit< Impl >::pcState(), SimpleThread::pcState(), BaseDynInst< Impl >::pcState(), SimpleThread::pcStateNoRecord(), PerfKvmCounterConfig::pinned(), IdleStartEvent::process(), DistIface::rankParam(), X86ISA::Interrupts::read(), ArmISA::PMU::readMiscReg(), ArmISA::ISA::readMiscReg(), X86ISA::Interrupts::readReg(), X86ISA::Cmos::readRegister(), CheckerCPU::recordPCChange(), Trie< Addr, X86ISA::TlbEntry >::remove(), Sp804::Timer::restartCounter(), CpuLocalTimer::Timer::restartTimerCounter(), CpuLocalTimer::Timer::restartWatchdogCounter(), MipsISA::roundFP(), ArmISA::roundNEven(), Stats::DistStor::sample(), Stats::SparseHistStor::sample(), SRegOperand::set(), DRegOperand::set(), CRegOperand::set(), Stats::StatStor::set(), Stats::AvgStor::set(), ListOperand::set(), MipsISA::setCauseIP(), PhysRegFile::setCCReg(), CheckerCPU::setCCRegOperand(), BaseDynInst< Impl >::setCCRegOperand(), ArchTimer::setCompareValue(), Wavefront::setContext(), ArchTimer::setControl(), ArmISA::PMU::setCounterTypeRegister(), ArmISA::PMU::setCounterValue(), PhysRegFile::setFloatReg(), PhysRegFile::setFloatRegBits(), SimpleThread::setFloatRegBitsFlat(), SimpleThread::setFloatRegFlat(), CheckerCPU::setFloatRegOperand(), BaseDynInst< Impl >::setFloatRegOperand(), CheckerCPU::setFloatRegOperandBits(), BaseDynInst< Impl >::setFloatRegOperandBits(), SparcISA::ISA::setFSReg(), PhysRegFile::setIntReg(), SimpleThread::setIntRegFlat(), Minor::ExecContext::setIntRegOperand(), SimpleExecContext::setIntRegOperand(), CheckerCPU::setIntRegOperand(), BaseDynInst< Impl >::setIntRegOperand(), AlphaISA::ISA::setIpr(), SystemCounter::setKernelControl(), CallArgMem::setLaneAddr(), X86ISA::ISA::setMiscReg(), AlphaISA::ISA::setMiscReg(), ArmISA::PMU::setMiscReg(), BaseO3DynInst< Impl >::setMiscReg(), ArmISA::ISA::setMiscReg(), SparcISA::ISA::setMiscReg(), X86ISA::ISA::setMiscRegNoEffect(), RiscvISA::ISA::setMiscRegNoEffect(), AlphaISA::ISA::setMiscRegNoEffect(), MipsISA::ISA::setMiscRegNoEffect(), ArmISA::ISA::setMiscRegNoEffect(), SparcISA::ISA::setMiscRegNoEffect(), ArchTimer::setOffset(), Trace::InstRecord::setPredicate(), SimpleThread::setPredicate(), BaseDynInst< Impl >::setPredicate(), X86ISA::Interrupts::setReg(), MipsISA::ISA::setRegMask(), X86ISA::Interrupts::setRegNoEffect(), SparcProcess::setSyscallReturn(), DistIface::sizeParam(), GenericISA::UPCState< MachInst >::upc(), GenericISA::DelaySlotUPCState< MachInst >::upc(), Stats::ScalarPrint::update(), Stats::ValueToString(), ArmISA::vfpFpToFixed(), X86ISA::Speaker::write(), X86ISA::I8259::write(), AlphaBackdoor::write(), CopyEngine::write(), X86ISA::Interrupts::write(), IGbE::write(), Wavefront::writeCallArgMem(), X86ISA::Cmos::writeRegister(), and BaseO3DynInst< Impl >::~BaseO3DynInst().
X86ISA::vector |
Definition at line 45 of file intmessage.hh.
Referenced by Iob::receiveDeviceInterrupt(), X86ISA::Interrupts::requestInterrupt(), Iob::serialize(), Iob::unserialize(), and Iob::writeIob().
|
static |
|
static |
Bitfield< 3 > X86ISA::w |
Definition at line 94 of file pagetable.hh.
Bitfield< 12 > X86ISA::writable |
Definition at line 111 of file pagetable.hh.
Bitfield<15,0> X86ISA::X |
Definition at line 55 of file int.hh.
Referenced by LTAGE::update().
Bitfield< 6 > X86ISA::x |
Definition at line 105 of file types.hh.
Referenced by AlphaProcess::argsInit(), MipsProcess::argsInit(), PowerProcess::argsInit(), SparcProcess::argsInit(), ArmProcess::argsInit(), X86ISA::X86Process::argsInit(), ArmISA::TLB::checkPermissions64(), LSQUnit< Impl >::checkSnoop(), CopyEngine::CopyEngine(), SparcISA::copyRegs(), SparcISA::TLB::demapAll(), SparcISA::TLB::demapContext(), SparcISA::TLB::dumpAll(), IGbE::DescCache< T >::fetchComplete(), SparcISA::TLB::flushAll(), ArmISA::TLB::flushAllNs(), ArmISA::TLB::flushAllSecurity(), ArmISA::TLB::flushAsid(), ArmISA::fp32_add(), ArmISA::fp32_div(), ArmISA::fp32_mul(), ArmISA::fp32_muladd(), ArmISA::fp32_sqrt(), ArmISA::fp64_add(), ArmISA::fp64_div(), ArmISA::fp64_mul(), ArmISA::fp64_muladd(), ArmISA::fp64_sqrt(), ArmISA::fplibCompareEQ(), ArmISA::fplibCompareGE(), ArmISA::fplibCompareGT(), ArmISA::fplibMax(), ArmISA::fplibMin(), ArmISA::fplibRoundInt(), ArmISA::FPToFixed_32(), ArmISA::FPToFixed_64(), H3BloomFilter::get_index(), MultiBitSelBloomFilter::get_index(), PciDevice::getAddrRanges(), Gicv2m::Gicv2m(), X86ISA::GpuTLB::GpuTLB(), IGbE::IGbE(), AlphaISA::initializeIprTable(), SparcISA::TLB::insert(), Iob::Iob(), ArmISA::TLB::lookup(), m5_fegetround(), m5_twin32_t::m5_twin32_t(), m5_twin64_t::operator=(), m5_twin32_t::operator=(), FrameBuffer::pixel(), power(), ArmISA::TLB::printTlb(), RangeAddrMapper::RangeAddrMapper(), Pl390::readCpu(), SparcISA::ISA::readFSReg(), IGbE::DescCache< T >::reset(), VncServer::sendFrameBufferUpdate(), Process::serialize(), Iob::serialize(), X86ISA::TLB::serialize(), SparcISA::TLB::serialize(), CopyEngine::serialize(), IGbE::DescCache< T >::serialize(), Pl111::serialize(), VncServer::setEncodings(), ArmISA::ISA::setMiscReg(), Pl390::softInt(), swap_byte(), swap_byte16(), swap_byte32(), swap_byte64(), swap_byte< Twin32_t >(), swap_byte< Twin64_t >(), System::System(), X86ISA::TLB::TLB(), SparcISA::TLB::TLB(), ArmISA::ISA::tlbiALL(), ArmISA::ISA::tlbiALLN(), ArmISA::ISA::tlbiMVA(), ArmISA::ISA::tlbiVA(), TsunamiCChip::TsunamiCChip(), Process::unserialize(), Iob::unserialize(), X86ISA::TLB::unserialize(), SparcISA::TLB::unserialize(), CopyEngine::unserialize(), IGbE::DescCache< T >::unserialize(), Pl111::unserialize(), PhysicalMemory::unserializeStore(), Pl390::updateIntState(), VGic::VGic(), SparcISA::vtophys(), IGbE::DescCache< T >::wbComplete(), Bitmap::write(), TsunamiCChip::write(), IGbE::DescCache< T >::writeback1(), and CopyEngine::~CopyEngine().
const int X86ISA::ZeroReg = NUM_INTREGS |
Definition at line 81 of file registers.hh.
Referenced by X86ISA::X86StaticInst::printMem().