Lines Matching refs:frame

11 #include "src/deoptimizer/deoptimized-frame-info.h"
45 FrameWriter(Deoptimizer* deoptimizer, FrameDescription* frame,
48 frame_(frame),
50 top_offset_(frame->GetFrameSize()) {}
119 FrameDescription* frame() { return frame_; }
194 // without having a real stack frame in place.
212 JavaScriptFrame* frame, int jsframe_index, Isolate* isolate) {
213 CHECK(frame->is_optimized());
215 TranslatedState translated_values(frame);
216 translated_values.Prepare(frame->fp());
261 if (it.frame()->type() == StackFrame::OPTIMIZED) {
262 Code code = it.frame()->LookupCode();
268 code.GetSafepointEntry(isolate, it.frame()->pc());
275 Address* pc_addr = it.frame()->pc_address();
308 StackFrame::Type type = it.frame()->type();
310 Code code = it.frame()->LookupCode();
312 static_cast<OptimizedFrame*>(it.frame())->function();
315 code.GetSafepointEntry(isolate, it.frame()->pc());
774 // without having a real stack frame in place.
776 // When we call this function, the return address of the previous frame has
784 // Determine basic deoptimization information. The optimized frame is
791 // from input frame. Compute caller's frame top address.
838 // Do the input frame to output frame(s) translation.
840 // If we are supposed to go to the catch handler, find the catching frame
841 // for the catch and make sure we only deoptimize up to that frame.
863 // Translate each output frame.
899 FATAL("invalid frame");
918 // an optimized frame and its deoptimized counterparts usually differs. We
920 // the optimized frame in stack checks in optimized code. We do this by
960 // If this is the bottom most frame or the previous frame was the arguments
961 // adaptor fake frame, then we already have extra arguments in the stack
979 // Allocate and store the output frame description.
988 // Compute this frame's PC and state.
994 // frame to a baseline frame before continuing execution of baseline code.
1005 PrintF(trace_scope()->file(), " translating %s frame ",
1016 // The top address of the frame is computed from the previous frame's top and
1017 // this frame's size.
1050 // The caller's pc for the bottommost output frame is the same as in the
1051 // input frame. For all subsequent output frames, it can be read from the
1052 // previous one. This frame's pc can be computed from the non-optimized
1060 // The caller's frame pointer for the bottommost output frame is the same
1061 // as in the input frame. For all subsequent output frames, it can be
1062 // read from the previous one. Also compute and set this frame's frame
1076 // For the bottommost output frame the constant pool pointer can be gotten
1077 // from the input frame. For subsequent output frames, it can be read from
1078 // the previous frame.
1085 // For the bottommost output frame the context can be gotten from the input
1086 // frame. For all subsequent output frames it can be gotten from the function
1133 // Translate the rest of the interpreter registers in the frame.
1167 // Some architectures must pad the stack frame with extra stack slots
1168 // to ensure the stack frame is aligned. Do this now.
1174 // Translate the accumulator register (depending on frame position).
1179 // For topmost frame, put the accumulator on the stack. The
1180 // {NotifyDeoptimized} builtin pops it off the topmost frame (possibly
1213 // Only the pc of the topmost frame needs to be signed since it is
1216 pc, frame_writer.frame()->GetTop());
1241 // Set the continuation for the topmost frame.
1258 // TranslatedFrame the fake adaptor frame.
1281 // Allocate and store the output frame description.
1284 // The top address of the frame is computed from the previous frame's top and
1285 // this frame's size.
1289 // This is not a real frame, we take PC and FP values from the parent frame.
1303 // count are in the fake adaptor frame, because they are used to create the
1305 // frame with do that.
1317 // The construct frame could become topmost only if we inlined a constructor
1318 // call which does a tail call (otherwise the tail callee's frame would be
1343 // Allocate and store the output frame description.
1353 // The top address of the frame is computed from the previous frame's top and
1354 // this frame's size.
1364 // The allocated receiver of a construct stub frame is passed as the
1375 // Read caller's PC from the previous frame.
1379 // Read caller's FP from the previous frame, and set this frame's FP.
1391 // Read the caller's constant pool from the previous frame.
1396 // A marker value is used to mark the frame.
1437 // Compute this frame's PC.
1446 // Only the pc of the topmost frame needs to be signed since it is
1449 pc_value, frame_writer.frame()->GetTop()));
1475 // Set the continuation for the topmost frame.
1565 // the frame is reactivated (i.e. the frame below it returns), a
1566 // ContinueToBuiltin stub restores the register state from the frame and tail
1568 // directly called by the frame above it. The input values to populate the frame
1594 // | | saved frame (FP) |
1602 // | frame height above FP |
1633 // This TranslatedValue will be written in the output frame in place of the
1698 // The top address of the frame is computed from the previous frame's top and
1699 // this frame's size.
1794 // Read caller's FP from the previous frame, and set this frame's FP.
1805 // Read the caller's constant pool from the previous frame.
1827 "frame height at deoptimization\n");
1829 // The context even if this is a stub continuation frame. We can't use the
1830 // usual context slot, because we must store the frame marker there.
1859 // Some architectures must pad the stack frame with extra stack slots
1860 // to ensure the stack frame is aligned.
1895 // Ensure the frame pointer register points to the callee's frame. The builtin
1896 // will build its own frame once we continue to it.
1907 // Only the pc of the topmost frame needs to be signed since it is
1911 frame_writer.frame()->GetTop());