diff options
Diffstat (limited to 'Registers.py')
-rw-r--r-- | Registers.py | 11 |
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() |