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

Side by Side Diff: src/arm64/full-codegen-arm64.cc

Issue 663373003: Assign bailout and type feedback IDs in a post-pass (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Created 6 years, 2 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 | Annotate | Revision Log
« no previous file with comments | « BUILD.gn ('k') | src/ast.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2013 the V8 project authors. All rights reserved. 1 // Copyright 2013 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/v8.h" 5 #include "src/v8.h"
6 6
7 #if V8_TARGET_ARCH_ARM64 7 #if V8_TARGET_ARCH_ARM64
8 8
9 #include "src/code-factory.h" 9 #include "src/code-factory.h"
10 #include "src/code-stubs.h" 10 #include "src/code-stubs.h"
(...skipping 281 matching lines...) Expand 10 before | Expand all | Expand 10 after
292 { Comment cmnt(masm_, "[ Declarations"); 292 { Comment cmnt(masm_, "[ Declarations");
293 if (scope()->is_function_scope() && scope()->function() != NULL) { 293 if (scope()->is_function_scope() && scope()->function() != NULL) {
294 VariableDeclaration* function = scope()->function(); 294 VariableDeclaration* function = scope()->function();
295 DCHECK(function->proxy()->var()->mode() == CONST || 295 DCHECK(function->proxy()->var()->mode() == CONST ||
296 function->proxy()->var()->mode() == CONST_LEGACY); 296 function->proxy()->var()->mode() == CONST_LEGACY);
297 DCHECK(function->proxy()->var()->location() != Variable::UNALLOCATED); 297 DCHECK(function->proxy()->var()->location() != Variable::UNALLOCATED);
298 VisitVariableDeclaration(function); 298 VisitVariableDeclaration(function);
299 } 299 }
300 VisitDeclarations(scope()->declarations()); 300 VisitDeclarations(scope()->declarations());
301 } 301 }
302 }
303 302
304 { Comment cmnt(masm_, "[ Stack check"); 303 { Comment cmnt(masm_, "[ Stack check");
305 PrepareForBailoutForId(BailoutId::Declarations(), NO_REGISTERS); 304 PrepareForBailoutForId(BailoutId::Declarations(), NO_REGISTERS);
306 Label ok; 305 Label ok;
307 DCHECK(jssp.Is(__ StackPointer())); 306 DCHECK(jssp.Is(__ StackPointer()));
308 __ CompareRoot(jssp, Heap::kStackLimitRootIndex); 307 __ CompareRoot(jssp, Heap::kStackLimitRootIndex);
309 __ B(hs, &ok); 308 __ B(hs, &ok);
310 PredictableCodeSizeScope predictable(masm_, 309 PredictableCodeSizeScope predictable(masm_,
311 Assembler::kCallSizeWithRelocation); 310 Assembler::kCallSizeWithRelocation);
312 __ Call(isolate()->builtins()->StackCheck(), RelocInfo::CODE_TARGET); 311 __ Call(isolate()->builtins()->StackCheck(), RelocInfo::CODE_TARGET);
313 __ Bind(&ok); 312 __ Bind(&ok);
314 } 313 }
315 314
316 { Comment cmnt(masm_, "[ Body"); 315 { Comment cmnt(masm_, "[ Body");
317 DCHECK(loop_depth() == 0); 316 DCHECK(loop_depth() == 0);
318 VisitStatements(function()->body()); 317 VisitStatements(function()->body());
319 DCHECK(loop_depth() == 0); 318 DCHECK(loop_depth() == 0);
319 }
320 } 320 }
321 321
322 // Always emit a 'return undefined' in case control fell off the end of 322 // Always emit a 'return undefined' in case control fell off the end of
323 // the body. 323 // the body.
324 { Comment cmnt(masm_, "[ return <undefined>;"); 324 { Comment cmnt(masm_, "[ return <undefined>;");
325 __ LoadRoot(x0, Heap::kUndefinedValueRootIndex); 325 __ LoadRoot(x0, Heap::kUndefinedValueRootIndex);
326 } 326 }
327 EmitReturnSequence(); 327 EmitReturnSequence();
328 328
329 // Force emission of the pools, so they don't get emitted in the middle 329 // Force emission of the pools, so they don't get emitted in the middle
(...skipping 4915 matching lines...) Expand 10 before | Expand all | Expand 10 after
5245 return previous_; 5245 return previous_;
5246 } 5246 }
5247 5247
5248 5248
5249 #undef __ 5249 #undef __
5250 5250
5251 5251
5252 } } // namespace v8::internal 5252 } } // namespace v8::internal
5253 5253
5254 #endif // V8_TARGET_ARCH_ARM64 5254 #endif // V8_TARGET_ARCH_ARM64
OLDNEW
« no previous file with comments | « BUILD.gn ('k') | src/ast.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698