[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