Index: src/mips/lithium-codegen-mips.cc |
diff --git a/src/mips/lithium-codegen-mips.cc b/src/mips/lithium-codegen-mips.cc |
index 7f6e86980872e1c79cd66f4bfdabecdfe81cf0ab..60f8e23a3d3b285cdbd1bb9b9faa65d6b86d8368 100644 |
--- a/src/mips/lithium-codegen-mips.cc |
+++ b/src/mips/lithium-codegen-mips.cc |
@@ -5411,19 +5411,22 @@ void LCodeGen::DoDeferredAllocate(LAllocate* instr) { |
__ Push(Smi::FromInt(size)); |
} |
+ int flags = AllocateDoubleAlignFlag::encode( |
+ instr->hydrogen()->MustAllocateDoubleAligned()); |
if (instr->hydrogen()->IsOldPointerSpaceAllocation()) { |
ASSERT(!instr->hydrogen()->IsOldDataSpaceAllocation()); |
ASSERT(!instr->hydrogen()->IsNewSpaceAllocation()); |
- CallRuntimeFromDeferred(Runtime::kAllocateInOldPointerSpace, 1, instr, |
- instr->context()); |
+ flags = AllocateTargetSpace::update(flags, OLD_POINTER_SPACE); |
} else if (instr->hydrogen()->IsOldDataSpaceAllocation()) { |
ASSERT(!instr->hydrogen()->IsNewSpaceAllocation()); |
- CallRuntimeFromDeferred(Runtime::kAllocateInOldDataSpace, 1, instr, |
- instr->context()); |
+ flags = AllocateTargetSpace::update(flags, OLD_DATA_SPACE); |
} else { |
- CallRuntimeFromDeferred(Runtime::kAllocateInNewSpace, 1, instr, |
- instr->context()); |
+ flags = AllocateTargetSpace::update(flags, NEW_SPACE); |
} |
+ __ Push(Smi::FromInt(flags)); |
+ |
+ CallRuntimeFromDeferred( |
+ Runtime::kAllocateInTargetSpace, 2, instr, instr->context()); |
__ StoreToSafepointRegisterSlot(v0, result); |
} |