• Clemens Hammacher's avatar
    [wasm] [interpreter] Box floats for certain operations · 319b7868
    Clemens Hammacher authored
    There are wasm operations which operate on floats or double, but they
    need to preserve the exact bit pattern. Thus they cannot be stored and
    passed as float or double, since that might flip the signaling NaN bit.
    This CL extends WasmValue to store floats and doubles as bit pattern,
    and adds accessors to extract them as Float32 or Float64.
    The interpreter is changed to execute certain operations (i32.abs,
    i32.neg, i64.abs, i64.neg, f32.reinterpret/i32, f64.reinterpret/i64) on
    boxed floats.
    
    R=titzer@chromium.org
    
    Bug: v8:6954
    Change-Id: I0251d1a67b6caf593194d4eb292a325cdd3f20cf
    Reviewed-on: https://chromium-review.googlesource.com/730716
    Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
    Reviewed-by: 's avatarBen Titzer <titzer@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#48819}
    319b7868
wasm-interpreter.cc 96.5 KB