[pypy-commit] pypy stmgc-c7: More fixes

arigo noreply at buildbot.pypy.org
Wed May 7 00:37:35 CEST 2014


Author: Armin Rigo <arigo at tunes.org>
Branch: stmgc-c7
Changeset: r71353:8bd1bd69b25c
Date: 2014-05-07 00:36 +0200
http://bitbucket.org/pypy/pypy/changeset/8bd1bd69b25c/

Log:	More fixes

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
@@ -2555,14 +2555,16 @@
         #
         if not IS_X86_64:
             todo()   # "needed for X86_64_SCRATCH_REG"
-        psnlfm_adr = rstm.adr_pypy_stm_nursery_low_fill_mark
         nf_adr = rstm.adr_nursery_free        # STM_SEGMENT->nursery_current
         assert rx86.fits_in_32bits(nf_adr)    # nf_adr is in page 1
         self.mc.MOV_rj(X86_64_SCRATCH_REG.value, (self.SEGMENT_GC, nf_adr))
         if increase_nursery:
             self.mc.ADD_ri(X86_64_SCRATCH_REG.value, WORD)
             self.mc.MOV_jr((self.SEGMENT_GC, nf_adr), X86_64_SCRATCH_REG.value)
-        self.mc.CMP(X86_64_SCRATCH_REG, self.heap_tl(psnlfm_adr))
+        psnlfm_adr = rstm.adr_pypy_stm_nursery_low_fill_mark
+        psnlfm_adr -= stmtlocal.threadlocal_base()
+        assert rx86.fits_in_32bits(psnlfm_adr)  # should be %fs-local
+        self.mc.CMP_rj(X86_64_SCRATCH_REG.value, (self.SEGMENT_TL, psnlfm_adr))
 
     def genop_stm_should_break_transaction(self, op, arglocs, result_loc):
         increase_nursery = op.getarg(0).getint()


More information about the pypy-commit mailing list