[pypy-dev] [pypy-commit] pypy ppc-jit-backend: setarrayitem and getarrayitem offsets are immediate values.

Maciej Fijalkowski fijall at gmail.com
Wed Nov 16 08:05:32 CET 2011


Unless I'm missing something offset for get/setarrayitem are not
necesarilly intermediate values

On Mon, Nov 14, 2011 at 9:27 PM, edelsohn <noreply at buildbot.pypy.org> wrote:
> Author: edelsohn
> Branch: ppc-jit-backend
> Changeset: r49414:3a6600bf032a
> Date: 2011-11-14 14:27 -0500
> http://bitbucket.org/pypy/pypy/changeset/3a6600bf032a/
>
> Log:    setarrayitem and getarrayitem offsets are immediate values.
>
> 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
> @@ -367,11 +367,10 @@
>         value_loc, base_loc, ofs_loc, scale, ofs = arglocs
>         if scale.value > 0:
>             scale_loc = r.r0
> -            self.mc.load_imm(r.r0, scale.value)
>             if IS_PPC_32:
> -                self.mc.slw(r.r0.value, ofs_loc.value, r.r0.value)
> +                self.mc.slwi(r.r0.value, ofs_loc.value, scale.value)
>             else:
> -                self.mc.sld(r.r0.value, ofs_loc.value, r.r0.value)
> +                self.mc.sldi(r.r0.value, ofs_loc.value, scale.value)
>         else:
>             scale_loc = ofs_loc
>
> @@ -396,11 +395,10 @@
>         res, base_loc, ofs_loc, scale, ofs = arglocs
>         if scale.value > 0:
>             scale_loc = r.r0
> -            self.mc.load_imm(r.r0, scale.value)
>             if IS_PPC_32:
> -                self.mc.slw(r.r0.value, ofs_loc.value, scale.value)
> +                self.mc.slwi(r.r0.value, ofs_loc.value, scale.value)
>             else:
> -                self.mc.sld(r.r0.value, ofs_loc.value, scale.value)
> +                self.mc.sldi(r.r0.value, ofs_loc.value, scale.value)
>         else:
>             scale_loc = ofs_loc
>         if ofs.value > 0:
> _______________________________________________
> pypy-commit mailing list
> pypy-commit at python.org
> http://mail.python.org/mailman/listinfo/pypy-commit
>


More information about the pypy-dev mailing list