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

Side by Side Diff: src/runtime/runtime.h

Issue 2663033003: [builtins] TurboFan version of Array.prototype.forEach including fast path for FAST_ELEMENTS (Closed)
Patch Set: Disable Created 3 years, 10 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_RUNTIME_RUNTIME_H_ 5 #ifndef V8_RUNTIME_RUNTIME_H_
6 #define V8_RUNTIME_RUNTIME_H_ 6 #define V8_RUNTIME_RUNTIME_H_
7 7
8 #include <memory> 8 #include <memory>
9 9
10 #include "src/allocation.h" 10 #include "src/allocation.h"
(...skipping 18 matching lines...) Expand all
29 // * All intrinsics have a C++ implementation Runtime_##name. 29 // * All intrinsics have a C++ implementation Runtime_##name.
30 // 30 //
31 // * Each compiler has an explicit list of intrisics it supports, falling back 31 // * Each compiler has an explicit list of intrisics it supports, falling back
32 // to a simple runtime call if necessary. 32 // to a simple runtime call if necessary.
33 33
34 34
35 // Entries have the form F(name, number of arguments, number of values): 35 // Entries have the form F(name, number of arguments, number of values):
36 // A variable number of arguments is specified by a -1, additional restrictions 36 // A variable number of arguments is specified by a -1, additional restrictions
37 // are specified by inline comments 37 // are specified by inline comments
38 38
39 #define FOR_EACH_INTRINSIC_ARRAY(F) \ 39 #define FOR_EACH_INTRINSIC_ARRAY(F) \
40 F(FinishArrayPrototypeSetup, 1, 1) \ 40 F(FinishArrayPrototypeSetup, 1, 1) \
41 F(SpecialArrayFunctions, 0, 1) \ 41 F(SpecialArrayFunctions, 0, 1) \
42 F(TransitionElementsKind, 2, 1) \ 42 F(SpecialExperimentalArrayFunctions, 0, 1) \
43 F(RemoveArrayHoles, 2, 1) \ 43 F(TransitionElementsKind, 2, 1) \
44 F(MoveArrayContents, 2, 1) \ 44 F(RemoveArrayHoles, 2, 1) \
45 F(EstimateNumberOfElements, 1, 1) \ 45 F(MoveArrayContents, 2, 1) \
46 F(GetArrayKeys, 2, 1) \ 46 F(EstimateNumberOfElements, 1, 1) \
47 F(NewArray, -1 /* >= 3 */, 1) \ 47 F(GetArrayKeys, 2, 1) \
48 F(FunctionBind, -1, 1) \ 48 F(NewArray, -1 /* >= 3 */, 1) \
49 F(NormalizeElements, 1, 1) \ 49 F(FunctionBind, -1, 1) \
50 F(GrowArrayElements, 2, 1) \ 50 F(NormalizeElements, 1, 1) \
51 F(HasComplexElements, 1, 1) \ 51 F(GrowArrayElements, 2, 1) \
52 F(IsArray, 1, 1) \ 52 F(HasComplexElements, 1, 1) \
53 F(ArrayIsArray, 1, 1) \ 53 F(IsArray, 1, 1) \
54 F(FixedArrayGet, 2, 1) \ 54 F(ArrayIsArray, 1, 1) \
55 F(FixedArraySet, 3, 1) \ 55 F(FixedArrayGet, 2, 1) \
56 F(ArraySpeciesConstructor, 1, 1) \ 56 F(FixedArraySet, 3, 1) \
57 F(ArrayIncludes_Slow, 3, 1) \ 57 F(ArraySpeciesConstructor, 1, 1) \
58 F(ArrayIndexOf, 3, 1) \ 58 F(ArrayIncludes_Slow, 3, 1) \
59 F(SpreadIterablePrepare, 1, 1) \ 59 F(ArrayIndexOf, 3, 1) \
60 F(SpreadIterablePrepare, 1, 1) \
60 F(SpreadIterableFixed, 1, 1) 61 F(SpreadIterableFixed, 1, 1)
61 62
62 #define FOR_EACH_INTRINSIC_ATOMICS(F) \ 63 #define FOR_EACH_INTRINSIC_ATOMICS(F) \
63 F(ThrowNotIntegerSharedTypedArrayError, 1, 1) \ 64 F(ThrowNotIntegerSharedTypedArrayError, 1, 1) \
64 F(ThrowNotInt32SharedTypedArrayError, 1, 1) \ 65 F(ThrowNotInt32SharedTypedArrayError, 1, 1) \
65 F(ThrowInvalidAtomicAccessIndexError, 0, 1) \ 66 F(ThrowInvalidAtomicAccessIndexError, 0, 1) \
66 F(AtomicsCompareExchange, 4, 1) \ 67 F(AtomicsCompareExchange, 4, 1) \
67 F(AtomicsAdd, 3, 1) \ 68 F(AtomicsAdd, 3, 1) \
68 F(AtomicsSub, 3, 1) \ 69 F(AtomicsSub, 3, 1) \
69 F(AtomicsAnd, 3, 1) \ 70 F(AtomicsAnd, 3, 1) \
(...skipping 1095 matching lines...) Expand 10 before | Expand all | Expand 10 after
1165 kMaybeDeopted = 1 << 3, 1166 kMaybeDeopted = 1 << 3,
1166 kOptimized = 1 << 4, 1167 kOptimized = 1 << 4,
1167 kTurboFanned = 1 << 5, 1168 kTurboFanned = 1 << 5,
1168 kInterpreted = 1 << 6, 1169 kInterpreted = 1 << 6,
1169 }; 1170 };
1170 1171
1171 } // namespace internal 1172 } // namespace internal
1172 } // namespace v8 1173 } // namespace v8
1173 1174
1174 #endif // V8_RUNTIME_RUNTIME_H_ 1175 #endif // V8_RUNTIME_RUNTIME_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698