diff options
author | 2015-04-15 11:56:51 +0100 | |
---|---|---|
committer | 2015-04-15 12:53:42 +0100 | |
commit | 9021825d1e73998b99c81e89c73796f6f2845471 (patch) | |
tree | 13e1038931cbb8bf8b8d0f4e3f51553ba1bfa983 /compiler/optimizing/code_generator.cc | |
parent | 858d28ca2e73a785977f53141e775a7d4841b89d (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.cc | 11 |
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(¶llel_move); } |