| 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 595 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 606 | 606 | 
| 607   // Adds the [[HomeObject]] to |initializer| if it is a FunctionLiteral. | 607   // Adds the [[HomeObject]] to |initializer| if it is a FunctionLiteral. | 
| 608   // The value of the initializer is expected to be at the top of the stack. | 608   // The value of the initializer is expected to be at the top of the stack. | 
| 609   // |offset| is the offset in the stack where the home object can be found. | 609   // |offset| is the offset in the stack where the home object can be found. | 
| 610   void EmitSetHomeObject(Expression* initializer, int offset, | 610   void EmitSetHomeObject(Expression* initializer, int offset, | 
| 611                          FeedbackVectorSlot slot); | 611                          FeedbackVectorSlot slot); | 
| 612 | 612 | 
| 613   void EmitSetHomeObjectAccumulator(Expression* initializer, int offset, | 613   void EmitSetHomeObjectAccumulator(Expression* initializer, int offset, | 
| 614                                     FeedbackVectorSlot slot); | 614                                     FeedbackVectorSlot slot); | 
| 615 | 615 | 
| 616   void EmitLoadStoreICSlot(FeedbackVectorSlot slot); | 616   // Platform-specific code for loading a slot to a register. | 
|  | 617   void EmitLoadSlot(Register destination, FeedbackVectorSlot slot); | 
|  | 618   // Platform-specific code for pushing a slot to the stack. | 
|  | 619   void EmitPushSlot(FeedbackVectorSlot slot); | 
| 617 | 620 | 
| 618   void CallIC(Handle<Code> code, | 621   void CallIC(Handle<Code> code, | 
| 619               TypeFeedbackId id = TypeFeedbackId::None()); | 622               TypeFeedbackId id = TypeFeedbackId::None()); | 
| 620 | 623 | 
| 621   void CallLoadIC(TypeFeedbackId id = TypeFeedbackId::None()); | 624   void CallLoadIC(TypeFeedbackId id = TypeFeedbackId::None()); | 
| 622   // Inside typeof reference errors are never thrown. | 625   // Inside typeof reference errors are never thrown. | 
| 623   void CallLoadGlobalIC(TypeofMode typeof_mode, | 626   void CallLoadGlobalIC(TypeofMode typeof_mode, | 
| 624                         TypeFeedbackId id = TypeFeedbackId::None()); | 627                         TypeFeedbackId id = TypeFeedbackId::None()); | 
| 625   void CallStoreIC(TypeFeedbackId id = TypeFeedbackId::None()); | 628   void CallStoreIC(FeedbackVectorSlot slot, Handle<Object> name, | 
| 626   void CallKeyedStoreIC(); | 629                    TypeFeedbackId id = TypeFeedbackId::None()); | 
|  | 630   void CallKeyedStoreIC(FeedbackVectorSlot slot); | 
| 627 | 631 | 
| 628   void SetFunctionPosition(FunctionLiteral* fun); | 632   void SetFunctionPosition(FunctionLiteral* fun); | 
| 629   void SetReturnPosition(FunctionLiteral* fun); | 633   void SetReturnPosition(FunctionLiteral* fun); | 
| 630 | 634 | 
| 631   enum InsertBreak { INSERT_BREAK, SKIP_BREAK }; | 635   enum InsertBreak { INSERT_BREAK, SKIP_BREAK }; | 
| 632 | 636 | 
| 633   // During stepping we want to be able to break at each statement, but not at | 637   // During stepping we want to be able to break at each statement, but not at | 
| 634   // every (sub-)expression. That is why by default we insert breaks at every | 638   // every (sub-)expression. That is why by default we insert breaks at every | 
| 635   // statement position, but not at every expression position, unless stated | 639   // statement position, but not at every expression position, unless stated | 
| 636   // otherwise. | 640   // otherwise. | 
| (...skipping 386 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 1023   Address start_; | 1027   Address start_; | 
| 1024   Address instruction_start_; | 1028   Address instruction_start_; | 
| 1025   uint32_t length_; | 1029   uint32_t length_; | 
| 1026 }; | 1030 }; | 
| 1027 | 1031 | 
| 1028 | 1032 | 
| 1029 }  // namespace internal | 1033 }  // namespace internal | 
| 1030 }  // namespace v8 | 1034 }  // namespace v8 | 
| 1031 | 1035 | 
| 1032 #endif  // V8_FULL_CODEGEN_FULL_CODEGEN_H_ | 1036 #endif  // V8_FULL_CODEGEN_FULL_CODEGEN_H_ | 
| OLD | NEW | 
|---|