| OLD | NEW |
| 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 4418 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4429 | 4429 |
| 4430 | 4430 |
| 4431 void CurrentContextInstr::EmitNativeCode(FlowGraphCompiler* compiler) { | 4431 void CurrentContextInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
| 4432 __ mov(locs()->out().reg(), ShifterOperand(CTX)); | 4432 __ mov(locs()->out().reg(), ShifterOperand(CTX)); |
| 4433 } | 4433 } |
| 4434 | 4434 |
| 4435 | 4435 |
| 4436 LocationSummary* StrictCompareInstr::MakeLocationSummary() const { | 4436 LocationSummary* StrictCompareInstr::MakeLocationSummary() const { |
| 4437 const intptr_t kNumInputs = 2; | 4437 const intptr_t kNumInputs = 2; |
| 4438 const intptr_t kNumTemps = 0; | 4438 const intptr_t kNumTemps = 0; |
| 4439 if (needs_number_check()) { |
| 4440 LocationSummary* locs = |
| 4441 new LocationSummary(kNumInputs, kNumTemps, LocationSummary::kCall); |
| 4442 locs->set_in(0, Location::RegisterLocation(R0)); |
| 4443 locs->set_in(1, Location::RegisterLocation(R1)); |
| 4444 locs->set_out(Location::RegisterLocation(R0)); |
| 4445 return locs; |
| 4446 } |
| 4439 LocationSummary* locs = | 4447 LocationSummary* locs = |
| 4440 new LocationSummary(kNumInputs, kNumTemps, LocationSummary::kNoCall); | 4448 new LocationSummary(kNumInputs, kNumTemps, LocationSummary::kNoCall); |
| 4441 locs->set_in(0, Location::RegisterOrConstant(left())); | 4449 locs->set_in(0, Location::RegisterOrConstant(left())); |
| 4442 locs->set_in(1, Location::RegisterOrConstant(right())); | 4450 locs->set_in(1, Location::RegisterOrConstant(right())); |
| 4443 locs->set_out(Location::RequiresRegister()); | 4451 locs->set_out(Location::RequiresRegister()); |
| 4444 return locs; | 4452 return locs; |
| 4445 } | 4453 } |
| 4446 | 4454 |
| 4447 | 4455 |
| 4448 // Special code for numbers (compare values instead of references.) | 4456 // Special code for numbers (compare values instead of references.) |
| (...skipping 147 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4596 compiler->GenerateCall(token_pos(), | 4604 compiler->GenerateCall(token_pos(), |
| 4597 &label, | 4605 &label, |
| 4598 PcDescriptors::kOther, | 4606 PcDescriptors::kOther, |
| 4599 locs()); | 4607 locs()); |
| 4600 __ Drop(2); // Discard type arguments and receiver. | 4608 __ Drop(2); // Discard type arguments and receiver. |
| 4601 } | 4609 } |
| 4602 | 4610 |
| 4603 } // namespace dart | 4611 } // namespace dart |
| 4604 | 4612 |
| 4605 #endif // defined TARGET_ARCH_ARM | 4613 #endif // defined TARGET_ARCH_ARM |
| OLD | NEW |