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

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

Issue 1222203007: Use FullCodeGenerator::EmitGlobalVariableLoad() where possible to avoid code duplication. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Rebasing Created 5 years, 5 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 | « src/arm64/full-codegen-arm64.cc ('k') | src/full-codegen.cc » ('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 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_H_ 5 #ifndef V8_FULL_CODEGEN_H_
6 #define V8_FULL_CODEGEN_H_ 6 #define V8_FULL_CODEGEN_H_
7 7
8 #include "src/v8.h" 8 #include "src/v8.h"
9 9
10 #include "src/allocation.h" 10 #include "src/allocation.h"
(...skipping 534 matching lines...) Expand 10 before | Expand all | Expand 10 after
545 545
546 // Platform-specific code for loading variables. 546 // Platform-specific code for loading variables.
547 void EmitLoadGlobalCheckExtensions(VariableProxy* proxy, 547 void EmitLoadGlobalCheckExtensions(VariableProxy* proxy,
548 TypeofState typeof_state, 548 TypeofState typeof_state,
549 Label* slow); 549 Label* slow);
550 MemOperand ContextSlotOperandCheckExtensions(Variable* var, Label* slow); 550 MemOperand ContextSlotOperandCheckExtensions(Variable* var, Label* slow);
551 void EmitDynamicLookupFastCase(VariableProxy* proxy, 551 void EmitDynamicLookupFastCase(VariableProxy* proxy,
552 TypeofState typeof_state, 552 TypeofState typeof_state,
553 Label* slow, 553 Label* slow,
554 Label* done); 554 Label* done);
555 void EmitVariableLoad(VariableProxy* proxy); 555 void EmitGlobalVariableLoad(VariableProxy* proxy, TypeofState typeof_state);
556 void EmitVariableLoad(VariableProxy* proxy,
557 TypeofState typeof_state = NOT_INSIDE_TYPEOF);
556 558
557 void EmitAccessor(Expression* expression); 559 void EmitAccessor(Expression* expression);
558 560
559 // Expects the arguments and the function already pushed. 561 // Expects the arguments and the function already pushed.
560 void EmitResolvePossiblyDirectEval(int arg_count); 562 void EmitResolvePossiblyDirectEval(int arg_count);
561 563
562 // Platform-specific support for allocating a new closure based on 564 // Platform-specific support for allocating a new closure based on
563 // the given function info. 565 // the given function info.
564 void EmitNewClosure(Handle<SharedFunctionInfo> info, bool pretenure); 566 void EmitNewClosure(Handle<SharedFunctionInfo> info, bool pretenure);
565 567
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after
647 void EmitLoadSuperConstructor(SuperCallReference* super_call_ref); 649 void EmitLoadSuperConstructor(SuperCallReference* super_call_ref);
648 void EmitInitializeThisAfterSuper( 650 void EmitInitializeThisAfterSuper(
649 SuperCallReference* super_call_ref, 651 SuperCallReference* super_call_ref,
650 FeedbackVectorICSlot slot = FeedbackVectorICSlot::Invalid()); 652 FeedbackVectorICSlot slot = FeedbackVectorICSlot::Invalid());
651 653
652 void CallIC(Handle<Code> code, 654 void CallIC(Handle<Code> code,
653 TypeFeedbackId id = TypeFeedbackId::None()); 655 TypeFeedbackId id = TypeFeedbackId::None());
654 656
655 void CallLoadIC(ContextualMode mode, LanguageMode language_mode = SLOPPY, 657 void CallLoadIC(ContextualMode mode, LanguageMode language_mode = SLOPPY,
656 TypeFeedbackId id = TypeFeedbackId::None()); 658 TypeFeedbackId id = TypeFeedbackId::None());
657 void CallGlobalLoadIC(Handle<String> name);
658 void CallStoreIC(TypeFeedbackId id = TypeFeedbackId::None()); 659 void CallStoreIC(TypeFeedbackId id = TypeFeedbackId::None());
659 660
660 void SetFunctionPosition(FunctionLiteral* fun); 661 void SetFunctionPosition(FunctionLiteral* fun);
661 void SetReturnPosition(FunctionLiteral* fun); 662 void SetReturnPosition(FunctionLiteral* fun);
662 663
663 enum InsertBreak { INSERT_BREAK, SKIP_BREAK }; 664 enum InsertBreak { INSERT_BREAK, SKIP_BREAK };
664 665
665 // During stepping we want to be able to break at each statement, but not at 666 // During stepping we want to be able to break at each statement, but not at
666 // every (sub-)expression. That is why by default we insert breaks at every 667 // every (sub-)expression. That is why by default we insert breaks at every
667 // statement position, but not at every expression position, unless stated 668 // statement position, but not at every expression position, unless stated
(...skipping 413 matching lines...) Expand 10 before | Expand all | Expand 10 after
1081 1082
1082 Address start_; 1083 Address start_;
1083 Address instruction_start_; 1084 Address instruction_start_;
1084 uint32_t length_; 1085 uint32_t length_;
1085 }; 1086 };
1086 1087
1087 1088
1088 } } // namespace v8::internal 1089 } } // namespace v8::internal
1089 1090
1090 #endif // V8_FULL_CODEGEN_H_ 1091 #endif // V8_FULL_CODEGEN_H_
OLDNEW
« no previous file with comments | « src/arm64/full-codegen-arm64.cc ('k') | src/full-codegen.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698