summaryrefslogtreecommitdiff
path: root/compiler/optimizing/register_allocator.cc
diff options
context:
space:
mode:
author Nicolas Geoffray <ngeoffray@google.com> 2016-01-12 16:03:16 +0000
committer Nicolas Geoffray <ngeoffray@google.com> 2016-01-12 16:05:38 +0000
commita3eca2d7300f35c66cf4b696d788a8b7ba74eb99 (patch)
tree18ea775d51bfc71d90407bd801e8b56fb5309868 /compiler/optimizing/register_allocator.cc
parent3da15f8b1097905e06a59149c3a4a9658cbb7d5e (diff)
Do not leave intermediate addresses across Java calls.
bug:26472446 Change-Id: Ie4a9b5fe6f1d61a76c71eceaa2299fe55512c612
Diffstat (limited to 'compiler/optimizing/register_allocator.cc')
-rw-r--r--compiler/optimizing/register_allocator.cc3
1 files changed, 3 insertions, 0 deletions
diff --git a/compiler/optimizing/register_allocator.cc b/compiler/optimizing/register_allocator.cc
index d399bc2d7a..9a06d9be41 100644
--- a/compiler/optimizing/register_allocator.cc
+++ b/compiler/optimizing/register_allocator.cc
@@ -1677,6 +1677,7 @@ void RegisterAllocator::ConnectSiblings(LiveInterval* interval) {
LocationSummary* locations = safepoint_position->GetLocations();
if ((current->GetType() == Primitive::kPrimNot) && current->GetParent()->HasSpillSlot()) {
+ DCHECK(interval->GetDefinedBy()->IsActualObject()) << interval->GetDefinedBy()->DebugName();
locations->SetStackBit(current->GetParent()->GetSpillSlot() / kVRegSize);
}
@@ -1689,6 +1690,8 @@ void RegisterAllocator::ConnectSiblings(LiveInterval* interval) {
maximum_number_of_live_fp_registers_);
}
if (current->GetType() == Primitive::kPrimNot) {
+ DCHECK(interval->GetDefinedBy()->IsActualObject())
+ << interval->GetDefinedBy()->DebugName();
locations->SetRegisterBit(source.reg());
}
break;