[Liftoff][ia32] Avoid register overwrite on 64 bit shift
On ia32, the implementation of 64-bit shifts first moved {src} into {dst}, then {amount} into {ecx}. This fails if {dst} overlaps {amount}, because {amount} would be overwritten before being used. Just changing the order to these two moves would also not be correct, since {src} can contain {ecx}. Thus, implement this via a general parallel register move, which resolves cycles automatically. R=titzer@chromium.org Bug: v8:7589, v8:6600 Change-Id: I2556b9aa66a89a067372b7713dbbb3d71d2f923f Reviewed-on: https://chromium-review.googlesource.com/981134 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by: Ben Titzer <titzer@chromium.org> Cr-Commit-Position: refs/heads/master@{#52327}
Showing
Please
register
or
sign in
to comment