summaryrefslogtreecommitdiffstats
path: root/compiler/optimizing/register_allocator.cc
diff options
context:
space:
mode:
authorNicolas Geoffray <ngeoffray@google.com>2015-04-15 11:56:51 +0100
committerNicolas Geoffray <ngeoffray@google.com>2015-04-15 12:53:42 +0100
commit9021825d1e73998b99c81e89c73796f6f2845471 (patch)
tree13e1038931cbb8bf8b8d0f4e3f51553ba1bfa983 /compiler/optimizing/register_allocator.cc
parent858d28ca2e73a785977f53141e775a7d4841b89d (diff)
downloadart-9021825d1e73998b99c81e89c73796f6f2845471.tar.gz
art-9021825d1e73998b99c81e89c73796f6f2845471.tar.bz2
art-9021825d1e73998b99c81e89c73796f6f2845471.zip
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/register_allocator.cc')
-rw-r--r--compiler/optimizing/register_allocator.cc6
1 files changed, 3 insertions, 3 deletions
diff --git a/compiler/optimizing/register_allocator.cc b/compiler/optimizing/register_allocator.cc
index 8f2632880d..e03f5c3b26 100644
--- a/compiler/optimizing/register_allocator.cc
+++ b/compiler/optimizing/register_allocator.cc
@@ -1227,10 +1227,10 @@ void RegisterAllocator::AddMove(HParallelMove* move,
&& codegen_->ShouldSplitLongMoves()
// The parallel move resolver knows how to deal with long constants.
&& !source.IsConstant()) {
- move->AddMove(source.ToLow(), destination.ToLow(), instruction);
- move->AddMove(source.ToHigh(), destination.ToHigh(), nullptr);
+ move->AddMove(source.ToLow(), destination.ToLow(), Primitive::kPrimInt, instruction);
+ move->AddMove(source.ToHigh(), destination.ToHigh(), Primitive::kPrimInt, nullptr);
} else {
- move->AddMove(source, destination, instruction);
+ move->AddMove(source, destination, type, instruction);
}
}