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

Side by Side Diff: src/code-stubs.cc

Issue 23537067: Add support for keyed-call on arrays of fast elements (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Compare with actual map loaded from the context Created 7 years, 2 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 | Annotate | Revision Log
OLDNEW
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 25 matching lines...) Expand all
36 #include "macro-assembler.h" 36 #include "macro-assembler.h"
37 37
38 namespace v8 { 38 namespace v8 {
39 namespace internal { 39 namespace internal {
40 40
41 41
42 CodeStubInterfaceDescriptor::CodeStubInterfaceDescriptor() 42 CodeStubInterfaceDescriptor::CodeStubInterfaceDescriptor()
43 : register_param_count_(-1), 43 : register_param_count_(-1),
44 stack_parameter_count_(NULL), 44 stack_parameter_count_(NULL),
45 hint_stack_parameter_count_(-1), 45 hint_stack_parameter_count_(-1),
46 call_stub_(false),
46 function_mode_(NOT_JS_FUNCTION_STUB_MODE), 47 function_mode_(NOT_JS_FUNCTION_STUB_MODE),
47 register_params_(NULL), 48 register_params_(NULL),
48 deoptimization_handler_(NULL), 49 deoptimization_handler_(NULL),
49 miss_handler_(), 50 miss_handler_(),
50 has_miss_handler_(false) { } 51 has_miss_handler_(false) { }
51 52
52 53
53 bool CodeStub::FindCodeInCache(Code** code_out, Isolate* isolate) { 54 bool CodeStub::FindCodeInCache(Code** code_out, Isolate* isolate) {
54 UnseededNumberDictionary* stubs = isolate->heap()->code_stubs(); 55 UnseededNumberDictionary* stubs = isolate->heap()->code_stubs();
55 int index = stubs->FindEntry(GetKey()); 56 int index = stubs->FindEntry(GetKey());
(...skipping 667 matching lines...) Expand 10 before | Expand all | Expand 10 after
723 724
724 725
725 void StubFailureTrampolineStub::GenerateAheadOfTime(Isolate* isolate) { 726 void StubFailureTrampolineStub::GenerateAheadOfTime(Isolate* isolate) {
726 StubFailureTrampolineStub stub1(NOT_JS_FUNCTION_STUB_MODE); 727 StubFailureTrampolineStub stub1(NOT_JS_FUNCTION_STUB_MODE);
727 StubFailureTrampolineStub stub2(JS_FUNCTION_STUB_MODE); 728 StubFailureTrampolineStub stub2(JS_FUNCTION_STUB_MODE);
728 stub1.GetCode(isolate)->set_is_pregenerated(true); 729 stub1.GetCode(isolate)->set_is_pregenerated(true);
729 stub2.GetCode(isolate)->set_is_pregenerated(true); 730 stub2.GetCode(isolate)->set_is_pregenerated(true);
730 } 731 }
731 732
732 733
734 void CallStubFailureTrampolineStub::GenerateAheadOfTime(Isolate* isolate) {
735 CallStubFailureTrampolineStub stub;
736 stub.GetCode(isolate)->set_is_pregenerated(true);
737 }
738
739
733 void ProfileEntryHookStub::EntryHookTrampoline(intptr_t function, 740 void ProfileEntryHookStub::EntryHookTrampoline(intptr_t function,
734 intptr_t stack_pointer, 741 intptr_t stack_pointer,
735 Isolate* isolate) { 742 Isolate* isolate) {
736 FunctionEntryHook entry_hook = isolate->function_entry_hook(); 743 FunctionEntryHook entry_hook = isolate->function_entry_hook();
737 ASSERT(entry_hook != NULL); 744 ASSERT(entry_hook != NULL);
738 entry_hook(function, stack_pointer); 745 entry_hook(function, stack_pointer);
739 } 746 }
740 747
741 748
742 static void InstallDescriptor(Isolate* isolate, HydrogenCodeStub* stub) { 749 static void InstallDescriptor(Isolate* isolate, HydrogenCodeStub* stub) {
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
795 InstallDescriptor(isolate, &stub3); 802 InstallDescriptor(isolate, &stub3);
796 } 803 }
797 804
798 InternalArrayConstructorStub::InternalArrayConstructorStub( 805 InternalArrayConstructorStub::InternalArrayConstructorStub(
799 Isolate* isolate) { 806 Isolate* isolate) {
800 InternalArrayConstructorStubBase::GenerateStubsAheadOfTime(isolate); 807 InternalArrayConstructorStubBase::GenerateStubsAheadOfTime(isolate);
801 } 808 }
802 809
803 810
804 } } // namespace v8::internal 811 } } // namespace v8::internal
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698