summaryrefslogtreecommitdiff
path: root/Registers.py
diff options
context:
space:
mode:
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()