Index: src/code-stub-assembler.cc |
diff --git a/src/code-stub-assembler.cc b/src/code-stub-assembler.cc |
index 776408ae08d8c5317ee202ec5a4e1e58ccfa11ff..27db1b85160e69f24f75809b280fe6408ba24b2b 100644 |
--- a/src/code-stub-assembler.cc |
+++ b/src/code-stub-assembler.cc |
@@ -783,6 +783,22 @@ Node* CodeStubAssembler::AllocateRawUnaligned(Node* size_in_bytes, |
Label runtime_call(this, Label::kDeferred), no_runtime_call(this); |
Label merge_runtime(this, &result); |
+ if (flags & kAllowLargeObjectAllocation) { |
+ Label next(this); |
+ GotoIf(IsRegularHeapObjectSize(size_in_bytes), &next); |
+ |
+ Node* runtime_flags = SmiConstant( |
+ Smi::FromInt(AllocateDoubleAlignFlag::encode(false) | |
+ AllocateTargetSpace::encode(AllocationSpace::LO_SPACE))); |
+ Node* const runtime_result = |
+ CallRuntime(Runtime::kAllocateInTargetSpace, NoContextConstant(), |
+ SmiTag(size_in_bytes), runtime_flags); |
+ result.Bind(runtime_result); |
+ Goto(&merge_runtime); |
+ |
+ Bind(&next); |
+ } |
+ |
Node* new_top = IntPtrAdd(top, size_in_bytes); |
Branch(UintPtrGreaterThanOrEqual(new_top, limit), &runtime_call, |
&no_runtime_call); |