Page principale | Hiérarchie des classes | Liste des classes | Répertoires | Liste des fichiers | Membres de classe | Membres de fichier

Référence de la classe Machine

#include <machine.h>

Graphe de collaboration de Machine:

Collaboration graph
[légende]
Liste de tous les membres

Fonctions membres publiques

 Machine (bool debug)
 ~Machine ()
void Run ()
int ReadRegister (int num)
void WriteRegister (int num, int value)
bool ReadMem (int addr, int size, int *value)
bool WriteMem (int addr, int size, int value)

Attributs publics

char * mainMemory
TranslationEntrytlb
TranslationEntrypageTable
unsigned int pageTableSize

Fonctions membres privées

void DelayedLoad (int nextReg, int nextVal)
void OneInstruction (Instruction *instr)
ExceptionType Translate (int virtAddr, int *physAddr, int size, bool writing)
void RaiseException (ExceptionType which, int badVAddr)
void Debugger ()
void DumpState ()

Attributs privés

int registers [NumTotalRegs]
bool singleStep
int runUntilTime

Amis

class Interrupt

Description détaillée

Définition à la ligne 94 du fichier machine.h.


Documentation des contructeurs et destructeur

Machine::Machine bool  debug  ) 
 

Définition à la ligne 55 du fichier machine.cc.

Références CheckEndian(), mainMemory, MemorySize, NumTotalRegs, pageTable, registers, singleStep, tlb, TLBSize, et TranslationEntry::valid.

Voici le graphe d'appel pour cette fonction:

Machine::~Machine  ) 
 

Définition à la ligne 83 du fichier machine.cc.

Références mainMemory, et tlb.


Documentation des fonctions membres

void Machine::Debugger  )  [private]
 

Définition à la ligne 122 du fichier machine.cc.

Références DumpState(), runUntilTime, et singleStep.

Référencé par Run().

Voici le graphe d'appel pour cette fonction:

void Machine::DelayedLoad int  nextReg,
int  nextVal
[private]
 

Définition à la ligne 712 du fichier mipssim.cc.

Références LoadReg, LoadValueReg, et registers.

Référencé par OneInstruction(), et RaiseException().

void Machine::DumpState  )  [private]
 

Définition à la ligne 176 du fichier machine.cc.

Références HiReg, LoadReg, LoadValueReg, LoReg, NextPCReg, NumGPRegs, PCReg, PrevPCReg, registers, RetAddrReg, et StackReg.

Référencé par Debugger().

void Machine::OneInstruction Instruction instr  )  [private]
 

Définition à la ligne 121 du fichier mipssim.cc.

Références AddressErrorException, OpString::args, Instruction::Decode(), DelayedLoad(), Instruction::extra, OpString::format, HiReg, IllegalInstrException, IndexToAddr, LoadReg, LoadValueReg, LoReg, MaxOpcode, Mult(), NextPCReg, OP_ADD, OP_ADDI, OP_ADDIU, OP_ADDU, OP_AND, OP_ANDI, OP_BEQ, OP_BGEZ, OP_BGEZAL, OP_BGTZ, OP_BLEZ, OP_BLTZ, OP_BLTZAL, OP_BNE, OP_DIV, OP_DIVU, OP_J, OP_JAL, OP_JALR, OP_JR, OP_LB, OP_LBU, OP_LH, OP_LHU, OP_LUI, OP_LW, OP_LWL, OP_LWR, OP_MFHI, OP_MFLO, OP_MTHI, OP_MTLO, OP_MULT, OP_MULTU, OP_NOR, OP_OR, OP_ORI, OP_RES, OP_SB, OP_SH, OP_SLL, OP_SLLV, OP_SLT, OP_SLTI, OP_SLTIU, OP_SLTU, OP_SRA, OP_SRAV, OP_SRL, OP_SRLV, OP_SUB, OP_SUBU, OP_SW, OP_SWL, OP_SWR, OP_SYSCALL, OP_UNIMP, OP_XOR, OP_XORI, Instruction::opCode, opStrings, OverflowException, PCReg, PrevPCReg, R31, RaiseException(), Instruction::rd, ReadMem(), registers, Instruction::rs, Instruction::rt, SIGN_BIT, SyscallException, TypeToReg(), Instruction::value, et WriteMem().

Référencé par Run().

Voici le graphe d'appel pour cette fonction:

void Machine::RaiseException ExceptionType  which,
int  badVAddr
[private]
 

Définition à la ligne 101 du fichier machine.cc.

Références BadVAddrReg, DelayedLoad(), ExceptionHandler(), exceptionNames, registers, SystemMode, et UserMode.

Référencé par OneInstruction(), ReadMem(), et WriteMem().

Voici le graphe d'appel pour cette fonction:

bool Machine::ReadMem int  addr,
int  size,
int *  value
 

Définition à la ligne 86 du fichier translate.cc.

Références mainMemory, NoException, RaiseException(), ShortToHost(), Translate(), et WordToHost().

Référencé par OneInstruction().

Voici le graphe d'appel pour cette fonction:

int Machine::ReadRegister int  num  ) 
 

Définition à la ligne 213 du fichier machine.cc.

Références NumTotalRegs, et registers.

void Machine::Run  ) 
 

Définition à la ligne 57 du fichier mipssim.cc.

Références Debugger(), OneInstruction(), singleStep, et UserMode.

Voici le graphe d'appel pour cette fonction:

ExceptionType Machine::Translate int  virtAddr,
int *  physAddr,
int  size,
bool  writing
[private]
 

Définition à la ligne 185 du fichier translate.cc.

Références AddressErrorException, BusErrorException, TranslationEntry::dirty, MemorySize, NoException, NumPhysPages, PageFaultException, PageSize, pageTable, pageTableSize, TranslationEntry::physicalPage, TranslationEntry::readOnly, ReadOnlyException, tlb, TLBSize, et TranslationEntry::use.

Référencé par ReadMem(), et WriteMem().

bool Machine::WriteMem int  addr,
int  size,
int  value
 

Définition à la ligne 136 du fichier translate.cc.

Références mainMemory, NoException, RaiseException(), ShortToMachine(), Translate(), et WordToMachine().

Référencé par OneInstruction().

Voici le graphe d'appel pour cette fonction:

void Machine::WriteRegister int  num,
int  value
 

Définition à la ligne 220 du fichier machine.cc.

Références NumTotalRegs, et registers.


Documentation des fonctions amies et associées

friend class Interrupt [friend]
 

Définition à la ligne 181 du fichier machine.h.


Documentation des données membres

char* Machine::mainMemory
 

Définition à la ligne 114 du fichier machine.h.

Référencé par Machine(), ReadMem(), WriteMem(), et ~Machine().

TranslationEntry* Machine::pageTable
 

Définition à la ligne 138 du fichier machine.h.

Référencé par Machine(), et Translate().

unsigned int Machine::pageTableSize
 

Définition à la ligne 139 du fichier machine.h.

Référencé par Translate().

int Machine::registers[NumTotalRegs] [private]
 

Définition à la ligne 174 du fichier machine.h.

Référencé par DelayedLoad(), DumpState(), Machine(), OneInstruction(), RaiseException(), ReadRegister(), et WriteRegister().

int Machine::runUntilTime [private]
 

Définition à la ligne 178 du fichier machine.h.

Référencé par Debugger().

bool Machine::singleStep [private]
 

Définition à la ligne 176 du fichier machine.h.

Référencé par Debugger(), Machine(), et Run().

TranslationEntry* Machine::tlb
 

Définition à la ligne 135 du fichier machine.h.

Référencé par Machine(), Translate(), et ~Machine().


La documentation de cette classe a été générée à partir des fichiers suivants:
Généré le Sun Jan 15 00:44:54 2006 pour Architecture Cible de NachOS : par  doxygen 1.4.4