Author: Armin Rigo <[email protected]>
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
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit