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 3 // found in the LICENSE file. 4 5 #include "src/builtins/builtins.h" 6 #include "src/ic/accessor-assembler.h" 7 8 namespace v8 { 9 namespace internal { 10 11 #define IC_BUILTIN(Name) \ 12 void Builtins::Generate_##Name(compiler::CodeAssemblerState* state) { \ 13 AccessorAssembler assembler(state); \ 14 assembler.Generate##Name(); \ 15 } 16 17 #define IC_BUILTIN_PARAM(BuiltinName, GeneratorName, parameter) \ 18 void Builtins::Generate_##BuiltinName(compiler::CodeAssemblerState* state) { \ 19 AccessorAssembler assembler(state); \ 20 assembler.Generate##GeneratorName(parameter); \ 21 } 22 23 IC_BUILTIN(LoadIC) 24 IC_BUILTIN(LoadIC_Noninlined) 25 IC_BUILTIN(LoadIC_Uninitialized) 26 IC_BUILTIN(KeyedLoadIC) 27 IC_BUILTIN(LoadICTrampoline) 28 IC_BUILTIN(KeyedLoadICTrampoline) 29 IC_BUILTIN(KeyedLoadIC_Megamorphic) 30 IC_BUILTIN(KeyedLoadIC_PolymorphicName) 31 IC_BUILTIN(StoreGlobalIC) 32 IC_BUILTIN(StoreGlobalICTrampoline) 33 IC_BUILTIN(StoreIC) 34 IC_BUILTIN(StoreICTrampoline) 35 IC_BUILTIN(KeyedStoreIC) 36 IC_BUILTIN(KeyedStoreICTrampoline) 37 IC_BUILTIN(StoreInArrayLiteralIC) 38 IC_BUILTIN(CloneObjectIC) 39 40 IC_BUILTIN_PARAM(LoadGlobalIC, LoadGlobalIC, NOT_INSIDE_TYPEOF) 41 IC_BUILTIN_PARAM(LoadGlobalICInsideTypeof, LoadGlobalIC, INSIDE_TYPEOF) 42 IC_BUILTIN_PARAM(LoadGlobalICTrampoline, LoadGlobalICTrampoline, 43 NOT_INSIDE_TYPEOF) 44 IC_BUILTIN_PARAM(LoadGlobalICInsideTypeofTrampoline, LoadGlobalICTrampoline, 45 INSIDE_TYPEOF) 46 47 } // namespace internal 48 } // namespace v8 49