[pypy-commit] pypy ppc-jit-backend: merge
hager
noreply at buildbot.pypy.org
Tue Nov 29 10:45:43 CET 2011
Author: hager <sven.hager at uni-duesseldorf.de>
Branch: ppc-jit-backend
Changeset: r49947:1676cac93ae4
Date: 2011-11-29 10:35 +0100
http://bitbucket.org/pypy/pypy/changeset/1676cac93ae4/
Log: merge
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
@@ -34,6 +34,7 @@
from pypy.jit.backend.x86.support import values_array
from pypy.rlib import rgc
from pypy.rpython.annlowlevel import llhelper
+from pypy.rlib.objectmodel import we_are_translated
memcpy_fn = rffi.llexternal('memcpy', [llmemory.Address, llmemory.Address,
rffi.SIZE_T], lltype.Void,
@@ -187,6 +188,7 @@
self.mc.stdu(r.SP.value, r.SP.value, -frame_depth)
self.mc.mflr(r.r0.value)
self.mc.std(r.r0.value, r.SP.value, frame_depth + 2 * WORD)
+ self.mc.std(r.SPP.value, r.SP.value, WORD)
# compute spilling pointer (SPP)
self.mc.addi(r.SPP.value, r.SP.value, frame_depth
@@ -266,13 +268,12 @@
stack_location = decode32(enc, i+1)
i += 4
if group == self.FLOAT_TYPE:
- value = decode64(stack, frame_depth - stack_location*WORD)
- self.fail_boxes_float.setitem(fail_index, value)
- continue
+ assert 0, "not implemented yet"
else:
- #value = decode32(spilling_area, spilling_area - stack_location * WORD)
- #import pdb; pdb.set_trace()
- value = decode32(spilling_area, spilling_depth - stack_location * WORD)
+ if IS_PPC_32:
+ value = decode32(spilling_area, spilling_depth - stack_location * WORD)
+ else:
+ value = decode64(spilling_area, spilling_depth - stack_location * WORD)
else: # REG_LOC
reg = ord(enc[i])
if group == self.FLOAT_TYPE:
@@ -597,7 +598,7 @@
self._make_prologue(regalloc_head, frame_depth)
direct_bootstrap_code = self.mc.currpos()
- self.gen_direct_bootstrap_code(loophead, looptoken, inputargs, frame_depth)
+ #self.gen_direct_bootstrap_code(loophead, looptoken, inputargs, frame_depth)
self.write_pending_failure_recoveries()
loop_start = self.materialize_loop(looptoken, False)
@@ -615,6 +616,11 @@
else:
looptoken.ppc_code = self.gen_64_bit_func_descr(real_start)
self.process_pending_guards(loop_start)
+ if not we_are_translated():
+ print 'Loop', inputargs, operations
+ self.mc._dump_trace(loop_start, 'loop_%s.asm' % self.cpu.total_compiled_loops)
+ print 'Done assembling loop with token %r' % looptoken
+
self._teardown()
def assemble_bridge(self, faildescr, inputargs, operations, looptoken, log):
More information about the pypy-commit
mailing list