Chromium Code Reviews

Side by Side Diff: src/compiler/ia32/instruction-selector-ia32.cc

Issue 2516413003: [wasm] Add ProtectedStore instruction (Closed)
Patch Set: Formatting Created 4 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View unified diff |
OLDNEW
1 // Copyright 2014 the V8 project authors. All rights reserved. 1 // Copyright 2014 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "src/base/adapters.h" 5 #include "src/base/adapters.h"
6 #include "src/compiler/instruction-selector-impl.h" 6 #include "src/compiler/instruction-selector-impl.h"
7 #include "src/compiler/node-matchers.h" 7 #include "src/compiler/node-matchers.h"
8 #include "src/compiler/node-properties.h" 8 #include "src/compiler/node-properties.h"
9 9
10 namespace v8 { 10 namespace v8 {
(...skipping 333 matching lines...)
344 AddressingMode addressing_mode = 344 AddressingMode addressing_mode =
345 g.GetEffectiveAddressMemoryOperand(node, inputs, &input_count); 345 g.GetEffectiveAddressMemoryOperand(node, inputs, &input_count);
346 InstructionCode code = 346 InstructionCode code =
347 opcode | AddressingModeField::encode(addressing_mode); 347 opcode | AddressingModeField::encode(addressing_mode);
348 inputs[input_count++] = val; 348 inputs[input_count++] = val;
349 Emit(code, 0, static_cast<InstructionOperand*>(nullptr), input_count, 349 Emit(code, 0, static_cast<InstructionOperand*>(nullptr), input_count,
350 inputs); 350 inputs);
351 } 351 }
352 } 352 }
353 353
354 void InstructionSelector::VisitProtectedStore(Node* node) {
355 // TODO(eholk)
356 UNIMPLEMENTED();
357 }
358
354 // Architecture supports unaligned access, therefore VisitLoad is used instead 359 // Architecture supports unaligned access, therefore VisitLoad is used instead
355 void InstructionSelector::VisitUnalignedLoad(Node* node) { UNREACHABLE(); } 360 void InstructionSelector::VisitUnalignedLoad(Node* node) { UNREACHABLE(); }
356 361
357 // Architecture supports unaligned access, therefore VisitStore is used instead 362 // Architecture supports unaligned access, therefore VisitStore is used instead
358 void InstructionSelector::VisitUnalignedStore(Node* node) { UNREACHABLE(); } 363 void InstructionSelector::VisitUnalignedStore(Node* node) { UNREACHABLE(); }
359 364
360 void InstructionSelector::VisitCheckedLoad(Node* node) { 365 void InstructionSelector::VisitCheckedLoad(Node* node) {
361 CheckedLoadRepresentation load_rep = CheckedLoadRepresentationOf(node->op()); 366 CheckedLoadRepresentation load_rep = CheckedLoadRepresentationOf(node->op());
362 IA32OperandGenerator g(this); 367 IA32OperandGenerator g(this);
363 Node* const buffer = node->InputAt(0); 368 Node* const buffer = node->InputAt(0);
(...skipping 1383 matching lines...)
1747 // static 1752 // static
1748 MachineOperatorBuilder::AlignmentRequirements 1753 MachineOperatorBuilder::AlignmentRequirements
1749 InstructionSelector::AlignmentRequirements() { 1754 InstructionSelector::AlignmentRequirements() {
1750 return MachineOperatorBuilder::AlignmentRequirements:: 1755 return MachineOperatorBuilder::AlignmentRequirements::
1751 FullUnalignedAccessSupport(); 1756 FullUnalignedAccessSupport();
1752 } 1757 }
1753 1758
1754 } // namespace compiler 1759 } // namespace compiler
1755 } // namespace internal 1760 } // namespace internal
1756 } // namespace v8 1761 } // namespace v8
OLDNEW

Powered by Google App Engine