OLD | NEW |
1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 the V8 project authors. All rights reserved. |
2 // 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 |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "src/builtins.h" | 5 #include "src/builtins.h" |
6 | 6 |
7 #include "src/api-arguments.h" | 7 #include "src/api-arguments.h" |
8 #include "src/api-natives.h" | 8 #include "src/api-natives.h" |
9 #include "src/api.h" | 9 #include "src/api.h" |
10 #include "src/base/once.h" | 10 #include "src/base/once.h" |
(...skipping 5528 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5539 functions->builder = &MacroAssemblerBuilder; \ | 5539 functions->builder = &MacroAssemblerBuilder; \ |
5540 functions->generator = FUNCTION_ADDR(Generate_Adaptor); \ | 5540 functions->generator = FUNCTION_ADDR(Generate_Adaptor); \ |
5541 functions->c_code = FUNCTION_ADDR(Builtin_##aname); \ | 5541 functions->c_code = FUNCTION_ADDR(Builtin_##aname); \ |
5542 functions->s_name = #aname; \ | 5542 functions->s_name = #aname; \ |
5543 functions->name = c_##aname; \ | 5543 functions->name = c_##aname; \ |
5544 functions->flags = Code::ComputeFlags(Code::BUILTIN); \ | 5544 functions->flags = Code::ComputeFlags(Code::BUILTIN); \ |
5545 functions->extra_args = BuiltinExtraArguments::aextra_args; \ | 5545 functions->extra_args = BuiltinExtraArguments::aextra_args; \ |
5546 functions->argc = 0; \ | 5546 functions->argc = 0; \ |
5547 ++functions; | 5547 ++functions; |
5548 | 5548 |
5549 #define DEF_FUNCTION_PTR_A(aname, kind, state, extra) \ | 5549 #define DEF_FUNCTION_PTR_A(aname, kind, extra) \ |
5550 functions->builder = &MacroAssemblerBuilder; \ | 5550 functions->builder = &MacroAssemblerBuilder; \ |
5551 functions->generator = FUNCTION_ADDR(Generate_##aname); \ | 5551 functions->generator = FUNCTION_ADDR(Generate_##aname); \ |
5552 functions->c_code = NULL; \ | 5552 functions->c_code = NULL; \ |
5553 functions->s_name = #aname; \ | 5553 functions->s_name = #aname; \ |
5554 functions->name = k##aname; \ | 5554 functions->name = k##aname; \ |
5555 functions->flags = Code::ComputeFlags(Code::kind, state, extra); \ | 5555 functions->flags = Code::ComputeFlags(Code::kind, extra); \ |
5556 functions->extra_args = BuiltinExtraArguments::kNone; \ | 5556 functions->extra_args = BuiltinExtraArguments::kNone; \ |
5557 functions->argc = 0; \ | 5557 functions->argc = 0; \ |
5558 ++functions; | 5558 ++functions; |
5559 | 5559 |
5560 #define DEF_FUNCTION_PTR_T(aname, aargc) \ | 5560 #define DEF_FUNCTION_PTR_T(aname, aargc) \ |
5561 functions->builder = &CodeStubAssemblerBuilder; \ | 5561 functions->builder = &CodeStubAssemblerBuilder; \ |
5562 functions->generator = FUNCTION_ADDR(Generate_##aname); \ | 5562 functions->generator = FUNCTION_ADDR(Generate_##aname); \ |
5563 functions->c_code = NULL; \ | 5563 functions->c_code = NULL; \ |
5564 functions->s_name = #aname; \ | 5564 functions->s_name = #aname; \ |
5565 functions->name = k##aname; \ | 5565 functions->name = k##aname; \ |
5566 functions->flags = \ | 5566 functions->flags = Code::ComputeFlags(Code::BUILTIN); \ |
5567 Code::ComputeFlags(Code::BUILTIN, UNINITIALIZED, kNoExtraICState); \ | 5567 functions->extra_args = BuiltinExtraArguments::kNone; \ |
5568 functions->extra_args = BuiltinExtraArguments::kNone; \ | 5568 functions->argc = aargc; \ |
5569 functions->argc = aargc; \ | |
5570 ++functions; | 5569 ++functions; |
5571 | 5570 |
5572 #define DEF_FUNCTION_PTR_H(aname, kind) \ | 5571 #define DEF_FUNCTION_PTR_H(aname, kind) \ |
5573 functions->builder = &MacroAssemblerBuilder; \ | 5572 functions->builder = &MacroAssemblerBuilder; \ |
5574 functions->generator = FUNCTION_ADDR(Generate_##aname); \ | 5573 functions->generator = FUNCTION_ADDR(Generate_##aname); \ |
5575 functions->c_code = NULL; \ | 5574 functions->c_code = NULL; \ |
5576 functions->s_name = #aname; \ | 5575 functions->s_name = #aname; \ |
5577 functions->name = k##aname; \ | 5576 functions->name = k##aname; \ |
5578 functions->flags = Code::ComputeHandlerFlags(Code::kind); \ | 5577 functions->flags = Code::ComputeHandlerFlags(Code::kind); \ |
5579 functions->extra_args = BuiltinExtraArguments::kNone; \ | 5578 functions->extra_args = BuiltinExtraArguments::kNone; \ |
(...skipping 322 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5902 a->Bind(&other); | 5901 a->Bind(&other); |
5903 a->Return(a->Int32Constant(0)); | 5902 a->Return(a->Int32Constant(0)); |
5904 } | 5903 } |
5905 | 5904 |
5906 #define DEFINE_BUILTIN_ACCESSOR_C(name, ignore) \ | 5905 #define DEFINE_BUILTIN_ACCESSOR_C(name, ignore) \ |
5907 Handle<Code> Builtins::name() { \ | 5906 Handle<Code> Builtins::name() { \ |
5908 Code** code_address = \ | 5907 Code** code_address = \ |
5909 reinterpret_cast<Code**>(builtin_address(k##name)); \ | 5908 reinterpret_cast<Code**>(builtin_address(k##name)); \ |
5910 return Handle<Code>(code_address); \ | 5909 return Handle<Code>(code_address); \ |
5911 } | 5910 } |
5912 #define DEFINE_BUILTIN_ACCESSOR_A(name, kind, state, extra) \ | 5911 #define DEFINE_BUILTIN_ACCESSOR_A(name, kind, extra) \ |
5913 Handle<Code> Builtins::name() { \ | 5912 Handle<Code> Builtins::name() { \ |
5914 Code** code_address = \ | 5913 Code** code_address = reinterpret_cast<Code**>(builtin_address(k##name)); \ |
5915 reinterpret_cast<Code**>(builtin_address(k##name)); \ | 5914 return Handle<Code>(code_address); \ |
5916 return Handle<Code>(code_address); \ | 5915 } |
5917 } | |
5918 #define DEFINE_BUILTIN_ACCESSOR_T(name, argc) \ | 5916 #define DEFINE_BUILTIN_ACCESSOR_T(name, argc) \ |
5919 Handle<Code> Builtins::name() { \ | 5917 Handle<Code> Builtins::name() { \ |
5920 Code** code_address = reinterpret_cast<Code**>(builtin_address(k##name)); \ | 5918 Code** code_address = reinterpret_cast<Code**>(builtin_address(k##name)); \ |
5921 return Handle<Code>(code_address); \ | 5919 return Handle<Code>(code_address); \ |
5922 } | 5920 } |
5923 #define DEFINE_BUILTIN_ACCESSOR_H(name, kind) \ | 5921 #define DEFINE_BUILTIN_ACCESSOR_H(name, kind) \ |
5924 Handle<Code> Builtins::name() { \ | 5922 Handle<Code> Builtins::name() { \ |
5925 Code** code_address = \ | 5923 Code** code_address = \ |
5926 reinterpret_cast<Code**>(builtin_address(k##name)); \ | 5924 reinterpret_cast<Code**>(builtin_address(k##name)); \ |
5927 return Handle<Code>(code_address); \ | 5925 return Handle<Code>(code_address); \ |
5928 } | 5926 } |
5929 BUILTIN_LIST_C(DEFINE_BUILTIN_ACCESSOR_C) | 5927 BUILTIN_LIST_C(DEFINE_BUILTIN_ACCESSOR_C) |
5930 BUILTIN_LIST_A(DEFINE_BUILTIN_ACCESSOR_A) | 5928 BUILTIN_LIST_A(DEFINE_BUILTIN_ACCESSOR_A) |
5931 BUILTIN_LIST_T(DEFINE_BUILTIN_ACCESSOR_T) | 5929 BUILTIN_LIST_T(DEFINE_BUILTIN_ACCESSOR_T) |
5932 BUILTIN_LIST_H(DEFINE_BUILTIN_ACCESSOR_H) | 5930 BUILTIN_LIST_H(DEFINE_BUILTIN_ACCESSOR_H) |
5933 BUILTIN_LIST_DEBUG_A(DEFINE_BUILTIN_ACCESSOR_A) | 5931 BUILTIN_LIST_DEBUG_A(DEFINE_BUILTIN_ACCESSOR_A) |
5934 #undef DEFINE_BUILTIN_ACCESSOR_C | 5932 #undef DEFINE_BUILTIN_ACCESSOR_C |
5935 #undef DEFINE_BUILTIN_ACCESSOR_A | 5933 #undef DEFINE_BUILTIN_ACCESSOR_A |
5936 #undef DEFINE_BUILTIN_ACCESSOR_T | 5934 #undef DEFINE_BUILTIN_ACCESSOR_T |
5937 #undef DEFINE_BUILTIN_ACCESSOR_H | 5935 #undef DEFINE_BUILTIN_ACCESSOR_H |
5938 | 5936 |
5939 } // namespace internal | 5937 } // namespace internal |
5940 } // namespace v8 | 5938 } // namespace v8 |
OLD | NEW |