summaryrefslogtreecommitdiff
path: root/Registers.py
diff options
context:
space:
mode:
authorPeter Wu <lekensteyn@gmail.com>2011-12-02 21:57:45 +0000
committerPeter Wu <lekensteyn@gmail.com>2011-12-02 21:57:45 +0000
commit30fc12c61857d9f242953e49b97118c976170d13 (patch)
tree92abf2646d97cc7729bada75d6c5986a3c59dba6 /Registers.py
parentd48fb25678e10c79bf8971892b8573fb7cb9e247 (diff)
downloadpp2cc-30fc12c61857d9f242953e49b97118c976170d13.tar.gz
Fix constant value eval and declaration and initialization of array elements
Diffstat (limited to 'Registers.py')
-rw-r--r--Registers.py11
1 files changed, 11 insertions, 0 deletions
diff --git a/Registers.py b/Registers.py
index 1d080f1..7fac4dd 100644
--- a/Registers.py
+++ b/Registers.py
@@ -70,6 +70,17 @@ class Registers(object):
raise RuntimeError("free() of unused register")
else:
raise RuntimeError("free() of invalid register")
+ def next_free(self, use_register=None):
+ """Mark use_register as in use, find the next free register and then
+ free both.
+ """
+ if use_register:
+ self.alloc(use_register)
+ next_avail = self.alloc()
+ self.free(next_avail)
+ if use_register:
+ self.free(use_register)
+ return next_avail
def get_register(self, text):
"""Retrieve the first register from a binary instruction"""
text = text.strip()