diff options
Diffstat (limited to 'deps/v8/src/compiler/representation-change.cc')
-rw-r--r-- | deps/v8/src/compiler/representation-change.cc | 24 |
1 files changed, 16 insertions, 8 deletions
diff --git a/deps/v8/src/compiler/representation-change.cc b/deps/v8/src/compiler/representation-change.cc index fd0cbabe66..ca1b1e221f 100644 --- a/deps/v8/src/compiler/representation-change.cc +++ b/deps/v8/src/compiler/representation-change.cc @@ -1272,8 +1272,13 @@ Node* RepresentationChanger::GetBitRepresentationFor( } } } else if (output_rep == MachineRepresentation::kTaggedSigned) { - node = jsgraph()->graph()->NewNode(machine()->WordEqual(), node, - jsgraph()->IntPtrConstant(0)); + if (COMPRESS_POINTERS_BOOL) { + node = jsgraph()->graph()->NewNode(machine()->Word32Equal(), node, + jsgraph()->Int32Constant(0)); + } else { + node = jsgraph()->graph()->NewNode(machine()->WordEqual(), node, + jsgraph()->IntPtrConstant(0)); + } return jsgraph()->graph()->NewNode(machine()->Word32Equal(), node, jsgraph()->Int32Constant(0)); } else if (output_rep == MachineRepresentation::kCompressed) { @@ -1546,14 +1551,17 @@ const Operator* RepresentationChanger::TaggedSignedOperatorFor( IrOpcode::Value opcode) { switch (opcode) { case IrOpcode::kSpeculativeNumberLessThan: - return machine()->Is32() ? machine()->Int32LessThan() - : machine()->Int64LessThan(); + return (COMPRESS_POINTERS_BOOL || machine()->Is32()) + ? machine()->Int32LessThan() + : machine()->Int64LessThan(); case IrOpcode::kSpeculativeNumberLessThanOrEqual: - return machine()->Is32() ? machine()->Int32LessThanOrEqual() - : machine()->Int64LessThanOrEqual(); + return (COMPRESS_POINTERS_BOOL || machine()->Is32()) + ? machine()->Int32LessThanOrEqual() + : machine()->Int64LessThanOrEqual(); case IrOpcode::kSpeculativeNumberEqual: - return machine()->Is32() ? machine()->Word32Equal() - : machine()->Word64Equal(); + return (COMPRESS_POINTERS_BOOL || machine()->Is32()) + ? machine()->Word32Equal() + : machine()->Word64Equal(); default: UNREACHABLE(); } |