Author: Armin Rigo <ar...@tunes.org>
Branch: ppc-updated-backend
Changeset: r79096:fbf695116cb5
Date: 2015-08-21 01:28 -0700
http://bitbucket.org/pypy/pypy/changeset/fbf695116cb5/

Log:    kill kill kill old code

diff --git a/rpython/jit/backend/llsupport/llmodel.py 
b/rpython/jit/backend/llsupport/llmodel.py
--- a/rpython/jit/backend/llsupport/llmodel.py
+++ b/rpython/jit/backend/llsupport/llmodel.py
@@ -282,7 +282,6 @@
                     ll_threadlocal_addr = rffi.cast(llmemory.Address,
                         self._debug_errno_container)
                 llop.gc_writebarrier(lltype.Void, ll_frame)
-                import pdb;pdb.set_trace()
                 ll_frame = func(ll_frame, ll_threadlocal_addr)
             finally:
                 if not self.translate_support_code:
diff --git a/rpython/jit/backend/ppc/assembler.py 
b/rpython/jit/backend/ppc/assembler.py
deleted file mode 100644
--- a/rpython/jit/backend/ppc/assembler.py
+++ /dev/null
@@ -1,95 +0,0 @@
-import os
-from rpython.jit.backend.ppc import form
-#from rpython.jit.backend.ppc import asmfunc
-
-# don't be fooled by the fact that there's some separation between a
-# generic assembler class and a PPC assembler class... there's
-# certainly a RISC dependency in here, and quite possibly a PPC
-# dependency or two too.  I personally don't care :)
-
-class AssemblerException(Exception):
-    pass
-
-class Assembler(object):
-    def __init__(self):
-        self.insts = []
-        self.labels = {}
-        self.rlabels = {}
-
-    def reset(self):
-        self.insts = []
-        self.labels = {}
-        self.rlabels = {}
-
-    def label(self, name):
-        if name in self.labels:
-            raise AssemblerException, "duplicate label '%s'"%(name,)
-        self.labels[name] = len(self.insts)*4
-        self.rlabels.setdefault(len(self.insts)*4, []).append(name)
-
-    def labelname(self, base="L"):
-        i = 0
-        while 1:
-            ln = base + str(i)
-            if ln not in self.labels:
-                return ln
-            i += 1
-
-    def get_number_of_ops(self):
-        return len(self.insts)
-
-    # XXX don't need multiplication
-    def get_rel_pos(self):
-        return 4 * len(self.insts)
-
-    def patch_op(self, index):
-        last = self.insts.pop()
-        self.insts[index] = last
-
-    def assemble0(self, dump=os.environ.has_key('PPY_DEBUG')):
-        for i, inst in enumerate(self.insts):
-            for f in inst.lfields:
-                l = self.labels[inst.fields[f]] - 4*i
-                inst.fields[f] = l
-        buf = []
-        for inst in self.insts:
-            buf.append(inst)
-        if dump:
-            for i in range(len(buf)):
-                inst = self.disassemble(buf[i], self.rlabels, i*4)
-                for lab in self.rlabels.get(4*i, []):
-                    print "%s:"%(lab,)
-                print "\t%4d    %s"%(4*i, inst)
-        return buf
-
-    def assemble(self, dump=os.environ.has_key('PPY_DEBUG')):
-        c = asmfunc.AsmCode(len(self.insts)*4)
-        for i in self.insts:
-            c.emit(i)
-
-    def get_assembler_function(self):
-        c = asmfunc.AsmCode(len(self.insts)*4)
-        for i in self.insts:
-            c.emit(i)
-        return c.get_function()
-
-    def get_idescs(cls):
-        r = []
-        for name in dir(cls):
-            a = getattr(cls, name)
-            if isinstance(a, form.IDesc):
-                r.append((name, a))
-        return r
-    get_idescs = classmethod(get_idescs)
-
-    def disassemble(cls, inst, labels={}, pc=0):
-        matches = []
-        idescs = cls.get_idescs()
-        for name, idesc in idescs:
-            m = idesc.match(inst)
-            if m > 0:
-                matches.append((m, idesc, name))
-        if matches:
-            score, idesc, name = max(matches)
-            return idesc.disassemble(name, inst, labels, pc)
-    disassemble = classmethod(disassemble)
diff --git a/rpython/jit/backend/ppc/codebuilder.py 
b/rpython/jit/backend/ppc/codebuilder.py
--- a/rpython/jit/backend/ppc/codebuilder.py
+++ b/rpython/jit/backend/ppc/codebuilder.py
@@ -2,7 +2,6 @@
 from rpython.jit.backend.ppc.ppc_form import PPCForm as Form
 from rpython.jit.backend.ppc.locations import RegisterLocation
 from rpython.jit.backend.ppc.ppc_field import ppc_fields
-from rpython.jit.backend.ppc.assembler import Assembler
 from rpython.jit.backend.ppc.arch import (IS_PPC_32, WORD, IS_PPC_64, 
                                        LR_BC_OFFSET)
 import rpython.jit.backend.ppc.register as r
@@ -54,7 +53,7 @@
 MDI = Form("rA", "rS", "sh", "mbe", "XO5", "Rc")
 MDS = Form("rA", "rS", "rB", "mbe", "XO7", "Rc")
 
-class BasicPPCAssembler(Assembler):
+class BasicPPCAssembler(object):
 
     def disassemble(cls, inst, labels={}, pc=0):
         cache = cls.__dict__.get('idesc cache')
@@ -1133,11 +1132,6 @@
         else:
             self.sld(target_reg, from_reg, numbit_reg)
 
-    def prepare_insts_blocks(self, show=False):
-        insts = self.insts
-        for inst in insts:
-            self.write32(inst)
-
     def _dump_trace(self, addr, name, formatter=-1):
         if not we_are_translated():
             if formatter != -1:
diff --git a/rpython/jit/backend/ppc/ppc_assembler.py 
b/rpython/jit/backend/ppc/ppc_assembler.py
--- a/rpython/jit/backend/ppc/ppc_assembler.py
+++ b/rpython/jit/backend/ppc/ppc_assembler.py
@@ -424,7 +424,6 @@
         mc.addi(r.SP.value, r.SP.value, frame_size)
         mc.b_abs(self.propagate_exception_path)
 
-        mc.prepare_insts_blocks()
         rawstart = mc.materialize(self.cpu, [])
         # here we do not need a function descr. This is being only called using
         # an internal ABI
@@ -526,7 +525,6 @@
         mc.addi(r.SP.value, r.SP.value, both_framesizes)
         mc.blr()
 
-        mc.prepare_insts_blocks()
         rawstart = mc.materialize(self.cpu, [])
         if IS_PPC_64:
             self.write_64_bit_func_descr(rawstart, rawstart+3*WORD)
@@ -584,7 +582,6 @@
         mc.addi(r.SP.value, r.SP.value, frame_size)
         mc.blr()
         #
-        mc.prepare_insts_blocks()
         rawstart = mc.materialize(self.cpu, [])
         self.wb_slowpath[withcards + 2 * withfloats] = rawstart
 
@@ -598,7 +595,6 @@
 
         mc.load_imm(r.RES, self.cpu.propagate_exception_descr)
         self._gen_epilogue(mc)
-        mc.prepare_insts_blocks()
         self.propagate_exception_path = mc.materialize(self.cpu, [])
 
     # The code generated here serves as an exit stub from
@@ -629,7 +625,6 @@
         # generate return and restore registers
         self._gen_epilogue(mc)
 
-        mc.prepare_insts_blocks()
         return mc.materialize(self.cpu, [], self.cpu.gc_ll_descr.gcrootmap)
 
     def _gen_epilogue(self, mc):
@@ -945,7 +940,6 @@
         frame_depth -= self.OFFSET_SPP_TO_OLD_BACKCHAIN
         mc.load_imm(r.SCRATCH, -frame_depth)
         mc.add(r.SP.value, r.SPP.value, r.SCRATCH.value)
-        mc.prepare_insts_blocks()
         mc.copy_to_raw_memory(rawstart + sp_patch_location)
 
     DESCR_REF       = 0x00
@@ -1051,7 +1045,6 @@
         return looptoken._ppc_arglocs
 
     def materialize_loop(self, looptoken, show=False):
-        self.mc.prepare_insts_blocks(show)
         self.datablockwrapper.done()
         self.datablockwrapper = None
         allblocks = self.get_asmmemmgr_blocks(looptoken)
@@ -1099,7 +1092,6 @@
                 mc = PPCBuilder()
                 offset = tok.pos_recovery_stub - tok.offset
                 mc.b_cond_offset(offset, tok.fcond)
-                mc.prepare_insts_blocks(True)
                 mc.copy_to_raw_memory(block_start + tok.offset)
             else:
                 clt.invalidate_positions.append((block_start + tok.offset,
@@ -1111,7 +1103,6 @@
         mc = PPCBuilder()
         patch_addr = faildescr._ppc_block_start + faildescr._ppc_guard_pos
         mc.b_abs(bridge_addr)
-        mc.prepare_insts_blocks()
         mc.copy_to_raw_memory(patch_addr)
         faildescr._failure_recovery_code_ofs = 0
 
diff --git a/rpython/jit/backend/ppc/rassemblermaker.py 
b/rpython/jit/backend/ppc/rassemblermaker.py
--- a/rpython/jit/backend/ppc/rassemblermaker.py
+++ b/rpython/jit/backend/ppc/rassemblermaker.py
@@ -61,6 +61,8 @@
     return d[name]
 
 def make_rassembler(cls):
+    # XXX tooons of very-old code patched to get medium-old code patched
+    # to get newer code :-(
     bases = [make_rassembler(b) for b in cls.__bases__]
     ns = {}
     for k, v in cls.__dict__.iteritems():
@@ -69,6 +71,6 @@
         ns[k] = v
     rcls = type('R' + cls.__name__, tuple(bases), ns)
     def emit(self, value):
-        self.insts.append(value)
+        self.write32(value)
     rcls.emit = emit
     return rcls
diff --git a/rpython/jit/backend/ppc/regalloc.py 
b/rpython/jit/backend/ppc/regalloc.py
--- a/rpython/jit/backend/ppc/regalloc.py
+++ b/rpython/jit/backend/ppc/regalloc.py
@@ -549,7 +549,7 @@
         rgc._make_sure_does_not_move(fail_descr)
         fail_descr = rffi.cast(lltype.Signed, fail_descr)
         if op.numargs() == 1:
-            loc = self.make_sure_var_in_reg(op.getarg(0))
+            loc = self._ensure_value_is_boxed(op.getarg(0))
             locs = [loc, imm(fail_descr)]
         else:
             locs = [imm(fail_descr)]
_______________________________________________
pypy-commit mailing list
pypy-commit@python.org
https://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to