| OLD | NEW |
| 1 // Copyright 2011 the V8 project authors. All rights reserved. | 1 // Copyright 2011 the V8 project authors. All rights reserved. |
| 2 // Redistribution and use in source and binary forms, with or without | 2 // Redistribution and use in source and binary forms, with or without |
| 3 // modification, are permitted provided that the following conditions are | 3 // modification, are permitted provided that the following conditions are |
| 4 // met: | 4 // met: |
| 5 // | 5 // |
| 6 // * Redistributions of source code must retain the above copyright | 6 // * Redistributions of source code must retain the above copyright |
| 7 // notice, this list of conditions and the following disclaimer. | 7 // notice, this list of conditions and the following disclaimer. |
| 8 // * Redistributions in binary form must reproduce the above | 8 // * Redistributions in binary form must reproduce the above |
| 9 // copyright notice, this list of conditions and the following | 9 // copyright notice, this list of conditions and the following |
| 10 // disclaimer in the documentation and/or other materials provided | 10 // disclaimer in the documentation and/or other materials provided |
| (...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 80 V(HandleApiCallAsConstructor, NO_EXTRA_ARGUMENTS) \ | 80 V(HandleApiCallAsConstructor, NO_EXTRA_ARGUMENTS) \ |
| 81 \ | 81 \ |
| 82 V(StrictModePoisonPill, NO_EXTRA_ARGUMENTS) | 82 V(StrictModePoisonPill, NO_EXTRA_ARGUMENTS) |
| 83 | 83 |
| 84 // Define list of builtins implemented in assembly. | 84 // Define list of builtins implemented in assembly. |
| 85 #define BUILTIN_LIST_A(V) \ | 85 #define BUILTIN_LIST_A(V) \ |
| 86 V(ArgumentsAdaptorTrampoline, BUILTIN, UNINITIALIZED, \ | 86 V(ArgumentsAdaptorTrampoline, BUILTIN, UNINITIALIZED, \ |
| 87 Code::kNoExtraICState) \ | 87 Code::kNoExtraICState) \ |
| 88 V(InRecompileQueue, BUILTIN, UNINITIALIZED, \ | 88 V(InRecompileQueue, BUILTIN, UNINITIALIZED, \ |
| 89 Code::kNoExtraICState) \ | 89 Code::kNoExtraICState) \ |
| 90 V(InstallRecompiledCode, BUILTIN, UNINITIALIZED, \ | |
| 91 Code::kNoExtraICState) \ | |
| 92 V(JSConstructStubCountdown, BUILTIN, UNINITIALIZED, \ | 90 V(JSConstructStubCountdown, BUILTIN, UNINITIALIZED, \ |
| 93 Code::kNoExtraICState) \ | 91 Code::kNoExtraICState) \ |
| 94 V(JSConstructStubGeneric, BUILTIN, UNINITIALIZED, \ | 92 V(JSConstructStubGeneric, BUILTIN, UNINITIALIZED, \ |
| 95 Code::kNoExtraICState) \ | 93 Code::kNoExtraICState) \ |
| 96 V(JSConstructStubApi, BUILTIN, UNINITIALIZED, \ | 94 V(JSConstructStubApi, BUILTIN, UNINITIALIZED, \ |
| 97 Code::kNoExtraICState) \ | 95 Code::kNoExtraICState) \ |
| 98 V(JSEntryTrampoline, BUILTIN, UNINITIALIZED, \ | 96 V(JSEntryTrampoline, BUILTIN, UNINITIALIZED, \ |
| 99 Code::kNoExtraICState) \ | 97 Code::kNoExtraICState) \ |
| 100 V(JSConstructEntryTrampoline, BUILTIN, UNINITIALIZED, \ | 98 V(JSConstructEntryTrampoline, BUILTIN, UNINITIALIZED, \ |
| 101 Code::kNoExtraICState) \ | 99 Code::kNoExtraICState) \ |
| (...skipping 13 matching lines...) Expand all Loading... |
| 115 Code::kNoExtraICState) \ | 113 Code::kNoExtraICState) \ |
| 116 V(NotifyOSR, BUILTIN, UNINITIALIZED, \ | 114 V(NotifyOSR, BUILTIN, UNINITIALIZED, \ |
| 117 Code::kNoExtraICState) \ | 115 Code::kNoExtraICState) \ |
| 118 \ | 116 \ |
| 119 V(LoadIC_Miss, BUILTIN, UNINITIALIZED, \ | 117 V(LoadIC_Miss, BUILTIN, UNINITIALIZED, \ |
| 120 Code::kNoExtraICState) \ | 118 Code::kNoExtraICState) \ |
| 121 V(KeyedLoadIC_Miss, BUILTIN, UNINITIALIZED, \ | 119 V(KeyedLoadIC_Miss, BUILTIN, UNINITIALIZED, \ |
| 122 Code::kNoExtraICState) \ | 120 Code::kNoExtraICState) \ |
| 123 V(KeyedLoadIC_MissForceGeneric, BUILTIN, UNINITIALIZED, \ | 121 V(KeyedLoadIC_MissForceGeneric, BUILTIN, UNINITIALIZED, \ |
| 124 Code::kNoExtraICState) \ | 122 Code::kNoExtraICState) \ |
| 125 V(KeyedLoadIC_Slow, BUILTIN, UNINITIALIZED, \ | 123 V(KeyedLoadIC_Slow, STUB, MONOMORPHIC, \ |
| 126 Code::kNoExtraICState) \ | 124 Code::kNoExtraICState) \ |
| 127 V(StoreIC_Miss, BUILTIN, UNINITIALIZED, \ | 125 V(StoreIC_Miss, BUILTIN, UNINITIALIZED, \ |
| 128 Code::kNoExtraICState) \ | 126 Code::kNoExtraICState) \ |
| 129 V(StoreIC_Slow, BUILTIN, UNINITIALIZED, \ | 127 V(StoreIC_Slow, BUILTIN, UNINITIALIZED, \ |
| 130 Code::kNoExtraICState) \ | 128 Code::kNoExtraICState) \ |
| 131 V(KeyedStoreIC_Miss, BUILTIN, UNINITIALIZED, \ | 129 V(KeyedStoreIC_Miss, BUILTIN, UNINITIALIZED, \ |
| 132 Code::kNoExtraICState) \ | 130 Code::kNoExtraICState) \ |
| 133 V(KeyedStoreIC_MissForceGeneric, BUILTIN, UNINITIALIZED, \ | 131 V(KeyedStoreIC_MissForceGeneric, BUILTIN, UNINITIALIZED, \ |
| 134 Code::kNoExtraICState) \ | 132 Code::kNoExtraICState) \ |
| 135 V(KeyedStoreIC_Slow, BUILTIN, UNINITIALIZED, \ | 133 V(KeyedStoreIC_Slow, BUILTIN, UNINITIALIZED, \ |
| 136 Code::kNoExtraICState) \ | 134 Code::kNoExtraICState) \ |
| 137 V(LoadIC_Initialize, LOAD_IC, UNINITIALIZED, \ | 135 V(LoadIC_Initialize, LOAD_IC, UNINITIALIZED, \ |
| 138 Code::kNoExtraICState) \ | 136 Code::kNoExtraICState) \ |
| 139 V(LoadIC_PreMonomorphic, LOAD_IC, PREMONOMORPHIC, \ | 137 V(LoadIC_PreMonomorphic, LOAD_IC, PREMONOMORPHIC, \ |
| 140 Code::kNoExtraICState) \ | 138 Code::kNoExtraICState) \ |
| 141 V(LoadIC_Normal, LOAD_IC, MONOMORPHIC, \ | 139 V(LoadIC_Normal, LOAD_IC, MONOMORPHIC, \ |
| 142 Code::kNoExtraICState) \ | 140 Code::kNoExtraICState) \ |
| 143 V(LoadIC_Megamorphic, LOAD_IC, MEGAMORPHIC, \ | 141 V(LoadIC_Megamorphic, LOAD_IC, MEGAMORPHIC, \ |
| 144 Code::kNoExtraICState) \ | 142 Code::kNoExtraICState) \ |
| 145 V(LoadIC_Getter_ForDeopt, LOAD_IC, MONOMORPHIC, \ | 143 V(LoadIC_Getter_ForDeopt, LOAD_IC, MONOMORPHIC, \ |
| 146 Code::kNoExtraICState) \ | 144 Code::kNoExtraICState) \ |
| 147 V(LoadIC_Slow, LOAD_IC, GENERIC, \ | 145 V(LoadIC_Slow, STUB, MONOMORPHIC, \ |
| 148 Code::kNoExtraICState) \ | 146 Code::kNoExtraICState) \ |
| 149 \ | 147 \ |
| 150 V(KeyedLoadIC_Initialize, KEYED_LOAD_IC, UNINITIALIZED, \ | 148 V(KeyedLoadIC_Initialize, KEYED_LOAD_IC, UNINITIALIZED, \ |
| 151 Code::kNoExtraICState) \ | 149 Code::kNoExtraICState) \ |
| 152 V(KeyedLoadIC_PreMonomorphic, KEYED_LOAD_IC, PREMONOMORPHIC, \ | 150 V(KeyedLoadIC_PreMonomorphic, KEYED_LOAD_IC, PREMONOMORPHIC, \ |
| 153 Code::kNoExtraICState) \ | 151 Code::kNoExtraICState) \ |
| 154 V(KeyedLoadIC_Generic, KEYED_LOAD_IC, GENERIC, \ | 152 V(KeyedLoadIC_Generic, KEYED_LOAD_IC, GENERIC, \ |
| 155 Code::kNoExtraICState) \ | 153 Code::kNoExtraICState) \ |
| 156 V(KeyedLoadIC_String, KEYED_LOAD_IC, MEGAMORPHIC, \ | 154 V(KeyedLoadIC_String, KEYED_LOAD_IC, MEGAMORPHIC, \ |
| 157 Code::kNoExtraICState) \ | 155 Code::kNoExtraICState) \ |
| (...skipping 217 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 375 // function f, we use an Object* array here. | 373 // function f, we use an Object* array here. |
| 376 Object* builtins_[builtin_count]; | 374 Object* builtins_[builtin_count]; |
| 377 const char* names_[builtin_count]; | 375 const char* names_[builtin_count]; |
| 378 static const char* const javascript_names_[id_count]; | 376 static const char* const javascript_names_[id_count]; |
| 379 static int const javascript_argc_[id_count]; | 377 static int const javascript_argc_[id_count]; |
| 380 | 378 |
| 381 static void Generate_Adaptor(MacroAssembler* masm, | 379 static void Generate_Adaptor(MacroAssembler* masm, |
| 382 CFunctionId id, | 380 CFunctionId id, |
| 383 BuiltinExtraArguments extra_args); | 381 BuiltinExtraArguments extra_args); |
| 384 static void Generate_InRecompileQueue(MacroAssembler* masm); | 382 static void Generate_InRecompileQueue(MacroAssembler* masm); |
| 385 static void Generate_InstallRecompiledCode(MacroAssembler* masm); | |
| 386 static void Generate_ConcurrentRecompile(MacroAssembler* masm); | 383 static void Generate_ConcurrentRecompile(MacroAssembler* masm); |
| 387 static void Generate_JSConstructStubCountdown(MacroAssembler* masm); | 384 static void Generate_JSConstructStubCountdown(MacroAssembler* masm); |
| 388 static void Generate_JSConstructStubGeneric(MacroAssembler* masm); | 385 static void Generate_JSConstructStubGeneric(MacroAssembler* masm); |
| 389 static void Generate_JSConstructStubApi(MacroAssembler* masm); | 386 static void Generate_JSConstructStubApi(MacroAssembler* masm); |
| 390 static void Generate_JSEntryTrampoline(MacroAssembler* masm); | 387 static void Generate_JSEntryTrampoline(MacroAssembler* masm); |
| 391 static void Generate_JSConstructEntryTrampoline(MacroAssembler* masm); | 388 static void Generate_JSConstructEntryTrampoline(MacroAssembler* masm); |
| 392 static void Generate_LazyCompile(MacroAssembler* masm); | 389 static void Generate_LazyCompile(MacroAssembler* masm); |
| 393 static void Generate_LazyRecompile(MacroAssembler* masm); | 390 static void Generate_LazyRecompile(MacroAssembler* masm); |
| 394 static void Generate_NotifyDeoptimized(MacroAssembler* masm); | 391 static void Generate_NotifyDeoptimized(MacroAssembler* masm); |
| 395 static void Generate_NotifySoftDeoptimized(MacroAssembler* masm); | 392 static void Generate_NotifySoftDeoptimized(MacroAssembler* masm); |
| (...skipping 28 matching lines...) Expand all Loading... |
| 424 | 421 |
| 425 friend class BuiltinFunctionTable; | 422 friend class BuiltinFunctionTable; |
| 426 friend class Isolate; | 423 friend class Isolate; |
| 427 | 424 |
| 428 DISALLOW_COPY_AND_ASSIGN(Builtins); | 425 DISALLOW_COPY_AND_ASSIGN(Builtins); |
| 429 }; | 426 }; |
| 430 | 427 |
| 431 } } // namespace v8::internal | 428 } } // namespace v8::internal |
| 432 | 429 |
| 433 #endif // V8_BUILTINS_H_ | 430 #endif // V8_BUILTINS_H_ |
| OLD | NEW |