diff options
Diffstat (limited to 'src/pim/Machine.cpp')
| -rw-r--r-- | src/pim/Machine.cpp | 9 |
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; |
