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

Side by Side Diff: src/code-stubs.h

Issue 1922523002: [Interpreter] Use FastCloneShallowObjectStub in CreateObjectLiteral bytecode. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Address Toon's comments Created 4 years, 7 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_CODE_STUBS_H_ 5 #ifndef V8_CODE_STUBS_H_
6 #define V8_CODE_STUBS_H_ 6 #define V8_CODE_STUBS_H_
7 7
8 #include "src/allocation.h" 8 #include "src/allocation.h"
9 #include "src/assembler.h" 9 #include "src/assembler.h"
10 #include "src/code-stub-assembler.h" 10 #include "src/code-stub-assembler.h"
(...skipping 1128 matching lines...) Expand 10 before | Expand all | Expand 10 after
1139 // Maximum number of properties in copied object. 1139 // Maximum number of properties in copied object.
1140 static const int kMaximumClonedProperties = 6; 1140 static const int kMaximumClonedProperties = 6;
1141 1141
1142 FastCloneShallowObjectStub(Isolate* isolate, int length) 1142 FastCloneShallowObjectStub(Isolate* isolate, int length)
1143 : TurboFanCodeStub(isolate) { 1143 : TurboFanCodeStub(isolate) {
1144 DCHECK_GE(length, 0); 1144 DCHECK_GE(length, 0);
1145 DCHECK_LE(length, kMaximumClonedProperties); 1145 DCHECK_LE(length, kMaximumClonedProperties);
1146 minor_key_ = LengthBits::encode(LengthBits::encode(length)); 1146 minor_key_ = LengthBits::encode(LengthBits::encode(length));
1147 } 1147 }
1148 1148
1149 static compiler::Node* GenerateFastPath(
1150 CodeStubAssembler* assembler,
1151 compiler::CodeAssembler::Label* call_runtime, compiler::Node* closure,
1152 compiler::Node* literals_index, compiler::Node* properties_count);
1153
1154 static bool IsSupported(ObjectLiteral* expr);
1155 static int PropertiesCount(int literal_length);
1156
1149 int length() const { return LengthBits::decode(minor_key_); } 1157 int length() const { return LengthBits::decode(minor_key_); }
1150 1158
1151 private: 1159 private:
1152 class LengthBits : public BitField<int, 0, 4> {}; 1160 class LengthBits : public BitField<int, 0, 4> {};
1153 1161
1154 DEFINE_CALL_INTERFACE_DESCRIPTOR(FastCloneShallowObject); 1162 DEFINE_CALL_INTERFACE_DESCRIPTOR(FastCloneShallowObject);
1155 DEFINE_TURBOFAN_CODE_STUB(FastCloneShallowObject, TurboFanCodeStub); 1163 DEFINE_TURBOFAN_CODE_STUB(FastCloneShallowObject, TurboFanCodeStub);
1156 }; 1164 };
1157 1165
1158 1166
(...skipping 2047 matching lines...) Expand 10 before | Expand all | Expand 10 after
3206 #undef DEFINE_HYDROGEN_CODE_STUB 3214 #undef DEFINE_HYDROGEN_CODE_STUB
3207 #undef DEFINE_CODE_STUB 3215 #undef DEFINE_CODE_STUB
3208 #undef DEFINE_CODE_STUB_BASE 3216 #undef DEFINE_CODE_STUB_BASE
3209 3217
3210 extern Representation RepresentationFromType(Type* type); 3218 extern Representation RepresentationFromType(Type* type);
3211 3219
3212 } // namespace internal 3220 } // namespace internal
3213 } // namespace v8 3221 } // namespace v8
3214 3222
3215 #endif // V8_CODE_STUBS_H_ 3223 #endif // V8_CODE_STUBS_H_
OLDNEW
« no previous file with comments | « src/code-stub-assembler.cc ('k') | src/code-stubs.cc » ('j') | src/code-stubs.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698