Index: src/code-stub-assembler.cc |
diff --git a/src/code-stub-assembler.cc b/src/code-stub-assembler.cc |
index a88ac9aa0bae71d9839eafe4781160ed22835c23..5fa440ca6dc7295bfa0d07775a811177904cfba3 100644 |
--- a/src/code-stub-assembler.cc |
+++ b/src/code-stub-assembler.cc |
@@ -322,7 +322,8 @@ Node* CodeStubAssembler::AllocateRawUnaligned(Node* size_in_bytes, |
Label runtime_call(this, Label::kDeferred), no_runtime_call(this); |
Label merge_runtime(this, &result); |
- Branch(IntPtrLessThan(IntPtrSub(limit, top), size_in_bytes), &runtime_call, |
+ Node* new_top = IntPtrAdd(top, size_in_bytes); |
+ Branch(UintPtrGreaterThanOrEqual(new_top, limit), &runtime_call, |
&no_runtime_call); |
Bind(&runtime_call); |
@@ -342,7 +343,7 @@ Node* CodeStubAssembler::AllocateRawUnaligned(Node* size_in_bytes, |
Bind(&no_runtime_call); |
Node* no_runtime_result = top; |
StoreNoWriteBarrier(MachineType::PointerRepresentation(), top_address, |
- IntPtrAdd(top, size_in_bytes)); |
+ new_top); |
no_runtime_result = BitcastWordToTagged( |
IntPtrAdd(no_runtime_result, IntPtrConstant(kHeapObjectTag))); |
result.Bind(no_runtime_result); |