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

Side by Side Diff: runtime/vm/intermediate_language_arm.cc

Issue 37413002: Fixes ARM SIMD IL bug. (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 7 years, 2 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 | Annotate | Revision Log
« no previous file with comments | « runtime/vm/assembler_arm.h ('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 (c) 2013, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 #include "vm/globals.h" // Needed here to get TARGET_ARCH_ARM. 5 #include "vm/globals.h" // Needed here to get TARGET_ARCH_ARM.
6 #if defined(TARGET_ARCH_ARM) 6 #if defined(TARGET_ARCH_ARM)
7 7
8 #include "vm/intermediate_language.h" 8 #include "vm/intermediate_language.h"
9 9
10 #include "vm/dart_entry.h" 10 #include "vm/dart_entry.h"
(...skipping 3290 matching lines...) Expand 10 before | Expand all | Expand 10 after
3301 summary->set_in(0, Location::RequiresFpuRegister()); 3301 summary->set_in(0, Location::RequiresFpuRegister());
3302 summary->set_out(Location::RequiresFpuRegister()); 3302 summary->set_out(Location::RequiresFpuRegister());
3303 summary->set_temp(0, Location::RequiresFpuRegister()); 3303 summary->set_temp(0, Location::RequiresFpuRegister());
3304 return summary; 3304 return summary;
3305 } 3305 }
3306 3306
3307 3307
3308 void Float32x4SqrtInstr::EmitNativeCode(FlowGraphCompiler* compiler) { 3308 void Float32x4SqrtInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
3309 QRegister left = locs()->in(0).fpu_reg(); 3309 QRegister left = locs()->in(0).fpu_reg();
3310 QRegister result = locs()->out().fpu_reg(); 3310 QRegister result = locs()->out().fpu_reg();
3311 QRegister temp = locs()->temp(0).fpu_reg();
3311 3312
3312 switch (op_kind()) { 3313 switch (op_kind()) {
3313 case MethodRecognizer::kFloat32x4Sqrt: 3314 case MethodRecognizer::kFloat32x4Sqrt:
3314 __ Vsqrtqs(result, left); 3315 __ Vsqrtqs(result, left, temp);
3315 break; 3316 break;
3316 case MethodRecognizer::kFloat32x4Reciprocal: 3317 case MethodRecognizer::kFloat32x4Reciprocal:
3317 __ Vreciprocalqs(result, left); 3318 __ Vreciprocalqs(result, left);
3318 break; 3319 break;
3319 case MethodRecognizer::kFloat32x4ReciprocalSqrt: 3320 case MethodRecognizer::kFloat32x4ReciprocalSqrt:
3320 __ VreciprocalSqrtqs(result, left); 3321 __ VreciprocalSqrtqs(result, left);
3321 break; 3322 break;
3322 default: UNREACHABLE(); 3323 default: UNREACHABLE();
3323 } 3324 }
3324 } 3325 }
(...skipping 1324 matching lines...) Expand 10 before | Expand all | Expand 10 after
4649 compiler->GenerateCall(token_pos(), 4650 compiler->GenerateCall(token_pos(),
4650 &label, 4651 &label,
4651 PcDescriptors::kOther, 4652 PcDescriptors::kOther,
4652 locs()); 4653 locs());
4653 __ Drop(2); // Discard type arguments and receiver. 4654 __ Drop(2); // Discard type arguments and receiver.
4654 } 4655 }
4655 4656
4656 } // namespace dart 4657 } // namespace dart
4657 4658
4658 #endif // defined TARGET_ARCH_ARM 4659 #endif // defined TARGET_ARCH_ARM
OLDNEW
« no previous file with comments | « runtime/vm/assembler_arm.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698