summaryrefslogtreecommitdiff
path: root/deps/v8/src/compiler/decompression-optimizer.cc
diff options
context:
space:
mode:
Diffstat (limited to 'deps/v8/src/compiler/decompression-optimizer.cc')
-rw-r--r--deps/v8/src/compiler/decompression-optimizer.cc7
1 files changed, 7 insertions, 0 deletions
diff --git a/deps/v8/src/compiler/decompression-optimizer.cc b/deps/v8/src/compiler/decompression-optimizer.cc
index fb53d9f55b..18e682a4fd 100644
--- a/deps/v8/src/compiler/decompression-optimizer.cc
+++ b/deps/v8/src/compiler/decompression-optimizer.cc
@@ -16,6 +16,7 @@ namespace {
bool IsMachineLoad(Node* const node) {
const IrOpcode::Value opcode = node->opcode();
return opcode == IrOpcode::kLoad || opcode == IrOpcode::kProtectedLoad ||
+ opcode == IrOpcode::kLoadTrapOnNull ||
opcode == IrOpcode::kUnalignedLoad ||
opcode == IrOpcode::kLoadImmutable;
}
@@ -100,6 +101,7 @@ void DecompressionOptimizer::MarkNodeInputs(Node* node) {
// SPECIAL CASES - Load.
case IrOpcode::kLoad:
case IrOpcode::kProtectedLoad:
+ case IrOpcode::kLoadTrapOnNull:
case IrOpcode::kUnalignedLoad:
case IrOpcode::kLoadImmutable:
DCHECK_EQ(node->op()->ValueInputCount(), 2);
@@ -119,6 +121,7 @@ void DecompressionOptimizer::MarkNodeInputs(Node* node) {
// SPECIAL CASES - Store.
case IrOpcode::kStore:
case IrOpcode::kProtectedStore:
+ case IrOpcode::kStoreTrapOnNull:
case IrOpcode::kUnalignedStore: {
DCHECK_EQ(node->op()->ValueInputCount(), 3);
MaybeMarkAndQueueForRevisit(node->InputAt(0),
@@ -265,6 +268,10 @@ void DecompressionOptimizer::ChangeLoad(Node* const node) {
NodeProperties::ChangeOp(node,
machine()->ProtectedLoad(compressed_load_rep));
break;
+ case IrOpcode::kLoadTrapOnNull:
+ NodeProperties::ChangeOp(node,
+ machine()->LoadTrapOnNull(compressed_load_rep));
+ break;
case IrOpcode::kUnalignedLoad:
NodeProperties::ChangeOp(node,
machine()->UnalignedLoad(compressed_load_rep));