Index: src/ia32/lithium-codegen-ia32.cc |
diff --git a/src/ia32/lithium-codegen-ia32.cc b/src/ia32/lithium-codegen-ia32.cc |
index bbea4d9dfb80efbfc5c3f5c1cb7ed56170f4d567..bc1173b131550b03833f482610ee0a0932232a1a 100644 |
--- a/src/ia32/lithium-codegen-ia32.cc |
+++ b/src/ia32/lithium-codegen-ia32.cc |
@@ -6001,8 +6001,13 @@ void LCodeGen::DoDeferredAllocate(LAllocate* instr) { |
__ StoreToSafepointRegisterSlot(result, size); |
} |
__ push(size); |
- CallRuntimeFromDeferred( |
- Runtime::kAllocateInNewSpace, 1, instr, instr->context()); |
+ if (instr->hydrogen()->CanAllocateInOldPointerSpace()) { |
+ CallRuntimeFromDeferred( |
+ Runtime::kAllocateInOldPointerSpace, 1, instr, instr->context()); |
+ } else { |
+ CallRuntimeFromDeferred( |
+ Runtime::kAllocateInNewSpace, 1, instr, instr->context()); |
+ } |
__ StoreToSafepointRegisterSlot(result, eax); |
} |