[pypy-commit] pypy ppc-jit-backend: (bivab, hager): fix off-by-one bug in computation of offset to stack locations
hager
noreply at buildbot.pypy.org
Tue Jan 10 12:19:11 CET 2012
Author: hager <sven.hager at uni-duesseldorf.de>
Branch: ppc-jit-backend
Changeset: r51198:308dd2d5e89f
Date: 2012-01-10 12:18 +0100
http://bitbucket.org/pypy/pypy/changeset/308dd2d5e89f/
Log: (bivab, hager): fix off-by-one bug in computation of offset to stack
locations
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
@@ -709,14 +709,14 @@
# move immediate value to memory
elif loc.is_stack():
self.mc.alloc_scratch_reg()
- offset = loc.as_key() * WORD - WORD
+ offset = loc.as_key() * WORD
self.mc.load_imm(r.SCRATCH.value, value)
self.mc.store(r.SCRATCH.value, r.SPP.value, offset)
self.mc.free_scratch_reg()
return
assert 0, "not supported location"
elif prev_loc.is_stack():
- offset = prev_loc.as_key() * WORD - WORD
+ offset = prev_loc.as_key() * WORD
# move from memory to register
if loc.is_reg():
reg = loc.as_key()
@@ -724,7 +724,7 @@
return
# move in memory
elif loc.is_stack():
- target_offset = loc.as_key() * WORD - WORD
+ target_offset = loc.as_key() * WORD
self.mc.alloc_scratch_reg()
self.mc.load(r.SCRATCH.value, r.SPP.value, offset)
self.mc.store(r.SCRATCH.value, r.SPP.value, target_offset)
@@ -740,7 +740,7 @@
return
# move to memory
elif loc.is_stack():
- offset = loc.as_key() * WORD - WORD
+ offset = loc.as_key() * WORD
self.mc.store(reg, r.SPP.value, offset)
return
assert 0, "not supported location"
diff --git a/pypy/jit/backend/ppc/ppcgen/regalloc.py b/pypy/jit/backend/ppc/ppcgen/regalloc.py
--- a/pypy/jit/backend/ppc/ppcgen/regalloc.py
+++ b/pypy/jit/backend/ppc/ppcgen/regalloc.py
@@ -161,7 +161,7 @@
arg_index = 0
count = 0
n_register_args = len(r.PARAM_REGS)
- cur_frame_pos = -self.assembler.OFFSET_STACK_ARGS // WORD
+ cur_frame_pos = -self.assembler.OFFSET_STACK_ARGS // WORD + 1
for box in inputargs:
assert isinstance(box, Box)
# handle inputargs in argument registers
More information about the pypy-commit
mailing list