• Andreas Haas's avatar
    [arm] Pass float immediates to vmov as uint32_t · 08688b39
    Andreas Haas authored
    This CL changes for floats what https://chromium-review.googlesource.com/c/558964/
    changed for doubles.
    
    Original message:
    On x86, signalling NaNs get converted to quiet NaNs when they get push
    on the stack and popped again. This happens in the code generation for
    arm, specifically for the vmov instruction with the immediate parameter.
    This CL replaces the vmov function in assembler-arm to take the
    immediate as a uint64_t instead of a double, to guarantee that the bit
    pattern does not change even if the parameter is a signalling NaN.
    
    New in this CL:
    Although src/double.h existed already, src/float.h did not exist yet.
    I created the file in this CL, and moved the classes Float32 and
    Float64 there, which already existed in src/deoptimizer.h.
    
    R=titzer@chromium.org, martyn.capewell@arm.com, v8-arm-ports@googlegroups.com
    
    BUG=v8:6564
    
    Change-Id: I6a3f1f154af9c8cd4bb8e7e856235d3eee5e9edd
    Reviewed-on: https://chromium-review.googlesource.com/561009
    Commit-Queue: Andreas Haas <ahaas@chromium.org>
    Reviewed-by: 's avatarMartyn Capewell <martyn.capewell@arm.com>
    Reviewed-by: 's avatarBen Titzer <titzer@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#46473}
    08688b39
Name
Last commit
Last update
..
benchmarks Loading commit data...
cctest Loading commit data...
common Loading commit data...
debugger Loading commit data...
fuzzer Loading commit data...
inspector Loading commit data...
intl Loading commit data...
js-perf-test Loading commit data...
memory Loading commit data...
message Loading commit data...
mjsunit Loading commit data...
mkgrokdump Loading commit data...
mozilla Loading commit data...
preparser Loading commit data...
promises-aplus Loading commit data...
test262 Loading commit data...
unittests Loading commit data...
wasm-spec-tests Loading commit data...
webkit Loading commit data...
BUILD.gn Loading commit data...
bot_default.gyp Loading commit data...
bot_default.isolate Loading commit data...
default.gyp Loading commit data...
default.isolate Loading commit data...
optimize_for_size.gyp Loading commit data...
optimize_for_size.isolate Loading commit data...
perf.gyp Loading commit data...
perf.isolate Loading commit data...