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

Side by Side Diff: src/stub-cache.h

Issue 669061: First take on custom call generators. (Closed)
Patch Set: Ultimate version Created 10 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
« no previous file with comments | « src/runtime.cc ('k') | src/top.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2006-2008 the V8 project authors. All rights reserved. 1 // Copyright 2006-2008 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 530 matching lines...) Expand 10 before | Expand all | Expand 10 after
541 Map* transition, 541 Map* transition,
542 String* name); 542 String* name);
543 543
544 private: 544 private:
545 Object* GetCode(PropertyType type, String* name); 545 Object* GetCode(PropertyType type, String* name);
546 }; 546 };
547 547
548 548
549 class CallStubCompiler: public StubCompiler { 549 class CallStubCompiler: public StubCompiler {
550 public: 550 public:
551 explicit CallStubCompiler(int argc, InLoopFlag in_loop) 551 CallStubCompiler(int argc, InLoopFlag in_loop)
552 : arguments_(argc), in_loop_(in_loop) { } 552 : arguments_(argc), in_loop_(in_loop) { }
553 553
554 Object* CompileCallField(JSObject* object, 554 Object* CompileCallField(JSObject* object,
555 JSObject* holder, 555 JSObject* holder,
556 int index, 556 int index,
557 String* name); 557 String* name);
558 Object* CompileCallConstant(Object* object, 558 Object* CompileCallConstant(Object* object,
559 JSObject* holder, 559 JSObject* holder,
560 JSFunction* function, 560 JSFunction* function,
561 String* name, 561 String* name,
562 CheckType check); 562 CheckType check);
563 Object* CompileCallInterceptor(JSObject* object, 563 Object* CompileCallInterceptor(JSObject* object,
564 JSObject* holder, 564 JSObject* holder,
565 String* name); 565 String* name);
566 Object* CompileCallGlobal(JSObject* object, 566 Object* CompileCallGlobal(JSObject* object,
567 GlobalObject* holder, 567 GlobalObject* holder,
568 JSGlobalPropertyCell* cell, 568 JSGlobalPropertyCell* cell,
569 JSFunction* function, 569 JSFunction* function,
570 String* name); 570 String* name);
571 571
572 Object* CompileArrayPushCall(Object* object,
573 JSObject* holder,
574 JSFunction* function,
575 String* name,
576 CheckType check);
577
572 private: 578 private:
573 const ParameterCount arguments_; 579 const ParameterCount arguments_;
574 const InLoopFlag in_loop_; 580 const InLoopFlag in_loop_;
575 581
576 const ParameterCount& arguments() { return arguments_; } 582 const ParameterCount& arguments() { return arguments_; }
577 583
578 Object* GetCode(PropertyType type, String* name); 584 Object* GetCode(PropertyType type, String* name);
579 }; 585 };
580 586
581 587
582 class ConstructStubCompiler: public StubCompiler { 588 class ConstructStubCompiler: public StubCompiler {
583 public: 589 public:
584 explicit ConstructStubCompiler() {} 590 explicit ConstructStubCompiler() {}
585 591
586 Object* CompileConstructStub(SharedFunctionInfo* shared); 592 Object* CompileConstructStub(SharedFunctionInfo* shared);
587 593
588 private: 594 private:
589 Object* GetCode(); 595 Object* GetCode();
590 }; 596 };
591 597
592 598
599 typedef Object* (*CustomCallGenerator)(CallStubCompiler* compiler,
600 Object* object,
601 JSObject* holder,
602 JSFunction* function,
603 String* name,
604 StubCompiler::CheckType check);
605
606
593 } } // namespace v8::internal 607 } } // namespace v8::internal
594 608
595 #endif // V8_STUB_CACHE_H_ 609 #endif // V8_STUB_CACHE_H_
OLDNEW
« no previous file with comments | « src/runtime.cc ('k') | src/top.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698