summaryrefslogtreecommitdiff
path: root/src/pim/Machine.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/pim/Machine.cpp')
-rw-r--r--src/pim/Machine.cpp9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/pim/Machine.cpp b/src/pim/Machine.cpp
index 4c07514..a112363 100644
--- a/src/pim/Machine.cpp
+++ b/src/pim/Machine.cpp
@@ -105,6 +105,8 @@ namespace pim
case Opcode::Jump:
case Opcode::Return:
case Opcode::LocalEnter:
+ case Opcode::LoadProperty:
+ case Opcode::StoreProperty:
return 4;
case Opcode::Discard:
case Opcode::Duplicate:
@@ -214,6 +216,13 @@ namespace pim
sim->kill_part(PSPop().Integer);
PSPush((Word)0);
break;
+ case Opcode::LoadProperty:
+ PSPush(PPROP(PSPop().Integer, argument.Integer));
+ break;
+ case Opcode::StoreProperty:
+ temp1 = PSPop();
+ PPROP(temp1.Integer, argument.Integer) = PSPop();
+ break;
case Opcode::JumpEqual:
if(PSPop().Integer == PSPop().Integer)
programCounter = argument.Integer-1;