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

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

Issue 172523002: Create a function call IC (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Comments addressed. Created 6 years, 9 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 209 matching lines...) Expand 10 before | Expand all | Expand 10 after
220 static_cast<OverwriteMode>(mode)); 220 static_cast<OverwriteMode>(mode));
221 stub.GetCode(isolate); 221 stub.GetCode(isolate);
222 } 222 }
223 } 223 }
224 224
225 // Generate special versions of the stub. 225 // Generate special versions of the stub.
226 BinaryOpIC::State::GenerateAheadOfTime(isolate, &GenerateAheadOfTime); 226 BinaryOpIC::State::GenerateAheadOfTime(isolate, &GenerateAheadOfTime);
227 } 227 }
228 228
229 229
230 void CallICStub::GenerateAheadOfTime(Isolate* isolate) {
231 // Generate the uninitialized versions of the stub.
232 for (int arg_count = 0; arg_count < 4; arg_count++) {
233 CallICStub stub(CallIC::State(arg_count, CallIC::METHOD));
234 stub.GetCode(isolate);
235 CallICStub stub2(CallIC::State(arg_count, CallIC::FUNCTION));
236 stub2.GetCode(isolate);
237 }
238 }
239
240
230 void BinaryOpICStub::PrintState(StringStream* stream) { 241 void BinaryOpICStub::PrintState(StringStream* stream) {
231 state_.Print(stream); 242 state_.Print(stream);
232 } 243 }
233 244
234 245
235 // static 246 // static
236 void BinaryOpICStub::GenerateAheadOfTime(Isolate* isolate, 247 void BinaryOpICStub::GenerateAheadOfTime(Isolate* isolate,
237 const BinaryOpIC::State& state) { 248 const BinaryOpIC::State& state) {
238 BinaryOpICStub stub(state); 249 BinaryOpICStub stub(state);
239 stub.GetCode(isolate); 250 stub.GetCode(isolate);
(...skipping 252 matching lines...) Expand 10 before | Expand all | Expand 10 after
492 503
493 504
494 Type* CompareNilICStub::GetInputType(Zone* zone, Handle<Map> map) { 505 Type* CompareNilICStub::GetInputType(Zone* zone, Handle<Map> map) {
495 Type* output_type = GetType(zone, map); 506 Type* output_type = GetType(zone, map);
496 Type* nil_type = 507 Type* nil_type =
497 nil_value_ == kNullValue ? Type::Null(zone) : Type::Undefined(zone); 508 nil_value_ == kNullValue ? Type::Null(zone) : Type::Undefined(zone);
498 return Type::Union(output_type, nil_type, zone); 509 return Type::Union(output_type, nil_type, zone);
499 } 510 }
500 511
501 512
513 void CallICStub::PrintState(StringStream* stream) {
514 state_.Print(stream);
515 }
516
517
502 void InstanceofStub::PrintName(StringStream* stream) { 518 void InstanceofStub::PrintName(StringStream* stream) {
503 const char* args = ""; 519 const char* args = "";
504 if (HasArgsInRegisters()) { 520 if (HasArgsInRegisters()) {
505 args = "_REGS"; 521 args = "_REGS";
506 } 522 }
507 523
508 const char* inline_check = ""; 524 const char* inline_check = "";
509 if (HasCallSiteInlineCheck()) { 525 if (HasCallSiteInlineCheck()) {
510 inline_check = "_INLINE"; 526 inline_check = "_INLINE";
511 } 527 }
(...skipping 301 matching lines...) Expand 10 before | Expand all | Expand 10 after
813 InstallDescriptor(isolate, &stub3); 829 InstallDescriptor(isolate, &stub3);
814 } 830 }
815 831
816 InternalArrayConstructorStub::InternalArrayConstructorStub( 832 InternalArrayConstructorStub::InternalArrayConstructorStub(
817 Isolate* isolate) { 833 Isolate* isolate) {
818 InternalArrayConstructorStubBase::GenerateStubsAheadOfTime(isolate); 834 InternalArrayConstructorStubBase::GenerateStubsAheadOfTime(isolate);
819 } 835 }
820 836
821 837
822 } } // namespace v8::internal 838 } } // namespace v8::internal
OLDNEW
« no previous file with comments | « src/code-stubs.h ('k') | src/debug.h » ('j') | src/ia32/code-stubs-ia32.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698