• Clemens Hammacher's avatar
    [assembler][ia32] Don't clobber random registers · c887e40c
    Clemens Hammacher authored
    The fallback for {Pinsrd} and {Pextrd} for the non-avx and non-sse
    variant clobbered the {xmm0} register. This CL fixes this by storing
    the values on the stack and modifying them there instead.
    The alternative would have been to pass in a scratch register. But this
    path is not commonly used and we cannot express in the API whether the
    scratch register is needed or not. So we would sometimes have to spill a
    register to pass it as scratch register even though it is then unused.
    
    R=titzer@chromium.org
    CC=​mstarzinger@chromium.org
    
    Bug: v8:6600
    Change-Id: Ieae53b892cc55eed4fcfa3d0e7f82f3e1afe72be
    Reviewed-on: https://chromium-review.googlesource.com/1219633Reviewed-by: 's avatarMichael Starzinger <mstarzinger@chromium.org>
    Reviewed-by: 's avatarBen Titzer <titzer@chromium.org>
    Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#55800}
    c887e40c
macro-assembler-ia32.cc 58.7 KB