[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