diff options
Diffstat (limited to 'deps/v8/test/cctest/compiler/test-representation-change.cc')
-rw-r--r-- | deps/v8/test/cctest/compiler/test-representation-change.cc | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/deps/v8/test/cctest/compiler/test-representation-change.cc b/deps/v8/test/cctest/compiler/test-representation-change.cc index 33e5cf1548..dac6f61932 100644 --- a/deps/v8/test/cctest/compiler/test-representation-change.cc +++ b/deps/v8/test/cctest/compiler/test-representation-change.cc @@ -4,6 +4,8 @@ #include <limits> +#include "src/compiler/access-info.h" +#include "src/compiler/js-heap-broker.h" #include "src/compiler/node-matchers.h" #include "src/compiler/representation-change.h" #include "src/compiler/type-cache.h" @@ -25,13 +27,15 @@ class RepresentationChangerTester : public HandleAndZoneScope, javascript_(main_zone()), jsgraph_(main_isolate(), main_graph_, &main_common_, &javascript_, &main_simplified_, &main_machine_), - changer_(&jsgraph_, main_isolate()) { + broker_{main_isolate(), main_zone(), FLAG_trace_heap_broker}, + changer_(&jsgraph_, &broker_) { Node* s = graph()->NewNode(common()->Start(num_parameters)); graph()->SetStart(s); } JSOperatorBuilder javascript_; JSGraph jsgraph_; + JSHeapBroker broker_; RepresentationChanger changer_; Isolate* isolate() { return main_isolate(); } @@ -376,8 +380,16 @@ TEST(Word64) { TypeCache::Get()->kUint16, MachineRepresentation::kWord64); CheckChange(IrOpcode::kChangeInt32ToInt64, MachineRepresentation::kWord32, Type::Signed32(), MachineRepresentation::kWord64); + CheckChange( + IrOpcode::kChangeInt32ToInt64, MachineRepresentation::kWord32, + Type::Signed32OrMinusZero(), MachineRepresentation::kWord64, + UseInfo(MachineRepresentation::kWord64, Truncation::Any(kIdentifyZeros))); CheckChange(IrOpcode::kChangeUint32ToUint64, MachineRepresentation::kWord32, Type::Unsigned32(), MachineRepresentation::kWord64); + CheckChange( + IrOpcode::kChangeUint32ToUint64, MachineRepresentation::kWord32, + Type::Unsigned32OrMinusZero(), MachineRepresentation::kWord64, + UseInfo(MachineRepresentation::kWord64, Truncation::Any(kIdentifyZeros))); CheckChange(IrOpcode::kTruncateInt64ToInt32, MachineRepresentation::kWord64, Type::Signed32(), MachineRepresentation::kWord32); @@ -514,6 +526,9 @@ TEST(SingleChanges) { CheckChange(IrOpcode::kChangeBitToTagged, MachineRepresentation::kBit, Type::Boolean(), MachineRepresentation::kTagged); + CheckChange(IrOpcode::kChangeInt31ToCompressedSigned, + MachineRepresentation::kWord32, Type::Signed31(), + MachineRepresentation::kCompressedSigned); CheckChange(IrOpcode::kChangeInt31ToTaggedSigned, MachineRepresentation::kWord32, Type::Signed31(), MachineRepresentation::kTagged); @@ -544,7 +559,8 @@ TEST(SingleChanges) { Type::Number(), MachineRepresentation::kFloat64); CheckChange(IrOpcode::kTruncateTaggedToFloat64, MachineRepresentation::kTagged, Type::NumberOrUndefined(), - UseInfo(MachineRepresentation::kFloat64, Truncation::Float64())); + UseInfo(MachineRepresentation::kFloat64, + Truncation::OddballAndBigIntToNumber())); CheckChange(IrOpcode::kChangeTaggedToFloat64, MachineRepresentation::kTagged, Type::Signed31(), MachineRepresentation::kFloat64); |