[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