| OLD | NEW |
| 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 Loading... |
| 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 Loading... |
| 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_ |
| OLD | NEW |