Author: hager <[email protected]>
Branch: ppc-jit-backend
Changeset: r51286:0993530a85a0
Date: 2012-01-12 17:35 +0100
http://bitbucket.org/pypy/pypy/changeset/0993530a85a0/
Log: make sign extension more explicit
diff --git a/pypy/jit/backend/ppc/ppcgen/arch.py
b/pypy/jit/backend/ppc/ppcgen/arch.py
--- a/pypy/jit/backend/ppc/ppcgen/arch.py
+++ b/pypy/jit/backend/ppc/ppcgen/arch.py
@@ -7,16 +7,17 @@
import sys
if sys.maxint == (2**31 - 1):
WORD = 4
+ DWORD = 2 * WORD
IS_PPC_32 = True
BACKCHAIN_SIZE = 2
FPR_SAVE_AREA = len(NONVOLATILES_FLOAT) * DWORD
else:
WORD = 8
+ DWORD = 2 * WORD
IS_PPC_32 = False
BACKCHAIN_SIZE = 6
FPR_SAVE_AREA = len(NONVOLATILES_FLOAT) * WORD
-DWORD = 2 * WORD
IS_PPC_64 = not IS_PPC_32
MY_COPY_OF_REGS = 0
diff --git a/pypy/jit/backend/ppc/ppcgen/helper/assembler.py
b/pypy/jit/backend/ppc/ppcgen/helper/assembler.py
--- a/pypy/jit/backend/ppc/ppcgen/helper/assembler.py
+++ b/pypy/jit/backend/ppc/ppcgen/helper/assembler.py
@@ -5,7 +5,7 @@
from pypy.jit.metainterp.history import FLOAT
from pypy.rlib.unroll import unrolling_iterable
import pypy.jit.backend.ppc.ppcgen.register as r
-from pypy.rpython.lltypesystem import rffi
+from pypy.rpython.lltypesystem import rffi, lltype
def gen_emit_cmp_op(condition, signed=True):
def f(self, op, arglocs, regalloc):
@@ -68,7 +68,8 @@
| ord(mem[index]) << 24)
rffi_value = rffi.cast(rffi.INT, value)
- return int(rffi_value)
+ # do sign extension
+ return rffi.cast(lltype.Signed, rffi_value)
def encode64(mem, i, n):
mem[i+7] = chr(n & 0xFF)
_______________________________________________
pypy-commit mailing list
[email protected]
http://mail.python.org/mailman/listinfo/pypy-commit