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

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

Issue 526223002: Use Chrome compatible naming for compiler specifics. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: mips Created 6 years, 3 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 | « src/arm/lithium-gap-resolver-arm.h ('k') | src/arm64/lithium-arm64.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-stubs.h" 9 #include "src/code-stubs.h"
10 #include "src/codegen.h" 10 #include "src/codegen.h"
(...skipping 4313 matching lines...) Expand 10 before | Expand all | Expand 10 after
4324 Comment cmnt(masm_, "[ Yield"); 4324 Comment cmnt(masm_, "[ Yield");
4325 // Evaluate yielded value first; the initial iterator definition depends on 4325 // Evaluate yielded value first; the initial iterator definition depends on
4326 // this. It stays on the stack while we update the iterator. 4326 // this. It stays on the stack while we update the iterator.
4327 VisitForStackValue(expr->expression()); 4327 VisitForStackValue(expr->expression());
4328 4328
4329 // TODO(jbramley): Tidy this up once the merge is done, using named registers 4329 // TODO(jbramley): Tidy this up once the merge is done, using named registers
4330 // and suchlike. The implementation changes a little by bleeding_edge so I 4330 // and suchlike. The implementation changes a little by bleeding_edge so I
4331 // don't want to spend too much time on it now. 4331 // don't want to spend too much time on it now.
4332 4332
4333 switch (expr->yield_kind()) { 4333 switch (expr->yield_kind()) {
4334 case Yield::SUSPEND: 4334 case Yield::kSuspend:
4335 // Pop value from top-of-stack slot; box result into result register. 4335 // Pop value from top-of-stack slot; box result into result register.
4336 EmitCreateIteratorResult(false); 4336 EmitCreateIteratorResult(false);
4337 __ Push(result_register()); 4337 __ Push(result_register());
4338 // Fall through. 4338 // Fall through.
4339 case Yield::INITIAL: { 4339 case Yield::kInitial: {
4340 Label suspend, continuation, post_runtime, resume; 4340 Label suspend, continuation, post_runtime, resume;
4341 4341
4342 __ B(&suspend); 4342 __ B(&suspend);
4343 4343
4344 // TODO(jbramley): This label is bound here because the following code 4344 // TODO(jbramley): This label is bound here because the following code
4345 // looks at its pos(). Is it possible to do something more efficient here, 4345 // looks at its pos(). Is it possible to do something more efficient here,
4346 // perhaps using Adr? 4346 // perhaps using Adr?
4347 __ Bind(&continuation); 4347 __ Bind(&continuation);
4348 __ B(&resume); 4348 __ B(&resume);
4349 4349
(...skipping 14 matching lines...) Expand all
4364 __ Ldr(cp, MemOperand(fp, StandardFrameConstants::kContextOffset)); 4364 __ Ldr(cp, MemOperand(fp, StandardFrameConstants::kContextOffset));
4365 __ Bind(&post_runtime); 4365 __ Bind(&post_runtime);
4366 __ Pop(result_register()); 4366 __ Pop(result_register());
4367 EmitReturnSequence(); 4367 EmitReturnSequence();
4368 4368
4369 __ Bind(&resume); 4369 __ Bind(&resume);
4370 context()->Plug(result_register()); 4370 context()->Plug(result_register());
4371 break; 4371 break;
4372 } 4372 }
4373 4373
4374 case Yield::FINAL: { 4374 case Yield::kFinal: {
4375 VisitForAccumulatorValue(expr->generator_object()); 4375 VisitForAccumulatorValue(expr->generator_object());
4376 __ Mov(x1, Smi::FromInt(JSGeneratorObject::kGeneratorClosed)); 4376 __ Mov(x1, Smi::FromInt(JSGeneratorObject::kGeneratorClosed));
4377 __ Str(x1, FieldMemOperand(result_register(), 4377 __ Str(x1, FieldMemOperand(result_register(),
4378 JSGeneratorObject::kContinuationOffset)); 4378 JSGeneratorObject::kContinuationOffset));
4379 // Pop value from top-of-stack slot, box result into result register. 4379 // Pop value from top-of-stack slot, box result into result register.
4380 EmitCreateIteratorResult(true); 4380 EmitCreateIteratorResult(true);
4381 EmitUnwindBeforeReturn(); 4381 EmitUnwindBeforeReturn();
4382 EmitReturnSequence(); 4382 EmitReturnSequence();
4383 break; 4383 break;
4384 } 4384 }
4385 4385
4386 case Yield::DELEGATING: { 4386 case Yield::kDelegating: {
4387 VisitForStackValue(expr->generator_object()); 4387 VisitForStackValue(expr->generator_object());
4388 4388
4389 // Initial stack layout is as follows: 4389 // Initial stack layout is as follows:
4390 // [sp + 1 * kPointerSize] iter 4390 // [sp + 1 * kPointerSize] iter
4391 // [sp + 0 * kPointerSize] g 4391 // [sp + 0 * kPointerSize] g
4392 4392
4393 Label l_catch, l_try, l_suspend, l_continuation, l_resume; 4393 Label l_catch, l_try, l_suspend, l_continuation, l_resume;
4394 Label l_next, l_call, l_loop; 4394 Label l_next, l_call, l_loop;
4395 Register load_receiver = LoadConvention::ReceiverRegister(); 4395 Register load_receiver = LoadConvention::ReceiverRegister();
4396 Register load_name = LoadConvention::NameRegister(); 4396 Register load_name = LoadConvention::NameRegister();
(...skipping 514 matching lines...) Expand 10 before | Expand all | Expand 10 after
4911 return previous_; 4911 return previous_;
4912 } 4912 }
4913 4913
4914 4914
4915 #undef __ 4915 #undef __
4916 4916
4917 4917
4918 } } // namespace v8::internal 4918 } } // namespace v8::internal
4919 4919
4920 #endif // V8_TARGET_ARCH_ARM64 4920 #endif // V8_TARGET_ARCH_ARM64
OLDNEW
« no previous file with comments | « src/arm/lithium-gap-resolver-arm.h ('k') | src/arm64/lithium-arm64.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698