-
Clemens Hammacher authored
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}
c83af36f
Name |
Last commit
|
Last update |
---|---|---|
.. | ||
arm | ||
arm64 | ||
ia32 | ||
mips | ||
mips64 | ||
ppc | ||
s390 | ||
x64 | ||
DEPS | ||
liftoff-assembler-defs.h | ||
liftoff-assembler.cc | ||
liftoff-assembler.h | ||
liftoff-compiler.cc | ||
liftoff-register.h |