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_Megamorphic) 25 IC_BUILTIN(LoadIC_Noninlined) 26 IC_BUILTIN(LoadIC_NoFeedback) 27 IC_BUILTIN(LoadICTrampoline) 28 IC_BUILTIN(LoadICTrampoline_Megamorphic) 29 IC_BUILTIN(LoadSuperIC) 30 IC_BUILTIN(KeyedLoadIC) 31 IC_BUILTIN(KeyedLoadIC_Megamorphic) 32 IC_BUILTIN(KeyedLoadIC_PolymorphicName) 33 IC_BUILTIN(KeyedLoadICTrampoline) 34 IC_BUILTIN(KeyedLoadICTrampoline_Megamorphic) 35 IC_BUILTIN(LoadGlobalIC_NoFeedback) 36 IC_BUILTIN(StoreGlobalIC) 37 IC_BUILTIN(StoreGlobalICTrampoline) 38 IC_BUILTIN(StoreIC) 39 IC_BUILTIN(StoreICTrampoline) 40 IC_BUILTIN(KeyedStoreIC) 41 IC_BUILTIN(KeyedStoreICTrampoline) 42 IC_BUILTIN(StoreInArrayLiteralIC) 43 IC_BUILTIN(CloneObjectIC) 44 IC_BUILTIN(CloneObjectIC_Slow) 45 IC_BUILTIN(KeyedHasIC) 46 IC_BUILTIN(KeyedHasIC_Megamorphic) 47 IC_BUILTIN(KeyedHasIC_PolymorphicName) 48 49 IC_BUILTIN_PARAM(LoadGlobalIC, LoadGlobalIC, NOT_INSIDE_TYPEOF) 50 IC_BUILTIN_PARAM(LoadGlobalICInsideTypeof, LoadGlobalIC, INSIDE_TYPEOF) 51 IC_BUILTIN_PARAM(LoadGlobalICTrampoline, LoadGlobalICTrampoline, 52 NOT_INSIDE_TYPEOF) 53 IC_BUILTIN_PARAM(LoadGlobalICInsideTypeofTrampoline, LoadGlobalICTrampoline, 54 INSIDE_TYPEOF) 55 56 } // namespace internal 57 } // namespace v8 58