[pypy-svn] r67322 - in pypy/branch/pyjitpl5-llmodel/pypy/jit/backend: llsupport x86

arigo at codespeak.net arigo at codespeak.net
Sat Aug 29 17:02:58 CEST 2009


Author: arigo
Date: Sat Aug 29 17:02:58 2009
New Revision: 67322

Modified:
   pypy/branch/pyjitpl5-llmodel/pypy/jit/backend/llsupport/gc.py
   pypy/branch/pyjitpl5-llmodel/pypy/jit/backend/llsupport/llmodel.py
   pypy/branch/pyjitpl5-llmodel/pypy/jit/backend/x86/assembler.py
   pypy/branch/pyjitpl5-llmodel/pypy/jit/backend/x86/regalloc.py
   pypy/branch/pyjitpl5-llmodel/pypy/jit/backend/x86/runner.py
Log:
A few tests start to pass again.


Modified: pypy/branch/pyjitpl5-llmodel/pypy/jit/backend/llsupport/gc.py
==============================================================================
--- pypy/branch/pyjitpl5-llmodel/pypy/jit/backend/llsupport/gc.py	(original)
+++ pypy/branch/pyjitpl5-llmodel/pypy/jit/backend/llsupport/gc.py	Sat Aug 29 17:02:58 2009
@@ -79,10 +79,9 @@
         rffi.cast(rffi.CArrayPtr(lltype.Signed), res)[ofs_length/WORD] = num_elem
         return res
 
-    def args_for_new(self, descrsize):
-        assert isinstance(descrsize, ConstDescr3)
-        size = descrsize.v0
-        return [size]
+    def args_for_new(self, sizedescr):
+        assert isinstance(sizedescr, SizeDescr)
+        return [sizedescr.size]
 
     def get_funcptr_for_new(self):
         return self.funcptr_for_new

Modified: pypy/branch/pyjitpl5-llmodel/pypy/jit/backend/llsupport/llmodel.py
==============================================================================
--- pypy/branch/pyjitpl5-llmodel/pypy/jit/backend/llsupport/llmodel.py	(original)
+++ pypy/branch/pyjitpl5-llmodel/pypy/jit/backend/llsupport/llmodel.py	Sat Aug 29 17:02:58 2009
@@ -3,6 +3,7 @@
 from pypy.rlib.objectmodel import we_are_translated, specialize
 from pypy.jit.metainterp.history import BoxInt, BoxPtr, set_future_values
 from pypy.jit.backend.model import AbstractCPU
+from pypy.jit.backend.logger import LLLogger
 from pypy.jit.backend.llsupport import symbolic
 from pypy.jit.backend.llsupport.symbolic import WORD, unroll_basic_sizes
 from pypy.jit.backend.llsupport.descr import get_size_descr, SizeDescr
@@ -20,6 +21,7 @@
 
 class AbstractLLCPU(AbstractCPU):
     is_oo = False
+    logger_cls = LLLogger
 
     def __init__(self, rtyper, stats, translate_support_code=False,
                  gcdescr=None):

Modified: pypy/branch/pyjitpl5-llmodel/pypy/jit/backend/x86/assembler.py
==============================================================================
--- pypy/branch/pyjitpl5-llmodel/pypy/jit/backend/x86/assembler.py	(original)
+++ pypy/branch/pyjitpl5-llmodel/pypy/jit/backend/x86/assembler.py	Sat Aug 29 17:02:58 2009
@@ -13,7 +13,6 @@
 from pypy.jit.backend.x86 import codebuf
 from pypy.jit.backend.x86.ri386 import *
 from pypy.jit.metainterp.resoperation import rop
-from pypy.jit.backend.logger import AbstractLogger
 
 # our calling convention - we pass three first args as edx, ecx and eax
 # and the rest stays on the stack
@@ -95,7 +94,7 @@
         self._exception_data = lltype.nullptr(rffi.CArray(lltype.Signed))
         self._exception_addr = 0
         self.mcstack = MachineCodeStack()
-        self.logger = x86Logger()
+        self.logger = cpu.logger_cls()
         self.fail_boxes_int = lltype.malloc(lltype.GcArray(lltype.Signed),
                                             MAX_FAIL_BOXES, zero=True)
         self.fail_boxes_ptr = lltype.malloc(lltype.GcArray(llmemory.GCREF),
@@ -103,8 +102,6 @@
 
     def make_sure_mc_exists(self):
         if self.mc is None:
-            from pypy.jit.backend.x86.runner import ConstDescr3
-
             rffi.cast(lltype.Signed, self.fail_boxes_int)   # workaround
             rffi.cast(lltype.Signed, self.fail_boxes_ptr)   # workaround
             self.fail_box_int_addr = rffi.cast(lltype.Signed,

Modified: pypy/branch/pyjitpl5-llmodel/pypy/jit/backend/x86/regalloc.py
==============================================================================
--- pypy/branch/pyjitpl5-llmodel/pypy/jit/backend/x86/regalloc.py	(original)
+++ pypy/branch/pyjitpl5-llmodel/pypy/jit/backend/x86/regalloc.py	Sat Aug 29 17:02:58 2009
@@ -12,6 +12,7 @@
 from pypy.jit.backend.llsupport import symbolic
 from pypy.jit.backend.x86.jump import remap_stack_layout
 from pypy.jit.metainterp.resoperation import rop
+from pypy.jit.backend.llsupport.descr import AbstractFieldDescr
 
 REGS = [eax, ecx, edx, ebx, esi, edi]
 WORD = 4
@@ -798,11 +799,14 @@
 
     def _unpack_arraydescr(self, arraydescr):
         from pypy.jit.backend.x86.runner import CPU386
+        xxx
         return CPU386.unpack_arraydescr(arraydescr)
 
     def _unpack_fielddescr(self, fielddescr):
-        from pypy.jit.backend.x86.runner import CPU386
-        ofs, size, ptr = CPU386.unpack_fielddescr(fielddescr)
+        assert isinstance(fielddescr, AbstractFieldDescr)
+        ofs = fielddescr.offset
+        size = fielddescr.get_field_size(self.translate_support_code)
+        ptr = fielddescr.is_pointer_field()
         return imm(ofs), imm(size), ptr
 
     def _common_consider_setfield(self, op, ignored, raw):

Modified: pypy/branch/pyjitpl5-llmodel/pypy/jit/backend/x86/runner.py
==============================================================================
--- pypy/branch/pyjitpl5-llmodel/pypy/jit/backend/x86/runner.py	(original)
+++ pypy/branch/pyjitpl5-llmodel/pypy/jit/backend/x86/runner.py	Sat Aug 29 17:02:58 2009
@@ -6,7 +6,6 @@
 from pypy.rlib.objectmodel import we_are_translated
 from pypy.jit.metainterp import history
 from pypy.jit.backend.x86.assembler import Assembler386, MAX_FAIL_BOXES
-from pypy.jit.backend.x86.assembler import x86Logger
 from pypy.jit.backend.llsupport.llmodel import AbstractLLCPU
 
 history.TreeLoop._x86_compiled = 0
@@ -15,7 +14,6 @@
 
 class CPU386(AbstractLLCPU):
     debug = True
-    logger_cls = x86Logger
 
     BOOTSTRAP_TP = lltype.FuncType([], lltype.Signed)
 
@@ -163,6 +161,11 @@
         self._guard_list.append(guard_op)
         return index
 
+    @staticmethod
+    def cast_ptr_to_int(x):
+        adr = llmemory.cast_ptr_to_adr(x)
+        return CPU386.cast_adr_to_int(adr)
+
 
 CPU = CPU386
 



More information about the Pypy-commit mailing list