summaryrefslogtreecommitdiff
path: root/src/virtualmachine/VirtualMachine.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/virtualmachine/VirtualMachine.cpp')
-rw-r--r--src/virtualmachine/VirtualMachine.cpp14
1 files changed, 5 insertions, 9 deletions
diff --git a/src/virtualmachine/VirtualMachine.cpp b/src/virtualmachine/VirtualMachine.cpp
index ff966ac..dfff84e 100644
--- a/src/virtualmachine/VirtualMachine.cpp
+++ b/src/virtualmachine/VirtualMachine.cpp
@@ -22,7 +22,9 @@ namespace vm
RP(0), /* Return stack pointer. */
PC(0),
cm(0),
- cycles(0)
+ cycles(0),
+ sim(NULL),
+ ren(NULL)
{
hunk = new char[hunkSize];
std::fill(hunk, hunk+hunkSize, 0);
@@ -268,21 +270,15 @@ namespace vm
int VirtualMachine::syscall(int trap)
{
- int retval;
- word w;
+ PC = Pop<int4_t>();
- retval = 0;
switch (trap)
{
- #define TRAPDEF(n, f) case n: retval = trap##f(); break;
+ #define TRAPDEF(n, f) case n: trap##f(); break;
#include "Syscalls.inl"
#undef TRAPDEF
}
- w = Pop();
- PC = w.int4;
- w.int4 = retval;
- Push(w);
return 1;
}
} \ No newline at end of file