• 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...
build_overrides Loading commit data...
docs Loading commit data...
gni Loading commit data...
gypfiles Loading commit data...
include Loading commit data...
infra Loading commit data...
samples Loading commit data...
src Loading commit data...
test Loading commit data...
testing Loading commit data...
third_party Loading commit data...
tools Loading commit data...
.clang-format Loading commit data...
.gitignore Loading commit data...
.gn Loading commit data...
.ycm_extra_conf.py Loading commit data...
AUTHORS Loading commit data...
BUILD.gn Loading commit data...
CODE_OF_CONDUCT.md Loading commit data...
ChangeLog Loading commit data...
DEPS Loading commit data...
LICENSE Loading commit data...
LICENSE.fdlibm Loading commit data...
LICENSE.strongtalk Loading commit data...
LICENSE.v8 Loading commit data...
LICENSE.valgrind Loading commit data...
Makefile Loading commit data...
Makefile.android Loading commit data...
OWNERS Loading commit data...
PRESUBMIT.py Loading commit data...
README.md Loading commit data...
WATCHLISTS Loading commit data...
codereview.settings Loading commit data...
snapshot_toolchain.gni Loading commit data...