[pypy-svn] r67958 - pypy/trunk/pypy/jit/backend/x86/test

fijal at codespeak.net fijal at codespeak.net
Tue Sep 29 09:21:06 CEST 2009


Author: fijal
Date: Tue Sep 29 09:21:05 2009
New Revision: 67958

Modified:
   pypy/trunk/pypy/jit/backend/x86/test/test_gc_integration.py
   pypy/trunk/pypy/jit/backend/x86/test/test_regalloc.py
Log:
Refactor test a bit and also underlaying mockery


Modified: pypy/trunk/pypy/jit/backend/x86/test/test_gc_integration.py
==============================================================================
--- pypy/trunk/pypy/jit/backend/x86/test/test_gc_integration.py	(original)
+++ pypy/trunk/pypy/jit/backend/x86/test/test_gc_integration.py	Tue Sep 29 09:21:05 2009
@@ -17,7 +17,8 @@
 from pypy.jit.backend.llsupport.gc import GcLLDescr_framework, GcRefList, GcPtrFieldDescr
 
 from pypy.jit.backend.x86.test.test_regalloc import MockAssembler
-from pypy.jit.backend.x86.test.test_regalloc import fill_regs, BaseTestRegalloc
+from pypy.jit.backend.x86.test.test_regalloc import BaseTestRegalloc
+from pypy.jit.backend.x86.regalloc import X86RegisterManager, X86StackManager
 
 class MockGcRootMap(object):
     def get_basic_shape(self):
@@ -56,17 +57,24 @@
     def test_mark_gc_roots(self):
         cpu = CPU(None, None)
         regalloc = RegAlloc(MockAssembler(cpu, MockGcDescr(False)))
+        boxes = [BoxPtr() for i in range(len(X86RegisterManager.all_regs))]
+        longevity = {}
+        for box in boxes:
+            longevity[box] = (0, 1)
+        regalloc.sm = X86StackManager()
+        regalloc.rm = X86RegisterManager(longevity, regalloc.sm,
+                                         assembler=regalloc.assembler)
         cpu = regalloc.assembler.cpu
-        boxes = fill_regs(regalloc, cls=BoxPtr)
+        for box in boxes:
+            regalloc.rm.try_allocate_reg(box)
         TP = lltype.FuncType([], lltype.Signed)
         calldescr = cpu.calldescrof(TP, TP.ARGS, TP.RESULT)
-        regalloc._check_invariants()
-        regalloc.longevity = dict.fromkeys(boxes, (0, 1))
+        regalloc.rm._check_invariants()
         box = boxes[0]
         regalloc.position = 0
         regalloc.consider_call(ResOperation(rop.CALL, [box], BoxInt(),
                                             calldescr), None)
-        assert len(regalloc.assembler.stores) == 3
+        assert len(regalloc.assembler.movs) == 3
         #
         mark = regalloc.get_mark_gc_roots(cpu.gc_ll_descr.gcrootmap)
         assert mark[0] == 'compressed'

Modified: pypy/trunk/pypy/jit/backend/x86/test/test_regalloc.py
==============================================================================
--- pypy/trunk/pypy/jit/backend/x86/test/test_regalloc.py	(original)
+++ pypy/trunk/pypy/jit/backend/x86/test/test_regalloc.py	Tue Sep 29 09:21:05 2009
@@ -29,8 +29,7 @@
     gcrefs = None
 
     def __init__(self, cpu=None, gc_ll_descr=None):
-        self.loads = []
-        self.stores = []
+        self.movs = []
         self.performs = []
         self.lea = []
         self.cpu = cpu or CPU(None, None)
@@ -41,11 +40,8 @@
     def dump(self, *args):
         pass
 
-    def regalloc_load(self, from_loc, to_loc):
-        self.loads.append((from_loc, to_loc))
-
-    def regalloc_store(self, from_loc, to_loc):
-        self.stores.append((from_loc, to_loc))
+    def regalloc_mov(self, from_loc, to_loc):
+        self.movs.append((from_loc, to_loc))
 
     def regalloc_perform(self, op, arglocs, resloc):
         self.performs.append((op, arglocs, resloc))
@@ -61,8 +57,7 @@
     for reg in X86RegisterManager.all_regs:
         box = cls()
         allboxes.append(box)
-        regalloc.reg_bindings[box] = reg
-    regalloc.free_regs = []
+        regalloc.rm.try_allocate_reg()
     return allboxes
     
 class RegAllocForTests(RegAlloc):



More information about the Pypy-commit mailing list