[pypy-commit] pypy ppc-jit-backend: Use encode64/decode64 for IMM on PPC64.
edelsohn
noreply at buildbot.pypy.org
Fri Dec 30 16:15:04 CET 2011
Author: edelsohn
Branch: ppc-jit-backend
Changeset: r50957:e2765d568453
Date: 2011-12-30 10:14 -0500
http://bitbucket.org/pypy/pypy/changeset/e2765d568453/
Log: Use encode64/decode64 for IMM on PPC64.
diff --git a/pypy/jit/backend/ppc/ppcgen/ppc_assembler.py b/pypy/jit/backend/ppc/ppcgen/ppc_assembler.py
--- a/pypy/jit/backend/ppc/ppcgen/ppc_assembler.py
+++ b/pypy/jit/backend/ppc/ppcgen/ppc_assembler.py
@@ -15,8 +15,8 @@
FPR_SAVE_AREA,
FLOAT_INT_CONVERSION, FORCE_INDEX)
from pypy.jit.backend.ppc.ppcgen.helper.assembler import (gen_emit_cmp_op,
- encode32, decode32,
- decode64,
+ encode32, encode64,
+ decode32, decode64,
count_reg_args,
Saved_Volatiles)
import pypy.jit.backend.ppc.ppcgen.register as r
@@ -199,8 +199,12 @@
if res == self.IMM_LOC:
# imm value
if group == self.INT_TYPE or group == self.REF_TYPE:
- value = decode32(enc, i+1)
- i += 4
+ if IS_PPC_32:
+ value = decode32(enc, i+1)
+ i += 4
+ else:
+ value = decode64(enc, i+1)
+ i += 8
else:
assert 0, "not implemented yet"
elif res == self.STACK_LOC:
@@ -620,8 +624,12 @@
assert (arg.type == INT or arg.type == REF
or arg.type == FLOAT)
mem[j] = self.IMM_LOC
- encode32(mem, j+1, loc.getint())
- j += 5
+ if IS_PPC_32:
+ encode32(mem, j+1, loc.getint())
+ j += 5
+ else:
+ encode64(mem, j+1, loc.getint())
+ j += 9
else:
mem[j] = self.STACK_LOC
encode32(mem, j+1, loc.position)
More information about the pypy-commit
mailing list