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

Unified Diff: src/ast.h

Issue 12221064: Implement many KeyedStoreStubs using Crankshaft (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Final review feedback Created 7 years, 9 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « src/arm/lithium-codegen-arm.cc ('k') | src/ast.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/ast.h
diff --git a/src/ast.h b/src/ast.h
index 5debc74ebbab68ee18c40a863d664ad5f92e7a1b..88cd69605df54747e98a04f936d36d308976d1ac 100644
--- a/src/ast.h
+++ b/src/ast.h
@@ -349,6 +349,10 @@ class Expression: public AstNode {
ASSERT(types != NULL && types->length() == 1);
return types->at(0);
}
+ virtual KeyedAccessStoreMode GetStoreMode() {
+ UNREACHABLE();
+ return STANDARD_STORE;
+ }
BailoutId id() const { return id_; }
TypeFeedbackId test_id() const { return test_id_; }
@@ -1481,6 +1485,9 @@ class Property: public Expression {
void RecordTypeFeedback(TypeFeedbackOracle* oracle, Zone* zone);
virtual bool IsMonomorphic() { return is_monomorphic_; }
virtual SmallMapList* GetReceiverTypes() { return &receiver_types_; }
+ virtual KeyedAccessStoreMode GetStoreMode() {
+ return STANDARD_STORE;
+ }
bool IsArrayLength() { return is_array_length_; }
bool IsUninitialized() { return is_uninitialized_; }
TypeFeedbackId PropertyFeedbackId() { return reuse(id()); }
@@ -1773,6 +1780,9 @@ class CountOperation: public Expression {
void RecordTypeFeedback(TypeFeedbackOracle* oracle, Zone* znoe);
virtual bool IsMonomorphic() { return is_monomorphic_; }
virtual SmallMapList* GetReceiverTypes() { return &receiver_types_; }
+ virtual KeyedAccessStoreMode GetStoreMode() {
+ return store_mode_;
+ }
BailoutId AssignmentId() const { return assignment_id_; }
@@ -1788,6 +1798,8 @@ class CountOperation: public Expression {
: Expression(isolate),
op_(op),
is_prefix_(is_prefix),
+ is_monomorphic_(false),
+ store_mode_(STANDARD_STORE),
expression_(expr),
pos_(pos),
assignment_id_(GetNextId(isolate)),
@@ -1795,8 +1807,9 @@ class CountOperation: public Expression {
private:
Token::Value op_;
- bool is_prefix_;
- bool is_monomorphic_;
+ bool is_prefix_ : 1;
+ bool is_monomorphic_ : 1;
+ KeyedAccessStoreMode store_mode_: 4;
Expression* expression_;
int pos_;
const BailoutId assignment_id_;
@@ -1909,6 +1922,9 @@ class Assignment: public Expression {
void RecordTypeFeedback(TypeFeedbackOracle* oracle, Zone* zone);
virtual bool IsMonomorphic() { return is_monomorphic_; }
virtual SmallMapList* GetReceiverTypes() { return &receiver_types_; }
+ virtual KeyedAccessStoreMode GetStoreMode() {
+ return store_mode_;
+ }
protected:
Assignment(Isolate* isolate,
@@ -1934,7 +1950,8 @@ class Assignment: public Expression {
BinaryOperation* binary_operation_;
const BailoutId assignment_id_;
- bool is_monomorphic_;
+ bool is_monomorphic_ : 1;
+ KeyedAccessStoreMode store_mode_ : 4;
SmallMapList receiver_types_;
};
« no previous file with comments | « src/arm/lithium-codegen-arm.cc ('k') | src/ast.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698