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

Side by Side Diff: src/full-codegen.h

Issue 6598066: Port eval resolve in call optimization from classic to full codegen. (Closed)
Patch Set: Created 9 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
OLDNEW
1 // Copyright 2010 the V8 project authors. All rights reserved. 1 // Copyright 2010 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 414 matching lines...) Expand 10 before | Expand all | Expand 10 after
425 void EmitLoadGlobalSlotCheckExtensions(Slot* slot, 425 void EmitLoadGlobalSlotCheckExtensions(Slot* slot,
426 TypeofState typeof_state, 426 TypeofState typeof_state,
427 Label* slow); 427 Label* slow);
428 MemOperand ContextSlotOperandCheckExtensions(Slot* slot, Label* slow); 428 MemOperand ContextSlotOperandCheckExtensions(Slot* slot, Label* slow);
429 void EmitDynamicLoadFromSlotFastCase(Slot* slot, 429 void EmitDynamicLoadFromSlotFastCase(Slot* slot,
430 TypeofState typeof_state, 430 TypeofState typeof_state,
431 Label* slow, 431 Label* slow,
432 Label* done); 432 Label* done);
433 void EmitVariableLoad(Variable* expr); 433 void EmitVariableLoad(Variable* expr);
434 434
435 enum ResolveEvalFlag {
436 SKIP_CONTEXT_LOOKUP,
437 PERFORM_CONTEXT_LOOKUP
438 };
439
440 // Expects the arguments and the function already pushed.
441 void EmitResolvePossiblyDirectEval(ResolveEvalFlag flag, int arg_count);
442
435 // Platform-specific support for allocating a new closure based on 443 // Platform-specific support for allocating a new closure based on
436 // the given function info. 444 // the given function info.
437 void EmitNewClosure(Handle<SharedFunctionInfo> info, bool pretenure); 445 void EmitNewClosure(Handle<SharedFunctionInfo> info, bool pretenure);
438 446
439 // Platform-specific support for compiling assignments. 447 // Platform-specific support for compiling assignments.
440 448
441 // Load a value from a named property. 449 // Load a value from a named property.
442 // The receiver is left on the stack by the IC. 450 // The receiver is left on the stack by the IC.
443 void EmitNamedPropertyLoad(Property* expr); 451 void EmitNamedPropertyLoad(Property* expr);
444 452
(...skipping 327 matching lines...) Expand 10 before | Expand all | Expand 10 after
772 780
773 friend class NestedStatement; 781 friend class NestedStatement;
774 782
775 DISALLOW_COPY_AND_ASSIGN(FullCodeGenerator); 783 DISALLOW_COPY_AND_ASSIGN(FullCodeGenerator);
776 }; 784 };
777 785
778 786
779 } } // namespace v8::internal 787 } } // namespace v8::internal
780 788
781 #endif // V8_FULL_CODEGEN_H_ 789 #endif // V8_FULL_CODEGEN_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698