diff options
author | Peter Wu <lekensteyn@gmail.com> | 2011-12-02 21:57:45 +0000 |
---|---|---|
committer | Peter Wu <lekensteyn@gmail.com> | 2011-12-02 21:57:45 +0000 |
commit | 30fc12c61857d9f242953e49b97118c976170d13 (patch) | |
tree | 92abf2646d97cc7729bada75d6c5986a3c59dba6 /Registers.py | |
parent | d48fb25678e10c79bf8971892b8573fb7cb9e247 (diff) | |
download | pp2cc-30fc12c61857d9f242953e49b97118c976170d13.tar.gz |
Fix constant value eval and declaration and initialization of array elements
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() |