https://bugs.kde.org/show_bug.cgi?id=385409

--- Comment #58 from Julian Seward <jsew...@acm.org> ---
(In reply to Andreas Arnez from comment #57)
> Created attachment 114932 [details]
> Implement VLL with aligned loads

> Subject: [PATCH] s390x: Implement VLL/VLBB with aligned loads

Looks ok to me.  OK to land with the following changes:

* Add a short comment before the uses of ShlV128/ShlV128 explaining
  that the shift value can never be > 127.

* you use a construction "mkexpr(mktemp(type, expr))" which I am not
  sure what the purpose is.  For expressions that will get used more
  than once, you should bind them to an IRTemp, otherwise multiple uses
  of the expression will lead to it being code-generated multiple times.
  Eg instead of

  IRExpr *zeroed = mkexpr(mktemp(Ity_I64,
                                 binop(Iop_Sub64, mkU64(15), maxIdx)));

  do

  IRTemp zeroed = newTemp(Ity_I64);
  assign(zeroed, binop(Iop_Sub64, mkU64(15), maxIdx));

  and then use mkexpr(zeroed) instead of simply |zeroed| at all the
  use points.  This forces Vex to compute |zeroed| into a register
  and use that register multiple times.  (Vex can fix this stuff itself
  by doing CSE later, but that's expensive and so is only sometimes done).

  I see that |offset|, |zeroed| and |back| are all used multiple times,
  so please bind them to temps as above.

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to