[pypy-svn] r62650 - in pypy/branch/pyjitpl5/pypy/jit/backend/x86: . test

fijal at codespeak.net fijal at codespeak.net
Fri Mar 6 16:35:41 CET 2009


Author: fijal
Date: Fri Mar  6 16:35:38 2009
New Revision: 62650

Modified:
   pypy/branch/pyjitpl5/pypy/jit/backend/x86/assembler.py
   pypy/branch/pyjitpl5/pypy/jit/backend/x86/regalloc.py
   pypy/branch/pyjitpl5/pypy/jit/backend/x86/runner.py
   pypy/branch/pyjitpl5/pypy/jit/backend/x86/test/test_runner.py
Log:
finish bits to be able to run test_runner


Modified: pypy/branch/pyjitpl5/pypy/jit/backend/x86/assembler.py
==============================================================================
--- pypy/branch/pyjitpl5/pypy/jit/backend/x86/assembler.py	(original)
+++ pypy/branch/pyjitpl5/pypy/jit/backend/x86/assembler.py	Fri Mar  6 16:35:38 2009
@@ -7,7 +7,8 @@
 from pypy.annotation import model as annmodel
 from pypy.tool.uid import fixid
 from pypy.jit.backend.x86.regalloc import (RegAlloc, FRAMESIZE, WORD, REGS,
-                                      arg_pos, lower_byte, stack_pos, Perform)
+                                      arg_pos, lower_byte, stack_pos, Perform,
+                                      RETURN)
 from pypy.rlib.objectmodel import we_are_translated, specialize
 from pypy.jit.backend.x86 import codebuf
 from pypy.jit.backend.x86.support import gc_malloc_fnaddr
@@ -529,15 +530,15 @@
     #    self.gen_call(op, arglocs, resloc)
     #    self.mc.MOVZX(eax, eax)
 
-genop_discard_list = [None] * rop._LAST
-genop_list = [None] * rop._LAST
-genop_guard_list = [None] * rop._LAST
+genop_discard_list = [None] * (RETURN + 1)
+genop_list = [None] * (RETURN + 1)
+genop_guard_list = [None] * (RETURN + 1)
 
 for name, value in Assembler386.__dict__.iteritems():
     if name.startswith('genop_'):
         opname = name[len('genop_'):]
-        if opname == 'malloc_varsize':
-            num = MALLOC_VARSIZE
+        if opname == 'return':
+            num = RETURN
         else:
             num = getattr(rop, opname.upper())
         if value.func_code.co_argcount == 3:

Modified: pypy/branch/pyjitpl5/pypy/jit/backend/x86/regalloc.py
==============================================================================
--- pypy/branch/pyjitpl5/pypy/jit/backend/x86/regalloc.py	(original)
+++ pypy/branch/pyjitpl5/pypy/jit/backend/x86/regalloc.py	Fri Mar  6 16:35:38 2009
@@ -17,6 +17,8 @@
 WORD = 4
 FRAMESIZE = 1024    # XXX should not be a constant at all!!
 
+RETURN = rop._LAST + 1
+
 class TempBox(Box):
     def __init__(self):
         pass
@@ -779,7 +781,7 @@
 
     def _unpack_fielddescr(self, fielddescr):
         from pypy.jit.backend.x86.runner import CPU386
-        ofs, size, _ = CPU386.unpack_fielddescr(arraydescr)
+        ofs, size, _ = CPU386.unpack_fielddescr(fielddescr)
         return imm(ofs), imm(size)
 
     def consider_setfield_gc(self, op, ignored):
@@ -949,12 +951,15 @@
         self.eventually_free_vars(op.args)
         return ops + laterops + [PerformDiscard(op, [])]
 
-oplist = [None] * rop._LAST
+oplist = [None] * (RETURN + 1)
 
 for name, value in RegAlloc.__dict__.iteritems():
     if name.startswith('consider_'):
         name = name[len('consider_'):]
-        num = getattr(rop, name.upper())
+        if name == 'return':
+            num = RETURN
+        else:
+            num = getattr(rop, name.upper())
         oplist[num] = value
 
 def arg_pos(i):

Modified: pypy/branch/pyjitpl5/pypy/jit/backend/x86/runner.py
==============================================================================
--- pypy/branch/pyjitpl5/pypy/jit/backend/x86/runner.py	(original)
+++ pypy/branch/pyjitpl5/pypy/jit/backend/x86/runner.py	Fri Mar  6 16:35:38 2009
@@ -514,6 +514,13 @@
         rffi.cast(rffi.CArrayPtr(lltype.Signed), res)[ofs_length/WORD] = num_elem
         return BoxPtr(self.cast_int_to_gcref(res))
 
+    def do_strsetitem(self, args):
+        basesize, itemsize, ofs_length = symbolic.get_array_token(rstr.STR)
+        index = args[1].getint()
+        v = args[2].getint()
+        a = args[0].getptr(llmemory.GCREF)
+        rffi.cast(rffi.CArrayPtr(lltype.Char), a)[index + basesize] = chr(v)
+
     # ------------------- helpers and descriptions --------------------
 
     @staticmethod

Modified: pypy/branch/pyjitpl5/pypy/jit/backend/x86/test/test_runner.py
==============================================================================
--- pypy/branch/pyjitpl5/pypy/jit/backend/x86/test/test_runner.py	(original)
+++ pypy/branch/pyjitpl5/pypy/jit/backend/x86/test/test_runner.py	Fri Mar  6 16:35:38 2009
@@ -4,7 +4,7 @@
 from pypy.jit.metainterp.history import (BoxInt, BoxPtr, ConstInt, ConstPtr,
                                          Box)
 from pypy.jit.backend.x86.runner import CPU, GuardFailed
-from pypy.jit.backend.x86.regalloc import WORD
+from pypy.jit.backend.x86.regalloc import WORD, RETURN
 from pypy.jit.backend.x86 import symbolic
 from pypy.jit.metainterp.resoperation import rop
 import ctypes
@@ -71,7 +71,7 @@
             results = [result]
         operations = [mp,
                       ResOperation(opnum, livevarlist, result),
-                      ResOperation(rop.RETURN, results, None)]
+                      ResOperation(RETURN, results, None)]
         if operations[1].is_guard():
             operations[1].liveboxes = []
         self.cpu.compile_operations(operations, verbose=False)



More information about the Pypy-commit mailing list