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

Unified Diff: runtime/vm/flow_graph_allocator.h

Issue 13801014: Fix bug in ParallelMoveResolver::EmitSwap: implement swaps of FPU spill slots. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: fix typo Created 7 years, 8 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 side-by-side diff with in-line comments
Download patch
Index: runtime/vm/flow_graph_allocator.h
diff --git a/runtime/vm/flow_graph_allocator.h b/runtime/vm/flow_graph_allocator.h
index 5268c312b6bf0dfce9fac36b409c3697eccbdbee..ab60b824466d3b2ceadacdae0198572c123d231b 100644
--- a/runtime/vm/flow_graph_allocator.h
+++ b/runtime/vm/flow_graph_allocator.h
@@ -38,7 +38,7 @@ class ReachingDefs : public ValueObject {
class FlowGraphAllocator : public ValueObject {
public:
// Number of stack slots needed for a fpu register spill slot.
- static const intptr_t kFpuRegisterSpillFactor = kFpuRegisterSize / kWordSize;
+ static const intptr_t kDoubleSpillFactor = kDoubleSize / kWordSize;
explicit FlowGraphAllocator(const FlowGraph& flow_graph);
@@ -227,8 +227,8 @@ class FlowGraphAllocator : public ValueObject {
MoveOperands* AddMoveAt(intptr_t pos, Location to, Location from);
- Location MakeRegisterLocation(intptr_t reg, Representation rep) {
- return Location::MachineRegisterLocation(register_kind_, reg, rep);
+ Location MakeRegisterLocation(intptr_t reg) {
+ return Location::MachineRegisterLocation(register_kind_, reg);
}
void PrintLiveRanges();
@@ -309,8 +309,13 @@ class FlowGraphAllocator : public ValueObject {
// List of used spill slots. Contains positions after which spill slots
// become free and can be reused for allocation.
GrowableArray<intptr_t> spill_slots_;
- intptr_t cpu_spill_slot_count_;
+ // For every used spill slot contains a flag determines whether it is
+ // QuadSpillSlot to ensure that indexes of quad and double spill slots
+ // are disjoint.
+ GrowableArray<bool> quad_spill_slots_;
+
+ intptr_t cpu_spill_slot_count_;
DISALLOW_COPY_AND_ASSIGN(FlowGraphAllocator);
};

Powered by Google App Engine
This is Rietveld 408576698