[pypy-svn] r77923 - pypy/branch/arm-backend/pypy/jit/backend/arm
david at codespeak.net
david at codespeak.net
Thu Oct 14 14:39:11 CEST 2010
Author: david
Date: Thu Oct 14 14:39:09 2010
New Revision: 77923
Added:
pypy/branch/arm-backend/pypy/jit/backend/arm/regalloc.py
Log:
Add ARM regalloc
Added: pypy/branch/arm-backend/pypy/jit/backend/arm/regalloc.py
==============================================================================
--- (empty file)
+++ pypy/branch/arm-backend/pypy/jit/backend/arm/regalloc.py Thu Oct 14 14:39:09 2010
@@ -0,0 +1,34 @@
+from pypy.jit.backend.llsupport.regalloc import FrameManager, \
+ RegisterManager, compute_vars_longevity
+from pypy.jit.backend.arm import registers as r
+
+class ARMRegisterManager(RegisterManager):
+ all_regs = r.all_regs
+ box_types = None # or a list of acceptable types
+ no_lower_byte_regs = r.all_regs
+ save_around_call_regs = all_regs
+
+ def __init__(self, longevity, frame_manager=None, assembler=None):
+ RegisterManager.__init__(self, longevity, frame_manager, assembler)
+
+class ARMFrameManager(FrameManager):
+ @staticmethod
+ def frame_pos(loc, type):
+ pass
+
+#class RegAlloc(object):
+# def __init__(self, assembler, translate_support_code=False):
+# self.assembler = assembler
+# self.translate_support_code = translate_support_code
+# self.fm = None
+#
+# def _prepare(self, inputargs, operations):
+# longevity = compute_vars_longevity(inputargs, operations)
+# self.rm = ARMRegisterManager(longevity, self.fm)
+#
+# def prepare_loop(self, inputargs, operations, looptoken):
+# self._prepare(inputargs, operations)
+#
+# def force_allocate_reg(self, v, forbidden_vars=[], selected_reg=None,
+# need_lower_byte=False):
+# return self.rm.force_allocate_reg(v, forbidden_vars, selected_reg, need_lower_byte)
More information about the Pypy-commit
mailing list