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

Side by Side Diff: src/objects.h

Issue 1912633002: [ic] Split LoadIC into LoadGlobalIC and LoadIC. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Rebasing Created 4 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
« no previous file with comments | « src/log.cc ('k') | src/objects-inl.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 2015 the V8 project authors. All rights reserved. 1 // Copyright 2015 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_OBJECTS_H_ 5 #ifndef V8_OBJECTS_H_
6 #define V8_OBJECTS_H_ 6 #define V8_OBJECTS_H_
7 7
8 #include <iosfwd> 8 #include <iosfwd>
9 9
10 #include "src/assert-scope.h" 10 #include "src/assert-scope.h"
(...skipping 4855 matching lines...) Expand 10 before | Expand all | Expand 10 after
4866 V(STUB) \ 4866 V(STUB) \
4867 V(HANDLER) \ 4867 V(HANDLER) \
4868 V(BUILTIN) \ 4868 V(BUILTIN) \
4869 V(REGEXP) \ 4869 V(REGEXP) \
4870 V(WASM_FUNCTION) \ 4870 V(WASM_FUNCTION) \
4871 V(WASM_TO_JS_FUNCTION) \ 4871 V(WASM_TO_JS_FUNCTION) \
4872 V(JS_TO_WASM_FUNCTION) 4872 V(JS_TO_WASM_FUNCTION)
4873 4873
4874 #define IC_KIND_LIST(V) \ 4874 #define IC_KIND_LIST(V) \
4875 V(LOAD_IC) \ 4875 V(LOAD_IC) \
4876 V(LOAD_GLOBAL_IC) \
4876 V(KEYED_LOAD_IC) \ 4877 V(KEYED_LOAD_IC) \
4877 V(CALL_IC) \ 4878 V(CALL_IC) \
4878 V(STORE_IC) \ 4879 V(STORE_IC) \
4879 V(KEYED_STORE_IC) \ 4880 V(KEYED_STORE_IC) \
4880 V(BINARY_OP_IC) \ 4881 V(BINARY_OP_IC) \
4881 V(COMPARE_IC) \ 4882 V(COMPARE_IC) \
4882 V(TO_BOOLEAN_IC) 4883 V(TO_BOOLEAN_IC)
4883 4884
4884 #define CODE_KIND_LIST(V) \ 4885 #define CODE_KIND_LIST(V) \
4885 NON_IC_KIND_LIST(V) \ 4886 NON_IC_KIND_LIST(V) \
4886 IC_KIND_LIST(V) 4887 IC_KIND_LIST(V)
4887 4888
4888 enum Kind { 4889 enum Kind {
4889 #define DEFINE_CODE_KIND_ENUM(name) name, 4890 #define DEFINE_CODE_KIND_ENUM(name) name,
4890 CODE_KIND_LIST(DEFINE_CODE_KIND_ENUM) 4891 CODE_KIND_LIST(DEFINE_CODE_KIND_ENUM)
4891 #undef DEFINE_CODE_KIND_ENUM 4892 #undef DEFINE_CODE_KIND_ENUM
4892 NUMBER_OF_KINDS 4893 NUMBER_OF_KINDS
4893 }; 4894 };
4894 4895
4895 // No more than 32 kinds. The value is currently encoded in five bits in
4896 // Flags.
4897 STATIC_ASSERT(NUMBER_OF_KINDS <= 32);
4898
4899 static const char* Kind2String(Kind kind); 4896 static const char* Kind2String(Kind kind);
4900 4897
4901 static const int kPrologueOffsetNotSet = -1; 4898 static const int kPrologueOffsetNotSet = -1;
4902 4899
4903 #ifdef ENABLE_DISASSEMBLER 4900 #ifdef ENABLE_DISASSEMBLER
4904 // Printing 4901 // Printing
4905 static const char* ICState2String(InlineCacheState state); 4902 static const char* ICState2String(InlineCacheState state);
4906 static void PrintExtraICState(std::ostream& os, // NOLINT 4903 static void PrintExtraICState(std::ostream& os, // NOLINT
4907 Kind kind, ExtraICState extra); 4904 Kind kind, ExtraICState extra);
4908 void Disassemble(const char* name, std::ostream& os); // NOLINT 4905 void Disassemble(const char* name, std::ostream& os); // NOLINT
(...skipping 366 matching lines...) Expand 10 before | Expand all | Expand 10 after
5275 public BitField<bool, 0, 1> {}; // NOLINT 5272 public BitField<bool, 0, 1> {}; // NOLINT
5276 class FullCodeFlagsHasDebugBreakSlotsField: public BitField<bool, 1, 1> {}; 5273 class FullCodeFlagsHasDebugBreakSlotsField: public BitField<bool, 1, 1> {};
5277 class FullCodeFlagsHasRelocInfoForSerialization 5274 class FullCodeFlagsHasRelocInfoForSerialization
5278 : public BitField<bool, 2, 1> {}; 5275 : public BitField<bool, 2, 1> {};
5279 // Bit 3 in this bitfield is unused. 5276 // Bit 3 in this bitfield is unused.
5280 class ProfilerTicksField : public BitField<int, 4, 28> {}; 5277 class ProfilerTicksField : public BitField<int, 4, 28> {};
5281 5278
5282 // Flags layout. BitField<type, shift, size>. 5279 // Flags layout. BitField<type, shift, size>.
5283 class CacheHolderField : public BitField<CacheHolderFlag, 0, 2> {}; 5280 class CacheHolderField : public BitField<CacheHolderFlag, 0, 2> {};
5284 class KindField : public BitField<Kind, CacheHolderField::kNext, 5> {}; 5281 class KindField : public BitField<Kind, CacheHolderField::kNext, 5> {};
5282 STATIC_ASSERT(NUMBER_OF_KINDS <= KindField::kMax);
5285 class ExtraICStateField : public BitField<ExtraICState, KindField::kNext, 5283 class ExtraICStateField : public BitField<ExtraICState, KindField::kNext,
5286 PlatformSmiTagging::kSmiValueSize - 5284 PlatformSmiTagging::kSmiValueSize -
5287 KindField::kNext + 1> {}; 5285 KindField::kNext + 1> {};
5288 5286
5289 // KindSpecificFlags1 layout (STUB, BUILTIN and OPTIMIZED_FUNCTION) 5287 // KindSpecificFlags1 layout (STUB, BUILTIN and OPTIMIZED_FUNCTION)
5290 static const int kStackSlotsFirstBit = 0; 5288 static const int kStackSlotsFirstBit = 0;
5291 static const int kStackSlotsBitCount = 24; 5289 static const int kStackSlotsBitCount = 24;
5292 static const int kMarkedForDeoptimizationBit = 5290 static const int kMarkedForDeoptimizationBit =
5293 kStackSlotsFirstBit + kStackSlotsBitCount; 5291 kStackSlotsFirstBit + kStackSlotsBitCount;
5294 static const int kIsTurbofannedBit = kMarkedForDeoptimizationBit + 1; 5292 static const int kIsTurbofannedBit = kMarkedForDeoptimizationBit + 1;
(...skipping 5503 matching lines...) Expand 10 before | Expand all | Expand 10 after
10798 } 10796 }
10799 return value; 10797 return value;
10800 } 10798 }
10801 }; 10799 };
10802 10800
10803 10801
10804 } // NOLINT, false-positive due to second-order macros. 10802 } // NOLINT, false-positive due to second-order macros.
10805 } // NOLINT, false-positive due to second-order macros. 10803 } // NOLINT, false-positive due to second-order macros.
10806 10804
10807 #endif // V8_OBJECTS_H_ 10805 #endif // V8_OBJECTS_H_
OLDNEW
« no previous file with comments | « src/log.cc ('k') | src/objects-inl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698