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

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

Issue 150101: Tweaks to global object inline cache code (Closed) Base URL: http://v8.googlecode.com/svn/branches/bleeding_edge/
Patch Set: Created 11 years, 5 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
« no previous file with comments | « src/ic.cc ('k') | src/stub-cache.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 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
73 73
74 static Object* ComputeLoadInterceptor(String* name, 74 static Object* ComputeLoadInterceptor(String* name,
75 JSObject* receiver, 75 JSObject* receiver,
76 JSObject* holder); 76 JSObject* holder);
77 77
78 static Object* ComputeLoadNormal(String* name, JSObject* receiver); 78 static Object* ComputeLoadNormal(String* name, JSObject* receiver);
79 79
80 80
81 static Object* ComputeLoadGlobal(String* name, 81 static Object* ComputeLoadGlobal(String* name,
82 JSGlobalObject* receiver, 82 JSGlobalObject* receiver,
83 JSGlobalPropertyCell* cell); 83 JSGlobalPropertyCell* cell,
84 bool is_dont_delete);
84 85
85 86
86 // --- 87 // ---
87 88
88 static Object* ComputeKeyedLoadField(String* name, 89 static Object* ComputeKeyedLoadField(String* name,
89 JSObject* receiver, 90 JSObject* receiver,
90 JSObject* holder, 91 JSObject* holder,
91 int field_index); 92 int field_index);
92 93
93 static Object* ComputeKeyedLoadCallback(String* name, 94 static Object* ComputeKeyedLoadCallback(String* name,
(...skipping 333 matching lines...) Expand 10 before | Expand all | Expand 10 after
427 Object* CompileLoadConstant(JSObject* object, 428 Object* CompileLoadConstant(JSObject* object,
428 JSObject* holder, 429 JSObject* holder,
429 Object* value, 430 Object* value,
430 String* name); 431 String* name);
431 Object* CompileLoadInterceptor(JSObject* object, 432 Object* CompileLoadInterceptor(JSObject* object,
432 JSObject* holder, 433 JSObject* holder,
433 String* name); 434 String* name);
434 435
435 Object* CompileLoadGlobal(JSGlobalObject* object, 436 Object* CompileLoadGlobal(JSGlobalObject* object,
436 JSGlobalPropertyCell* holder, 437 JSGlobalPropertyCell* holder,
437 String* name); 438 String* name,
439 bool is_dont_delete);
438 440
439 private: 441 private:
440 Object* GetCode(PropertyType type, String* name); 442 Object* GetCode(PropertyType type, String* name);
441 }; 443 };
442 444
443 445
444 class KeyedLoadStubCompiler: public StubCompiler { 446 class KeyedLoadStubCompiler: public StubCompiler {
445 public: 447 public:
446 Object* CompileLoadField(String* name, 448 Object* CompileLoadField(String* name,
447 JSObject* object, 449 JSObject* object,
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
494 Map* transition, 496 Map* transition,
495 String* name); 497 String* name);
496 498
497 private: 499 private:
498 Object* GetCode(PropertyType type, String* name); 500 Object* GetCode(PropertyType type, String* name);
499 }; 501 };
500 502
501 503
502 class CallStubCompiler: public StubCompiler { 504 class CallStubCompiler: public StubCompiler {
503 public: 505 public:
504 explicit CallStubCompiler(int argc) : arguments_(argc) { } 506 explicit CallStubCompiler(int argc, InLoopFlag in_loop)
507 : arguments_(argc), in_loop_(in_loop) { }
505 508
506 Object* CompileCallField(Object* object, 509 Object* CompileCallField(Object* object,
507 JSObject* holder, 510 JSObject* holder,
508 int index, 511 int index,
509 String* name, 512 String* name);
510 Code::Flags flags);
511 Object* CompileCallConstant(Object* object, 513 Object* CompileCallConstant(Object* object,
512 JSObject* holder, 514 JSObject* holder,
513 JSFunction* function, 515 JSFunction* function,
514 CheckType check, 516 CheckType check);
515 Code::Flags flags);
516 Object* CompileCallInterceptor(Object* object, 517 Object* CompileCallInterceptor(Object* object,
517 JSObject* holder, 518 JSObject* holder,
518 String* name); 519 String* name);
519 Object* CompileCallGlobal(JSGlobalObject* object, 520 Object* CompileCallGlobal(JSGlobalObject* object,
520 JSGlobalPropertyCell* cell, 521 JSGlobalPropertyCell* cell,
521 JSFunction* function, 522 JSFunction* function,
522 String* name); 523 String* name);
523 524
524 private: 525 private:
525 const ParameterCount arguments_; 526 const ParameterCount arguments_;
527 const InLoopFlag in_loop_;
526 528
527 const ParameterCount& arguments() { return arguments_; } 529 const ParameterCount& arguments() { return arguments_; }
528 530
529 Object* GetCode(PropertyType type, String* name); 531 Object* GetCode(PropertyType type, String* name);
530 }; 532 };
531 533
532 534
533 } } // namespace v8::internal 535 } } // namespace v8::internal
534 536
535 #endif // V8_STUB_CACHE_H_ 537 #endif // V8_STUB_CACHE_H_
OLDNEW
« no previous file with comments | « src/ic.cc ('k') | src/stub-cache.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698