| 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);
|
|
|