diff options
Diffstat (limited to 'deps/v8/src/compiler/decompression-optimizer.cc')
-rw-r--r-- | deps/v8/src/compiler/decompression-optimizer.cc | 7 |
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)); |