[pypy-svn] r77340 - pypy/trunk/pypy/jit/backend/x86
arigo at codespeak.net
arigo at codespeak.net
Fri Sep 24 14:06:44 CEST 2010
Author: arigo
Date: Fri Sep 24 14:06:41 2010
New Revision: 77340
Modified:
pypy/trunk/pypy/jit/backend/x86/assembler.py
Log:
A fix: loc_vtable might not fit in 32 bits.
Modified: pypy/trunk/pypy/jit/backend/x86/assembler.py
==============================================================================
--- pypy/trunk/pypy/jit/backend/x86/assembler.py (original)
+++ pypy/trunk/pypy/jit/backend/x86/assembler.py Fri Sep 24 14:06:41 2010
@@ -1028,7 +1028,7 @@
if self.cpu.vtable_offset is not None:
assert isinstance(loc, RegLoc)
assert isinstance(loc_vtable, ImmedLoc)
- self.mc.MOV_mi((loc.value, self.cpu.vtable_offset), loc_vtable.value)
+ self.mc.MOV(mem(loc, self.cpu.vtable_offset), loc_vtable)
# XXX genop_new is abused for all varsized mallocs with Boehm, for now
# (instead of genop_new_array, genop_newstr, genop_newunicode)
@@ -1863,6 +1863,7 @@
offset = self.mc.get_relative_pos() - jmp_adr
assert 0 < offset <= 127
self.mc.overwrite(jmp_adr-1, [chr(offset)])
+ # on 64-bits, 'tid' is a value that fits in 31 bits
self.mc.MOV_mi((eax.value, 0), tid)
self.mc.MOV(heap(nursery_free_adr), edx)
More information about the Pypy-commit
mailing list