Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(11)

Side by Side Diff: src/compiler/code-stub-assembler.cc

Issue 1779713005: Marks the label associated with the runtime call in CodeStubAssembler::Allocate as deferred. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Created 4 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2015 the V8 project authors. All rights reserved. 1 // Copyright 2015 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "src/compiler/code-stub-assembler.h" 5 #include "src/compiler/code-stub-assembler.h"
6 6
7 #include <ostream> 7 #include <ostream>
8 8
9 #include "src/code-factory.h" 9 #include "src/code-factory.h"
10 #include "src/compiler/graph.h" 10 #include "src/compiler/graph.h"
(...skipping 269 matching lines...) Expand 10 before | Expand all | Expand 10 after
280 } 280 }
281 281
282 Node* CodeStubAssembler::AllocateRawUnaligned(Node* size_in_bytes, 282 Node* CodeStubAssembler::AllocateRawUnaligned(Node* size_in_bytes,
283 AllocationFlags flags, 283 AllocationFlags flags,
284 Node* top_address, 284 Node* top_address,
285 Node* limit_address) { 285 Node* limit_address) {
286 Node* top = Load(MachineType::Pointer(), top_address); 286 Node* top = Load(MachineType::Pointer(), top_address);
287 Node* limit = Load(MachineType::Pointer(), limit_address); 287 Node* limit = Load(MachineType::Pointer(), limit_address);
288 288
289 // If there's not enough space, call the runtime. 289 // If there's not enough space, call the runtime.
290 RawMachineLabel runtime_call, no_runtime_call, merge_runtime; 290 RawMachineLabel runtime_call(RawMachineLabel::kDeferred), no_runtime_call,
291 merge_runtime;
291 raw_assembler_->Branch( 292 raw_assembler_->Branch(
292 raw_assembler_->IntPtrLessThan(IntPtrSub(limit, top), size_in_bytes), 293 raw_assembler_->IntPtrLessThan(IntPtrSub(limit, top), size_in_bytes),
293 &runtime_call, &no_runtime_call); 294 &runtime_call, &no_runtime_call);
294 295
295 raw_assembler_->Bind(&runtime_call); 296 raw_assembler_->Bind(&runtime_call);
296 // AllocateInTargetSpace does not use the context. 297 // AllocateInTargetSpace does not use the context.
297 Node* context = IntPtrConstant(0); 298 Node* context = IntPtrConstant(0);
298 Node* runtime_flags = SmiTag(Int32Constant( 299 Node* runtime_flags = SmiTag(Int32Constant(
299 AllocateDoubleAlignFlag::encode(false) | 300 AllocateDoubleAlignFlag::encode(false) |
300 AllocateTargetSpace::encode(flags & kPretenured 301 AllocateTargetSpace::encode(flags & kPretenured
(...skipping 626 matching lines...) Expand 10 before | Expand all | Expand 10 after
927 } 928 }
928 } 929 }
929 } 930 }
930 931
931 bound_ = true; 932 bound_ = true;
932 } 933 }
933 934
934 } // namespace compiler 935 } // namespace compiler
935 } // namespace internal 936 } // namespace internal
936 } // namespace v8 937 } // namespace v8
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698