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

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

Issue 2039843003: [arm] Support float registers for moves and swaps. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Use __ Move to eliminate pointless moves. Created 4 years, 6 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
« no previous file with comments | « src/compiler/arm/instruction-scheduler-arm.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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/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 1195 matching lines...) Expand 10 before | Expand all | Expand 10 after
1206 void InstructionSelector::VisitTruncateFloat64ToWord32(Node* node) { 1206 void InstructionSelector::VisitTruncateFloat64ToWord32(Node* node) {
1207 VisitRR(this, kArchTruncateDoubleToI, node); 1207 VisitRR(this, kArchTruncateDoubleToI, node);
1208 } 1208 }
1209 1209
1210 void InstructionSelector::VisitRoundFloat64ToInt32(Node* node) { 1210 void InstructionSelector::VisitRoundFloat64ToInt32(Node* node) {
1211 VisitRR(this, kArmVcvtS32F64, node); 1211 VisitRR(this, kArmVcvtS32F64, node);
1212 } 1212 }
1213 1213
1214 1214
1215 void InstructionSelector::VisitBitcastFloat32ToInt32(Node* node) { 1215 void InstructionSelector::VisitBitcastFloat32ToInt32(Node* node) {
1216 VisitRR(this, kArmVmovLowU32F64, node); 1216 VisitRR(this, kArmVmovU32F32, node);
1217 } 1217 }
1218 1218
1219 1219
1220 void InstructionSelector::VisitBitcastInt32ToFloat32(Node* node) { 1220 void InstructionSelector::VisitBitcastInt32ToFloat32(Node* node) {
1221 ArmOperandGenerator g(this); 1221 ArmOperandGenerator g(this);
1222 Emit(kArmVmovLowF64U32, g.DefineAsRegister(node), 1222 Emit(kArmVmovLowF64U32, g.DefineAsRegister(node),
1223 ImmediateOperand(ImmediateOperand::INLINE, 0), 1223 ImmediateOperand(ImmediateOperand::INLINE, 0),
1224 g.UseRegister(node->InputAt(0))); 1224 g.UseRegister(node->InputAt(0)));
1225 } 1225 }
1226 1226
(...skipping 770 matching lines...) Expand 10 before | Expand all | Expand 10 after
1997 // static 1997 // static
1998 MachineOperatorBuilder::AlignmentRequirements 1998 MachineOperatorBuilder::AlignmentRequirements
1999 InstructionSelector::AlignmentRequirements() { 1999 InstructionSelector::AlignmentRequirements() {
2000 return MachineOperatorBuilder::AlignmentRequirements:: 2000 return MachineOperatorBuilder::AlignmentRequirements::
2001 FullUnalignedAccessSupport(); 2001 FullUnalignedAccessSupport();
2002 } 2002 }
2003 2003
2004 } // namespace compiler 2004 } // namespace compiler
2005 } // namespace internal 2005 } // namespace internal
2006 } // namespace v8 2006 } // namespace v8
OLDNEW
« no previous file with comments | « src/compiler/arm/instruction-scheduler-arm.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698