42 |
private: |
private: |
43 |
PSR psr; |
PSR psr; |
44 |
|
|
|
enum phase { IF, ID, EX, MA, WB }; |
|
45 |
vector<bool> phase_active; |
vector<bool> phase_active; |
46 |
bool on; |
bool on; |
47 |
|
|
91 |
|
|
92 |
internal_reg pppPC,ppppPC; |
internal_reg pppPC,ppppPC; |
93 |
public: |
public: |
94 |
|
enum phase { IF, ID, EX, MA, WB }; |
95 |
|
|
96 |
vmachine( void ); |
vmachine( void ); |
97 |
|
|
98 |
void init( vector<unsigned long> data, |
void init( vector<unsigned long> data, |
100 |
|
|
101 |
bool is_on( void ){ return on; } |
bool is_on( void ){ return on; } |
102 |
void off( void ) { on = false; } |
void off( void ) { on = false; } |
103 |
|
bool is_active( phase p ){ return phase_active[p]; } |
104 |
|
|
105 |
void step( void ); |
void step( void ); |
106 |
void do_IF( void ); |
void do_IF( void ); |
108 |
void do_EX( void ); |
void do_EX( void ); |
109 |
void do_MA( void ); |
void do_MA( void ); |
110 |
void do_WB( void ); |
void do_WB( void ); |
111 |
|
|
112 |
|
|
113 |
vector<unsigned long> get_regs( void ){ return Registers.get();} |
vector<unsigned long> get_regs( void ){ return Registers.get();} |
114 |
vector<unsigned long> get_dcache( unsigned long num = 0) |
vector<unsigned long> get_dcache( unsigned long num = 0) |