• Clemens Hammacher's avatar
    [Liftoff][ia32] Avoid register overwrite on 64 bit shift · c83af36f
    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: 's avatarBen Titzer <titzer@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#52327}
    c83af36f
Name
Last commit
Last update
..
liftoff-assembler-ia32.h Loading commit data...