| OLD | NEW | 
|---|
| 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/base/bits.h" | 6 #include "src/base/bits.h" | 
| 7 #include "src/compiler/instruction-selector-impl.h" | 7 #include "src/compiler/instruction-selector-impl.h" | 
| 8 #include "src/compiler/node-matchers.h" | 8 #include "src/compiler/node-matchers.h" | 
| 9 #include "src/compiler/node-properties.h" | 9 #include "src/compiler/node-properties.h" | 
| 10 | 10 | 
| (...skipping 483 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 494     } | 494     } | 
| 495 | 495 | 
| 496     InstructionOperand inputs[4]; | 496     InstructionOperand inputs[4]; | 
| 497     size_t input_count = 0; | 497     size_t input_count = 0; | 
| 498     inputs[input_count++] = g.UseRegister(value); | 498     inputs[input_count++] = g.UseRegister(value); | 
| 499     inputs[input_count++] = g.UseRegister(base); | 499     inputs[input_count++] = g.UseRegister(base); | 
| 500     EmitStore(this, opcode, input_count, inputs, index); | 500     EmitStore(this, opcode, input_count, inputs, index); | 
| 501   } | 501   } | 
| 502 } | 502 } | 
| 503 | 503 | 
|  | 504 void InstructionSelector::VisitProtectedStore(Node* node) { | 
|  | 505   // TODO(eholk) | 
|  | 506   UNIMPLEMENTED(); | 
|  | 507 } | 
|  | 508 | 
| 504 void InstructionSelector::VisitUnalignedLoad(Node* node) { | 509 void InstructionSelector::VisitUnalignedLoad(Node* node) { | 
| 505   UnalignedLoadRepresentation load_rep = | 510   UnalignedLoadRepresentation load_rep = | 
| 506       UnalignedLoadRepresentationOf(node->op()); | 511       UnalignedLoadRepresentationOf(node->op()); | 
| 507   ArmOperandGenerator g(this); | 512   ArmOperandGenerator g(this); | 
| 508   Node* base = node->InputAt(0); | 513   Node* base = node->InputAt(0); | 
| 509   Node* index = node->InputAt(1); | 514   Node* index = node->InputAt(1); | 
| 510 | 515 | 
| 511   InstructionCode opcode = kArmLdr; | 516   InstructionCode opcode = kArmLdr; | 
| 512   // Only floating point loads need to be specially handled; integer loads | 517   // Only floating point loads need to be specially handled; integer loads | 
| 513   // support unaligned access. We support unaligned FP loads by loading to | 518   // support unaligned access. We support unaligned FP loads by loading to | 
| (...skipping 1768 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 2282   Vector<MachineType> req_aligned = Vector<MachineType>::New(2); | 2287   Vector<MachineType> req_aligned = Vector<MachineType>::New(2); | 
| 2283   req_aligned[0] = MachineType::Float32(); | 2288   req_aligned[0] = MachineType::Float32(); | 
| 2284   req_aligned[1] = MachineType::Float64(); | 2289   req_aligned[1] = MachineType::Float64(); | 
| 2285   return MachineOperatorBuilder::AlignmentRequirements:: | 2290   return MachineOperatorBuilder::AlignmentRequirements:: | 
| 2286       SomeUnalignedAccessUnsupported(req_aligned, req_aligned); | 2291       SomeUnalignedAccessUnsupported(req_aligned, req_aligned); | 
| 2287 } | 2292 } | 
| 2288 | 2293 | 
| 2289 }  // namespace compiler | 2294 }  // namespace compiler | 
| 2290 }  // namespace internal | 2295 }  // namespace internal | 
| 2291 }  // namespace v8 | 2296 }  // namespace v8 | 
| OLD | NEW | 
|---|