| 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 28 matching lines...) Expand all Loading... |
| 39 V(TrueValue, True) \ | 39 V(TrueValue, True) \ |
| 40 V(UndefinedValue, Undefined) | 40 V(UndefinedValue, Undefined) |
| 41 | 41 |
| 42 // Provides JavaScript-specific "macro-assembler" functionality on top of the | 42 // Provides JavaScript-specific "macro-assembler" functionality on top of the |
| 43 // CodeAssembler. By factoring the JavaScript-isms out of the CodeAssembler, | 43 // CodeAssembler. By factoring the JavaScript-isms out of the CodeAssembler, |
| 44 // it's possible to add JavaScript-specific useful CodeAssembler "macros" | 44 // it's possible to add JavaScript-specific useful CodeAssembler "macros" |
| 45 // without modifying files in the compiler directory (and requiring a review | 45 // without modifying files in the compiler directory (and requiring a review |
| 46 // from a compiler directory OWNER). | 46 // from a compiler directory OWNER). |
| 47 class V8_EXPORT_PRIVATE CodeStubAssembler : public compiler::CodeAssembler { | 47 class V8_EXPORT_PRIVATE CodeStubAssembler : public compiler::CodeAssembler { |
| 48 public: | 48 public: |
| 49 // Create with CallStub linkage. | 49 CodeStubAssembler(compiler::CodeAssemblerState* state) |
| 50 // |result_size| specifies the number of results returned by the stub. | 50 : compiler::CodeAssembler(state) {} |
| 51 // TODO(rmcilroy): move result_size to the CallInterfaceDescriptor. | |
| 52 CodeStubAssembler(Isolate* isolate, Zone* zone, | |
| 53 const CallInterfaceDescriptor& descriptor, | |
| 54 Code::Flags flags, const char* name, | |
| 55 size_t result_size = 1); | |
| 56 | |
| 57 // Create with JSCall linkage. | |
| 58 CodeStubAssembler(Isolate* isolate, Zone* zone, int parameter_count, | |
| 59 Code::Flags flags, const char* name); | |
| 60 | 51 |
| 61 enum AllocationFlag : uint8_t { | 52 enum AllocationFlag : uint8_t { |
| 62 kNone = 0, | 53 kNone = 0, |
| 63 kDoubleAlignment = 1, | 54 kDoubleAlignment = 1, |
| 64 kPretenured = 1 << 1 | 55 kPretenured = 1 << 1 |
| 65 }; | 56 }; |
| 66 | 57 |
| 67 typedef base::Flags<AllocationFlag> AllocationFlags; | 58 typedef base::Flags<AllocationFlag> AllocationFlags; |
| 68 | 59 |
| 69 // TODO(ishell): Fix all loads/stores from arrays by int32 offsets/indices | 60 // TODO(ishell): Fix all loads/stores from arrays by int32 offsets/indices |
| (...skipping 1217 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1287 } | 1278 } |
| 1288 #else | 1279 #else |
| 1289 #define CSA_SLOW_ASSERT(csa, x) ((void)0) | 1280 #define CSA_SLOW_ASSERT(csa, x) ((void)0) |
| 1290 #endif | 1281 #endif |
| 1291 | 1282 |
| 1292 DEFINE_OPERATORS_FOR_FLAGS(CodeStubAssembler::AllocationFlags); | 1283 DEFINE_OPERATORS_FOR_FLAGS(CodeStubAssembler::AllocationFlags); |
| 1293 | 1284 |
| 1294 } // namespace internal | 1285 } // namespace internal |
| 1295 } // namespace v8 | 1286 } // namespace v8 |
| 1296 #endif // V8_CODE_STUB_ASSEMBLER_H_ | 1287 #endif // V8_CODE_STUB_ASSEMBLER_H_ |
| OLD | NEW |