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

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

Issue 622523004: Support for super keyed loads where key is a name. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: CR feedback Created 6 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 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef V8_FULL_CODEGEN_H_ 5 #ifndef V8_FULL_CODEGEN_H_
6 #define V8_FULL_CODEGEN_H_ 6 #define V8_FULL_CODEGEN_H_
7 7
8 #include "src/v8.h" 8 #include "src/v8.h"
9 9
10 #include "src/allocation.h" 10 #include "src/allocation.h"
(...skipping 461 matching lines...) Expand 10 before | Expand all | Expand 10 after
472 void EmitUnwindBeforeReturn(); 472 void EmitUnwindBeforeReturn();
473 473
474 // Platform-specific return sequence 474 // Platform-specific return sequence
475 void EmitReturnSequence(); 475 void EmitReturnSequence();
476 476
477 // Platform-specific code sequences for calls 477 // Platform-specific code sequences for calls
478 void EmitCall(Call* expr, CallICState::CallType = CallICState::FUNCTION); 478 void EmitCall(Call* expr, CallICState::CallType = CallICState::FUNCTION);
479 void EmitCallWithLoadIC(Call* expr); 479 void EmitCallWithLoadIC(Call* expr);
480 void EmitSuperCallWithLoadIC(Call* expr); 480 void EmitSuperCallWithLoadIC(Call* expr);
481 void EmitKeyedCallWithLoadIC(Call* expr, Expression* key); 481 void EmitKeyedCallWithLoadIC(Call* expr, Expression* key);
482 void EmitKeyedSuperCallWithLoadIC(Call* expr);
482 483
483 // Platform-specific code for inline runtime calls. 484 // Platform-specific code for inline runtime calls.
484 InlineFunctionGenerator FindInlineFunctionGenerator(Runtime::FunctionId id); 485 InlineFunctionGenerator FindInlineFunctionGenerator(Runtime::FunctionId id);
485 486
486 void EmitInlineRuntimeCall(CallRuntime* expr); 487 void EmitInlineRuntimeCall(CallRuntime* expr);
487 488
488 #define EMIT_INLINE_RUNTIME_CALL(name, x, y) \ 489 #define EMIT_INLINE_RUNTIME_CALL(name, x, y) \
489 void Emit##name(CallRuntime* expr); 490 void Emit##name(CallRuntime* expr);
490 INLINE_FUNCTION_LIST(EMIT_INLINE_RUNTIME_CALL) 491 INLINE_FUNCTION_LIST(EMIT_INLINE_RUNTIME_CALL)
491 #undef EMIT_INLINE_RUNTIME_CALL 492 #undef EMIT_INLINE_RUNTIME_CALL
(...skipping 26 matching lines...) Expand all
518 // Platform-specific support for compiling assignments. 519 // Platform-specific support for compiling assignments.
519 520
520 // Load a value from a named property. 521 // Load a value from a named property.
521 // The receiver is left on the stack by the IC. 522 // The receiver is left on the stack by the IC.
522 void EmitNamedPropertyLoad(Property* expr); 523 void EmitNamedPropertyLoad(Property* expr);
523 524
524 // Load a value from super.named property. 525 // Load a value from super.named property.
525 // Expect receiver ('this' value) and home_object on the stack. 526 // Expect receiver ('this' value) and home_object on the stack.
526 void EmitNamedSuperPropertyLoad(Property* expr); 527 void EmitNamedSuperPropertyLoad(Property* expr);
527 528
529 // Load a value from super[keyed] property.
530 // Expect receiver ('this' value), home_object and key on the stack.
531 void EmitKeyedSuperPropertyLoad(Property* expr);
532
528 // Load a value from a keyed property. 533 // Load a value from a keyed property.
529 // The receiver and the key is left on the stack by the IC. 534 // The receiver and the key is left on the stack by the IC.
530 void EmitKeyedPropertyLoad(Property* expr); 535 void EmitKeyedPropertyLoad(Property* expr);
531 536
532 // Apply the compound assignment operator. Expects the left operand on top 537 // Apply the compound assignment operator. Expects the left operand on top
533 // of the stack and the right one in the accumulator. 538 // of the stack and the right one in the accumulator.
534 void EmitBinaryOp(BinaryOperation* expr, 539 void EmitBinaryOp(BinaryOperation* expr,
535 Token::Value op, 540 Token::Value op,
536 OverwriteMode mode); 541 OverwriteMode mode);
537 542
(...skipping 415 matching lines...) Expand 10 before | Expand all | Expand 10 after
953 958
954 Address start_; 959 Address start_;
955 Address instruction_start_; 960 Address instruction_start_;
956 uint32_t length_; 961 uint32_t length_;
957 }; 962 };
958 963
959 964
960 } } // namespace v8::internal 965 } } // namespace v8::internal
961 966
962 #endif // V8_FULL_CODEGEN_H_ 967 #endif // V8_FULL_CODEGEN_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698