| OLD | NEW |
| 1 // Copyright 2014 the V8 project authors. All rights reserved. | 1 // Copyright 2014 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_COMPILER_SIMPLIFIED_OPERATOR_H_ | 5 #ifndef V8_COMPILER_SIMPLIFIED_OPERATOR_H_ |
| 6 #define V8_COMPILER_SIMPLIFIED_OPERATOR_H_ | 6 #define V8_COMPILER_SIMPLIFIED_OPERATOR_H_ |
| 7 | 7 |
| 8 #include <iosfwd> | 8 #include <iosfwd> |
| 9 | 9 |
| 10 #include "src/compiler/type-hints.h" | 10 #include "src/compiler/type-hints.h" |
| (...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 100 size_t hash_value(ElementAccess const&); | 100 size_t hash_value(ElementAccess const&); |
| 101 | 101 |
| 102 std::ostream& operator<<(std::ostream&, ElementAccess const&); | 102 std::ostream& operator<<(std::ostream&, ElementAccess const&); |
| 103 | 103 |
| 104 ElementAccess const& ElementAccessOf(const Operator* op) WARN_UNUSED_RESULT; | 104 ElementAccess const& ElementAccessOf(const Operator* op) WARN_UNUSED_RESULT; |
| 105 | 105 |
| 106 Type* TypeOf(const Operator* op) WARN_UNUSED_RESULT; | 106 Type* TypeOf(const Operator* op) WARN_UNUSED_RESULT; |
| 107 | 107 |
| 108 BinaryOperationHints::Hint BinaryOperationHintOf(const Operator* op); | 108 BinaryOperationHints::Hint BinaryOperationHintOf(const Operator* op); |
| 109 | 109 |
| 110 CompareOperationHints::Hint CompareOperationHintOf(const Operator* op); |
| 111 |
| 110 // Interface for building simplified operators, which represent the | 112 // Interface for building simplified operators, which represent the |
| 111 // medium-level operations of V8, including adding numbers, allocating objects, | 113 // medium-level operations of V8, including adding numbers, allocating objects, |
| 112 // indexing into objects and arrays, etc. | 114 // indexing into objects and arrays, etc. |
| 113 // All operators are typed but many are representation independent. | 115 // All operators are typed but many are representation independent. |
| 114 | 116 |
| 115 // Number values from JS can be in one of these representations: | 117 // Number values from JS can be in one of these representations: |
| 116 // - Tagged: word-sized integer that is either | 118 // - Tagged: word-sized integer that is either |
| 117 // - a signed small integer (31 or 32 bits plus a tag) | 119 // - a signed small integer (31 or 32 bits plus a tag) |
| 118 // - a tagged pointer to a HeapNumber object that has a float64 field | 120 // - a tagged pointer to a HeapNumber object that has a float64 field |
| 119 // - Int32: an untagged signed 32-bit integer | 121 // - Int32: an untagged signed 32-bit integer |
| (...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 157 const Operator* NumberLog(); | 159 const Operator* NumberLog(); |
| 158 const Operator* NumberRound(); | 160 const Operator* NumberRound(); |
| 159 const Operator* NumberTrunc(); | 161 const Operator* NumberTrunc(); |
| 160 const Operator* NumberToInt32(); | 162 const Operator* NumberToInt32(); |
| 161 const Operator* NumberToUint32(); | 163 const Operator* NumberToUint32(); |
| 162 const Operator* NumberIsHoleNaN(); | 164 const Operator* NumberIsHoleNaN(); |
| 163 | 165 |
| 164 const Operator* SpeculativeNumberAdd(BinaryOperationHints::Hint hint); | 166 const Operator* SpeculativeNumberAdd(BinaryOperationHints::Hint hint); |
| 165 const Operator* SpeculativeNumberSubtract(BinaryOperationHints::Hint hint); | 167 const Operator* SpeculativeNumberSubtract(BinaryOperationHints::Hint hint); |
| 166 | 168 |
| 169 const Operator* SpeculativeNumberLessThan(CompareOperationHints::Hint hint); |
| 170 const Operator* SpeculativeNumberLessThanOrEqual( |
| 171 CompareOperationHints::Hint hint); |
| 172 const Operator* SpeculativeNumberEqual(CompareOperationHints::Hint hint); |
| 173 |
| 167 const Operator* ReferenceEqual(Type* type); | 174 const Operator* ReferenceEqual(Type* type); |
| 168 | 175 |
| 169 const Operator* StringEqual(); | 176 const Operator* StringEqual(); |
| 170 const Operator* StringLessThan(); | 177 const Operator* StringLessThan(); |
| 171 const Operator* StringLessThanOrEqual(); | 178 const Operator* StringLessThanOrEqual(); |
| 172 const Operator* StringFromCharCode(); | 179 const Operator* StringFromCharCode(); |
| 173 const Operator* StringToNumber(); | 180 const Operator* StringToNumber(); |
| 174 | 181 |
| 175 const Operator* ChangeTaggedSignedToInt32(); | 182 const Operator* ChangeTaggedSignedToInt32(); |
| 176 const Operator* ChangeTaggedToInt32(); | 183 const Operator* ChangeTaggedToInt32(); |
| (...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 223 Zone* const zone_; | 230 Zone* const zone_; |
| 224 | 231 |
| 225 DISALLOW_COPY_AND_ASSIGN(SimplifiedOperatorBuilder); | 232 DISALLOW_COPY_AND_ASSIGN(SimplifiedOperatorBuilder); |
| 226 }; | 233 }; |
| 227 | 234 |
| 228 } // namespace compiler | 235 } // namespace compiler |
| 229 } // namespace internal | 236 } // namespace internal |
| 230 } // namespace v8 | 237 } // namespace v8 |
| 231 | 238 |
| 232 #endif // V8_COMPILER_SIMPLIFIED_OPERATOR_H_ | 239 #endif // V8_COMPILER_SIMPLIFIED_OPERATOR_H_ |
| OLD | NEW |