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

Side by Side Diff: src/objects-inl.h

Issue 1267493006: Remove JSFunctionResultCache. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: rebase Created 5 years, 4 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/objects-debug.cc ('k') | src/runtime/runtime.h » ('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 // Review notes: 5 // Review notes:
6 // 6 //
7 // - The use of macros in these inline functions may seem superfluous 7 // - The use of macros in these inline functions may seem superfluous
8 // but it is absolutely needed to make sure gcc generates optimal 8 // but it is absolutely needed to make sure gcc generates optimal
9 // code. gcc is not happy when attempting to inline too deep. 9 // code. gcc is not happy when attempting to inline too deep.
10 // 10 //
(...skipping 908 matching lines...) Expand 10 before | Expand all | Expand 10 after
919 bool Object::IsUnseededNumberDictionary() const { 919 bool Object::IsUnseededNumberDictionary() const {
920 return IsDictionary(); 920 return IsDictionary();
921 } 921 }
922 922
923 923
924 bool Object::IsStringTable() const { 924 bool Object::IsStringTable() const {
925 return IsHashTable(); 925 return IsHashTable();
926 } 926 }
927 927
928 928
929 bool Object::IsJSFunctionResultCache() const {
930 if (!IsFixedArray()) return false;
931 const FixedArray* self = FixedArray::cast(this);
932 int length = self->length();
933 if (length < JSFunctionResultCache::kEntriesIndex) return false;
934 if ((length - JSFunctionResultCache::kEntriesIndex)
935 % JSFunctionResultCache::kEntrySize != 0) {
936 return false;
937 }
938 #ifdef VERIFY_HEAP
939 if (FLAG_verify_heap) {
940 // TODO(svenpanne) We use const_cast here and below to break our dependency
941 // cycle between the predicates and the verifiers. This can be removed when
942 // the verifiers are const-correct, too.
943 reinterpret_cast<JSFunctionResultCache*>(const_cast<Object*>(this))->
944 JSFunctionResultCacheVerify();
945 }
946 #endif
947 return true;
948 }
949
950
951 bool Object::IsNormalizedMapCache() const { 929 bool Object::IsNormalizedMapCache() const {
952 return NormalizedMapCache::IsNormalizedMapCache(this); 930 return NormalizedMapCache::IsNormalizedMapCache(this);
953 } 931 }
954 932
955 933
956 int NormalizedMapCache::GetIndex(Handle<Map> map) { 934 int NormalizedMapCache::GetIndex(Handle<Map> map) {
957 return map->Hash() % NormalizedMapCache::kEntries; 935 return map->Hash() % NormalizedMapCache::kEntries;
958 } 936 }
959 937
960 938
(...skipping 2156 matching lines...) Expand 10 before | Expand all | Expand 10 after
3117 CAST_ACCESSOR(Int32x4) 3095 CAST_ACCESSOR(Int32x4)
3118 CAST_ACCESSOR(Int8x16) 3096 CAST_ACCESSOR(Int8x16)
3119 CAST_ACCESSOR(JSArray) 3097 CAST_ACCESSOR(JSArray)
3120 CAST_ACCESSOR(JSArrayBuffer) 3098 CAST_ACCESSOR(JSArrayBuffer)
3121 CAST_ACCESSOR(JSArrayBufferView) 3099 CAST_ACCESSOR(JSArrayBufferView)
3122 CAST_ACCESSOR(JSBuiltinsObject) 3100 CAST_ACCESSOR(JSBuiltinsObject)
3123 CAST_ACCESSOR(JSDataView) 3101 CAST_ACCESSOR(JSDataView)
3124 CAST_ACCESSOR(JSDate) 3102 CAST_ACCESSOR(JSDate)
3125 CAST_ACCESSOR(JSFunction) 3103 CAST_ACCESSOR(JSFunction)
3126 CAST_ACCESSOR(JSFunctionProxy) 3104 CAST_ACCESSOR(JSFunctionProxy)
3127 CAST_ACCESSOR(JSFunctionResultCache)
3128 CAST_ACCESSOR(JSGeneratorObject) 3105 CAST_ACCESSOR(JSGeneratorObject)
3129 CAST_ACCESSOR(JSGlobalObject) 3106 CAST_ACCESSOR(JSGlobalObject)
3130 CAST_ACCESSOR(JSGlobalProxy) 3107 CAST_ACCESSOR(JSGlobalProxy)
3131 CAST_ACCESSOR(JSMap) 3108 CAST_ACCESSOR(JSMap)
3132 CAST_ACCESSOR(JSMapIterator) 3109 CAST_ACCESSOR(JSMapIterator)
3133 CAST_ACCESSOR(JSMessageObject) 3110 CAST_ACCESSOR(JSMessageObject)
3134 CAST_ACCESSOR(JSModule) 3111 CAST_ACCESSOR(JSModule)
3135 CAST_ACCESSOR(JSObject) 3112 CAST_ACCESSOR(JSObject)
3136 CAST_ACCESSOR(JSProxy) 3113 CAST_ACCESSOR(JSProxy)
3137 CAST_ACCESSOR(JSReceiver) 3114 CAST_ACCESSOR(JSReceiver)
(...skipping 576 matching lines...) Expand 10 before | Expand all | Expand 10 after
3714 3691
3715 3692
3716 void StringCharacterStream::VisitTwoByteString( 3693 void StringCharacterStream::VisitTwoByteString(
3717 const uint16_t* chars, int length) { 3694 const uint16_t* chars, int length) {
3718 is_one_byte_ = false; 3695 is_one_byte_ = false;
3719 buffer16_ = chars; 3696 buffer16_ = chars;
3720 end_ = reinterpret_cast<const uint8_t*>(chars + length); 3697 end_ = reinterpret_cast<const uint8_t*>(chars + length);
3721 } 3698 }
3722 3699
3723 3700
3724 void JSFunctionResultCache::MakeZeroSize() {
3725 set_finger_index(kEntriesIndex);
3726 set_size(kEntriesIndex);
3727 }
3728
3729
3730 void JSFunctionResultCache::Clear() {
3731 int cache_size = size();
3732 Object** entries_start = RawFieldOfElementAt(kEntriesIndex);
3733 MemsetPointer(entries_start,
3734 GetHeap()->the_hole_value(),
3735 cache_size - kEntriesIndex);
3736 MakeZeroSize();
3737 }
3738
3739
3740 int JSFunctionResultCache::size() {
3741 return Smi::cast(get(kCacheSizeIndex))->value();
3742 }
3743
3744
3745 void JSFunctionResultCache::set_size(int size) {
3746 set(kCacheSizeIndex, Smi::FromInt(size));
3747 }
3748
3749
3750 int JSFunctionResultCache::finger_index() {
3751 return Smi::cast(get(kFingerIndex))->value();
3752 }
3753
3754
3755 void JSFunctionResultCache::set_finger_index(int finger_index) {
3756 set(kFingerIndex, Smi::FromInt(finger_index));
3757 }
3758
3759
3760 byte ByteArray::get(int index) { 3701 byte ByteArray::get(int index) {
3761 DCHECK(index >= 0 && index < this->length()); 3702 DCHECK(index >= 0 && index < this->length());
3762 return READ_BYTE_FIELD(this, kHeaderSize + index * kCharSize); 3703 return READ_BYTE_FIELD(this, kHeaderSize + index * kCharSize);
3763 } 3704 }
3764 3705
3765 3706
3766 void ByteArray::set(int index, byte value) { 3707 void ByteArray::set(int index, byte value) {
3767 DCHECK(index >= 0 && index < this->length()); 3708 DCHECK(index >= 0 && index < this->length());
3768 WRITE_BYTE_FIELD(this, kHeaderSize + index * kCharSize, value); 3709 WRITE_BYTE_FIELD(this, kHeaderSize + index * kCharSize, value);
3769 } 3710 }
(...skipping 3518 matching lines...) Expand 10 before | Expand all | Expand 10 after
7288 #undef READ_INT64_FIELD 7229 #undef READ_INT64_FIELD
7289 #undef WRITE_INT64_FIELD 7230 #undef WRITE_INT64_FIELD
7290 #undef READ_BYTE_FIELD 7231 #undef READ_BYTE_FIELD
7291 #undef WRITE_BYTE_FIELD 7232 #undef WRITE_BYTE_FIELD
7292 #undef NOBARRIER_READ_BYTE_FIELD 7233 #undef NOBARRIER_READ_BYTE_FIELD
7293 #undef NOBARRIER_WRITE_BYTE_FIELD 7234 #undef NOBARRIER_WRITE_BYTE_FIELD
7294 7235
7295 } } // namespace v8::internal 7236 } } // namespace v8::internal
7296 7237
7297 #endif // V8_OBJECTS_INL_H_ 7238 #endif // V8_OBJECTS_INL_H_
OLDNEW
« no previous file with comments | « src/objects-debug.cc ('k') | src/runtime/runtime.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698