Author: Armin Rigo <[email protected]>
Branch:
Changeset: r84863:d7d7ea3c1caa
Date: 2016-06-01 16:49 +0200
http://bitbucket.org/pypy/pypy/changeset/d7d7ea3c1caa/
Log: Forgot to use the gcmap-free version here
diff --git a/rpython/jit/backend/arm/opassembler.py
b/rpython/jit/backend/arm/opassembler.py
--- a/rpython/jit/backend/arm/opassembler.py
+++ b/rpython/jit/backend/arm/opassembler.py
@@ -467,7 +467,11 @@
assert saveerrloc.is_imm()
cb.emit_call_release_gil(saveerrloc.value)
else:
- cb.emit()
+ effectinfo = descr.get_extra_info()
+ if effectinfo is None or effectinfo.check_can_collect():
+ cb.emit()
+ else:
+ cb.emit_no_collect()
return fcond
def _genop_same_as(self, op, arglocs, regalloc, fcond):
diff --git a/rpython/jit/backend/ppc/opassembler.py
b/rpython/jit/backend/ppc/opassembler.py
--- a/rpython/jit/backend/ppc/opassembler.py
+++ b/rpython/jit/backend/ppc/opassembler.py
@@ -603,7 +603,11 @@
assert saveerrloc.is_imm()
cb.emit_call_release_gil(saveerrloc.value)
else:
- cb.emit()
+ effectinfo = descr.get_extra_info()
+ if effectinfo is None or effectinfo.check_can_collect():
+ cb.emit()
+ else:
+ cb.emit_no_collect()
def _genop_call(self, op, arglocs, regalloc):
oopspecindex = regalloc.get_oopspecindex(op)
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
@@ -2112,7 +2112,11 @@
assert isinstance(saveerrloc, ImmedLoc)
cb.emit_call_release_gil(saveerrloc.value)
else:
- cb.emit()
+ effectinfo = descr.get_extra_info()
+ if effectinfo is None or effectinfo.check_can_collect():
+ cb.emit()
+ else:
+ cb.emit_no_collect()
def _store_force_index(self, guard_op):
assert (guard_op.getopnum() == rop.GUARD_NOT_FORCED or
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit