Commit d1c1a3c4 authored by bmeurer's avatar bmeurer Committed by Commit bot

[turbofan] Fix bit representation of NumberConstant.

TEST=mjsunit/compiler/regress-bit-number-constant

Review URL: https://codereview.chromium.org/839813002

Cr-Commit-Position: refs/heads/master@{#25979}
parent 0d678580
......@@ -296,6 +296,13 @@ class RepresentationChanger {
if (value == 0 || value == 1) return node;
return jsgraph()->Int32Constant(1); // value != 0
}
case IrOpcode::kNumberConstant: {
double value = OpParameter<double>(node);
if (std::isnan(value) || value == 0.0) {
return jsgraph()->Int32Constant(0);
}
return jsgraph()->Int32Constant(1);
}
case IrOpcode::kHeapConstant: {
Handle<Object> handle = OpParameter<Unique<Object> >(node).handle();
DCHECK(*handle == isolate()->heap()->true_value() ||
......
// Copyright 2015 the V8 project authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
var stdlib = this;
var buffer = new ArrayBuffer(64 * 1024);
var foreign = {}
var foo = (function Module(stdlib, foreign, heap) {
"use asm";
function foo(i) {
return !(i ? 1 : false);
}
return {foo:foo};
})(stdlib, foreign, buffer).foo;
assertFalse(foo(1));
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment