From 30fc12c61857d9f242953e49b97118c976170d13 Mon Sep 17 00:00:00 2001 From: Peter Wu Date: Fri, 2 Dec 2011 21:57:45 +0000 Subject: Fix constant value eval and declaration and initialization of array elements --- Registers.py | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'Registers.py') 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() -- cgit v1.2.1