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 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
51 class V8_EXPORT_PRIVATE CodeStubAssembler : public compiler::CodeAssembler { | 51 class V8_EXPORT_PRIVATE CodeStubAssembler : public compiler::CodeAssembler { |
52 public: | 52 public: |
53 typedef compiler::Node Node; | 53 typedef compiler::Node Node; |
54 | 54 |
55 CodeStubAssembler(compiler::CodeAssemblerState* state) | 55 CodeStubAssembler(compiler::CodeAssemblerState* state) |
56 : compiler::CodeAssembler(state) {} | 56 : compiler::CodeAssembler(state) {} |
57 | 57 |
58 enum AllocationFlag : uint8_t { | 58 enum AllocationFlag : uint8_t { |
59 kNone = 0, | 59 kNone = 0, |
60 kDoubleAlignment = 1, | 60 kDoubleAlignment = 1, |
61 kPretenured = 1 << 1 | 61 kPretenured = 1 << 1, |
| 62 kAllowLargeObjectAllocation = 1 << 2, |
62 }; | 63 }; |
63 | 64 |
64 typedef base::Flags<AllocationFlag> AllocationFlags; | 65 typedef base::Flags<AllocationFlag> AllocationFlags; |
65 | 66 |
66 // TODO(ishell): Fix all loads/stores from arrays by int32 offsets/indices | 67 // TODO(ishell): Fix all loads/stores from arrays by int32 offsets/indices |
67 // and eventually remove INTEGER_PARAMETERS in favour of INTPTR_PARAMETERS. | 68 // and eventually remove INTEGER_PARAMETERS in favour of INTPTR_PARAMETERS. |
68 enum ParameterMode { INTEGER_PARAMETERS, SMI_PARAMETERS, INTPTR_PARAMETERS }; | 69 enum ParameterMode { INTEGER_PARAMETERS, SMI_PARAMETERS, INTPTR_PARAMETERS }; |
69 | 70 |
70 // On 32-bit platforms, there is a slight performance advantage to doing all | 71 // On 32-bit platforms, there is a slight performance advantage to doing all |
71 // of the array offset/index arithmetic with SMIs, since it's possible | 72 // of the array offset/index arithmetic with SMIs, since it's possible |
(...skipping 1056 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1128 } | 1129 } |
1129 #else | 1130 #else |
1130 #define CSA_SLOW_ASSERT(csa, x) ((void)0) | 1131 #define CSA_SLOW_ASSERT(csa, x) ((void)0) |
1131 #endif | 1132 #endif |
1132 | 1133 |
1133 DEFINE_OPERATORS_FOR_FLAGS(CodeStubAssembler::AllocationFlags); | 1134 DEFINE_OPERATORS_FOR_FLAGS(CodeStubAssembler::AllocationFlags); |
1134 | 1135 |
1135 } // namespace internal | 1136 } // namespace internal |
1136 } // namespace v8 | 1137 } // namespace v8 |
1137 #endif // V8_CODE_STUB_ASSEMBLER_H_ | 1138 #endif // V8_CODE_STUB_ASSEMBLER_H_ |
OLD | NEW |