| 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 722 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 733 // 2^32−1, inclusive. | 733 // 2^32−1, inclusive. |
| 734 // ES#sec-touint32 | 734 // ES#sec-touint32 |
| 735 compiler::Node* ToUint32(compiler::Node* context, compiler::Node* input); | 735 compiler::Node* ToUint32(compiler::Node* context, compiler::Node* input); |
| 736 | 736 |
| 737 // Convert any object to a String. | 737 // Convert any object to a String. |
| 738 Node* ToString(Node* context, Node* input); | 738 Node* ToString(Node* context, Node* input); |
| 739 | 739 |
| 740 // Convert any object to a Primitive. | 740 // Convert any object to a Primitive. |
| 741 Node* JSReceiverToPrimitive(Node* context, Node* input); | 741 Node* JSReceiverToPrimitive(Node* context, Node* input); |
| 742 | 742 |
| 743 // Convert a String to a flat String. |
| 744 Node* FlattenString(Node* string); |
| 745 |
| 743 enum ToIntegerTruncationMode { | 746 enum ToIntegerTruncationMode { |
| 744 kNoTruncation, | 747 kNoTruncation, |
| 745 kTruncateMinusZero, | 748 kTruncateMinusZero, |
| 746 }; | 749 }; |
| 747 | 750 |
| 748 // Convert any object to an Integer. | 751 // Convert any object to an Integer. |
| 749 Node* ToInteger(Node* context, Node* input, | 752 Node* ToInteger(Node* context, Node* input, |
| 750 ToIntegerTruncationMode mode = kNoTruncation); | 753 ToIntegerTruncationMode mode = kNoTruncation); |
| 751 | 754 |
| 752 // Returns a node that contains a decoded (unsigned!) value of a bit | 755 // Returns a node that contains a decoded (unsigned!) value of a bit |
| (...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 845 void Increment(Variable& variable, int value = 1, | 848 void Increment(Variable& variable, int value = 1, |
| 846 ParameterMode mode = INTPTR_PARAMETERS); | 849 ParameterMode mode = INTPTR_PARAMETERS); |
| 847 | 850 |
| 848 // Generates "if (false) goto label" code. Useful for marking a label as | 851 // Generates "if (false) goto label" code. Useful for marking a label as |
| 849 // "live" to avoid assertion failures during graph building. In the resulting | 852 // "live" to avoid assertion failures during graph building. In the resulting |
| 850 // code this check will be eliminated. | 853 // code this check will be eliminated. |
| 851 void Use(Label* label); | 854 void Use(Label* label); |
| 852 | 855 |
| 853 // Various building blocks for stubs doing property lookups. | 856 // Various building blocks for stubs doing property lookups. |
| 854 void TryToName(Node* key, Label* if_keyisindex, Variable* var_index, | 857 void TryToName(Node* key, Label* if_keyisindex, Variable* var_index, |
| 855 Label* if_keyisunique, Variable* var_unique, | 858 Label* if_keyisunique, Label* if_bailout); |
| 856 Label* if_bailout); | |
| 857 | 859 |
| 858 // Calculates array index for given dictionary entry and entry field. | 860 // Calculates array index for given dictionary entry and entry field. |
| 859 // See Dictionary::EntryToIndex(). | 861 // See Dictionary::EntryToIndex(). |
| 860 template <typename Dictionary> | 862 template <typename Dictionary> |
| 861 Node* EntryToIndex(Node* entry, int field_index); | 863 Node* EntryToIndex(Node* entry, int field_index); |
| 862 template <typename Dictionary> | 864 template <typename Dictionary> |
| 863 Node* EntryToIndex(Node* entry) { | 865 Node* EntryToIndex(Node* entry) { |
| 864 return EntryToIndex<Dictionary>(entry, Dictionary::kEntryKeyIndex); | 866 return EntryToIndex<Dictionary>(entry, Dictionary::kEntryKeyIndex); |
| 865 } | 867 } |
| 866 // Calculate a valid size for the a hash table. | 868 // Calculate a valid size for the a hash table. |
| (...skipping 406 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1273 } | 1275 } |
| 1274 #else | 1276 #else |
| 1275 #define CSA_SLOW_ASSERT(csa, x) ((void)0) | 1277 #define CSA_SLOW_ASSERT(csa, x) ((void)0) |
| 1276 #endif | 1278 #endif |
| 1277 | 1279 |
| 1278 DEFINE_OPERATORS_FOR_FLAGS(CodeStubAssembler::AllocationFlags); | 1280 DEFINE_OPERATORS_FOR_FLAGS(CodeStubAssembler::AllocationFlags); |
| 1279 | 1281 |
| 1280 } // namespace internal | 1282 } // namespace internal |
| 1281 } // namespace v8 | 1283 } // namespace v8 |
| 1282 #endif // V8_CODE_STUB_ASSEMBLER_H_ | 1284 #endif // V8_CODE_STUB_ASSEMBLER_H_ |
| OLD | NEW |