|
Fix bug in ParallelMoveResolver::EmitSwap: implement swaps of FPU spill slots.
Remove representation from location. Presence of representation in location encoding was violating the invariant that unequal locations must be disjoint (where equality for locations is defined in terms of bitwise equality of their encoding). This could lead ParallelMoveResolver to treat XMM1 containing unboxed double as unequal location to XMM1 containing unboxed mint, which is obviously incorrect.
For similar reason eliminate kFloat32x4StackSlot and kUint32x4StackSlot distinction is eliminated and both are replaced with kQuadStackSlot. Register allocator now guarantees that no kQuadStackSlot occupies the same space as any other kDoubleStackSlot. This also shrinks optimized stack when only doubles are used (but might lead to a higher stack utilization when a mixture of doubles and quads is used).
Implement allocation of scratch Cpu and Xmm registers for ParallelMoveResolver. This also allows to remove push(eax)/pop(eax) pairs when resolving memory-memory cycles on ia32.
BUG=dart:9710
Committed: https://code.google.com/p/dart/source/detail?r=21148
Total comments: 2
Total comments: 1
|
Unified diffs |
Side-by-side diffs |
Delta from patch set |
Stats (+437 lines, -191 lines) |
Patch |
|
M |
runtime/vm/constants_arm.h
|
View
|
1
2
|
1 chunk |
+1 line, -0 lines |
0 comments
|
Download
|
|
M |
runtime/vm/constants_ia32.h
|
View
|
1
2
|
1 chunk |
+1 line, -0 lines |
0 comments
|
Download
|
|
M |
runtime/vm/constants_mips.h
|
View
|
1
2
|
1 chunk |
+1 line, -0 lines |
0 comments
|
Download
|
|
M |
runtime/vm/constants_x64.h
|
View
|
1
2
|
1 chunk |
+1 line, -0 lines |
0 comments
|
Download
|
|
M |
runtime/vm/deopt_instructions.h
|
View
|
|
1 chunk |
+1 line, -1 line |
0 comments
|
Download
|
|
M |
runtime/vm/deopt_instructions.cc
|
View
|
|
2 chunks |
+8 lines, -7 lines |
0 comments
|
Download
|
|
M |
runtime/vm/flow_graph_allocator.h
|
View
|
|
3 chunks |
+9 lines, -4 lines |
0 comments
|
Download
|
|
M |
runtime/vm/flow_graph_allocator.cc
|
View
|
1
|
11 chunks |
+64 lines, -30 lines |
0 comments
|
Download
|
|
M |
runtime/vm/flow_graph_compiler.h
|
View
|
1
2
|
1 chunk |
+41 lines, -0 lines |
0 comments
|
Download
|
|
M |
runtime/vm/flow_graph_compiler.cc
|
View
|
1
2
3
|
5 chunks |
+102 lines, -5 lines |
0 comments
|
Download
|
|
M |
runtime/vm/flow_graph_compiler_arm.cc
|
View
|
1
2
|
5 chunks |
+38 lines, -12 lines |
1 comment
|
Download
|
|
M |
runtime/vm/flow_graph_compiler_ia32.cc
|
View
|
1
2
|
5 chunks |
+61 lines, -35 lines |
0 comments
|
Download
|
|
M |
runtime/vm/flow_graph_compiler_mips.cc
|
View
|
1
2
|
1 chunk |
+20 lines, -0 lines |
0 comments
|
Download
|
|
M |
runtime/vm/flow_graph_compiler_x64.cc
|
View
|
1
2
|
5 chunks |
+45 lines, -9 lines |
0 comments
|
Download
|
|
M |
runtime/vm/intermediate_language_ia32.cc
|
View
|
|
1 chunk |
+3 lines, -3 lines |
0 comments
|
Download
|
|
M |
runtime/vm/intermediate_language_x64.cc
|
View
|
|
1 chunk |
+3 lines, -3 lines |
0 comments
|
Download
|
|
M |
runtime/vm/locations.h
|
View
|
1
|
11 chunks |
+37 lines, -80 lines |
0 comments
|
Download
|
|
M |
runtime/vm/locations.cc
|
View
|
|
1 chunk |
+1 line, -2 lines |
0 comments
|
Download
|
Total messages: 8 (0 generated)
|