Author: Armin Rigo <ar...@tunes.org> Branch: Changeset: r46211:84796b58d72a Date: 2011-08-02 16:39 +0200 http://bitbucket.org/pypy/pypy/changeset/84796b58d72a/
Log: This code should only be used on 32-bit; it does not really make sense on 64-bit. diff --git a/pypy/jit/backend/x86/codebuf.py b/pypy/jit/backend/x86/codebuf.py --- a/pypy/jit/backend/x86/codebuf.py +++ b/pypy/jit/backend/x86/codebuf.py @@ -25,8 +25,11 @@ self.init_block_builder() # a list of relative positions; for each position p, the bytes # at [p-4:p] encode an absolute address that will need to be - # made relative. - self.relocations = [] + # made relative. Only works on 32-bit! + if WORD == 4: + self.relocations = [] + else: + self.relocations = None # # ResOperation --> offset in the assembly. # ops_offset[None] represents the beginning of the code after the last op @@ -42,9 +45,10 @@ def copy_to_raw_memory(self, addr): self._copy_to_raw_memory(addr) - for reloc in self.relocations: - p = addr + reloc - adr = rffi.cast(rffi.LONGP, p - WORD) - adr[0] = intmask(adr[0] - p) + if self.relocations is not None: + for reloc in self.relocations: + p = addr + reloc + adr = rffi.cast(rffi.LONGP, p - WORD) + adr[0] = intmask(adr[0] - p) valgrind.discard_translations(addr, self.get_relative_pos()) self._dump(addr, "jit-backend-dump", backend_name) _______________________________________________ pypy-commit mailing list pypy-commit@python.org http://mail.python.org/mailman/listinfo/pypy-commit