PSP-EMU rev 57
Un emulador en c++ para SONY PSP
Métodos públicos | Métodos privados | Atributos privados

Referencia de la Clase cAllegrex

#include <cAllegrex.h>

Diagrama de colaboración para cAllegrex:

Lista de todos los miembros.

Métodos públicos

tError apagar (void)
 cAllegrex ()
tError ejecutarCiclo (void)
tError encender (void)
bool estaEjecutando (void)
bool estaEncendido (void)
tError parar (void)
tError ponerControladorMemoria (cControladorMemoria *controlador)
tError reiniciar (void)
 ~cAllegrex ()

Métodos privados

tError decodificar (void)
tError ejecutarInstNoValida (void)
tError ejecutarInstTipoAddI (void)
tError ejecutarInstTipoAddIU (void)
tError ejecutarInstTipoAndI (void)
tError ejecutarInstTipoBEQ (void)
tError ejecutarInstTipoBEQL (void)
tError ejecutarInstTipoBGTZ (void)
tError ejecutarInstTipoBGTZL (void)
tError ejecutarInstTipoBLEZ (void)
tError ejecutarInstTipoBLEZL (void)
tError ejecutarInstTipoBNE (void)
tError ejecutarInstTipoBNEL (void)
tError ejecutarInstTipoCP (void)
tError ejecutarInstTipoJ (void)
tError ejecutarInstTipoJAL (void)
tError ejecutarInstTipoL (tLongitud longitud, bool extender_signo)
tError ejecutarInstTipoLB (void)
tError ejecutarInstTipoLBU (void)
tError ejecutarInstTipoLH (void)
tError ejecutarInstTipoLHU (void)
tError ejecutarInstTipoLUI (void)
tError ejecutarInstTipoLW (void)
tError ejecutarInstTipoOrI (void)
tError ejecutarInstTipoR (void)
tError ejecutarInstTipoREGIMM (void)
tError ejecutarInstTipoS (tLongitud longitud)
tError ejecutarInstTipoSB (void)
tError ejecutarInstTipoSH (void)
tError ejecutarInstTipoSLTI (void)
tError ejecutarInstTipoSLTIU (void)
tError ejecutarInstTipoSW (void)
tError ejecutarInstTipoXorI (void)
tError inicializarRegistros (void)
tError pipeSigInstruccion (void)
tError pipeVaciar (void)
tError recoger (void)

Atributos privados

cControladorMemoriacontrolador_memoria
cCop0 cop0
cEstadoCPU estado
tError(cAllegrex::* InstruccionesOpcode [NUM_OPCODES])()
tRegistro regGenericos [NUM_REG_GENERICOS]
tRegistroDoble regHiLo
tRegistro regPc
tRegistroInst regRi [TAM_PIPLINE]

Documentación del constructor y destructor

cAllegrex::cAllegrex ( )

Constructor de la clase

Gráfico de llamadas para esta función:

cAllegrex::~cAllegrex ( )

Destructor de la clase


Documentación de las funciones miembro

tError cAllegrex::apagar ( void  )

Gráfico de llamadas para esta función:

Gráfico de llamadas a esta función:

tError cAllegrex::decodificar ( void  ) [private]
Tareas pendientes:
tiene que poder indicarle a "ejecutar" qué debe hacer

Gráfico de llamadas a esta función:

tError cAllegrex::ejecutarCiclo ( void  )

Gráfico de llamadas para esta función:

Gráfico de llamadas a esta función:

tError cAllegrex::ejecutarInstNoValida ( void  ) [private]

Gráfico de llamadas a esta función:

tError cAllegrex::ejecutarInstTipoAddI ( void  ) [private]

Nota:
Registro ZR no puede ser escrito

Gráfico de llamadas a esta función:

tError cAllegrex::ejecutarInstTipoAddIU ( void  ) [private]

Nota:
Registro ZR no puede ser escrito

Gráfico de llamadas a esta función:

tError cAllegrex::ejecutarInstTipoAndI ( void  ) [private]

Nota:
Registro ZR no puede ser escrito

Gráfico de llamadas a esta función:

tError cAllegrex::ejecutarInstTipoBEQ ( void  ) [private]
Tareas pendientes:
Comprobar user/kernel

Gráfico de llamadas a esta función:

tError cAllegrex::ejecutarInstTipoBEQL ( void  ) [private]

Gráfico de llamadas a esta función:

tError cAllegrex::ejecutarInstTipoBGTZ ( void  ) [private]
Tareas pendientes:
Comprobar user/kernel

Gráfico de llamadas a esta función:

tError cAllegrex::ejecutarInstTipoBGTZL ( void  ) [private]

Gráfico de llamadas a esta función:

tError cAllegrex::ejecutarInstTipoBLEZ ( void  ) [private]
Tareas pendientes:
Comprobar user/kernel

Gráfico de llamadas a esta función:

tError cAllegrex::ejecutarInstTipoBLEZL ( void  ) [private]

Gráfico de llamadas a esta función:

tError cAllegrex::ejecutarInstTipoBNE ( void  ) [private]
Tareas pendientes:
Comprobar user/kernel

Gráfico de llamadas a esta función:

tError cAllegrex::ejecutarInstTipoBNEL ( void  ) [private]

Gráfico de llamadas a esta función:

tError cAllegrex::ejecutarInstTipoCP ( void  ) [private]

Gráfico de llamadas a esta función:

tError cAllegrex::ejecutarInstTipoJ ( void  ) [private]
Tareas pendientes:
Comprobar user/kernel

Gráfico de llamadas a esta función:

tError cAllegrex::ejecutarInstTipoJAL ( void  ) [private]
Tareas pendientes:
Comprobar user/kernel

Gráfico de llamadas a esta función:

tError cAllegrex::ejecutarInstTipoL ( tLongitud  longitud,
bool  extender_signo 
) [private]
Tareas pendientes:
comprobar user/kernel

Gráfico de llamadas para esta función:

Gráfico de llamadas a esta función:

tError cAllegrex::ejecutarInstTipoLB ( void  ) [private]

Nota:
Registro ZR no puede ser escrito

Gráfico de llamadas para esta función:

Gráfico de llamadas a esta función:

tError cAllegrex::ejecutarInstTipoLBU ( void  ) [private]

Nota:
Registro ZR no puede ser escrito

Gráfico de llamadas para esta función:

tError cAllegrex::ejecutarInstTipoLH ( void  ) [private]

Nota:
Registro ZR no puede ser escrito

Gráfico de llamadas para esta función:

Gráfico de llamadas a esta función:

tError cAllegrex::ejecutarInstTipoLHU ( void  ) [private]

Nota:
Registro ZR no puede ser escrito

Gráfico de llamadas para esta función:

Gráfico de llamadas a esta función:

tError cAllegrex::ejecutarInstTipoLUI ( void  ) [private]

Nota:
Registro ZR no puede ser escrito

Gráfico de llamadas a esta función:

tError cAllegrex::ejecutarInstTipoLW ( void  ) [private]

Nota:
Registro ZR no puede ser escrito

Gráfico de llamadas para esta función:

Gráfico de llamadas a esta función:

tError cAllegrex::ejecutarInstTipoOrI ( void  ) [private]

Nota:
Registro ZR no puede ser escrito

Gráfico de llamadas a esta función:

tError cAllegrex::ejecutarInstTipoR ( void  ) [private]

Ejecución de instrucciones de la alu

Tareas pendientes:
Overflow exceptions

Gráfico de llamadas a esta función:

tError cAllegrex::ejecutarInstTipoREGIMM ( void  ) [private]

Inst. tipo Reg + Imm.

Nota:
Los casos likely se tratan haciendo la siguiente instruccion una NOP

Tareas pendientes:
TRAPS!
Tareas pendientes:
Caso default

Gráfico de llamadas a esta función:

tError cAllegrex::ejecutarInstTipoS ( tLongitud  longitud) [private]
Tareas pendientes:
Comprobar user/kernel

Gráfico de llamadas para esta función:

Gráfico de llamadas a esta función:

tError cAllegrex::ejecutarInstTipoSB ( void  ) [private]

Gráfico de llamadas para esta función:

Gráfico de llamadas a esta función:

tError cAllegrex::ejecutarInstTipoSH ( void  ) [private]

Gráfico de llamadas para esta función:

Gráfico de llamadas a esta función:

tError cAllegrex::ejecutarInstTipoSLTI ( void  ) [private]

Nota:
Registro ZR no puede ser escrito

Gráfico de llamadas a esta función:

tError cAllegrex::ejecutarInstTipoSLTIU ( void  ) [private]

Nota:
Registro ZR no puede ser escrito

Gráfico de llamadas a esta función:

tError cAllegrex::ejecutarInstTipoSW ( void  ) [private]

Gráfico de llamadas para esta función:

Gráfico de llamadas a esta función:

tError cAllegrex::ejecutarInstTipoXorI ( void  ) [private]

Nota:
Registro ZR no puede ser escrito

Gráfico de llamadas a esta función:

tError cAllegrex::encender ( void  )

Gráfico de llamadas para esta función:

Gráfico de llamadas a esta función:

bool cAllegrex::estaEjecutando ( void  )

Devuelve TRUE si se encuentra ejecutando una instrucción

Gráfico de llamadas para esta función:

bool cAllegrex::estaEncendido ( void  )

Devuelve el TRUE si está encendido

Gráfico de llamadas para esta función:

tError cAllegrex::inicializarRegistros ( void  ) [private]

Todos los registros genéricos al valor por defecto

Gráfico de llamadas a esta función:

tError cAllegrex::parar ( void  )

Gráfico de llamadas para esta función:

Gráfico de llamadas a esta función:

tError cAllegrex::pipeSigInstruccion ( void  ) [private]

Mueve el pipeline a la siguiente instrucción

Gráfico de llamadas a esta función:

tError cAllegrex::pipeVaciar ( void  ) [private]

Vacía el pipeline

Gráfico de llamadas a esta función:

tError cAllegrex::ponerControladorMemoria ( cControladorMemoria controlador)

Interconexión

Gráfico de llamadas a esta función:

tError cAllegrex::recoger ( void  ) [private]

Gráfico de llamadas para esta función:

Gráfico de llamadas a esta función:

tError cAllegrex::reiniciar ( void  )

Pone al estado inicial todos los registros y vacia el pipe

Gráfico de llamadas para esta función:


Documentación de los datos miembro

tError(cAllegrex::* cAllegrex::InstruccionesOpcode[NUM_OPCODES])() [private]
tRegistro cAllegrex::regGenericos[NUM_REG_GENERICOS] [private]
tRegistroInst cAllegrex::regRi[TAM_PIPLINE] [private]

La documentación para esta clase fue generada a partir de los siguientes ficheros:
 Todo Clases Archivos Funciones Variables 'typedefs' Enumeraciones Valores de enumeraciones 'defines'