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

Side by Side Diff: src/hydrogen-instructions.h

Issue 391693002: In-object double fields unboxing (for 64-bit only). (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Addressed Toon's comments Created 6 years, 1 month 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 | Annotate | Revision Log
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_HYDROGEN_INSTRUCTIONS_H_ 5 #ifndef V8_HYDROGEN_INSTRUCTIONS_H_
6 #define V8_HYDROGEN_INSTRUCTIONS_H_ 6 #define V8_HYDROGEN_INSTRUCTIONS_H_
7 7
8 #include <iosfwd> 8 #include <iosfwd>
9 9
10 #include "src/v8.h" 10 #include "src/v8.h"
(...skipping 6869 matching lines...) Expand 10 before | Expand all | Expand 10 after
6880 } 6880 }
6881 6881
6882 void SetTransition(HConstant* transition) { 6882 void SetTransition(HConstant* transition) {
6883 DCHECK(!has_transition()); // Only set once. 6883 DCHECK(!has_transition()); // Only set once.
6884 SetOperandAt(2, transition); 6884 SetOperandAt(2, transition);
6885 has_transition_ = true; 6885 has_transition_ = true;
6886 SetChangesFlag(kMaps); 6886 SetChangesFlag(kMaps);
6887 } 6887 }
6888 6888
6889 bool NeedsWriteBarrier() const { 6889 bool NeedsWriteBarrier() const {
6890 DCHECK(!field_representation().IsDouble() || !has_transition()); 6890 DCHECK(!field_representation().IsDouble() ||
6891 (FLAG_unbox_double_fields && access_.IsInobject()) ||
6892 !has_transition());
6891 if (field_representation().IsDouble()) return false; 6893 if (field_representation().IsDouble()) return false;
6892 if (field_representation().IsSmi()) return false; 6894 if (field_representation().IsSmi()) return false;
6893 if (field_representation().IsInteger32()) return false; 6895 if (field_representation().IsInteger32()) return false;
6894 if (field_representation().IsExternal()) return false; 6896 if (field_representation().IsExternal()) return false;
6895 return StoringValueNeedsWriteBarrier(value()) && 6897 return StoringValueNeedsWriteBarrier(value()) &&
6896 ReceiverObjectNeedsWriteBarrier(object(), value(), dominator()); 6898 ReceiverObjectNeedsWriteBarrier(object(), value(), dominator());
6897 } 6899 }
6898 6900
6899 bool NeedsWriteBarrierForMap() { 6901 bool NeedsWriteBarrierForMap() {
6900 return ReceiverObjectNeedsWriteBarrier(object(), transition(), 6902 return ReceiverObjectNeedsWriteBarrier(object(), transition(),
(...skipping 1005 matching lines...) Expand 10 before | Expand all | Expand 10 after
7906 }; 7908 };
7907 7909
7908 7910
7909 7911
7910 #undef DECLARE_INSTRUCTION 7912 #undef DECLARE_INSTRUCTION
7911 #undef DECLARE_CONCRETE_INSTRUCTION 7913 #undef DECLARE_CONCRETE_INSTRUCTION
7912 7914
7913 } } // namespace v8::internal 7915 } } // namespace v8::internal
7914 7916
7915 #endif // V8_HYDROGEN_INSTRUCTIONS_H_ 7917 #endif // V8_HYDROGEN_INSTRUCTIONS_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698