Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(18)

Side by Side Diff: src/builtins/builtins.h

Issue 2145023002: [builtins] move builtin files to src/builtins/. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: rebase Created 4 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « src/builtins/arm64/builtins-arm64.cc ('k') | src/builtins/builtins.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1
2 // Copyright 2011 the V8 project authors. All rights reserved. 1 // Copyright 2011 the V8 project authors. All rights reserved.
3 // 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
4 // found in the LICENSE file. 3 // found in the LICENSE file.
5 4
6 #ifndef V8_BUILTINS_H_ 5 #ifndef V8_BUILTINS_BUILTINS_H_
7 #define V8_BUILTINS_H_ 6 #define V8_BUILTINS_BUILTINS_H_
8 7
9 #include "src/base/flags.h" 8 #include "src/base/flags.h"
10 #include "src/handles.h" 9 #include "src/handles.h"
11 10
12 namespace v8 { 11 namespace v8 {
13 namespace internal { 12 namespace internal {
14 13
15 // Forward declarations. 14 // Forward declarations.
16 class CodeStubAssembler; 15 class CodeStubAssembler;
17 16
18 #define CODE_AGE_LIST_WITH_ARG(V, A) \ 17 #define CODE_AGE_LIST_WITH_ARG(V, A) \
19 V(Quadragenarian, A) \ 18 V(Quadragenarian, A) \
20 V(Quinquagenarian, A) \ 19 V(Quinquagenarian, A) \
21 V(Sexagenarian, A) \ 20 V(Sexagenarian, A) \
22 V(Septuagenarian, A) \ 21 V(Septuagenarian, A) \
23 V(Octogenarian, A) 22 V(Octogenarian, A)
24 23
25 #define CODE_AGE_LIST_IGNORE_ARG(X, V) V(X) 24 #define CODE_AGE_LIST_IGNORE_ARG(X, V) V(X)
26 25
27 #define CODE_AGE_LIST(V) \ 26 #define CODE_AGE_LIST(V) CODE_AGE_LIST_WITH_ARG(CODE_AGE_LIST_IGNORE_ARG, V)
28 CODE_AGE_LIST_WITH_ARG(CODE_AGE_LIST_IGNORE_ARG, V)
29 27
30 #define CODE_AGE_LIST_COMPLETE(V) \ 28 #define CODE_AGE_LIST_COMPLETE(V) \
31 V(ToBeExecutedOnce) \ 29 V(ToBeExecutedOnce) \
32 V(NotExecuted) \ 30 V(NotExecuted) \
33 V(ExecutedOnce) \ 31 V(ExecutedOnce) \
34 V(NoAge) \ 32 V(NoAge) \
35 CODE_AGE_LIST_WITH_ARG(CODE_AGE_LIST_IGNORE_ARG, V) 33 CODE_AGE_LIST_WITH_ARG(CODE_AGE_LIST_IGNORE_ARG, V)
36 34
37 #define DECLARE_CODE_AGE_BUILTIN(C, V) \ 35 #define DECLARE_CODE_AGE_BUILTIN(C, V) \
38 V(Make##C##CodeYoungAgainOddMarking, BUILTIN, kNoExtraICState) \ 36 V(Make##C##CodeYoungAgainOddMarking, BUILTIN, kNoExtraICState) \
39 V(Make##C##CodeYoungAgainEvenMarking, BUILTIN, kNoExtraICState) 37 V(Make##C##CodeYoungAgainEvenMarking, BUILTIN, kNoExtraICState)
40 38
41 // Define list of builtins implemented in C++. 39 // Define list of builtins implemented in C++.
42 #define BUILTIN_LIST_C(V) \ 40 #define BUILTIN_LIST_C(V) \
43 V(Illegal, BUILTIN_EXIT) \ 41 V(Illegal, BUILTIN_EXIT) \
44 \ 42 \
(...skipping 340 matching lines...) Expand 10 before | Expand all | Expand 10 after
385 383
386 // Define list of builtins used by the debugger implemented in assembly. 384 // Define list of builtins used by the debugger implemented in assembly.
387 #define BUILTIN_LIST_DEBUG_A(V) \ 385 #define BUILTIN_LIST_DEBUG_A(V) \
388 V(Return_DebugBreak, BUILTIN, kNoExtraICState) \ 386 V(Return_DebugBreak, BUILTIN, kNoExtraICState) \
389 V(Slot_DebugBreak, BUILTIN, kNoExtraICState) \ 387 V(Slot_DebugBreak, BUILTIN, kNoExtraICState) \
390 V(FrameDropper_LiveEdit, BUILTIN, kNoExtraICState) 388 V(FrameDropper_LiveEdit, BUILTIN, kNoExtraICState)
391 389
392 class BuiltinFunctionTable; 390 class BuiltinFunctionTable;
393 class ObjectVisitor; 391 class ObjectVisitor;
394 392
395
396 class Builtins { 393 class Builtins {
397 public: 394 public:
398 ~Builtins(); 395 ~Builtins();
399 396
400 // Generate all builtin code objects. Should be called once during 397 // Generate all builtin code objects. Should be called once during
401 // isolate initialization. 398 // isolate initialization.
402 void SetUp(Isolate* isolate, bool create_heap_objects); 399 void SetUp(Isolate* isolate, bool create_heap_objects);
403 void TearDown(); 400 void TearDown();
404 401
405 // Garbage collection support. 402 // Garbage collection support.
406 void IterateBuiltins(ObjectVisitor* v); 403 void IterateBuiltins(ObjectVisitor* v);
407 404
408 // Disassembler support. 405 // Disassembler support.
409 const char* Lookup(byte* pc); 406 const char* Lookup(byte* pc);
410 407
411 enum Name { 408 enum Name {
412 #define DEF_ENUM_C(name, ignore) k##name, 409 #define DEF_ENUM_C(name, ignore) k##name,
413 #define DEF_ENUM_A(name, kind, extra) k##name, 410 #define DEF_ENUM_A(name, kind, extra) k##name,
414 #define DEF_ENUM_T(name, argc) k##name, 411 #define DEF_ENUM_T(name, argc) k##name,
415 #define DEF_ENUM_S(name, kind, extra, interface_descriptor) k##name, 412 #define DEF_ENUM_S(name, kind, extra, interface_descriptor) k##name,
416 #define DEF_ENUM_H(name, kind) k##name, 413 #define DEF_ENUM_H(name, kind) k##name,
417 BUILTIN_LIST_C(DEF_ENUM_C) BUILTIN_LIST_A(DEF_ENUM_A) 414 BUILTIN_LIST_C(DEF_ENUM_C)
418 BUILTIN_LIST_T(DEF_ENUM_T) BUILTIN_LIST_S(DEF_ENUM_S) 415 BUILTIN_LIST_A(DEF_ENUM_A)
419 BUILTIN_LIST_H(DEF_ENUM_H) BUILTIN_LIST_DEBUG_A(DEF_ENUM_A) 416 BUILTIN_LIST_T(DEF_ENUM_T)
417 BUILTIN_LIST_S(DEF_ENUM_S)
418 BUILTIN_LIST_H(DEF_ENUM_H)
419 BUILTIN_LIST_DEBUG_A(DEF_ENUM_A)
420 #undef DEF_ENUM_C 420 #undef DEF_ENUM_C
421 #undef DEF_ENUM_A 421 #undef DEF_ENUM_A
422 #undef DEF_ENUM_T 422 #undef DEF_ENUM_T
423 #undef DEF_ENUM_S 423 #undef DEF_ENUM_S
424 #undef DEF_ENUM_H 424 #undef DEF_ENUM_H
425 builtin_count 425 builtin_count
426 }; 426 };
427 427
428 enum CFunctionId { 428 enum CFunctionId {
429 #define DEF_ENUM_C(name, ignore) c_##name, 429 #define DEF_ENUM_C(name, ignore) c_##name,
430 BUILTIN_LIST_C(DEF_ENUM_C) 430 BUILTIN_LIST_C(DEF_ENUM_C)
431 #undef DEF_ENUM_C 431 #undef DEF_ENUM_C
432 cfunction_count 432 cfunction_count
433 }; 433 };
434 434
435 #define DECLARE_BUILTIN_ACCESSOR_C(name, ignore) Handle<Code> name(); 435 #define DECLARE_BUILTIN_ACCESSOR_C(name, ignore) Handle<Code> name();
(...skipping 28 matching lines...) Expand all
464 Code* builtin(Name name) { 464 Code* builtin(Name name) {
465 // Code::cast cannot be used here since we access builtins 465 // Code::cast cannot be used here since we access builtins
466 // during the marking phase of mark sweep. See IC::Clear. 466 // during the marking phase of mark sweep. See IC::Clear.
467 return reinterpret_cast<Code*>(builtins_[name]); 467 return reinterpret_cast<Code*>(builtins_[name]);
468 } 468 }
469 469
470 Address builtin_address(Name name) { 470 Address builtin_address(Name name) {
471 return reinterpret_cast<Address>(&builtins_[name]); 471 return reinterpret_cast<Address>(&builtins_[name]);
472 } 472 }
473 473
474 static Address c_function_address(CFunctionId id) { 474 static Address c_function_address(CFunctionId id) { return c_functions_[id]; }
475 return c_functions_[id];
476 }
477 475
478 const char* name(int index) { 476 const char* name(int index) {
479 DCHECK(index >= 0); 477 DCHECK(index >= 0);
480 DCHECK(index < builtin_count); 478 DCHECK(index < builtin_count);
481 return names_[index]; 479 return names_[index];
482 } 480 }
483 481
484 bool is_initialized() const { return initialized_; } 482 bool is_initialized() const { return initialized_; }
485 483
486 MUST_USE_RESULT static MaybeHandle<Object> InvokeApiFunction( 484 MUST_USE_RESULT static MaybeHandle<Object> InvokeApiFunction(
(...skipping 327 matching lines...) Expand 10 before | Expand all | Expand 10 after
814 static void Generate_InterpreterPushArgsAndTailCallFunction( 812 static void Generate_InterpreterPushArgsAndTailCallFunction(
815 MacroAssembler* masm) { 813 MacroAssembler* masm) {
816 return Generate_InterpreterPushArgsAndCallImpl(masm, TailCallMode::kAllow, 814 return Generate_InterpreterPushArgsAndCallImpl(masm, TailCallMode::kAllow,
817 CallableType::kJSFunction); 815 CallableType::kJSFunction);
818 } 816 }
819 static void Generate_InterpreterPushArgsAndCallImpl( 817 static void Generate_InterpreterPushArgsAndCallImpl(
820 MacroAssembler* masm, TailCallMode tail_call_mode, 818 MacroAssembler* masm, TailCallMode tail_call_mode,
821 CallableType function_type); 819 CallableType function_type);
822 static void Generate_InterpreterPushArgsAndConstruct(MacroAssembler* masm); 820 static void Generate_InterpreterPushArgsAndConstruct(MacroAssembler* masm);
823 821
824 #define DECLARE_CODE_AGE_BUILTIN_GENERATOR(C) \ 822 #define DECLARE_CODE_AGE_BUILTIN_GENERATOR(C) \
825 static void Generate_Make##C##CodeYoungAgainEvenMarking( \ 823 static void Generate_Make##C##CodeYoungAgainEvenMarking( \
826 MacroAssembler* masm); \ 824 MacroAssembler* masm); \
827 static void Generate_Make##C##CodeYoungAgainOddMarking( \ 825 static void Generate_Make##C##CodeYoungAgainOddMarking(MacroAssembler* masm);
828 MacroAssembler* masm);
829 CODE_AGE_LIST(DECLARE_CODE_AGE_BUILTIN_GENERATOR) 826 CODE_AGE_LIST(DECLARE_CODE_AGE_BUILTIN_GENERATOR)
830 #undef DECLARE_CODE_AGE_BUILTIN_GENERATOR 827 #undef DECLARE_CODE_AGE_BUILTIN_GENERATOR
831 828
832 static void Generate_MarkCodeAsToBeExecutedOnce(MacroAssembler* masm); 829 static void Generate_MarkCodeAsToBeExecutedOnce(MacroAssembler* masm);
833 static void Generate_MarkCodeAsExecutedOnce(MacroAssembler* masm); 830 static void Generate_MarkCodeAsExecutedOnce(MacroAssembler* masm);
834 static void Generate_MarkCodeAsExecutedTwice(MacroAssembler* masm); 831 static void Generate_MarkCodeAsExecutedTwice(MacroAssembler* masm);
835 832
836 static void Generate_AtomicsLoad(CodeStubAssembler* assembler); 833 static void Generate_AtomicsLoad(CodeStubAssembler* assembler);
837 static void Generate_AtomicsStore(CodeStubAssembler* assembler); 834 static void Generate_AtomicsStore(CodeStubAssembler* assembler);
838 835
839 static void InitBuiltinFunctionTable(); 836 static void InitBuiltinFunctionTable();
840 837
841 bool initialized_; 838 bool initialized_;
842 839
843 friend class BuiltinFunctionTable; 840 friend class BuiltinFunctionTable;
844 friend class Isolate; 841 friend class Isolate;
845 842
846 DISALLOW_COPY_AND_ASSIGN(Builtins); 843 DISALLOW_COPY_AND_ASSIGN(Builtins);
847 }; 844 };
848 845
849 } // namespace internal 846 } // namespace internal
850 } // namespace v8 847 } // namespace v8
851 848
852 #endif // V8_BUILTINS_H_ 849 #endif // V8_BUILTINS_BUILTINS_H_
OLDNEW
« no previous file with comments | « src/builtins/arm64/builtins-arm64.cc ('k') | src/builtins/builtins.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698