Home | History | Annotate | Download | only in ia32

Lines Matching refs:CONTEXT

112 //   o esi: our context
166 // Generators allocate locals, if any, in context slots.
180 // Possibly allocate a local context.
181 int heap_slots = info->scope()->num_heap_slots() - Context::MIN_CONTEXT_SLOTS;
183 Comment cmnt(masm_, "[ Allocate context");
196 // Context is returned in both eax and esi. It replaces the context
200 // Copy parameters into context if necessary.
209 // Store it in the context.
210 int context_offset = Context::SlotOffset(var->index());
709 int offset = Context::SlotOffset(var->index());
721 // context. Otherwise, we let the Visit function deal with the
723 if (!context()->IsTest() || !info_->IsOptimizable()) return;
737 // The variable in the declaration always resides in the current context.
740 // Check that we're not inside a with or catch context.
754 // local context.
776 case Variable::CONTEXT:
835 case Variable::CONTEXT: {
842 Context::SlotOffset(variable->index()),
867 ASSERT(variable->location() == Variable::CONTEXT);
876 __ mov(eax, ContextOperand(eax, Context::EXTENSION_INDEX));
882 Context::SlotOffset(variable->index()),
903 case Variable::CONTEXT: {
925 __ push(esi); // The context is the first argument.
1168 { EffectContext context(this);
1276 context()->Plug(eax);
1289 Register context = esi;
1297 __ cmp(ContextOperand(context, Context::EXTENSION_INDEX),
1301 // Load next context in chain.
1302 __ mov(temp, ContextOperand(context, Context::PREVIOUS_INDEX));
1304 context = temp;
1307 // context extensions. If we have reached an eval scope, we check
1314 // Loop up the context chain. There is no frame effect so it is
1317 if (!context.is(temp)) {
1318 __ mov(temp, context);
1321 // Terminate at native context.
1326 __ cmp(ContextOperand(temp, Context::EXTENSION_INDEX), Immediate(0));
1328 // Load next context in chain.
1329 __ mov(temp, ContextOperand(temp, Context::PREVIOUS_INDEX));
1349 Register context = esi;
1356 __ cmp(ContextOperand(context, Context::EXTENSION_INDEX),
1360 __ mov(temp, ContextOperand(context, Context::PREVIOUS_INDEX));
1362 context = temp;
1366 __ cmp(ContextOperand(context, Context::EXTENSION_INDEX), Immediate(0));
1372 return ContextOperand(context, var->index());
1424 context()->Plug(eax);
1430 case Variable::CONTEXT: {
1432 ? "Context variable"
1486 context()->Plug(eax);
1490 context()->Plug(var);
1501 __ push(esi); // Context.
1505 context()->Plug(eax);
1562 context()->Plug(eax);
1697 context()->PlugTOS();
1699 context()->Plug(eax);
1816 context()->PlugTOS();
1818 context()->Plug(eax);
1925 context()->Plug(eax);
1978 context()->Plug(result_register());
2077 context()->DropAndPlug(2, eax); // drop iter and g
2102 // Load suspended function and context.
2130 __ push(esi); // Callee's context.
2176 context()->Plug(result_register());
2325 context()->Plug(eax);
2338 context()->Plug(eax);
2364 EffectContext context(this);
2394 context()->Plug(eax);
2423 // able to drill a hole to that function context, even from inside a
2424 // 'with' context. We thus bypass the normal static scope lookup for
2436 __ push(esi); // Context.
2453 int offset = Context::SlotOffset(var->index());
2473 int offset = Context::SlotOffset(var->index());
2479 __ push(esi); // Context.
2508 context()->Plug(eax);
2528 context()->Plug(eax);
2541 context()->Plug(eax);
2548 context()->Plug(eax);
2581 // Restore context register.
2583 context()->Plug(eax);
2613 // Restore context register.
2615 context()->DropAndPlug(1, eax); // Drop the key still on the stack.
2644 // Restore context register.
2646 context()->DropAndPlug(1, eax);
2714 // Restore context register.
2716 context()->DropAndPlug(1, eax);
2826 context()->Plug(eax);
2840 context()->PrepareTest(&materialize_true, &materialize_false,
2847 context()->Plug(if_true, if_false);
2861 context()->PrepareTest(&materialize_true, &materialize_false,
2868 context()->Plug(if_true, if_false);
2882 context()->PrepareTest(&materialize_true, &materialize_false,
2900 context()->Plug(if_true, if_false);
2914 context()->PrepareTest(&materialize_true, &materialize_false,
2922 context()->Plug(if_true, if_false);
2936 context()->PrepareTest(&materialize_true, &materialize_false,
2946 context()->Plug(if_true, if_false);
2961 context()->PrepareTest(&materialize_true, &materialize_false,
3028 __ mov(edx, Operand(esi, Context::SlotOffset(Context::GLOBAL_OBJECT_INDEX)));
3033 Context::STRING_FUNCTION_PROTOTYPE_MAP_INDEX));
3037 context()->Plug(if_true, if_false);
3051 context()->PrepareTest(&materialize_true, &materialize_false,
3059 context()->Plug(if_true, if_false);
3073 context()->PrepareTest(&materialize_true, &materialize_false,
3084 context()->Plug(if_true, if_false);
3099 context()->PrepareTest(&materialize_true, &materialize_false,
3107 context()->Plug(if_true, if_false);
3121 context()->PrepareTest(&materialize_true, &materialize_false,
3129 context()->Plug(if_true, if_false);
3141 context()->PrepareTest(&materialize_true, &materialize_false,
3161 context()->Plug(if_true, if_false);
3177 context()->PrepareTest(&materialize_true, &materialize_false,
3185 context()->Plug(if_true, if_false);
3200 context()->Plug(eax);
3223 context()->Plug(eax);
3284 context()->Plug(eax);
3305 context()->Plug(eax);
3318 context()->Plug(eax);
3332 context()->Plug(eax);
3351 context()->Plug(eax);
3396 context()->Plug(result);
3432 context()->Plug(string);
3465 context()->Plug(string);
3482 context()->Plug(eax);
3511 context()->Plug(eax);
3524 context()->Plug(eax);
3543 context()->Plug(ebx);
3589 context()->Plug(result);
3637 context()->Plug(result);
3659 context()->Plug(eax);
3672 context()->Plug(eax);
3684 context()->Plug(eax);
3694 context()->Plug(eax);
3727 context()->Plug(eax);
3740 context()->Plug(eax);
3756 context()->Plug(eax);
3765 __ mov(cache, ContextOperand(esi, Context::GLOBAL_OBJECT_INDEX));
3768 __ mov(cache, ContextOperand(cache, Context::JSFUNCTION_RESULT_CACHES_INDEX));
3789 context()->Plug(eax);
3827 context()->Plug(eax);
3843 context()->PrepareTest(&materialize_true, &materialize_false,
3851 context()->Plug(if_true, if_false);
3865 context()->Plug(eax);
4125 // Drop temp values from the stack, and restore context register.
4129 context()->Plug(eax);
4163 // Restore context register.
4169 context()->Plug(eax);
4187 context()->Plug(eax);
4198 context()->Plug(eax);
4203 context()->Plug(var->is_this());
4206 // context where the variable was introduced.
4210 context()->Plug(eax);
4216 context()->Plug(true);
4224 context()->Plug(isolate()->factory()->undefined_value());
4230 if (context()->IsEffect()) {
4234 } else if (context()->IsTest()) {
4235 const TestContext* test = TestContext::cast(context());
4241 context()->Plug(test->true_label(), test->false_label());
4244 // for control and plugging the control flow into the context,
4247 ASSERT(context()->IsAccumulatorValue() || context()->IsStackValue());
4255 if (context()->IsAccumulatorValue()) {
4263 if (context()->IsAccumulatorValue()) {
4275 { StackValueContext context(this);
4279 context()->Plug(eax);
4305 // In case of a property we use the uninitialized expression context
4315 AccumulatorValueContext context(this);
4319 if (expr->is_postfix() && !context()->IsEffect()) {
4354 if (!context()->IsEffect()) {
4392 if (!context()->IsEffect()) {
4429 { EffectContext context(this);
4433 context.Plug(eax);
4437 if (!context()->IsEffect()) {
4438 context()->PlugTOS();
4445 context()->Plug(eax);
4457 if (!context()->IsEffect()) {
4458 context()->PlugTOS();
4461 context()->Plug(eax);
4475 if (!context()->IsEffect()) {
4476 context()->PlugTOS();
4479 context()->Plug(eax);
4489 ASSERT(!context()->IsEffect());
4490 ASSERT(!context()->IsTest());
4501 context()->Plug(eax);
4516 context()->Plug(eax);
4531 context()->PrepareTest(&materialize_true, &materialize_false,
4534 { AccumulatorValueContext context(this);
4598 context()->Plug(if_true, if_false);
4611 // into the expression's context after the comparison is performed.
4616 context()->PrepareTest(&materialize_true, &materialize_false,
4671 // expression's context.
4672 context()->Plug(if_true, if_false);
4683 context()->PrepareTest(&materialize_true, &materialize_false,
4701 context()->Plug(if_true, if_false);
4707 context()->Plug(eax);
4736 // Contexts nested in the native context have a canonical empty function
4742 // Contexts nested inside eval code have the same closure as the context
4744 // Fetch it from the context.
4745 __ push(ContextOperand(esi, Context::CLOSURE_INDEX));
4827 // Because the handler block contains the context of the finally
4833 // Restore the context to its dedicated register and the stack.