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

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

Issue 2514393002: [fullcodegen] Remove deprecated support for lookup variables, eval and with. (Closed)
Patch Set: Address comment Created 4 years 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/full-codegen/arm64/full-codegen-arm64.cc ('k') | src/full-codegen/full-codegen.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 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_FULL_CODEGEN_H_ 5 #ifndef V8_FULL_CODEGEN_FULL_CODEGEN_H_
6 #define V8_FULL_CODEGEN_FULL_CODEGEN_H_ 6 #define V8_FULL_CODEGEN_FULL_CODEGEN_H_
7 7
8 #include "src/allocation.h" 8 #include "src/allocation.h"
9 #include "src/assert-scope.h" 9 #include "src/assert-scope.h"
10 #include "src/ast/ast.h" 10 #include "src/ast/ast.h"
(...skipping 449 matching lines...) Expand 10 before | Expand all | Expand 10 after
460 void EmitReturnSequence(); 460 void EmitReturnSequence();
461 void EmitProfilingCounterHandlingForReturnSequence(bool is_tail_call); 461 void EmitProfilingCounterHandlingForReturnSequence(bool is_tail_call);
462 462
463 // Platform-specific code sequences for calls 463 // Platform-specific code sequences for calls
464 void EmitCall(Call* expr, ConvertReceiverMode = ConvertReceiverMode::kAny); 464 void EmitCall(Call* expr, ConvertReceiverMode = ConvertReceiverMode::kAny);
465 void EmitSuperConstructorCall(Call* expr); 465 void EmitSuperConstructorCall(Call* expr);
466 void EmitCallWithLoadIC(Call* expr); 466 void EmitCallWithLoadIC(Call* expr);
467 void EmitSuperCallWithLoadIC(Call* expr); 467 void EmitSuperCallWithLoadIC(Call* expr);
468 void EmitKeyedCallWithLoadIC(Call* expr, Expression* key); 468 void EmitKeyedCallWithLoadIC(Call* expr, Expression* key);
469 void EmitKeyedSuperCallWithLoadIC(Call* expr); 469 void EmitKeyedSuperCallWithLoadIC(Call* expr);
470 void EmitPossiblyEvalCall(Call* expr);
471 470
472 #define FOR_EACH_FULL_CODE_INTRINSIC(F) \ 471 #define FOR_EACH_FULL_CODE_INTRINSIC(F) \
473 F(IsSmi) \ 472 F(IsSmi) \
474 F(IsArray) \ 473 F(IsArray) \
475 F(IsTypedArray) \ 474 F(IsTypedArray) \
476 F(IsRegExp) \ 475 F(IsRegExp) \
477 F(IsJSProxy) \ 476 F(IsJSProxy) \
478 F(Call) \ 477 F(Call) \
479 F(NewObject) \ 478 F(NewObject) \
480 F(IsJSReceiver) \ 479 F(IsJSReceiver) \
(...skipping 18 matching lines...) Expand all
499 498
500 void EmitIntrinsicAsStubCall(CallRuntime* expr, const Callable& callable); 499 void EmitIntrinsicAsStubCall(CallRuntime* expr, const Callable& callable);
501 500
502 // Emits call to respective code stub. 501 // Emits call to respective code stub.
503 void EmitHasProperty(); 502 void EmitHasProperty();
504 503
505 // Platform-specific code for restoring context from current JS frame. 504 // Platform-specific code for restoring context from current JS frame.
506 void RestoreContext(); 505 void RestoreContext();
507 506
508 // Platform-specific code for loading variables. 507 // Platform-specific code for loading variables.
509 void EmitLoadGlobalCheckExtensions(VariableProxy* proxy,
510 TypeofMode typeof_mode, Label* slow);
511 MemOperand ContextSlotOperandCheckExtensions(Variable* var, Label* slow);
512 void EmitDynamicLookupFastCase(VariableProxy* proxy, TypeofMode typeof_mode,
513 Label* slow, Label* done);
514 void EmitGlobalVariableLoad(VariableProxy* proxy, TypeofMode typeof_mode); 508 void EmitGlobalVariableLoad(VariableProxy* proxy, TypeofMode typeof_mode);
515 void EmitVariableLoad(VariableProxy* proxy, 509 void EmitVariableLoad(VariableProxy* proxy,
516 TypeofMode typeof_mode = NOT_INSIDE_TYPEOF); 510 TypeofMode typeof_mode = NOT_INSIDE_TYPEOF);
517 511
518 void EmitAccessor(ObjectLiteralProperty* property); 512 void EmitAccessor(ObjectLiteralProperty* property);
519 513
520 // Expects the arguments and the function already pushed.
521 void EmitResolvePossiblyDirectEval(Call* expr);
522
523 // Platform-specific support for allocating a new closure based on 514 // Platform-specific support for allocating a new closure based on
524 // the given function info. 515 // the given function info.
525 void EmitNewClosure(Handle<SharedFunctionInfo> info, bool pretenure); 516 void EmitNewClosure(Handle<SharedFunctionInfo> info, bool pretenure);
526 517
527 // Re-usable portions of CallRuntime 518 // Re-usable portions of CallRuntime
528 void EmitLoadJSRuntimeFunction(CallRuntime* expr); 519 void EmitLoadJSRuntimeFunction(CallRuntime* expr);
529 void EmitCallJSRuntimeFunction(CallRuntime* expr); 520 void EmitCallJSRuntimeFunction(CallRuntime* expr);
530 521
531 // Load a value from a named property. 522 // Load a value from a named property.
532 // The receiver is left on the stack by the IC. 523 // The receiver is left on the stack by the IC.
(...skipping 158 matching lines...) Expand 10 before | Expand all | Expand 10 after
691 void StoreToFrameField(int frame_offset, Register value); 682 void StoreToFrameField(int frame_offset, Register value);
692 683
693 // Load a value from the current context. Indices are defined as an enum 684 // Load a value from the current context. Indices are defined as an enum
694 // in v8::internal::Context. 685 // in v8::internal::Context.
695 void LoadContextField(Register dst, int context_index); 686 void LoadContextField(Register dst, int context_index);
696 687
697 // Push the function argument for the runtime functions PushWithContext 688 // Push the function argument for the runtime functions PushWithContext
698 // and PushCatchContext. 689 // and PushCatchContext.
699 void PushFunctionArgumentForContextAllocation(); 690 void PushFunctionArgumentForContextAllocation();
700 691
701 void PushCalleeAndWithBaseObject(Call* expr);
702
703 // AST node visit functions. 692 // AST node visit functions.
704 #define DECLARE_VISIT(type) void Visit##type(type* node); 693 #define DECLARE_VISIT(type) void Visit##type(type* node);
705 AST_NODE_LIST(DECLARE_VISIT) 694 AST_NODE_LIST(DECLARE_VISIT)
706 #undef DECLARE_VISIT 695 #undef DECLARE_VISIT
707 696
708 void VisitComma(BinaryOperation* expr); 697 void VisitComma(BinaryOperation* expr);
709 void VisitLogicalExpression(BinaryOperation* expr); 698 void VisitLogicalExpression(BinaryOperation* expr);
710 void VisitArithmeticExpression(BinaryOperation* expr); 699 void VisitArithmeticExpression(BinaryOperation* expr);
711 700
712 void VisitForTypeofValue(Expression* expr); 701 void VisitForTypeofValue(Expression* expr);
(...skipping 305 matching lines...) Expand 10 before | Expand all | Expand 10 after
1018 Address start_; 1007 Address start_;
1019 Address instruction_start_; 1008 Address instruction_start_;
1020 uint32_t length_; 1009 uint32_t length_;
1021 }; 1010 };
1022 1011
1023 1012
1024 } // namespace internal 1013 } // namespace internal
1025 } // namespace v8 1014 } // namespace v8
1026 1015
1027 #endif // V8_FULL_CODEGEN_FULL_CODEGEN_H_ 1016 #endif // V8_FULL_CODEGEN_FULL_CODEGEN_H_
OLDNEW
« no previous file with comments | « src/full-codegen/arm64/full-codegen-arm64.cc ('k') | src/full-codegen/full-codegen.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698