summaryrefslogtreecommitdiff
path: root/src/pim/Machine.h
diff options
context:
space:
mode:
authorSimon Robertshaw <simon@hardwired.org.uk>2012-09-24 13:08:39 (GMT)
committer Simon Robertshaw <simon@hardwired.org.uk>2012-09-24 13:08:39 (GMT)
commitcfb8df08305cfc8baebf104524a257bf0ded49db (patch)
treed3898c6427643d86b7f584190cc8178bbff76382 /src/pim/Machine.h
parent2ddbd576770d2497af4b0a66149962956ef0ccf3 (diff)
downloadpowder-cfb8df08305cfc8baebf104524a257bf0ded49db.zip
powder-cfb8df08305cfc8baebf104524a257bf0ded49db.tar.gz
Work on Ahead-Of-Time compiler for PVM
Diffstat (limited to 'src/pim/Machine.h')
-rw-r--r--src/pim/Machine.h9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/pim/Machine.h b/src/pim/Machine.h
index 42147dd..3bf1131 100644
--- a/src/pim/Machine.h
+++ b/src/pim/Machine.h
@@ -59,6 +59,9 @@ namespace pim
int romSize;
int romMask;
+ unsigned char * compiledRom;
+ int compiledRomSize;
+
unsigned char * ram;
int ramSize;
int ramMask;
@@ -76,12 +79,16 @@ namespace pim
int programCounter;
-
+ void emit(std::string opcode);
+ void emit(int constant);
public:
VirtualMachine(Simulation * sim);
int OpcodeArgSize(int opcode);
void LoadProgram(std::vector<unsigned char> programData);
void Run();
+ void Compile();
+ void CallCompiled(std::string entryPoint);
+ void CallCompiled(int entryPoint);
void Call(std::string entryPoint);
void Call(int entryPoint);
inline void PSPush(Word word)