summaryrefslogtreecommitdiff
path: root/deps/v8/src/compiler/representation-change.cc
diff options
context:
space:
mode:
Diffstat (limited to 'deps/v8/src/compiler/representation-change.cc')
-rw-r--r--deps/v8/src/compiler/representation-change.cc24
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();
}