Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(733)

Unified Diff: src/lithium-allocator.cc

Issue 194793002: [v8-dev] ARM: safepoints frame optimization (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Created 6 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: src/lithium-allocator.cc
diff --git a/src/lithium-allocator.cc b/src/lithium-allocator.cc
index eae2995695bbf9f971daa7f12cabaa320c0b0663..16f4c0a79aacf08c5261dd3374657d8ed6a80fde 100644
--- a/src/lithium-allocator.cc
+++ b/src/lithium-allocator.cc
@@ -634,9 +634,11 @@ LOperand* LAllocator::AllocateFixed(LUnallocated* operand,
operand->ConvertTo(LOperand::STACK_SLOT, operand->fixed_slot_index());
} else if (operand->HasFixedRegisterPolicy()) {
int reg_index = operand->fixed_register_index();
+ modified_registers_ |= 1 << reg_index;
operand->ConvertTo(LOperand::REGISTER, reg_index);
} else if (operand->HasFixedDoubleRegisterPolicy()) {
int reg_index = operand->fixed_register_index();
+ modified_double_registers_ |= 1 << reg_index;
operand->ConvertTo(LOperand::DOUBLE_REGISTER, reg_index);
} else {
UNREACHABLE();
@@ -1101,6 +1103,8 @@ bool LAllocator::Allocate(LChunk* chunk) {
assigned_double_registers_ =
new(chunk->zone()) BitVector(DoubleRegister::NumAllocatableRegisters(),
chunk->zone());
+ modified_registers_ = kRegListEmpty;
+ modified_double_registers_ = kRegListEmpty;
MeetRegisterConstraints();
if (!AllocationOk()) return false;
ResolvePhis();

Powered by Google App Engine
This is Rietveld 408576698