summaryrefslogtreecommitdiff
path: root/compiler/optimizing/code_generator.cc
diff options
context:
space:
mode:
author Nicolas Geoffray <ngeoffray@google.com> 2015-04-15 11:56:51 +0100
committer Nicolas Geoffray <ngeoffray@google.com> 2015-04-15 12:53:42 +0100
commit9021825d1e73998b99c81e89c73796f6f2845471 (patch)
tree13e1038931cbb8bf8b8d0f4e3f51553ba1bfa983 /compiler/optimizing/code_generator.cc
parent858d28ca2e73a785977f53141e775a7d4841b89d (diff)
Type MoveOperands.
The ParallelMoveResolver implementation needs to know if a move is for 64bits or not, to handle swaps correctly. Bug found, and test case courtesy of Serguei I. Katkov. Change-Id: I9a0917a1cfed398c07e57ad6251aea8c9b0b8506
Diffstat (limited to 'compiler/optimizing/code_generator.cc')
-rw-r--r--compiler/optimizing/code_generator.cc11
1 files changed, 8 insertions, 3 deletions
diff --git a/compiler/optimizing/code_generator.cc b/compiler/optimizing/code_generator.cc
index 8736374306..f7fa5db8d5 100644
--- a/compiler/optimizing/code_generator.cc
+++ b/compiler/optimizing/code_generator.cc
@@ -802,10 +802,15 @@ void CodeGenerator::ClearSpillSlotsFromLoopPhisInStackMap(HSuspendCheck* suspend
}
}
-void CodeGenerator::EmitParallelMoves(Location from1, Location to1, Location from2, Location to2) {
+void CodeGenerator::EmitParallelMoves(Location from1,
+ Location to1,
+ Primitive::Type type1,
+ Location from2,
+ Location to2,
+ Primitive::Type type2) {
HParallelMove parallel_move(GetGraph()->GetArena());
- parallel_move.AddMove(from1, to1, nullptr);
- parallel_move.AddMove(from2, to2, nullptr);
+ parallel_move.AddMove(from1, to1, type1, nullptr);
+ parallel_move.AddMove(from2, to2, type2, nullptr);
GetMoveResolver()->EmitNativeCode(&parallel_move);
}