OLD | NEW |
1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 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 739 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
750 | 750 |
751 | 751 |
752 void StubFailureTrampolineStub::GenerateAheadOfTime(Isolate* isolate) { | 752 void StubFailureTrampolineStub::GenerateAheadOfTime(Isolate* isolate) { |
753 StubFailureTrampolineStub stub1(NOT_JS_FUNCTION_STUB_MODE); | 753 StubFailureTrampolineStub stub1(NOT_JS_FUNCTION_STUB_MODE); |
754 StubFailureTrampolineStub stub2(JS_FUNCTION_STUB_MODE); | 754 StubFailureTrampolineStub stub2(JS_FUNCTION_STUB_MODE); |
755 stub1.GetCode(isolate)->set_is_pregenerated(true); | 755 stub1.GetCode(isolate)->set_is_pregenerated(true); |
756 stub2.GetCode(isolate)->set_is_pregenerated(true); | 756 stub2.GetCode(isolate)->set_is_pregenerated(true); |
757 } | 757 } |
758 | 758 |
759 | 759 |
760 FunctionEntryHook ProfileEntryHookStub::entry_hook_ = NULL; | |
761 | |
762 | |
763 void ProfileEntryHookStub::EntryHookTrampoline(intptr_t function, | 760 void ProfileEntryHookStub::EntryHookTrampoline(intptr_t function, |
764 intptr_t stack_pointer) { | 761 intptr_t stack_pointer) { |
765 if (entry_hook_ != NULL) | 762 FunctionEntryHook entry_hook = Isolate::Current()->function_entry_hook(); |
766 entry_hook_(function, stack_pointer); | 763 ASSERT(entry_hook != NULL); |
| 764 entry_hook(function, stack_pointer); |
767 } | 765 } |
768 | 766 |
769 | 767 |
770 bool ProfileEntryHookStub::SetFunctionEntryHook(FunctionEntryHook entry_hook) { | |
771 // We don't allow setting a new entry hook over one that's | |
772 // already active, as the hooks won't stack. | |
773 if (entry_hook != 0 && entry_hook_ != 0) | |
774 return false; | |
775 | |
776 entry_hook_ = entry_hook; | |
777 return true; | |
778 } | |
779 | |
780 | |
781 static void InstallDescriptor(Isolate* isolate, HydrogenCodeStub* stub) { | 768 static void InstallDescriptor(Isolate* isolate, HydrogenCodeStub* stub) { |
782 int major_key = stub->MajorKey(); | 769 int major_key = stub->MajorKey(); |
783 CodeStubInterfaceDescriptor* descriptor = | 770 CodeStubInterfaceDescriptor* descriptor = |
784 isolate->code_stub_interface_descriptor(major_key); | 771 isolate->code_stub_interface_descriptor(major_key); |
785 if (!descriptor->initialized()) { | 772 if (!descriptor->initialized()) { |
786 stub->InitializeInterfaceDescriptor(isolate, descriptor); | 773 stub->InitializeInterfaceDescriptor(isolate, descriptor); |
787 } | 774 } |
788 } | 775 } |
789 | 776 |
790 | 777 |
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
828 InstallDescriptor(isolate, &stub3); | 815 InstallDescriptor(isolate, &stub3); |
829 } | 816 } |
830 | 817 |
831 InternalArrayConstructorStub::InternalArrayConstructorStub( | 818 InternalArrayConstructorStub::InternalArrayConstructorStub( |
832 Isolate* isolate) { | 819 Isolate* isolate) { |
833 InternalArrayConstructorStubBase::GenerateStubsAheadOfTime(isolate); | 820 InternalArrayConstructorStubBase::GenerateStubsAheadOfTime(isolate); |
834 } | 821 } |
835 | 822 |
836 | 823 |
837 } } // namespace v8::internal | 824 } } // namespace v8::internal |
OLD | NEW |