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

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

Issue 1178363002: Vector ICs: Turbofan vector store ic support (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Created 5 years, 6 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_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 596 matching lines...) Expand 10 before | Expand all | Expand 10 after
607 // Expect receiver ('this' value), home_object and key on the stack. 607 // Expect receiver ('this' value), home_object and key on the stack.
608 void EmitKeyedSuperPropertyLoad(Property* expr); 608 void EmitKeyedSuperPropertyLoad(Property* expr);
609 609
610 // Load a value from a keyed property. 610 // Load a value from a keyed property.
611 // The receiver and the key is left on the stack by the IC. 611 // The receiver and the key is left on the stack by the IC.
612 void EmitKeyedPropertyLoad(Property* expr); 612 void EmitKeyedPropertyLoad(Property* expr);
613 613
614 // Adds the properties to the class (function) object and to its prototype. 614 // Adds the properties to the class (function) object and to its prototype.
615 // Expects the class (function) in the accumulator. The class (function) is 615 // Expects the class (function) in the accumulator. The class (function) is
616 // in the accumulator after installing all the properties. 616 // in the accumulator after installing all the properties.
617 void EmitClassDefineProperties(ClassLiteral* lit); 617 void EmitClassDefineProperties(ClassLiteral* lit, int* used_store_slots);
618 618
619 // Pushes the property key as a Name on the stack. 619 // Pushes the property key as a Name on the stack.
620 void EmitPropertyKey(ObjectLiteralProperty* property, BailoutId bailout_id); 620 void EmitPropertyKey(ObjectLiteralProperty* property, BailoutId bailout_id);
621 621
622 // Apply the compound assignment operator. Expects the left operand on top 622 // Apply the compound assignment operator. Expects the left operand on top
623 // of the stack and the right one in the accumulator. 623 // of the stack and the right one in the accumulator.
624 void EmitBinaryOp(BinaryOperation* expr, Token::Value op); 624 void EmitBinaryOp(BinaryOperation* expr, Token::Value op);
625 625
626 // Helper functions for generating inlined smi code for certain 626 // Helper functions for generating inlined smi code for certain
627 // binary operations. 627 // binary operations.
628 void EmitInlineSmiBinaryOp(BinaryOperation* expr, 628 void EmitInlineSmiBinaryOp(BinaryOperation* expr,
629 Token::Value op, 629 Token::Value op,
630 Expression* left, 630 Expression* left,
631 Expression* right); 631 Expression* right);
632 632
633 // Assign to the given expression as if via '='. The right-hand-side value 633 // Assign to the given expression as if via '='. The right-hand-side value
634 // is expected in the accumulator. slot is only used if FLAG_vector_stores 634 // is expected in the accumulator. slot is only used if FLAG_vector_stores
635 // is true. 635 // is true.
636 void EmitAssignment(Expression* expr, FeedbackVectorICSlot slot = 636 void EmitAssignment(Expression* expr, FeedbackVectorICSlot slot);
637 FeedbackVectorICSlot::Invalid());
638 637
639 // Complete a variable assignment. The right-hand-side value is expected 638 // Complete a variable assignment. The right-hand-side value is expected
640 // in the accumulator. 639 // in the accumulator.
641 void EmitVariableAssignment( 640 void EmitVariableAssignment(Variable* var, Token::Value op,
642 Variable* var, Token::Value op, 641 FeedbackVectorICSlot slot);
643 FeedbackVectorICSlot slot = FeedbackVectorICSlot::Invalid());
644 642
645 // Helper functions to EmitVariableAssignment 643 // Helper functions to EmitVariableAssignment
646 void EmitStoreToStackLocalOrContextSlot(Variable* var, 644 void EmitStoreToStackLocalOrContextSlot(Variable* var,
647 MemOperand location); 645 MemOperand location);
648 646
649 // Complete a named property assignment. The receiver is expected on top 647 // Complete a named property assignment. The receiver is expected on top
650 // of the stack and the right-hand-side value in the accumulator. 648 // of the stack and the right-hand-side value in the accumulator.
651 void EmitNamedPropertyAssignment(Assignment* expr); 649 void EmitNamedPropertyAssignment(Assignment* expr);
652 650
653 // Complete a super named property assignment. The right-hand-side value 651 // Complete a super named property assignment. The right-hand-side value
(...skipping 443 matching lines...) Expand 10 before | Expand all | Expand 10 after
1097 1095
1098 Address start_; 1096 Address start_;
1099 Address instruction_start_; 1097 Address instruction_start_;
1100 uint32_t length_; 1098 uint32_t length_;
1101 }; 1099 };
1102 1100
1103 1101
1104 } } // namespace v8::internal 1102 } } // namespace v8::internal
1105 1103
1106 #endif // V8_FULL_CODEGEN_H_ 1104 #endif // V8_FULL_CODEGEN_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698