• Clemens Hammacher's avatar
    [Liftoff] Fix conditional spilling · 2589ea08
    Clemens Hammacher authored
    On float comparisons, we need a scratch byte register for the setcc
    instruction, and if none is available, we spill. But this spilling code
    is skipped if one of the operands is NaN. The cache state is updated
    however, so following code assumes that the spill happened.
    This CL fixes this by spilling before checking for NaN, such that the
    spilling code is always executed.
    
    R=titzer@chromium.org
    
    Bug: v8:7582, v8:6600
    Change-Id: I768d8de14e494d3ebea181c1f9f3129a4b005396
    Reviewed-on: https://chromium-review.googlesource.com/973961Reviewed-by: 's avatarBen Titzer <titzer@chromium.org>
    Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#52162}
    2589ea08
liftoff-assembler-ia32.h 37.5 KB