• Thibaud Michaud's avatar
    [wasm][x64] Fix unordered floating-point select · fb51aa40
    Thibaud Michaud authored
    Unordered floating-point (non-)equality is implemented using two flags
    on x64: kUnorderedNotEqual as "not_equal OR parity_even" and
    kUnorderedEqual as "equal AND parity_odd". Only the first flag was
    checked.
    
    This change fixes the kUnorderedNotEqual case by emitting a second
    cmov to also move the "true" value if the parity_even flag is set. The
    kUnorderedEqual case is covered by inverting the condition in the
    instruction selector.
    
    This should also be optimal according to the code emitted by clang -O3
    for equivalent C++ code.
    
    Drive-by: remove unused overload of EmitWithContinuation.
    
    R=neis@chromium.org
    CC=ahaas@chromium.org
    
    Bug: chromium:1200184
    Change-Id: Iae438d29fb5897ca910a154f140a5a6a904490ec
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2844651
    Commit-Queue: Thibaud Michaud <thibaudm@chromium.org>
    Reviewed-by: 's avatarGeorg Neis <neis@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#74122}
    fb51aa40
Name
Last commit
Last update
..
c-signature.h Loading commit data...
call-tester.h Loading commit data...
code-assembler-tester.h Loading commit data...
codegen-tester.cc Loading commit data...
codegen-tester.h Loading commit data...
function-tester.cc Loading commit data...
function-tester.h Loading commit data...
graph-and-builders.h Loading commit data...
node-observer-tester.h Loading commit data...
serializer-tester.cc Loading commit data...
serializer-tester.h Loading commit data...
test-basic-block-profiler.cc Loading commit data...
test-branch-combine.cc Loading commit data...
test-code-assembler.cc Loading commit data...
test-code-generator.cc Loading commit data...
test-concurrent-shared-function-info.cc Loading commit data...
test-gap-resolver.cc Loading commit data...
test-graph-visualizer.cc Loading commit data...
test-instruction-scheduler.cc Loading commit data...
test-instruction.cc Loading commit data...
test-js-constant-cache.cc Loading commit data...
test-js-context-specialization.cc Loading commit data...
test-js-typed-lowering.cc Loading commit data...
test-jump-threading.cc Loading commit data...
test-linkage.cc Loading commit data...
test-loop-analysis.cc Loading commit data...
test-machine-operator-reducer.cc Loading commit data...
test-multiple-return.cc Loading commit data...
test-node.cc Loading commit data...
test-operator.cc Loading commit data...
test-representation-change.cc Loading commit data...
test-run-bytecode-graph-builder.cc Loading commit data...
test-run-calls-to-external-references.cc Loading commit data...
test-run-deopt.cc Loading commit data...
test-run-intrinsics.cc Loading commit data...
test-run-jsbranches.cc Loading commit data...
test-run-jscalls.cc Loading commit data...
test-run-jsexceptions.cc Loading commit data...
test-run-jsobjects.cc Loading commit data...
test-run-jsops.cc Loading commit data...
test-run-load-store.cc Loading commit data...
test-run-machops.cc Loading commit data...
test-run-native-calls.cc Loading commit data...
test-run-retpoline.cc Loading commit data...
test-run-stackcheck.cc Loading commit data...
test-run-tail-calls.cc Loading commit data...
test-run-unwinding-info.cc Loading commit data...
test-run-variables.cc Loading commit data...
test-sloppy-equality.cc Loading commit data...
value-helper.cc Loading commit data...
value-helper.h Loading commit data...