| 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 26 matching lines...) Expand all  Loading... | 
| 37   V(TrueValue, True)                          \ | 37   V(TrueValue, True)                          \ | 
| 38   V(UndefinedValue, Undefined) | 38   V(UndefinedValue, Undefined) | 
| 39 | 39 | 
| 40 // Provides JavaScript-specific "macro-assembler" functionality on top of the | 40 // Provides JavaScript-specific "macro-assembler" functionality on top of the | 
| 41 // CodeAssembler. By factoring the JavaScript-isms out of the CodeAssembler, | 41 // CodeAssembler. By factoring the JavaScript-isms out of the CodeAssembler, | 
| 42 // it's possible to add JavaScript-specific useful CodeAssembler "macros" | 42 // it's possible to add JavaScript-specific useful CodeAssembler "macros" | 
| 43 // without modifying files in the compiler directory (and requiring a review | 43 // without modifying files in the compiler directory (and requiring a review | 
| 44 // from a compiler directory OWNER). | 44 // from a compiler directory OWNER). | 
| 45 class V8_EXPORT_PRIVATE CodeStubAssembler : public compiler::CodeAssembler { | 45 class V8_EXPORT_PRIVATE CodeStubAssembler : public compiler::CodeAssembler { | 
| 46  public: | 46  public: | 
| 47   // Create with CallStub linkage. | 47   CodeStubAssembler(compiler::CodeAssemblerState* state) | 
| 48   // |result_size| specifies the number of results returned by the stub. | 48       : compiler::CodeAssembler(state) {} | 
| 49   // TODO(rmcilroy): move result_size to the CallInterfaceDescriptor. |  | 
| 50   CodeStubAssembler(Isolate* isolate, Zone* zone, |  | 
| 51                     const CallInterfaceDescriptor& descriptor, |  | 
| 52                     Code::Flags flags, const char* name, |  | 
| 53                     size_t result_size = 1); |  | 
| 54 |  | 
| 55   // Create with JSCall linkage. |  | 
| 56   CodeStubAssembler(Isolate* isolate, Zone* zone, int parameter_count, |  | 
| 57                     Code::Flags flags, const char* name); |  | 
| 58 | 49 | 
| 59   enum AllocationFlag : uint8_t { | 50   enum AllocationFlag : uint8_t { | 
| 60     kNone = 0, | 51     kNone = 0, | 
| 61     kDoubleAlignment = 1, | 52     kDoubleAlignment = 1, | 
| 62     kPretenured = 1 << 1 | 53     kPretenured = 1 << 1 | 
| 63   }; | 54   }; | 
| 64 | 55 | 
| 65   typedef base::Flags<AllocationFlag> AllocationFlags; | 56   typedef base::Flags<AllocationFlag> AllocationFlags; | 
| 66 | 57 | 
| 67   // TODO(ishell): Fix all loads/stores from arrays by int32 offsets/indices | 58   // TODO(ishell): Fix all loads/stores from arrays by int32 offsets/indices | 
| (...skipping 1243 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 1311   } | 1302   } | 
| 1312 #else | 1303 #else | 
| 1313 #define CSA_SLOW_ASSERT(csa, x) ((void)0) | 1304 #define CSA_SLOW_ASSERT(csa, x) ((void)0) | 
| 1314 #endif | 1305 #endif | 
| 1315 | 1306 | 
| 1316 DEFINE_OPERATORS_FOR_FLAGS(CodeStubAssembler::AllocationFlags); | 1307 DEFINE_OPERATORS_FOR_FLAGS(CodeStubAssembler::AllocationFlags); | 
| 1317 | 1308 | 
| 1318 }  // namespace internal | 1309 }  // namespace internal | 
| 1319 }  // namespace v8 | 1310 }  // namespace v8 | 
| 1320 #endif  // V8_CODE_STUB_ASSEMBLER_H_ | 1311 #endif  // V8_CODE_STUB_ASSEMBLER_H_ | 
| OLD | NEW | 
|---|