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

Side by Side Diff: src/full-codegen/full-codegen.h

Issue 1865833002: [generators] Decouple generator resume from fullcodegen. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Created 4 years, 8 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
OLDNEW
1 // Copyright 2012 the V8 project authors. All rights reserved. 1 // Copyright 2012 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 #ifndef V8_FULL_CODEGEN_FULL_CODEGEN_H_ 5 #ifndef V8_FULL_CODEGEN_FULL_CODEGEN_H_
6 #define V8_FULL_CODEGEN_FULL_CODEGEN_H_ 6 #define V8_FULL_CODEGEN_FULL_CODEGEN_H_
7 7
8 #include "src/allocation.h" 8 #include "src/allocation.h"
9 #include "src/assert-scope.h" 9 #include "src/assert-scope.h"
10 #include "src/ast/ast.h" 10 #include "src/ast/ast.h"
(...skipping 496 matching lines...) Expand 10 before | Expand all | Expand 10 after
507 F(ValueOf) \ 507 F(ValueOf) \
508 F(StringCharFromCode) \ 508 F(StringCharFromCode) \
509 F(StringCharAt) \ 509 F(StringCharAt) \
510 F(OneByteSeqStringSetChar) \ 510 F(OneByteSeqStringSetChar) \
511 F(TwoByteSeqStringSetChar) \ 511 F(TwoByteSeqStringSetChar) \
512 F(IsJSReceiver) \ 512 F(IsJSReceiver) \
513 F(MathPow) \ 513 F(MathPow) \
514 F(HasCachedArrayIndex) \ 514 F(HasCachedArrayIndex) \
515 F(GetCachedArrayIndex) \ 515 F(GetCachedArrayIndex) \
516 F(GetSuperConstructor) \ 516 F(GetSuperConstructor) \
517 F(GeneratorNext) \
518 F(GeneratorReturn) \
519 F(GeneratorThrow) \
520 F(DebugBreakInOptimizedCode) \ 517 F(DebugBreakInOptimizedCode) \
521 F(ClassOf) \ 518 F(ClassOf) \
522 F(StringCharCodeAt) \ 519 F(StringCharCodeAt) \
523 F(SubString) \ 520 F(SubString) \
524 F(RegExpExec) \ 521 F(RegExpExec) \
525 F(RegExpConstructResult) \ 522 F(RegExpConstructResult) \
526 F(ToInteger) \ 523 F(ToInteger) \
527 F(NumberToString) \ 524 F(NumberToString) \
528 F(ToString) \ 525 F(ToString) \
529 F(ToLength) \ 526 F(ToLength) \
530 F(ToNumber) \ 527 F(ToNumber) \
531 F(ToName) \ 528 F(ToName) \
532 F(ToObject) \ 529 F(ToObject) \
533 F(DebugIsActive) \ 530 F(DebugIsActive) \
534 F(GetOrdinaryHasInstance) \ 531 F(GetOrdinaryHasInstance) \
535 F(CreateIterResultObject) 532 F(CreateIterResultObject)
536 533
537 #define GENERATOR_DECLARATION(Name) void Emit##Name(CallRuntime* call); 534 #define GENERATOR_DECLARATION(Name) void Emit##Name(CallRuntime* call);
538 FOR_EACH_FULL_CODE_INTRINSIC(GENERATOR_DECLARATION) 535 FOR_EACH_FULL_CODE_INTRINSIC(GENERATOR_DECLARATION)
539 #undef GENERATOR_DECLARATION 536 #undef GENERATOR_DECLARATION
540 537
541 void EmitIntrinsicAsStubCall(CallRuntime* expr, const Callable& callable); 538 void EmitIntrinsicAsStubCall(CallRuntime* expr, const Callable& callable);
542 539
543 // Platform-specific code for resuming generators.
544 void EmitGeneratorResume(Expression *generator,
545 Expression *value,
546 JSGeneratorObject::ResumeMode resume_mode);
547
548 // Platform-specific code for loading variables. 540 // Platform-specific code for loading variables.
549 void EmitLoadGlobalCheckExtensions(VariableProxy* proxy, 541 void EmitLoadGlobalCheckExtensions(VariableProxy* proxy,
550 TypeofMode typeof_mode, Label* slow); 542 TypeofMode typeof_mode, Label* slow);
551 MemOperand ContextSlotOperandCheckExtensions(Variable* var, Label* slow); 543 MemOperand ContextSlotOperandCheckExtensions(Variable* var, Label* slow);
552 void EmitDynamicLookupFastCase(VariableProxy* proxy, TypeofMode typeof_mode, 544 void EmitDynamicLookupFastCase(VariableProxy* proxy, TypeofMode typeof_mode,
553 Label* slow, Label* done); 545 Label* slow, Label* done);
554 void EmitGlobalVariableLoad(VariableProxy* proxy, TypeofMode typeof_mode); 546 void EmitGlobalVariableLoad(VariableProxy* proxy, TypeofMode typeof_mode);
555 void EmitVariableLoad(VariableProxy* proxy, 547 void EmitVariableLoad(VariableProxy* proxy,
556 TypeofMode typeof_mode = NOT_INSIDE_TYPEOF); 548 TypeofMode typeof_mode = NOT_INSIDE_TYPEOF);
557 549
(...skipping 500 matching lines...) Expand 10 before | Expand all | Expand 10 after
1058 Address start_; 1050 Address start_;
1059 Address instruction_start_; 1051 Address instruction_start_;
1060 uint32_t length_; 1052 uint32_t length_;
1061 }; 1053 };
1062 1054
1063 1055
1064 } // namespace internal 1056 } // namespace internal
1065 } // namespace v8 1057 } // namespace v8
1066 1058
1067 #endif // V8_FULL_CODEGEN_FULL_CODEGEN_H_ 1059 #endif // V8_FULL_CODEGEN_FULL_CODEGEN_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698