fb51aa40a4
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: Georg Neis <neis@chromium.org> Cr-Commit-Position: refs/heads/master@{#74122} |
||
---|---|---|
.. | ||
benchmarks | ||
cctest | ||
common | ||
debugger | ||
debugging | ||
fuzzer | ||
fuzzilli | ||
inspector | ||
intl | ||
js-perf-test | ||
memory | ||
message | ||
mjsunit | ||
mkgrokdump | ||
mozilla | ||
test262 | ||
torque | ||
unittests | ||
wasm-api-tests | ||
wasm-js | ||
wasm-spec-tests | ||
webkit | ||
BUILD.gn | ||
OWNERS |