[pypy-commit] pypy jitframe-on-heap: fix pypyjit module
fijal
noreply at buildbot.pypy.org
Fri Jan 25 16:24:42 CET 2013
Author: Maciej Fijalkowski <fijall at gmail.com>
Branch: jitframe-on-heap
Changeset: r60454:da25aa3490be
Date: 2013-01-25 17:24 +0200
http://bitbucket.org/pypy/pypy/changeset/da25aa3490be/
Log: fix pypyjit module
diff --git a/pypy/TODO b/pypy/TODO
--- a/pypy/TODO
+++ b/pypy/TODO
@@ -6,4 +6,5 @@
* kill jit2gc on translator
* fix test_singlefloats in test_calling_conventions
* slowpaths can have more variants depending on how many registers we're using
- (like floats vs non-floats for failures)
\ No newline at end of file
+ (like floats vs non-floats for failures)
+* fix jit hooks
\ No newline at end of file
diff --git a/pypy/module/pypyjit/interp_resop.py b/pypy/module/pypyjit/interp_resop.py
--- a/pypy/module/pypyjit/interp_resop.py
+++ b/pypy/module/pypyjit/interp_resop.py
@@ -5,14 +5,14 @@
from pypy.interpreter.gateway import unwrap_spec, interp2app
from pypy.interpreter.pycode import PyCode
from pypy.interpreter.error import OperationError
-from rpython.rtyper.lltypesystem import lltype, llmemory
+from rpython.rtyper.lltypesystem import lltype
from rpython.rtyper.annlowlevel import cast_base_ptr_to_instance, hlstr
from rpython.rtyper.lltypesystem.rclass import OBJECT
-from rpython.jit.metainterp.resoperation import rop, AbstractResOp
+from rpython.jit.metainterp.resoperation import rop
from rpython.rlib.nonconst import NonConstant
from rpython.rlib import jit_hooks
from rpython.rlib.jit import Counters
-from rpython.rlib.rarithmetic import r_uint
+from rpython.rlib.objectmodel import compute_unique_id
from pypy.module.pypyjit.interp_jit import pypyjitdriver
class Cache(object):
@@ -270,7 +270,8 @@
self.jd_name = debug_info.get_jitdriver().name
self.type = debug_info.type
if is_bridge:
- self.bridge_no = debug_info.fail_descr_no
+ self.bridge_no = compute_unique_id(debug_info.fail_descr)
+ #self.bridge_no = debug_info.fail_descr_no
self.w_green_key = space.w_None
else:
self.w_green_key = wrap_greenkey(space,
diff --git a/pypy/module/pypyjit/test/test_jit_hook.py b/pypy/module/pypyjit/test/test_jit_hook.py
--- a/pypy/module/pypyjit/test/test_jit_hook.py
+++ b/pypy/module/pypyjit/test/test_jit_hook.py
@@ -2,7 +2,8 @@
import py
from pypy.interpreter.gateway import interp2app
from pypy.interpreter.pycode import PyCode
-from rpython.jit.metainterp.history import JitCellToken, ConstInt, ConstPtr
+from rpython.jit.metainterp.history import JitCellToken, ConstInt, ConstPtr,\
+ BasicFailDescr
from rpython.jit.metainterp.resoperation import rop
from rpython.jit.metainterp.logger import Logger
from rpython.rtyper.annlowlevel import (cast_instance_to_base_ptr,
@@ -69,7 +70,7 @@
oplist, 'loop', greenkey)
di_loop.asminfo = AsmInfo(offset, 0, 0)
di_bridge = JitDebugInfo(MockJitDriverSD, logger, JitCellToken(),
- oplist, 'bridge', fail_descr_no=0)
+ oplist, 'bridge', fail_descr=BasicFailDescr())
di_bridge.asminfo = AsmInfo(offset, 0, 0)
def interp_on_compile():
diff --git a/rpython/jit/backend/x86/test/test_gc_integration.py b/rpython/jit/backend/x86/test/test_gc_integration.py
--- a/rpython/jit/backend/x86/test/test_gc_integration.py
+++ b/rpython/jit/backend/x86/test/test_gc_integration.py
@@ -564,3 +564,17 @@
assert thing == rffi.cast(lltype.Signed, cpu.gc_ll_descr.nursery)
assert cpu.gc_ll_descr.nursery_ptrs[0] == thing + sizeof.size
assert rffi.cast(JITFRAMEPTR, cpu.gc_ll_descr.write_barrier_on_frame_called) == frame
+
+ def test_call_release_gil(self):
+ cpu = self.cpu
+
+ def f(x):
+ import pdb
+ pdb.set_trace()
+
+ loop = self.parse("""
+ [f0]
+ f1 = call_release_gil(ConstClass(fptr), f0, descr=calldescr)
+ finish(f1)
+ """, namespace={
+ })
More information about the pypy-commit
mailing list