Author: Maciej Fijalkowski <[email protected]>
Branch: jitframe-on-heap
Changeset: r60859:906f8afffa8b
Date: 2013-02-04 11:16 +0200
http://bitbucket.org/pypy/pypy/changeset/906f8afffa8b/
Log: fix the assertion
diff --git a/rpython/jit/backend/llsupport/gc.py
b/rpython/jit/backend/llsupport/gc.py
--- a/rpython/jit/backend/llsupport/gc.py
+++ b/rpython/jit/backend/llsupport/gc.py
@@ -159,6 +159,9 @@
unicode_type_id = 0
get_malloc_slowpath_addr = None
+ def is_shadow_stack(self):
+ return False
+
@classmethod
def configure_boehm_once(cls):
""" Configure boehm only once, since we don't cache failures
@@ -319,6 +322,9 @@
kind = 'framework'
round_up = True
+ def is_shadow_stack(self):
+ return self.gcrootmap.is_shadow_stack
+
def __init__(self, gcdescr, translator, rtyper, llop1=llop,
really_not_translated=False):
GcLLDescription.__init__(self, gcdescr, translator, rtyper)
diff --git a/rpython/jit/backend/x86/assembler.py
b/rpython/jit/backend/x86/assembler.py
--- a/rpython/jit/backend/x86/assembler.py
+++ b/rpython/jit/backend/x86/assembler.py
@@ -1232,8 +1232,9 @@
x = r10
remap_frame_layout(self, src_locs, dst_locs, X86_64_SCRATCH_REG)
if can_collect:
- self.push_gcmap(self.mc, self._regalloc.get_gcmap([eax],
noregs=True),
- store=True)
+ noregs = self.cpu.gc_ll_descr.is_shadow_stack()
+ gcmap = self._regalloc.get_gcmap([eax], noregs=noregs)
+ self.push_gcmap(self.mc, gcmap, store=True)
self.mc.CALL(x)
if can_collect:
self._reload_frame_if_necessary(self.mc)
_______________________________________________
pypy-commit mailing list
[email protected]
http://mail.python.org/mailman/listinfo/pypy-commit