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

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

Issue 2816743003: [turbofan] Add alignment parameter to StackSlot operator (Closed)
Patch Set: Small fixes in test Created 3 years, 7 months 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/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 #include "src/ppc/frames-ppc.h" 9 #include "src/ppc/frames-ppc.h"
10 10
(...skipping 156 matching lines...) Expand 10 before | Expand all | Expand 10 after
167 // Shared routine for multiple binary operations. 167 // Shared routine for multiple binary operations.
168 template <typename Matcher> 168 template <typename Matcher>
169 void VisitBinop(InstructionSelector* selector, Node* node, 169 void VisitBinop(InstructionSelector* selector, Node* node,
170 InstructionCode opcode, ImmediateMode operand_mode) { 170 InstructionCode opcode, ImmediateMode operand_mode) {
171 FlagsContinuation cont; 171 FlagsContinuation cont;
172 VisitBinop<Matcher>(selector, node, opcode, operand_mode, &cont); 172 VisitBinop<Matcher>(selector, node, opcode, operand_mode, &cont);
173 } 173 }
174 174
175 } // namespace 175 } // namespace
176 176
177 void InstructionSelector::VisitStackSlot(Node* node) {
178 StackSlotRepresentation rep = StackSlotRepresentationOf(node->op());
179 int slot = frame_->AllocateSpillSlot(rep.size());
180 OperandGenerator g(this);
181
182 Emit(kArchStackSlot, g.DefineAsRegister(node),
183 sequence()->AddImmediate(Constant(slot)), 0, nullptr);
184 }
177 185
178 void InstructionSelector::VisitLoad(Node* node) { 186 void InstructionSelector::VisitLoad(Node* node) {
179 LoadRepresentation load_rep = LoadRepresentationOf(node->op()); 187 LoadRepresentation load_rep = LoadRepresentationOf(node->op());
180 PPCOperandGenerator g(this); 188 PPCOperandGenerator g(this);
181 Node* base = node->InputAt(0); 189 Node* base = node->InputAt(0);
182 Node* offset = node->InputAt(1); 190 Node* offset = node->InputAt(1);
183 ArchOpcode opcode = kArchNop; 191 ArchOpcode opcode = kArchNop;
184 ImmediateMode mode = kInt16Imm; 192 ImmediateMode mode = kInt16Imm;
185 switch (load_rep.representation()) { 193 switch (load_rep.representation()) {
186 case MachineRepresentation::kFloat32: 194 case MachineRepresentation::kFloat32:
(...skipping 2004 matching lines...) Expand 10 before | Expand all | Expand 10 after
2191 // static 2199 // static
2192 MachineOperatorBuilder::AlignmentRequirements 2200 MachineOperatorBuilder::AlignmentRequirements
2193 InstructionSelector::AlignmentRequirements() { 2201 InstructionSelector::AlignmentRequirements() {
2194 return MachineOperatorBuilder::AlignmentRequirements:: 2202 return MachineOperatorBuilder::AlignmentRequirements::
2195 FullUnalignedAccessSupport(); 2203 FullUnalignedAccessSupport();
2196 } 2204 }
2197 2205
2198 } // namespace compiler 2206 } // namespace compiler
2199 } // namespace internal 2207 } // namespace internal
2200 } // namespace v8 2208 } // namespace v8
OLDNEW
« no previous file with comments | « src/compiler/mips64/instruction-selector-mips64.cc ('k') | src/compiler/raw-machine-assembler.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698