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