OLD | NEW |
1 // Copyright 2011 the V8 project authors. All rights reserved. | 1 // Copyright 2011 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 #ifndef V8_BUILTINS_H_ | 5 #ifndef V8_BUILTINS_H_ |
6 #define V8_BUILTINS_H_ | 6 #define V8_BUILTINS_H_ |
7 | 7 |
8 #include "src/base/flags.h" | 8 #include "src/base/flags.h" |
9 #include "src/handles.h" | 9 #include "src/handles.h" |
10 | 10 |
(...skipping 198 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
209 V(CompileOptimized, BUILTIN, UNINITIALIZED, kNoExtraICState) \ | 209 V(CompileOptimized, BUILTIN, UNINITIALIZED, kNoExtraICState) \ |
210 V(CompileOptimizedConcurrent, BUILTIN, UNINITIALIZED, kNoExtraICState) \ | 210 V(CompileOptimizedConcurrent, BUILTIN, UNINITIALIZED, kNoExtraICState) \ |
211 V(NotifyDeoptimized, BUILTIN, UNINITIALIZED, kNoExtraICState) \ | 211 V(NotifyDeoptimized, BUILTIN, UNINITIALIZED, kNoExtraICState) \ |
212 V(NotifySoftDeoptimized, BUILTIN, UNINITIALIZED, kNoExtraICState) \ | 212 V(NotifySoftDeoptimized, BUILTIN, UNINITIALIZED, kNoExtraICState) \ |
213 V(NotifyLazyDeoptimized, BUILTIN, UNINITIALIZED, kNoExtraICState) \ | 213 V(NotifyLazyDeoptimized, BUILTIN, UNINITIALIZED, kNoExtraICState) \ |
214 V(NotifyStubFailure, BUILTIN, UNINITIALIZED, kNoExtraICState) \ | 214 V(NotifyStubFailure, BUILTIN, UNINITIALIZED, kNoExtraICState) \ |
215 V(NotifyStubFailureSaveDoubles, BUILTIN, UNINITIALIZED, kNoExtraICState) \ | 215 V(NotifyStubFailureSaveDoubles, BUILTIN, UNINITIALIZED, kNoExtraICState) \ |
216 \ | 216 \ |
217 V(InterpreterEntryTrampoline, BUILTIN, UNINITIALIZED, kNoExtraICState) \ | 217 V(InterpreterEntryTrampoline, BUILTIN, UNINITIALIZED, kNoExtraICState) \ |
218 V(InterpreterExitTrampoline, BUILTIN, UNINITIALIZED, kNoExtraICState) \ | 218 V(InterpreterExitTrampoline, BUILTIN, UNINITIALIZED, kNoExtraICState) \ |
219 V(InterpreterPushArgsAndCallIC, BUILTIN, UNINITIALIZED, kNoExtraICState) \ | |
220 V(InterpreterPushArgsAndTailCallIC, BUILTIN, UNINITIALIZED, kNoExtraICState) \ | |
221 V(InterpreterPushArgsAndCall, BUILTIN, UNINITIALIZED, kNoExtraICState) \ | 219 V(InterpreterPushArgsAndCall, BUILTIN, UNINITIALIZED, kNoExtraICState) \ |
222 V(InterpreterPushArgsAndTailCall, BUILTIN, UNINITIALIZED, kNoExtraICState) \ | 220 V(InterpreterPushArgsAndTailCall, BUILTIN, UNINITIALIZED, kNoExtraICState) \ |
223 V(InterpreterPushArgsAndConstruct, BUILTIN, UNINITIALIZED, kNoExtraICState) \ | 221 V(InterpreterPushArgsAndConstruct, BUILTIN, UNINITIALIZED, kNoExtraICState) \ |
224 V(InterpreterNotifyDeoptimized, BUILTIN, UNINITIALIZED, kNoExtraICState) \ | 222 V(InterpreterNotifyDeoptimized, BUILTIN, UNINITIALIZED, kNoExtraICState) \ |
225 V(InterpreterNotifySoftDeoptimized, BUILTIN, UNINITIALIZED, kNoExtraICState) \ | 223 V(InterpreterNotifySoftDeoptimized, BUILTIN, UNINITIALIZED, kNoExtraICState) \ |
226 V(InterpreterNotifyLazyDeoptimized, BUILTIN, UNINITIALIZED, kNoExtraICState) \ | 224 V(InterpreterNotifyLazyDeoptimized, BUILTIN, UNINITIALIZED, kNoExtraICState) \ |
227 V(InterpreterEnterBytecodeDispatch, BUILTIN, UNINITIALIZED, kNoExtraICState) \ | 225 V(InterpreterEnterBytecodeDispatch, BUILTIN, UNINITIALIZED, kNoExtraICState) \ |
228 \ | 226 \ |
229 V(LoadIC_Miss, BUILTIN, UNINITIALIZED, kNoExtraICState) \ | 227 V(LoadIC_Miss, BUILTIN, UNINITIALIZED, kNoExtraICState) \ |
230 V(KeyedLoadIC_Miss, BUILTIN, UNINITIALIZED, kNoExtraICState) \ | 228 V(KeyedLoadIC_Miss, BUILTIN, UNINITIALIZED, kNoExtraICState) \ |
(...skipping 131 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
362 #undef DECLARE_BUILTIN_ACCESSOR_A | 360 #undef DECLARE_BUILTIN_ACCESSOR_A |
363 | 361 |
364 // Convenience wrappers. | 362 // Convenience wrappers. |
365 Handle<Code> CallFunction( | 363 Handle<Code> CallFunction( |
366 ConvertReceiverMode = ConvertReceiverMode::kAny, | 364 ConvertReceiverMode = ConvertReceiverMode::kAny, |
367 TailCallMode tail_call_mode = TailCallMode::kDisallow); | 365 TailCallMode tail_call_mode = TailCallMode::kDisallow); |
368 Handle<Code> Call(ConvertReceiverMode = ConvertReceiverMode::kAny, | 366 Handle<Code> Call(ConvertReceiverMode = ConvertReceiverMode::kAny, |
369 TailCallMode tail_call_mode = TailCallMode::kDisallow); | 367 TailCallMode tail_call_mode = TailCallMode::kDisallow); |
370 Handle<Code> CallBoundFunction(TailCallMode tail_call_mode); | 368 Handle<Code> CallBoundFunction(TailCallMode tail_call_mode); |
371 Handle<Code> InterpreterPushArgsAndCall(TailCallMode tail_call_mode); | 369 Handle<Code> InterpreterPushArgsAndCall(TailCallMode tail_call_mode); |
372 Handle<Code> InterpreterPushArgsAndCallIC(TailCallMode tail_call_mode); | |
373 | 370 |
374 Code* builtin(Name name) { | 371 Code* builtin(Name name) { |
375 // Code::cast cannot be used here since we access builtins | 372 // Code::cast cannot be used here since we access builtins |
376 // during the marking phase of mark sweep. See IC::Clear. | 373 // during the marking phase of mark sweep. See IC::Clear. |
377 return reinterpret_cast<Code*>(builtins_[name]); | 374 return reinterpret_cast<Code*>(builtins_[name]); |
378 } | 375 } |
379 | 376 |
380 Address builtin_address(Name name) { | 377 Address builtin_address(Name name) { |
381 return reinterpret_cast<Address>(&builtins_[name]); | 378 return reinterpret_cast<Address>(&builtins_[name]); |
382 } | 379 } |
(...skipping 195 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
578 | 575 |
579 static void Generate_StringConstructor(MacroAssembler* masm); | 576 static void Generate_StringConstructor(MacroAssembler* masm); |
580 static void Generate_StringConstructor_ConstructStub(MacroAssembler* masm); | 577 static void Generate_StringConstructor_ConstructStub(MacroAssembler* masm); |
581 static void Generate_OnStackReplacement(MacroAssembler* masm); | 578 static void Generate_OnStackReplacement(MacroAssembler* masm); |
582 static void Generate_OsrAfterStackCheck(MacroAssembler* masm); | 579 static void Generate_OsrAfterStackCheck(MacroAssembler* masm); |
583 static void Generate_InterruptCheck(MacroAssembler* masm); | 580 static void Generate_InterruptCheck(MacroAssembler* masm); |
584 static void Generate_StackCheck(MacroAssembler* masm); | 581 static void Generate_StackCheck(MacroAssembler* masm); |
585 | 582 |
586 static void Generate_InterpreterEntryTrampoline(MacroAssembler* masm); | 583 static void Generate_InterpreterEntryTrampoline(MacroAssembler* masm); |
587 static void Generate_InterpreterExitTrampoline(MacroAssembler* masm); | 584 static void Generate_InterpreterExitTrampoline(MacroAssembler* masm); |
588 static void Generate_InterpreterPushArgsAndCallIC(MacroAssembler* masm) { | |
589 return Generate_InterpreterPushArgsAndCallICImpl(masm, | |
590 TailCallMode::kDisallow); | |
591 } | |
592 static void Generate_InterpreterPushArgsAndTailCallIC(MacroAssembler* masm) { | |
593 return Generate_InterpreterPushArgsAndCallICImpl(masm, | |
594 TailCallMode::kAllow); | |
595 } | |
596 static void Generate_InterpreterPushArgsAndCallICImpl( | |
597 MacroAssembler* masm, TailCallMode tail_call_mode); | |
598 static void Generate_InterpreterPushArgsAndCall(MacroAssembler* masm) { | 585 static void Generate_InterpreterPushArgsAndCall(MacroAssembler* masm) { |
599 return Generate_InterpreterPushArgsAndCallImpl(masm, | 586 return Generate_InterpreterPushArgsAndCallImpl(masm, |
600 TailCallMode::kDisallow); | 587 TailCallMode::kDisallow); |
601 } | 588 } |
602 static void Generate_InterpreterPushArgsAndTailCall(MacroAssembler* masm) { | 589 static void Generate_InterpreterPushArgsAndTailCall(MacroAssembler* masm) { |
603 return Generate_InterpreterPushArgsAndCallImpl(masm, TailCallMode::kAllow); | 590 return Generate_InterpreterPushArgsAndCallImpl(masm, TailCallMode::kAllow); |
604 } | 591 } |
605 static void Generate_InterpreterPushArgsAndCallImpl( | 592 static void Generate_InterpreterPushArgsAndCallImpl( |
606 MacroAssembler* masm, TailCallMode tail_call_mode); | 593 MacroAssembler* masm, TailCallMode tail_call_mode); |
607 static void Generate_InterpreterPushArgsAndConstruct(MacroAssembler* masm); | 594 static void Generate_InterpreterPushArgsAndConstruct(MacroAssembler* masm); |
(...skipping 21 matching lines...) Expand all Loading... |
629 friend class BuiltinFunctionTable; | 616 friend class BuiltinFunctionTable; |
630 friend class Isolate; | 617 friend class Isolate; |
631 | 618 |
632 DISALLOW_COPY_AND_ASSIGN(Builtins); | 619 DISALLOW_COPY_AND_ASSIGN(Builtins); |
633 }; | 620 }; |
634 | 621 |
635 } // namespace internal | 622 } // namespace internal |
636 } // namespace v8 | 623 } // namespace v8 |
637 | 624 |
638 #endif // V8_BUILTINS_H_ | 625 #endif // V8_BUILTINS_H_ |
OLD | NEW |