OLD | NEW |
1 // Copyright 2016 the V8 project authors. All rights reserved. | 1 // Copyright 2016 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_STUB_ASSEMBLER_H_ | 5 #ifndef V8_CODE_STUB_ASSEMBLER_H_ |
6 #define V8_CODE_STUB_ASSEMBLER_H_ | 6 #define V8_CODE_STUB_ASSEMBLER_H_ |
7 | 7 |
8 #include <functional> | 8 #include <functional> |
9 | 9 |
10 #include "src/compiler/code-assembler.h" | 10 #include "src/compiler/code-assembler.h" |
(...skipping 900 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
911 | 911 |
912 void Increment(Variable& variable, int value = 1, | 912 void Increment(Variable& variable, int value = 1, |
913 ParameterMode mode = INTPTR_PARAMETERS); | 913 ParameterMode mode = INTPTR_PARAMETERS); |
914 | 914 |
915 // Generates "if (false) goto label" code. Useful for marking a label as | 915 // Generates "if (false) goto label" code. Useful for marking a label as |
916 // "live" to avoid assertion failures during graph building. In the resulting | 916 // "live" to avoid assertion failures during graph building. In the resulting |
917 // code this check will be eliminated. | 917 // code this check will be eliminated. |
918 void Use(Label* label); | 918 void Use(Label* label); |
919 | 919 |
920 // Various building blocks for stubs doing property lookups. | 920 // Various building blocks for stubs doing property lookups. |
| 921 |
| 922 // |if_notinternalized| is optional; |if_bailout| will be used by default. |
921 void TryToName(Node* key, Label* if_keyisindex, Variable* var_index, | 923 void TryToName(Node* key, Label* if_keyisindex, Variable* var_index, |
922 Label* if_keyisunique, Variable* var_unique, | 924 Label* if_keyisunique, Variable* var_unique, Label* if_bailout, |
923 Label* if_bailout); | 925 Label* if_notinternalized = nullptr); |
924 | 926 |
925 // Calculates array index for given dictionary entry and entry field. | 927 // Calculates array index for given dictionary entry and entry field. |
926 // See Dictionary::EntryToIndex(). | 928 // See Dictionary::EntryToIndex(). |
927 template <typename Dictionary> | 929 template <typename Dictionary> |
928 Node* EntryToIndex(Node* entry, int field_index); | 930 Node* EntryToIndex(Node* entry, int field_index); |
929 template <typename Dictionary> | 931 template <typename Dictionary> |
930 Node* EntryToIndex(Node* entry) { | 932 Node* EntryToIndex(Node* entry) { |
931 return EntryToIndex<Dictionary>(entry, Dictionary::kEntryKeyIndex); | 933 return EntryToIndex<Dictionary>(entry, Dictionary::kEntryKeyIndex); |
932 } | 934 } |
933 | 935 |
(...skipping 562 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1496 } | 1498 } |
1497 #else | 1499 #else |
1498 #define CSA_SLOW_ASSERT(csa, x) ((void)0) | 1500 #define CSA_SLOW_ASSERT(csa, x) ((void)0) |
1499 #endif | 1501 #endif |
1500 | 1502 |
1501 DEFINE_OPERATORS_FOR_FLAGS(CodeStubAssembler::AllocationFlags); | 1503 DEFINE_OPERATORS_FOR_FLAGS(CodeStubAssembler::AllocationFlags); |
1502 | 1504 |
1503 } // namespace internal | 1505 } // namespace internal |
1504 } // namespace v8 | 1506 } // namespace v8 |
1505 #endif // V8_CODE_STUB_ASSEMBLER_H_ | 1507 #endif // V8_CODE_STUB_ASSEMBLER_H_ |
OLD | NEW |