Home | History | Annotate | Download | only in ia32

Lines Matching full:frame

123 // ebp: caller's frame pointer
161 // ebp: caller's frame pointer
255 // frame to match this state.
267 // up, because it needs the expected frame height from the frame.
309 // If there is a valid frame, control flow can fall off the end of
438 // frame. If the expression is boolean-valued it may be compiled (or
452 // valid-looking frame state because we will continue to generate
455 // It's possible to have both a stack overflow and a valid frame
457 // with a dummied frame state, and visiting this expression
520 // We have a valid value on top of the frame, but we still may
585 frame()->Push(&result);
733 // The value to convert should be popped from the frame.
1017 // Compute the constant result at compile time, and leave it on the frame.
1302 // virtual frame is unchanged in this block, so local control flow
1329 // zero. The frame is unchanged in this block, so local control
1480 // argument is negative, go to slow case. The frame is unchanged
2117 // a jump target and branching to duplicate the virtual frame at
2118 // the first split. We manually handle the off-frame references
2262 // a jump target and branching to duplicate the virtual frame at
2263 frame references
2383 // a jump target and branching to duplicate the virtual frame at
2384 // the first split. We manually handle the off-frame references
2464 frame()->Dup();
2466 frame()->Push(name);
2467 Result answer = frame()->CallLoadIC(RelocInfo::CODE_TARGET);
2469 frame()->Push(&answer);
2476 frame()->Push(&existing_args);
2481 // Contents of frame at this point:
2482 // Frame[0]: arguments object of the current function or the hole.
2483 // Frame[1]: receiver
2484 // Frame[2]: applicand.apply
2485 // Frame[3]: applicand.
2507 frame_->Drop(); // Can be called on a spilled frame.
2547 // adaptor frame below it.
2555 // No arguments adaptor frame. Copy fixed number of arguments.
2562 // Arguments adaptor frame present. Copy arguments from there, but
2573 // stack. We don't inform the virtual frame of the push, so we don't
2575 // frame.
2590 // the result of the function call, but leave the spilled frame
2608 // StoreArgumentsObject requires a correct frame, and may modify it.
2614 // Stack and frame now have 4 elements.
2713 // will sync frame elements to memory anyway, so we do it eagerly to
2738 // For now, just do a runtime call. Sync the virtual frame eagerly
2893 // We got a value on the frame rather than (or in addition to)
2947 // reference to eax. This is safe because the current frame does not
2960 // Leave the frame and return popping the arguments and the
3125 // We may not have a valid frame here so bind the break target only
3313 // may not be a valid frame. Bind it only if needed.
3477 // there may not be a valid frame. Bind it only if needed.
3629 // Grab the current frame's height for the break and continue
3630 // targets only after all the state is pushed on the frame.
3672 // Loading a reference may leave the frame in an unspilled state.
3688 // Unloading a reference may leave the frame in an unspilled state.
3695 // Next. Reestablish a spilled frame in case we are coming here via
3705 // any frame.
3798 // The next handler address is on top of the frame. Unlink from
3800 // frame.
3823 // unspilled code, we need to reestablish a spilled frame at
3915 // chain and set the state on the frame to FALLING.
3917 // The next handler address is on top of the frame.
3936 // on the virtual frame. We must preserve it until it is
3946 // unspilled code, we need to reestablish a spilled frame at
3956 // Unlink this handler and drop it from the frame.
4043 // Spill everything, even constants, to the frame.
4055 // The inevitable call will sync frame elements to memory anyway, so
4058 frame()->SyncRange(0, frame()->element_count() - 1);
4064 frame()->EmitPush(Immediate(boilerplate));
4065 return frame()->CallStub(&stub, 1);
4069 frame()->EmitPush(esi);
4070 frame()->EmitPush(Immediate(boilerplate));
4071 return frame()->CallRuntime(Runtime::kNewClosure, 2);
4085 frame()->Push(&result);
4093 frame()->Push(&result);
4174 // A runtime call is inevitable. We eagerly sync frame elements
4176 // on top of the frame.
4177 frame()->SyncRange(0, frame()->element_count() - 1);
4178 frame()->EmitPush(esi);
4179 frame()->EmitPush(Immediate(slot->var()->name()));
4182 frame()->CallRuntime(Runtime::kLoadContextSlotNoReferenceError, 2);
4184 result = frame()->CallRuntime(Runtime::kLoadContextSlot, 2);
4195 // We currently spill the virtual frame because constants use the
4196 // potentially unsafe direct-frame access of SlotOperand.
4208 frame()->PushParameterAt(slot->index());
4209 return frame()->Pop();
4212 frame()->PushLocalAt(slot->index());
4213 return frame()->Pop();
4219 // The use of SlotOperand below is safe for an unspilled frame
4297 // Loop up the context chain. There is no frame effect so it is
4344 // we eagerly sync the virtual frame so we can directly push the
4386 // We spill the frame in the code below because the direct-frame
4388 // frame.
4410 // The use of SlotOperand below is safe for an unspilled frame
4440 frame()->Push(&result);
4737 int original_height = frame()->height();
4748 frame()->Push(&result);
4767 ASSERT(frame()->height() == original_height + 1);
4773 int original_height = frame()->height();
4789 // Do not materialize the receiver on the frame if it is trivial.
4799 frame()->Push(prop->obj());
4801 frame()->Dup();
4803 Result ignored = frame()->CallRuntime(Runtime::kToSlowProperties, 1);
4807 // Add an extra copy of the receiver to the frame, so that it can be
4809 frame()->Dup();
4815 frame()->Push(prop->obj());
4822 frame()->Dup();
4825 frame()->Push(&value);
4842 Result value = frame()->Pop();
4843 frame()->Push(prop->obj());
4844 frame()->Push(&value);
4849 frame()->Push(&answer);
4855 frame()->Push(prop->obj());
4859 Result result = frame()->Pop();
4860 Result receiver = frame()->Pop();
4861 frame()->Push(&result);
4862 frame()->Push(&receiver);
4867 ASSERT_EQ(frame()->height(), original_height + 1);
4873 int original_height = frame()->height();
4890 // Add an extra copy of the receiver to the frame, so that it can be
4901 frame()->PushElementAt(1);
4902 frame()->PushElementAt(1);
4904 frame()->Push(&value);
4921 frame()->Push(&answer);
4927 Result result = frame()->Pop();
4928 Result receiver = frame()->Pop();
4929 frame()->Push(&result);
4930 frame()->Push(&receiver);
4934 ASSERT(frame()->height() == original_height + 1);
4940 int original_height = frame()->height();
4963 Result result = frame()->CallRuntime(Runtime::kThrowReferenceError, 1);
4965 // still generate code and expects a certain frame height.
4966 frame()->Push(&result);
4969 ASSERT(frame()->height() == original_height + 1);
5020 // Allocate a frame slot for the receiver.
5076 // Push the name of the function onto the frame.
5093 // Load the function from the context. Sync the frame so we can
5138 // Push the receiver onto the frame.
5147 // Push the name of the function onto the frame.
5174 frame()->Dup();
5315 // There could be references to ecx in the frame. Allocating will
5339 // There is no virtual frame effect from here up to the final result
5535 // Get the frame pointer for the calling frame.
5539 // Skip the arguments adaptor frame if it exists.
5546 // Check the marker in the calling frame.
5684 // possibly aliased in the frame.
5745 // Make sure the frame is aligned like the OS expects.
5922 // variable. Sync the virtual frame eagerly so we can push the
6134 // value will be in the frame to be spilled.
6141 // Spoof the virtual frame to have the expected height (one higher
6249 // valid frame, we have just bound the false target, and we
6272 // We have a materialized value on the frame, so we exit with
6312 // valid frame, we have just bound the true target, and we
6334 // We have a materialized value on the frame, so we exit with
6582 return (allocator()->count(eax) == (frame()->is_used(eax) ? 1 : 0))
6583 && (allocator()->count(ebx) == (frame()->is_used(ebx) ? 1 : 0))
6584 && (allocator()->count(ecx) == (frame()->is_used(ecx) ? 1 : 0))
6585 && (allocator()->count(edx) == (frame()->is_used(edx) ? 1 : 0))
6586 && (allocator()->count(edi) == (frame()->is_used(edi) ? 1 : 0));
6751 int original_height = frame()->height();
6760 frame()->Push(name);
6765 result = frame()->CallLoadIC(mode);
6773 Result receiver = frame()->Pop();
6808 ASSERT(frame()->height() == original_height - 1);
6815 int expected_height = frame()->height() - (is_contextual ? 1 : 2);
6817 Result result = frame()->CallStoreIC(name, is_contextual);
6819 ASSERT_EQ(expected_height, frame()->height());
6826 int original_height = frame()->height();
6909 ASSERT(frame()->height() == original_height - 2);
6916 int original_height = frame()->height();
6925 result = frame()->Pop();
6926 Result key = frame()->Pop();
6927 Result receiver = frame()->Pop();
6998 result = frame()->CallKeyedStoreIC();
7004 frame()->Drop(2);
7006 ASSERT(frame()->height() == original_height - 3);
7052 cgen_->frame()->Push(&result);
7060 if (persist_after_get_) cgen_->frame()->Dup();
7063 cgen_->frame()->Push(&result);
7069 cgen_->frame()->PushElementAt(1);
7070 cgen_->frame()->PushElementAt(1);
7073 cgen_->frame()->Push(&value);
7085 // For non-constant frame-allocated slots, we invalidate the value in the
7104 // Only non-constant, frame-allocated parameters and locals can
7109 cgen_->frame()->TakeParameterAt(slot->index());
7112 cgen_->frame()->TakeLocalAt(slot->index());
7137 cgen_->frame()->Push(&answer);
7147 cgen_->frame()->Push(&answer);
7482 VirtualFrame* frame,
7487 return frame->CallStub(this, left, right);
7489 frame->Push(left);
7490 frame->Push(right);
7491 return frame->CallStub(this, 2);
8837 // Check if the calling frame is an arguments adaptor frame.
8843 // adaptor frame and return it.
8863 // The displacement is used for skipping the frame pointer on the
8865 // to the frame pointer.
8873 // Check if the calling frame is an arguments adaptor frame.
8894 // limit found in the arguments adaptor frame. Use unsigned
8925 // frame pointer on the stack. It is the offset of the last
8926 // parameter (if any) relative to the frame pointer.
8929 // Check if the calling frame is an arguments adaptor frame.
8936 // Get the length from the frame.
9031 // Stack frame on entry.
9775 // Restore next handler and frame pointer, discard handler state.
9782 // Before returning we restore the context from the frame pointer if
9783 // not NULL. The frame pointer is NULL in the exception handler of
9784 // a JS entry frame.
9878 // ebp: frame pointer (restored after C call)
9924 // Exit the JavaScript to C++ exit frame.
10015 // ebp: frame pointer (restored after C call)
10024 // Enter the exit frame that transitions from JavaScript to C++.
10029 // ebp: frame pointer (restored after C call)
10081 // Setup frame.
10094 // Save copies of the top frame descriptor on the stack.
10117 // Invoke: Link this frame into the handler chain.
10144 // Unlink this frame from the handler chain.
10158 // Restore the top frame descriptor from the stack.
10168 // Restore frame pointer and return.
10771 // Stack frame on entry.
10992 // Stack frame on entry.