Index: src/mips64/lithium-codegen-mips64.cc |
diff --git a/src/mips64/lithium-codegen-mips64.cc b/src/mips64/lithium-codegen-mips64.cc |
index f5eb8f25d096c7df9217a500560932226cf73521..94eab87ea100b21fca8d733003b2625c6fb81fa5 100644 |
--- a/src/mips64/lithium-codegen-mips64.cc |
+++ b/src/mips64/lithium-codegen-mips64.cc |
@@ -5424,9 +5424,13 @@ void LCodeGen::DoAllocate(LAllocate* instr) { |
if (instr->hydrogen()->MustAllocateDoubleAligned()) { |
flags = static_cast<AllocationFlags>(flags | DOUBLE_ALIGNMENT); |
} |
- if (instr->hydrogen()->IsOldSpaceAllocation()) { |
+ if (instr->hydrogen()->IsOldPointerSpaceAllocation()) { |
+ DCHECK(!instr->hydrogen()->IsOldDataSpaceAllocation()); |
DCHECK(!instr->hydrogen()->IsNewSpaceAllocation()); |
- flags = static_cast<AllocationFlags>(flags | PRETENURE); |
+ flags = static_cast<AllocationFlags>(flags | PRETENURE_OLD_POINTER_SPACE); |
+ } else if (instr->hydrogen()->IsOldDataSpaceAllocation()) { |
+ DCHECK(!instr->hydrogen()->IsNewSpaceAllocation()); |
+ flags = static_cast<AllocationFlags>(flags | PRETENURE_OLD_DATA_SPACE); |
} |
if (instr->size()->IsConstantOperand()) { |
int32_t size = ToInteger32(LConstantOperand::cast(instr->size())); |
@@ -5489,9 +5493,13 @@ void LCodeGen::DoDeferredAllocate(LAllocate* instr) { |
int flags = AllocateDoubleAlignFlag::encode( |
instr->hydrogen()->MustAllocateDoubleAligned()); |
- if (instr->hydrogen()->IsOldSpaceAllocation()) { |
+ if (instr->hydrogen()->IsOldPointerSpaceAllocation()) { |
+ DCHECK(!instr->hydrogen()->IsOldDataSpaceAllocation()); |
+ DCHECK(!instr->hydrogen()->IsNewSpaceAllocation()); |
+ flags = AllocateTargetSpace::update(flags, OLD_POINTER_SPACE); |
+ } else if (instr->hydrogen()->IsOldDataSpaceAllocation()) { |
DCHECK(!instr->hydrogen()->IsNewSpaceAllocation()); |
- flags = AllocateTargetSpace::update(flags, OLD_SPACE); |
+ flags = AllocateTargetSpace::update(flags, OLD_DATA_SPACE); |
} else { |
flags = AllocateTargetSpace::update(flags, NEW_SPACE); |
} |