[pypy-commit] pypy ppc-jit-backend: (bivab, shager): Started correct implementation of FINISH operation.

hager noreply at buildbot.pypy.org
Fri Oct 14 10:47:49 CEST 2011


Author: hager <sven.hager at uni-duesseldorf.de>
Branch: ppc-jit-backend
Changeset: r48049:67b568567990
Date: 2011-10-14 10:46 +0200
http://bitbucket.org/pypy/pypy/changeset/67b568567990/

Log:	(bivab, shager): Started correct implementation of FINISH operation.

diff --git a/pypy/jit/backend/ppc/ppcgen/opassembler.py b/pypy/jit/backend/ppc/ppcgen/opassembler.py
--- a/pypy/jit/backend/ppc/ppcgen/opassembler.py
+++ b/pypy/jit/backend/ppc/ppcgen/opassembler.py
@@ -52,15 +52,7 @@
         #                        #           then the guard fails.
 
     def emit_finish(self, op, arglocs, regalloc):
-        descr = op.getdescr()
-        identifier = self._get_identifier_from_descr(descr)
-        self.cpu.saved_descr[identifier] = descr
-        args = op.getarglist()
-        for index, arg in enumerate(arglocs):
-            addr = self.fail_boxes_int.get_addr_for_num(index)
-            self.store_reg(arg, addr)
-        self.load_imm(r.RES.value, identifier) # set return value
-        self.branch_abs(self.exit_code_adr)
+        self.gen_exit_stub(op.getdescr(), op.getarglist(), arglocs)
 
     def emit_jump(self, op, arglocs, regalloc):
         descr = op.getdescr()
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
@@ -199,8 +199,7 @@
         return locs + [res]
 
     def prepare_finish(self, op):
-        #args = [locations.imm(self.frame_manager.frame_depth)]
-        args = []
+        args = [locations.imm(self.frame_manager.frame_depth)]
         for i in range(op.numargs()):
             arg = op.getarg(i)
             if arg:


More information about the pypy-commit mailing list