summaryrefslogtreecommitdiff
path: root/src/pim/Machine.cpp
diff options
context:
space:
mode:
authorSimon Robertshaw <simon@hardwired.org.uk>2012-09-21 20:21:03 (GMT)
committer Simon Robertshaw <simon@hardwired.org.uk>2012-09-21 20:21:03 (GMT)
commit644c1307124dffd13268445d0aebaed13a090c78 (patch)
treee0d1ba738b7adbb484ba6d1fb3ae094e0c94b610 /src/pim/Machine.cpp
parent939a04d3c77bf9aa8d54e912f5e12817de51756c (diff)
downloadpowder-644c1307124dffd13268445d0aebaed13a090c78.zip
powder-644c1307124dffd13268445d0aebaed13a090c78.tar.gz
Set properties with integer.property
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;