[Liftoff] Clean up implementation of AtomicStore
As discussed offline, the current implementation implement each situation separately. I think we can simplify the code a lot by sharing code between the different paths. This CL does that by 1) implementing the kI64Store case separately, because it does not have all the register contraints that the others have, and 2) moving all logic to ensure that the {src} register is usable before the switch, such that it's shared by all the compare-exchange cases. As a side produce, this also fixes issue 1045225, because for i64 stores which actually only use the lower half of {src}, only that half will be pinned. R=ahaas@chromium.org Bug: chromium:1045225, v8:10108 Change-Id: I0be025b9706d563835ae6337d45b88e0233eacad Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2029414Reviewed-by: Andreas Haas <ahaas@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#66062}
Showing
Please
register
or
sign in
to comment