1.1 --- a/rsvp.py Sat Apr 26 18:35:18 2008 +0200
1.2 +++ b/rsvp.py Sun Apr 27 03:11:12 2008 +0200
1.3 @@ -228,6 +228,9 @@
1.4 self.value_stack[frame + n] = self.pull()
1.5 self.pc += 2
1.6
1.7 + LoadTemp = LoadName
1.8 + StoreTemp = StoreName
1.9 +
1.10 def LoadConst(self):
1.11
1.12 """
1.13 @@ -270,6 +273,35 @@
1.14 self.save(self.pull() + n, value)
1.15 self.pc += 2
1.16
1.17 + def LoadAddress(self):
1.18 +
1.19 + """
1.20 + LoadAddress addr, #n
1.21 + Load from position n in reference at addr: get the contents of position
1.22 + n in the memory referenced by addr, adding the retrieved value to the
1.23 + top of the stack.
1.24 + """
1.25 +
1.26 + red = self.load(self.pc + 1)
1.27 + n = self.load(self.pc + 2)
1.28 + self.push(self.load(ref + n))
1.29 + self.pc += 3
1.30 +
1.31 + def StoreAddress(self):
1.32 +
1.33 + """
1.34 + StoreAddress addr, #n
1.35 + Save to position n in reference at addr: pull a value from the stack and
1.36 + save it to position n in the memory referenced by addr, also removing
1.37 + the value on the top of the stack.
1.38 + """
1.39 +
1.40 + ref = self.load(self.pc + 1)
1.41 + n = self.load(self.pc + 2)
1.42 + value = self.pull()
1.43 + self.save(ref + n, value)
1.44 + self.pc += 3
1.45 +
1.46 def Return(self):
1.47
1.48 """