| 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 94 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 105 | 105 |
| 106 #define PARAMETER_BINOP(OpName, IntPtrOpName, SmiOpName) \ | 106 #define PARAMETER_BINOP(OpName, IntPtrOpName, SmiOpName) \ |
| 107 Node* OpName(Node* a, Node* b, ParameterMode mode) { \ | 107 Node* OpName(Node* a, Node* b, ParameterMode mode) { \ |
| 108 if (mode == SMI_PARAMETERS) { \ | 108 if (mode == SMI_PARAMETERS) { \ |
| 109 return SmiOpName(a, b); \ | 109 return SmiOpName(a, b); \ |
| 110 } else { \ | 110 } else { \ |
| 111 DCHECK_EQ(INTPTR_PARAMETERS, mode); \ | 111 DCHECK_EQ(INTPTR_PARAMETERS, mode); \ |
| 112 return IntPtrOpName(a, b); \ | 112 return IntPtrOpName(a, b); \ |
| 113 } \ | 113 } \ |
| 114 } | 114 } |
| 115 PARAMETER_BINOP(IntPtrOrSmiMin, IntPtrMin, SmiMin) |
| 115 PARAMETER_BINOP(IntPtrOrSmiAdd, IntPtrAdd, SmiAdd) | 116 PARAMETER_BINOP(IntPtrOrSmiAdd, IntPtrAdd, SmiAdd) |
| 117 PARAMETER_BINOP(IntPtrOrSmiSub, IntPtrSub, SmiSub) |
| 116 PARAMETER_BINOP(IntPtrOrSmiLessThan, IntPtrLessThan, SmiLessThan) | 118 PARAMETER_BINOP(IntPtrOrSmiLessThan, IntPtrLessThan, SmiLessThan) |
| 119 PARAMETER_BINOP(IntPtrOrSmiLessThanOrEqual, IntPtrLessThanOrEqual, |
| 120 SmiLessThanOrEqual) |
| 117 PARAMETER_BINOP(IntPtrOrSmiGreaterThan, IntPtrGreaterThan, SmiGreaterThan) | 121 PARAMETER_BINOP(IntPtrOrSmiGreaterThan, IntPtrGreaterThan, SmiGreaterThan) |
| 118 PARAMETER_BINOP(IntPtrOrSmiGreaterThanOrEqual, IntPtrGreaterThanOrEqual, | 122 PARAMETER_BINOP(IntPtrOrSmiGreaterThanOrEqual, IntPtrGreaterThanOrEqual, |
| 119 SmiGreaterThanOrEqual) | 123 SmiGreaterThanOrEqual) |
| 120 PARAMETER_BINOP(UintPtrOrSmiLessThan, UintPtrLessThan, SmiBelow) | 124 PARAMETER_BINOP(UintPtrOrSmiLessThan, UintPtrLessThan, SmiBelow) |
| 121 PARAMETER_BINOP(UintPtrOrSmiGreaterThanOrEqual, UintPtrGreaterThanOrEqual, | 125 PARAMETER_BINOP(UintPtrOrSmiGreaterThanOrEqual, UintPtrGreaterThanOrEqual, |
| 122 SmiAboveOrEqual) | 126 SmiAboveOrEqual) |
| 123 #undef PARAMETER_BINOP | 127 #undef PARAMETER_BINOP |
| 124 | 128 |
| 125 Node* NoContextConstant(); | 129 Node* NoContextConstant(); |
| 126 #define HEAP_CONSTANT_ACCESSOR(rootName, name) Node* name##Constant(); | 130 #define HEAP_CONSTANT_ACCESSOR(rootName, name) Node* name##Constant(); |
| (...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 200 DCHECK_EQ(INTPTR_PARAMETERS, mode); | 204 DCHECK_EQ(INTPTR_PARAMETERS, mode); |
| 201 return WordShr(a, shift); | 205 return WordShr(a, shift); |
| 202 } | 206 } |
| 203 } | 207 } |
| 204 | 208 |
| 205 #define SMI_COMPARISON_OP(SmiOpName, IntPtrOpName) \ | 209 #define SMI_COMPARISON_OP(SmiOpName, IntPtrOpName) \ |
| 206 Node* SmiOpName(Node* a, Node* b) { \ | 210 Node* SmiOpName(Node* a, Node* b) { \ |
| 207 return IntPtrOpName(BitcastTaggedToWord(a), BitcastTaggedToWord(b)); \ | 211 return IntPtrOpName(BitcastTaggedToWord(a), BitcastTaggedToWord(b)); \ |
| 208 } | 212 } |
| 209 SMI_COMPARISON_OP(SmiEqual, WordEqual) | 213 SMI_COMPARISON_OP(SmiEqual, WordEqual) |
| 214 SMI_COMPARISON_OP(SmiNotEqual, WordNotEqual) |
| 210 SMI_COMPARISON_OP(SmiAbove, UintPtrGreaterThan) | 215 SMI_COMPARISON_OP(SmiAbove, UintPtrGreaterThan) |
| 211 SMI_COMPARISON_OP(SmiAboveOrEqual, UintPtrGreaterThanOrEqual) | 216 SMI_COMPARISON_OP(SmiAboveOrEqual, UintPtrGreaterThanOrEqual) |
| 212 SMI_COMPARISON_OP(SmiBelow, UintPtrLessThan) | 217 SMI_COMPARISON_OP(SmiBelow, UintPtrLessThan) |
| 213 SMI_COMPARISON_OP(SmiLessThan, IntPtrLessThan) | 218 SMI_COMPARISON_OP(SmiLessThan, IntPtrLessThan) |
| 214 SMI_COMPARISON_OP(SmiLessThanOrEqual, IntPtrLessThanOrEqual) | 219 SMI_COMPARISON_OP(SmiLessThanOrEqual, IntPtrLessThanOrEqual) |
| 215 SMI_COMPARISON_OP(SmiGreaterThan, IntPtrGreaterThan) | 220 SMI_COMPARISON_OP(SmiGreaterThan, IntPtrGreaterThan) |
| 216 SMI_COMPARISON_OP(SmiGreaterThanOrEqual, IntPtrGreaterThanOrEqual) | 221 SMI_COMPARISON_OP(SmiGreaterThanOrEqual, IntPtrGreaterThanOrEqual) |
| 217 #undef SMI_COMPARISON_OP | 222 #undef SMI_COMPARISON_OP |
| 218 Node* SmiMax(Node* a, Node* b); | 223 Node* SmiMax(Node* a, Node* b); |
| 219 Node* SmiMin(Node* a, Node* b); | 224 Node* SmiMin(Node* a, Node* b); |
| (...skipping 1071 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1291 } | 1296 } |
| 1292 #else | 1297 #else |
| 1293 #define CSA_SLOW_ASSERT(csa, x) ((void)0) | 1298 #define CSA_SLOW_ASSERT(csa, x) ((void)0) |
| 1294 #endif | 1299 #endif |
| 1295 | 1300 |
| 1296 DEFINE_OPERATORS_FOR_FLAGS(CodeStubAssembler::AllocationFlags); | 1301 DEFINE_OPERATORS_FOR_FLAGS(CodeStubAssembler::AllocationFlags); |
| 1297 | 1302 |
| 1298 } // namespace internal | 1303 } // namespace internal |
| 1299 } // namespace v8 | 1304 } // namespace v8 |
| 1300 #endif // V8_CODE_STUB_ASSEMBLER_H_ | 1305 #endif // V8_CODE_STUB_ASSEMBLER_H_ |
| OLD | NEW |