Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(54)

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

Issue 1420283009: [turbofan] Add support for storing to double fields. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Created 5 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
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/compiler/instruction-selector.h" 5 #include "src/compiler/instruction-selector.h"
6 6
7 #include <limits> 7 #include <limits>
8 8
9 #include "src/base/adapters.h" 9 #include "src/base/adapters.h"
10 #include "src/compiler/instruction-selector-impl.h" 10 #include "src/compiler/instruction-selector-impl.h"
(...skipping 538 matching lines...) Expand 10 before | Expand all | Expand 10 after
549 case IrOpcode::kEffectPhi: 549 case IrOpcode::kEffectPhi:
550 case IrOpcode::kMerge: 550 case IrOpcode::kMerge:
551 case IrOpcode::kTerminate: 551 case IrOpcode::kTerminate:
552 case IrOpcode::kBeginRegion: 552 case IrOpcode::kBeginRegion:
553 // No code needed for these graph artifacts. 553 // No code needed for these graph artifacts.
554 return; 554 return;
555 case IrOpcode::kIfException: 555 case IrOpcode::kIfException:
556 return MarkAsReference(node), VisitIfException(node); 556 return MarkAsReference(node), VisitIfException(node);
557 case IrOpcode::kFinishRegion: 557 case IrOpcode::kFinishRegion:
558 return MarkAsReference(node), VisitFinishRegion(node); 558 return MarkAsReference(node), VisitFinishRegion(node);
559 case IrOpcode::kGuard:
560 return MarkAsReference(node), VisitGuard(node);
559 case IrOpcode::kParameter: { 561 case IrOpcode::kParameter: {
560 MachineType type = 562 MachineType type =
561 linkage()->GetParameterType(ParameterIndexOf(node->op())); 563 linkage()->GetParameterType(ParameterIndexOf(node->op()));
562 MarkAsRepresentation(type, node); 564 MarkAsRepresentation(type, node);
563 return VisitParameter(node); 565 return VisitParameter(node);
564 } 566 }
565 case IrOpcode::kOsrValue: 567 case IrOpcode::kOsrValue:
566 return MarkAsReference(node), VisitOsrValue(node); 568 return MarkAsReference(node), VisitOsrValue(node);
567 case IrOpcode::kPhi: { 569 case IrOpcode::kPhi: {
568 MachineType type = OpParameter<MachineType>(node); 570 MachineType type = OpParameter<MachineType>(node);
(...skipping 365 matching lines...) Expand 10 before | Expand all | Expand 10 after
934 #endif // V8_TARGET_ARCH_32_BIT 936 #endif // V8_TARGET_ARCH_32_BIT
935 937
936 938
937 void InstructionSelector::VisitFinishRegion(Node* node) { 939 void InstructionSelector::VisitFinishRegion(Node* node) {
938 OperandGenerator g(this); 940 OperandGenerator g(this);
939 Node* value = node->InputAt(0); 941 Node* value = node->InputAt(0);
940 Emit(kArchNop, g.DefineSameAsFirst(node), g.Use(value)); 942 Emit(kArchNop, g.DefineSameAsFirst(node), g.Use(value));
941 } 943 }
942 944
943 945
946 void InstructionSelector::VisitGuard(Node* node) {
947 OperandGenerator g(this);
948 Node* value = node->InputAt(0);
949 Emit(kArchNop, g.DefineSameAsFirst(node), g.Use(value));
950 }
951
952
944 void InstructionSelector::VisitParameter(Node* node) { 953 void InstructionSelector::VisitParameter(Node* node) {
945 OperandGenerator g(this); 954 OperandGenerator g(this);
946 int index = ParameterIndexOf(node->op()); 955 int index = ParameterIndexOf(node->op());
947 Emit(kArchNop, 956 Emit(kArchNop,
948 g.DefineAsLocation(node, linkage()->GetParameterLocation(index), 957 g.DefineAsLocation(node, linkage()->GetParameterLocation(index),
949 linkage()->GetParameterType(index))); 958 linkage()->GetParameterType(index)));
950 } 959 }
951 960
952 961
953 void InstructionSelector::VisitIfException(Node* node) { 962 void InstructionSelector::VisitIfException(Node* node) {
(...skipping 338 matching lines...) Expand 10 before | Expand all | Expand 10 after
1292 for (StateValuesAccess::TypedNode input_node : StateValuesAccess(stack)) { 1301 for (StateValuesAccess::TypedNode input_node : StateValuesAccess(stack)) {
1293 inputs->push_back(OperandForDeopt(&g, input_node.node, kind)); 1302 inputs->push_back(OperandForDeopt(&g, input_node.node, kind));
1294 descriptor->SetType(value_index++, input_node.type); 1303 descriptor->SetType(value_index++, input_node.type);
1295 } 1304 }
1296 DCHECK(value_index == descriptor->GetSize()); 1305 DCHECK(value_index == descriptor->GetSize());
1297 } 1306 }
1298 1307
1299 } // namespace compiler 1308 } // namespace compiler
1300 } // namespace internal 1309 } // namespace internal
1301 } // namespace v8 1310 } // namespace v8
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698