Lines Matching refs:CONTEXT
115 // o rsi: our context
180 __ push(rsi); // Callee's context.
197 // Possibly allocate a local context.
198 int heap_slots = info->scope()->num_heap_slots() - Context::MIN_CONTEXT_SLOTS;
200 Comment cmnt(masm_, "[ Allocate local context");
210 // Context is returned in both rax and rsi. It replaces the context
214 // Copy any necessary parameters into the context.
223 // Store it in the context.
224 int context_offset = Context::SlotOffset(var->index());
236 // Arguments object must be allocated after the context object, in
237 // case the "arguments" or ".arguments" variables are in the context.
680 int offset = Context::SlotOffset(var->index());
691 // context. Otherwise, we let the Visit function deal with the
693 if (!context()->IsTest() || !info_->IsOptimizable()) return;
711 // local context.
733 case Variable::CONTEXT:
735 // context.
738 // Check that we're not inside a with or catch context.
741 __ Check(not_equal, "Declaration in with context.");
743 __ Check(not_equal, "Declaration in catch context.");
749 int offset = Context::SlotOffset(variable->index());
800 __ push(rsi); // The context is the first argument.
1041 { EffectContext context(this);
1091 context()->Plug(rax);
1104 Register context = rsi;
1112 __ cmpq(ContextOperand(context, Context::EXTENSION_INDEX),
1116 // Load next context in chain.
1117 __ movq(temp, ContextOperand(context, Context::PREVIOUS_INDEX));
1119 context = temp;
1122 // context extensions. If we have reached an eval scope, we check
1129 // Loop up the context chain. There is no frame effect so it is
1132 if (!context.is(temp)) {
1133 __ movq(temp, context);
1138 // Terminate at global context.
1142 __ cmpq(ContextOperand(temp, Context::EXTENSION_INDEX), Immediate(0));
1144 // Load next context in chain.
1145 __ movq(temp, ContextOperand(temp, Context::PREVIOUS_INDEX));
1165 Register context = rsi;
1172 __ cmpq(ContextOperand(context, Context::EXTENSION_INDEX),
1176 __ movq(temp, ContextOperand(context, Context::PREVIOUS_INDEX));
1178 context = temp;
1182 __ cmpq(ContextOperand(context, Context::EXTENSION_INDEX), Immediate(0));
1188 return ContextOperand(context, var->index());
1240 context()->Plug(rax);
1246 case Variable::CONTEXT: {
1247 Comment cmnt(masm_, var->IsContextSlot() ? "Context slot" : "Stack slot");
1300 context()->Plug(rax);
1304 context()->Plug(var);
1315 __ push(rsi); // Context.
1319 context()->Plug(rax);
1376 context()->Plug(rax);
1497 context()->PlugTOS();
1499 context()->Plug(rax);
1594 context()->PlugTOS();
1596 context()->Plug(rax);
1652 { AccumulatorValueContext context(this);
1677 AccumulatorValueContext context(this);
1702 context()->Plug(rax);
1787 context()->Plug(rax);
1799 context()->Plug(rax);
1825 EffectContext context(this);
1855 context()->Plug(rax);
1883 // able to drill a hole to that function context, even from inside a
1884 // 'with' context. We thus bypass the normal static scope lookup for
1896 __ push(rsi); // Context.
1914 rcx, Context::SlotOffset(var->index()), rdx, rbx, kDontSaveFPRegs);
1934 rcx, Context::SlotOffset(var->index()), rdx, rbx, kDontSaveFPRegs);
1939 __ push(rsi); // Context.
1987 context()->Plug(rax);
2028 context()->Plug(rax);
2039 context()->Plug(rax);
2045 context()->Plug(rax);
2069 // Restore context register.
2071 context()->Plug(rax);
2102 // Restore context register.
2104 context()->DropAndPlug(1, rax); // Drop the key still on the stack.
2123 // Restore context register.
2126 context()->DropAndPlug(1, rax);
2195 // Restore context register.
2197 context()->DropAndPlug(1, rax);
2312 context()->Plug(rax);
2326 context()->PrepareTest(&materialize_true, &materialize_false,
2333 context()->Plug(if_true, if_false);
2347 context()->PrepareTest(&materialize_true, &materialize_false,
2354 context()->Plug(if_true, if_false);
2368 context()->PrepareTest(&materialize_true, &materialize_false,
2386 context()->Plug(if_true, if_false);
2400 context()->PrepareTest(&materialize_true, &materialize_false,
2408 context()->Plug(if_true, if_false);
2422 context()->PrepareTest(&materialize_true, &materialize_false,
2432 context()->Plug(if_true, if_false);
2447 context()->PrepareTest(&materialize_true, &materialize_false,
2503 __ movq(rdx, Operand(rsi, Context::SlotOffset(Context::GLOBAL_INDEX)));
2506 ContextOperand(rdx, Context::STRING_FUNCTION_PROTOTYPE_MAP_INDEX));
2515 context()->Plug(if_true, if_false);
2529 context()->PrepareTest(&materialize_true, &materialize_false,
2537 context()->Plug(if_true, if_false);
2551 context()->PrepareTest(&materialize_true, &materialize_false,
2559 context()->Plug(if_true, if_false);
2573 context()->PrepareTest(&materialize_true, &materialize_false,
2581 context()->Plug(if_true, if_false);
2593 context()->PrepareTest(&materialize_true, &materialize_false,
2613 context()->Plug(if_true, if_false);
2629 context()->PrepareTest(&materialize_true, &materialize_false,
2637 context()->Plug(if_true, if_false);
2652 context()->Plug(rax);
2675 context()->Plug(rax);
2736 context()->Plug(rax);
2757 context()->Plug(rax);
2781 __ movq(rcx, ContextOperand(context_register(), Context::GLOBAL_INDEX));
2785 __ movq(rdi, ContextOperand(context_register(), Context::GLOBAL_INDEX));
2802 context()->Plug(rax);
2815 context()->Plug(rax);
2829 context()->Plug(rax);
2848 context()->Plug(rax);
2896 context()->Plug(rax);
2908 context()->Plug(rax);
2936 context()->Plug(rax);
2949 context()->Plug(rax);
2968 context()->Plug(rbx);
3014 context()->Plug(result);
3062 context()->Plug(result);
3075 context()->Plug(rax);
3088 context()->Plug(rax);
3100 context()->Plug(rax);
3112 context()->Plug(rax);
3124 context()->Plug(rax);
3136 context()->Plug(rax);
3146 context()->Plug(rax);
3178 context()->Plug(rax);
3190 context()->Plug(rax);
3206 context()->Plug(rax);
3215 __ movq(cache, ContextOperand(rsi, Context::GLOBAL_INDEX));
3219 ContextOperand(cache, Context::JSFUNCTION_RESULT_CACHES_INDEX));
3247 context()->Plug(rax);
3286 context()->Plug(rax);
3300 context()->PrepareTest(&materialize_true, &materialize_false,
3309 context()->Plug(if_true, if_false);
3326 context()->Plug(rax);
3608 // Drop temp values from the stack, and restore context register.
3611 context()->Plug(rax);
3645 // Restore context register.
3650 context()->Plug(rax);
3668 context()->Plug(rax);
3679 context()->Plug(rax);
3684 context()->Plug(var->is_this());
3687 // context where the variable was introduced.
3691 context()->Plug(rax);
3697 context()->Plug(true);
3705 context()->Plug(Heap::kUndefinedValueRootIndex);
3711 if (context()->IsEffect()) {
3715 } else if (context()->IsTest()) {
3716 const TestContext* test = TestContext::cast(context());
3722 context()->Plug(test->true_label(), test->false_label());
3725 // for control and plugging the control flow into the context,
3728 ASSERT(context()->IsAccumulatorValue() || context()->IsStackValue());
3736 if (context()->IsAccumulatorValue()) {
3744 if (context()->IsAccumulatorValue()) {
3756 { StackValueContext context(this);
3760 context()->Plug(rax);
3772 context()->Plug(result_register());
3803 context()->Plug(rax);
3823 // In case of a property we use the uninitialized expression context
3833 AccumulatorValueContext context(this);
3837 if (expr->is_postfix() && !context()->IsEffect()) {
3870 if (!context()->IsEffect()) {
3932 { EffectContext context(this);
3936 context.Plug(rax);
3940 if (!context()->IsEffect()) {
3941 context()->PlugTOS();
3948 context()->Plug(rax);
3960 if (!context()->IsEffect()) {
3961 context()->PlugTOS();
3964 context()->Plug(rax);
3977 if (!context()->IsEffect()) {
3978 context()->PlugTOS();
3981 context()->Plug(rax);
3991 ASSERT(!context()->IsEffect());
3992 ASSERT(!context()->IsTest());
4003 context()->Plug(rax);
4018 context()->Plug(rax);
4033 context()->PrepareTest(&materialize_true, &materialize_false,
4036 { AccumulatorValueContext context(this);
4096 context()->Plug(if_true, if_false);
4109 // into the expression's context after the comparison is performed.
4114 context()->PrepareTest(&materialize_true, &materialize_false,
4191 // expression's context.
4192 context()->Plug(if_true, if_false);
4203 context()->PrepareTest(&materialize_true, &materialize_false,
4228 context()->Plug(if_true, if_false);
4234 context()->Plug(rax);
4262 context have a canonical empty function
4269 // context calling eval, not the anonymous closure containing the eval
4270 // code. Fetch it from the context.
4271 __ push(ContextOperand(rsi, Context::CLOSURE_INDEX));
4319 // Because the handler block contains the context of the finally
4325 // Restore the context to its dedicated register and the stack.