Author: hager <sven.ha...@uni-duesseldorf.de> Branch: ppc-jit-backend Changeset: r51026:b3a8f9928a2e Date: 2012-01-04 16:38 -0800 http://bitbucket.org/pypy/pypy/changeset/b3a8f9928a2e/
Log: fix basic field operations 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 @@ -382,11 +382,10 @@ self._emit_call(force_index, adr, arglist, regalloc, op.result) descr = op.getdescr() #XXX Hack, Hack, Hack - if op.result and not we_are_translated() and not isinstance(descr, - LoopToken): + if op.result and not we_are_translated(): #XXX check result type loc = regalloc.rm.call_result_location(op.result) - size = descr.get_result_size(False) + size = descr.get_result_size() signed = descr.is_result_signed() self._ensure_result_bit_extension(loc, size, signed) @@ -529,10 +528,8 @@ #XXX Hack, Hack, Hack if not we_are_translated(): - descr = op.getdescr() - size = descr.get_field_size(False) - signed = descr.is_field_signed() - self._ensure_result_bit_extension(res, size, signed) + signed = op.getdescr().is_field_signed() + self._ensure_result_bit_extension(res, size.value, signed) emit_getfield_raw = emit_getfield_gc emit_getfield_raw_pure = emit_getfield_gc 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 @@ -20,6 +20,9 @@ from pypy.jit.codewriter.effectinfo import EffectInfo import pypy.jit.backend.ppc.ppcgen.register as r from pypy.jit.codewriter import heaptracker +from pypy.jit.backend.llsupport.descr import unpack_arraydescr +from pypy.jit.backend.llsupport.descr import unpack_fielddescr +from pypy.jit.backend.llsupport.descr import unpack_interiorfielddescr # xxx hack: set a default value for TargetToken._arm_loop_code. If 0, we know # that it is a LABEL that was not compiled yet. @@ -565,7 +568,7 @@ def prepare_setfield_gc(self, op): boxes = list(op.getarglist()) b0, b1 = boxes - ofs, size, ptr = self._unpack_fielddescr(op.getdescr()) + ofs, size, ptr = unpack_fielddescr(op.getdescr()) base_loc, base_box = self._ensure_value_is_boxed(b0, boxes) boxes.append(base_box) value_loc, value_box = self._ensure_value_is_boxed(b1, boxes) @@ -583,7 +586,7 @@ def prepare_getfield_gc(self, op): a0 = op.getarg(0) - ofs, size, ptr = self._unpack_fielddescr(op.getdescr()) + ofs, size, ptr = unpack_fielddescr(op.getdescr()) base_loc, base_box = self._ensure_value_is_boxed(a0) c_ofs = ConstInt(ofs) if _check_imm_arg(c_ofs): _______________________________________________ pypy-commit mailing list pypy-commit@python.org http://mail.python.org/mailman/listinfo/pypy-commit