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

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

Issue 602993002: Frees up LR on arm for use by the register allocator. (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 6 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/flow_graph_compiler_arm.cc ('k') | runtime/vm/stub_code_arm.cc » ('j') | 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/cpu.h" 10 #include "vm/cpu.h"
(...skipping 5075 matching lines...) Expand 10 before | Expand all | Expand 10 after
5086 __ vsqrtd(result, val); 5086 __ vsqrtd(result, val);
5087 } else if (kind() == MathUnaryInstr::kDoubleSquare) { 5087 } else if (kind() == MathUnaryInstr::kDoubleSquare) {
5088 const DRegister val = EvenDRegisterOf(locs()->in(0).fpu_reg()); 5088 const DRegister val = EvenDRegisterOf(locs()->in(0).fpu_reg());
5089 const DRegister result = EvenDRegisterOf(locs()->out(0).fpu_reg()); 5089 const DRegister result = EvenDRegisterOf(locs()->out(0).fpu_reg());
5090 __ vmuld(result, val, val); 5090 __ vmuld(result, val, val);
5091 } else { 5091 } else {
5092 ASSERT((kind() == MathUnaryInstr::kSin) || 5092 ASSERT((kind() == MathUnaryInstr::kSin) ||
5093 (kind() == MathUnaryInstr::kCos)); 5093 (kind() == MathUnaryInstr::kCos));
5094 if (TargetCPUFeatures::hardfp_supported()) { 5094 if (TargetCPUFeatures::hardfp_supported()) {
5095 __ CallRuntime(TargetFunction(), InputCount()); 5095 __ CallRuntime(TargetFunction(), InputCount());
5096 } else { 5096 } else {
5097 // If we aren't doing "hardfp", then we have to move the double arguments 5097 // If we aren't doing "hardfp", then we have to move the double arguments
5098 // to the integer registers, and take the results from the integer 5098 // to the integer registers, and take the results from the integer
5099 // registers. 5099 // registers.
5100 __ vmovrrd(R0, R1, D0); 5100 __ vmovrrd(R0, R1, D0);
5101 __ vmovrrd(R2, R3, D1); 5101 __ vmovrrd(R2, R3, D1);
5102 __ CallRuntime(TargetFunction(), InputCount()); 5102 __ CallRuntime(TargetFunction(), InputCount());
5103 __ vmovdrr(D0, R0, R1); 5103 __ vmovdrr(D0, R0, R1);
5104 __ vmovdrr(D1, R2, R3); 5104 __ vmovdrr(D1, R2, R3);
5105 } 5105 }
5106 } 5106 }
(...skipping 1924 matching lines...) Expand 10 before | Expand all | Expand 10 after
7031 compiler->GenerateCall(token_pos(), &label, stub_kind_, locs()); 7031 compiler->GenerateCall(token_pos(), &label, stub_kind_, locs());
7032 #if defined(DEBUG) 7032 #if defined(DEBUG)
7033 __ LoadImmediate(R4, kInvalidObjectPointer); 7033 __ LoadImmediate(R4, kInvalidObjectPointer);
7034 __ LoadImmediate(R5, kInvalidObjectPointer); 7034 __ LoadImmediate(R5, kInvalidObjectPointer);
7035 #endif 7035 #endif
7036 } 7036 }
7037 7037
7038 } // namespace dart 7038 } // namespace dart
7039 7039
7040 #endif // defined TARGET_ARCH_ARM 7040 #endif // defined TARGET_ARCH_ARM
OLDNEW
« no previous file with comments | « runtime/vm/flow_graph_compiler_arm.cc ('k') | runtime/vm/stub_code_arm.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698