| 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_XXX. | 5 #include "vm/globals.h" // Needed here to get TARGET_ARCH_XXX. |
| 6 | 6 |
| 7 #include "vm/flow_graph_compiler.h" | 7 #include "vm/flow_graph_compiler.h" |
| 8 | 8 |
| 9 #include "vm/cha.h" | 9 #include "vm/cha.h" |
| 10 #include "vm/dart_entry.h" | 10 #include "vm/dart_entry.h" |
| (...skipping 490 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 501 | 501 |
| 502 // 2. Iterate the environment and replace register locations with the | 502 // 2. Iterate the environment and replace register locations with the |
| 503 // corresponding spill slot locations. | 503 // corresponding spill slot locations. |
| 504 for (Environment::DeepIterator it(env); !it.Done(); it.Advance()) { | 504 for (Environment::DeepIterator it(env); !it.Done(); it.Advance()) { |
| 505 Location loc = it.CurrentLocation(); | 505 Location loc = it.CurrentLocation(); |
| 506 if (loc.IsRegister()) { | 506 if (loc.IsRegister()) { |
| 507 intptr_t index = cpu_reg_slots[loc.reg()]; | 507 intptr_t index = cpu_reg_slots[loc.reg()]; |
| 508 ASSERT(index >= 0); | 508 ASSERT(index >= 0); |
| 509 it.SetCurrentLocation(Location::StackSlot(index)); | 509 it.SetCurrentLocation(Location::StackSlot(index)); |
| 510 } else if (loc.IsFpuRegister()) { | 510 } else if (loc.IsFpuRegister()) { |
| 511 assembler()->Comment("You betcha!"); | |
| 512 intptr_t index = fpu_reg_slots[loc.fpu_reg()]; | 511 intptr_t index = fpu_reg_slots[loc.fpu_reg()]; |
| 513 ASSERT(index >= 0); | 512 ASSERT(index >= 0); |
| 514 Value* value = it.CurrentValue(); | 513 Value* value = it.CurrentValue(); |
| 515 switch (value->definition()->representation()) { | 514 switch (value->definition()->representation()) { |
| 516 case kUnboxedDouble: | 515 case kUnboxedDouble: |
| 517 case kUnboxedMint: | 516 case kUnboxedMint: |
| 518 it.SetCurrentLocation(Location::DoubleStackSlot(index)); | 517 it.SetCurrentLocation(Location::DoubleStackSlot(index)); |
| 519 break; | 518 break; |
| 520 case kUnboxedFloat32x4: | 519 case kUnboxedFloat32x4: |
| 521 case kUnboxedInt32x4: | 520 case kUnboxedInt32x4: |
| (...skipping 698 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1220 | 1219 |
| 1221 for (int i = 0; i < len; i++) { | 1220 for (int i = 0; i < len; i++) { |
| 1222 sorted->Add(CidTarget(ic_data.GetReceiverClassIdAt(i), | 1221 sorted->Add(CidTarget(ic_data.GetReceiverClassIdAt(i), |
| 1223 &Function::ZoneHandle(ic_data.GetTargetAt(i)), | 1222 &Function::ZoneHandle(ic_data.GetTargetAt(i)), |
| 1224 ic_data.GetCountAt(i))); | 1223 ic_data.GetCountAt(i))); |
| 1225 } | 1224 } |
| 1226 sorted->Sort(HighestCountFirst); | 1225 sorted->Sort(HighestCountFirst); |
| 1227 } | 1226 } |
| 1228 | 1227 |
| 1229 } // namespace dart | 1228 } // namespace dart |
| OLD | NEW |