| OLD | NEW |
| 1 // Copyright 2017 the V8 project authors. All rights reserved. | 1 // Copyright 2017 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 #include "src/setup-isolate.h" | 5 #include "src/setup-isolate.h" |
| 6 | 6 |
| 7 #include "src/builtins/builtins.h" | 7 #include "src/builtins/builtins.h" |
| 8 #include "src/code-events.h" | 8 #include "src/code-events.h" |
| 9 #include "src/compiler/code-assembler.h" | 9 #include "src/compiler/code-assembler.h" |
| 10 #include "src/interface-descriptors.h" | 10 #include "src/interface-descriptors.h" |
| (...skipping 119 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 130 Builtins::BUILTIN_EXIT, kBuiltinFlags, #Name); \ | 130 Builtins::BUILTIN_EXIT, kBuiltinFlags, #Name); \ |
| 131 AddBuiltin(builtins, index++, code); | 131 AddBuiltin(builtins, index++, code); |
| 132 #define BUILD_API(Name) \ | 132 #define BUILD_API(Name) \ |
| 133 code = BuildAdaptor(isolate, FUNCTION_ADDR(Builtin_##Name), Builtins::EXIT, \ | 133 code = BuildAdaptor(isolate, FUNCTION_ADDR(Builtin_##Name), Builtins::EXIT, \ |
| 134 kBuiltinFlags, #Name); \ | 134 kBuiltinFlags, #Name); \ |
| 135 AddBuiltin(builtins, index++, code); | 135 AddBuiltin(builtins, index++, code); |
| 136 #define BUILD_TFJ(Name, Argc, ...) \ | 136 #define BUILD_TFJ(Name, Argc, ...) \ |
| 137 code = BuildWithCodeStubAssemblerJS(isolate, &Builtins::Generate_##Name, \ | 137 code = BuildWithCodeStubAssemblerJS(isolate, &Builtins::Generate_##Name, \ |
| 138 Argc, kBuiltinFlags, #Name); \ | 138 Argc, kBuiltinFlags, #Name); \ |
| 139 AddBuiltin(builtins, index++, code); | 139 AddBuiltin(builtins, index++, code); |
| 140 #define BUILD_TFS(Name, InterfaceDescriptor, result_size) \ | 140 #define BUILD_TFC(Name, InterfaceDescriptor, result_size) \ |
| 141 { InterfaceDescriptor##Descriptor descriptor(isolate); } \ | 141 { InterfaceDescriptor##Descriptor descriptor(isolate); } \ |
| 142 code = BuildWithCodeStubAssemblerCS(isolate, &Builtins::Generate_##Name, \ | 142 code = BuildWithCodeStubAssemblerCS(isolate, &Builtins::Generate_##Name, \ |
| 143 CallDescriptors::InterfaceDescriptor, \ | 143 CallDescriptors::InterfaceDescriptor, \ |
| 144 kBuiltinFlags, #Name, result_size); \ | 144 kBuiltinFlags, #Name, result_size); \ |
| 145 AddBuiltin(builtins, index++, code); | 145 AddBuiltin(builtins, index++, code); |
| 146 #define BUILD_TFS(Name, ...) \ |
| 147 /* Return size for generic TF builtins (stub linkage) is always 1. */ \ |
| 148 code = BuildWithCodeStubAssemblerCS(isolate, &Builtins::Generate_##Name, \ |
| 149 CallDescriptors::Name, kBuiltinFlags, \ |
| 150 #Name, 1); \ |
| 151 AddBuiltin(builtins, index++, code); |
| 146 #define BUILD_TFH(Name, Kind, Extra, InterfaceDescriptor) \ | 152 #define BUILD_TFH(Name, Kind, Extra, InterfaceDescriptor) \ |
| 147 { InterfaceDescriptor##Descriptor descriptor(isolate); } \ | 153 { InterfaceDescriptor##Descriptor descriptor(isolate); } \ |
| 148 /* Return size for IC builtins/handlers is always 1. */ \ | 154 /* Return size for IC builtins/handlers is always 1. */ \ |
| 149 code = BuildWithCodeStubAssemblerCS(isolate, &Builtins::Generate_##Name, \ | 155 code = BuildWithCodeStubAssemblerCS(isolate, &Builtins::Generate_##Name, \ |
| 150 CallDescriptors::InterfaceDescriptor, \ | 156 CallDescriptors::InterfaceDescriptor, \ |
| 151 Code::ComputeFlags(Code::Kind, Extra), \ | 157 Code::ComputeFlags(Code::Kind, Extra), \ |
| 152 #Name, 1); \ | 158 #Name, 1); \ |
| 153 AddBuiltin(builtins, index++, code); | 159 AddBuiltin(builtins, index++, code); |
| 154 #define BUILD_ASM(Name) \ | 160 #define BUILD_ASM(Name) \ |
| 155 code = BuildWithMacroAssembler(isolate, Builtins::Generate_##Name, \ | 161 code = BuildWithMacroAssembler(isolate, Builtins::Generate_##Name, \ |
| 156 kBuiltinFlags, #Name); \ | 162 kBuiltinFlags, #Name); \ |
| 157 AddBuiltin(builtins, index++, code); | 163 AddBuiltin(builtins, index++, code); |
| 158 | 164 |
| 159 BUILTIN_LIST(BUILD_CPP, BUILD_API, BUILD_TFJ, BUILD_TFS, BUILD_TFH, BUILD_ASM, | 165 BUILTIN_LIST(BUILD_CPP, BUILD_API, BUILD_TFJ, BUILD_TFC, BUILD_TFS, BUILD_TFH, |
| 160 BUILD_ASM); | 166 BUILD_ASM, BUILD_ASM); |
| 161 | 167 |
| 162 #undef BUILD_CPP | 168 #undef BUILD_CPP |
| 163 #undef BUILD_API | 169 #undef BUILD_API |
| 164 #undef BUILD_TFJ | 170 #undef BUILD_TFJ |
| 171 #undef BUILD_TFC |
| 165 #undef BUILD_TFS | 172 #undef BUILD_TFS |
| 166 #undef BUILD_TFH | 173 #undef BUILD_TFH |
| 167 #undef BUILD_ASM | 174 #undef BUILD_ASM |
| 168 CHECK_EQ(Builtins::builtin_count, index); | 175 CHECK_EQ(Builtins::builtin_count, index); |
| 169 | 176 |
| 170 #define SET_PROMISE_REJECTION_PREDICTION(Name) \ | 177 #define SET_PROMISE_REJECTION_PREDICTION(Name) \ |
| 171 Code::cast(builtins->builtins_[Builtins::k##Name]) \ | 178 Code::cast(builtins->builtins_[Builtins::k##Name]) \ |
| 172 ->set_is_promise_rejection(true); | 179 ->set_is_promise_rejection(true); |
| 173 | 180 |
| 174 BUILTIN_PROMISE_REJECTION_PREDICTION_LIST(SET_PROMISE_REJECTION_PREDICTION) | 181 BUILTIN_PROMISE_REJECTION_PREDICTION_LIST(SET_PROMISE_REJECTION_PREDICTION) |
| (...skipping 11 matching lines...) Expand all Loading... |
| 186 ->set_has_tagged_params(false); | 193 ->set_has_tagged_params(false); |
| 187 | 194 |
| 188 BUILTINS_WITH_UNTAGGED_PARAMS(SET_CODE_NON_TAGGED_PARAMS) | 195 BUILTINS_WITH_UNTAGGED_PARAMS(SET_CODE_NON_TAGGED_PARAMS) |
| 189 #undef SET_CODE_NON_TAGGED_PARAMS | 196 #undef SET_CODE_NON_TAGGED_PARAMS |
| 190 | 197 |
| 191 isolate->builtins()->MarkInitialized(); | 198 isolate->builtins()->MarkInitialized(); |
| 192 } | 199 } |
| 193 | 200 |
| 194 } // namespace internal | 201 } // namespace internal |
| 195 } // namespace v8 | 202 } // namespace v8 |
| OLD | NEW |