summaryrefslogtreecommitdiff
path: root/Registers.py
diff options
context:
space:
mode:
authorPeter Wu <lekensteyn@gmail.com>2011-12-01 18:28:36 +0000
committerPeter Wu <lekensteyn@gmail.com>2011-12-01 18:28:36 +0000
commit20416d5ae946d4defbfea66c53e58761cf885b73 (patch)
tree2ade535a438652f14bc6e9f55dcab077ed6d4e18 /Registers.py
parent55ad98c9c392ad92c22d25f6d00978d8cec2959a (diff)
downloadpp2cc-20416d5ae946d4defbfea66c53e58761cf885b73.tar.gz
WIP for func parameter support and local (automatic) variables
Diffstat (limited to 'Registers.py')
-rw-r--r--Registers.py5
1 files changed, 4 insertions, 1 deletions
diff --git a/Registers.py b/Registers.py
index 2a070d4..1d080f1 100644
--- a/Registers.py
+++ b/Registers.py
@@ -31,6 +31,9 @@ class Registers(object):
self.registers = {}
for reg in range(0, 8):
self.registers[str(reg)] = False
+ # the "Base Pointer", local variables are relative to this address. The
+ # value of this register points to a location in the stack
+ self.BP = "R5"
def alloc(self, register=None):
"""Retrieves a register which is marked unused, marks it as in use and
return it"""
@@ -42,7 +45,7 @@ class Registers(object):
if self.registers[register]:
raise RuntimeError("Register 'R{}' is already in use".format(register))
else:
- for register in range(0, 6):
+ for register in range(0, 5):
register = str(register)
# find a free register
if not self.registers[register]: