Home
last modified time | relevance | path

Searched full:frame (Results 1 – 25 of 258) sorted by relevance

1234567891011

/arkcompiler/runtime_core/docs/
Druntime-compiled_code-interaction.md50 … StackFrameKind | A kind of the current stack frame (compiled code or interpreter stack fra…
82 ## Stack frame
83 A stack frame contains data necessary to execute the function the frame belongs to.
84 … code must have the structure described in [Compiled code stack frame](#compiled-code-stack-frame).
86 ### Interpreter stack frame argument
87 …ter stack frame is decribed by `panda::Frame` class. The class has fields to store virtual registe…
88 …a linked list. The field `panda::Frame::prev_` contains a pointer to the previous interpreter (or …
90 ### Compiled code stack frame argument
91 Each compiled function is responsible to reserve stack frame for its purpose and then release it wh…
92 Generaly compiled function builds the stack frame in prolog and releases it in epilog. If a compile…
[all …]
Ddeoptimization.md23 1. fill the `Frame`(saves pointer to current CFrame) and `is_compiled_frame_`(saves true) fields in…
32 …e we should start executing code in the interpreter, restores interpreter frame from current CFram…
40 Frame* iframe = frame.ConvertToIFrame(&prev_frame_kind, &num_inlined_methods);
41 Frame* last_iframe = iframe;
52 Frame* StackWalker::ConvertToIFrame(CFrameType& cframe, uint32_t* num_inlined_methods) {
61 Frame* frame = CreateFrameAndSetsVRegs(cframe, prev_frame);
62 frame->SetBytecodeOffset(cframe.GetBytecodePc());
70 * pointer to first restoring interpreter Frame
72 * pointer to last restoring interpreter Frame
84 …C(Interpreter To Compile) bridge, set last IFrame's previous frame to this C2I bridge frame and ca…
[all …]
Dcfi_directives.md7 `CFI` (**Call Frame Information**) is a subset of these debug symbols which is responsible for corr…
27 - to find the right previous `frame` (with `fp` and `lr` regs)
28 - to restore `callees` in previous frame
34 There are bridges which `hack` stack memory (setting `stack pointer` to other stack frame), i.e.:
41 …s frame. So we directly specify other frame in which we will return + spot slots for `callees` (it…
/arkcompiler/ets_runtime/ecmascript/
Dframes.cpp61 auto frame = GetFrame<OptimizedJSFunctionFrame>(); in GetFunction() local
62 return frame->GetFunction(); in GetFunction()
66 auto frame = GetFrame<AsmInterpretedFrame>(); in GetFunction() local
67 return frame->function; in GetFunction()
71 auto frame = GetFrame<InterpretedFrame>(); in GetFunction() local
72 return frame->function; in GetFunction()
75 auto frame = GetFrame<InterpretedBuiltinFrame>(); in GetFunction() local
76 return frame->function; in GetFunction()
79 auto *frame = BuiltinWithArgvFrame::GetFrameFromSp(GetSp()); in GetFunction() local
80 return frame->GetFunction(); in GetFunction()
[all …]
/arkcompiler/runtime_core/runtime/interpreter/
Dstate.h21 #include "runtime/interpreter/frame.h"
32 ALWAYS_INLINE inline explicit StateIface(Frame *frame) : acc_(frame->GetAcc()) {} in StateIface() argument
44 ALWAYS_INLINE inline Frame *GetFrame() const in GetFrame()
49 ALWAYS_INLINE inline void SetFrame(Frame *frame) in SetFrame() argument
51 static_cast<T *>(this)->SetFrame(frame); in SetFrame()
92 …AYS_INLINE inline State(ManagedThread *thread, const uint8_t *pc, Frame *frame) : StateIface(frame) in State() argument
95 SetFrame(frame); in State()
99 ALWAYS_INLINE inline void UpdateState(const uint8_t *pc, Frame *frame) in UpdateState() argument
102 SetFrame(frame); in UpdateState()
115 ALWAYS_INLINE inline Frame *GetFrame() const in GetFrame()
[all …]
Dframe.h31 // ========== Compatible Frame Layout ==========
33 // Frame layout - Static Languages
35 // | panda::Frame |
50 // Frame layout - Dynamic Languages
52 // | panda::Frame |
72 class Frame {
74 // Instrumentation: indicate what the frame must be force poped
76 // Instrumentation: indicate what the frame must retry last instruction
78 // Instrumentation: indicate what the frame must notify when poped
80 // Indicate that the frame was created after deoptimization.
[all …]
Dinterpreter_impl.cpp28 void ExecuteImpl(ManagedThread *thread, const uint8_t *pc, Frame *frame, bool jump_to_eh) in ExecuteImpl() argument
30 const uint8_t *inst_ = frame->GetMethod()->GetInstructions(); in ExecuteImpl()
31 frame->SetInstruction(inst_); in ExecuteImpl()
42 ExecuteImplFast(thread, const_cast<uint8_t *>(pc), frame, dispath_table); in ExecuteImpl()
45 if (frame->IsDynamic()) { in ExecuteImpl()
46 ExecuteImpl_Inner<RuntimeInterface, true, true>(thread, pc, frame); in ExecuteImpl()
48 ExecuteImpl_Inner<RuntimeInterface, true, false>(thread, pc, frame); in ExecuteImpl()
51 if (frame->IsDynamic()) { in ExecuteImpl()
52 ExecuteImpl_Inner<RuntimeInterface, false, true>(thread, pc, frame); in ExecuteImpl()
54 ExecuteImpl_Inner<RuntimeInterface, false, false>(thread, pc, frame); in ExecuteImpl()
[all …]
Dinstruction_handler_state.h27 ALWAYS_INLINE InstructionHandlerState(ManagedThread *thread, const uint8_t *pc, Frame *frame) in InstructionHandlerState() argument
28 : state_(thread, pc, frame) in InstructionHandlerState()
33 ALWAYS_INLINE void UpdateInstructionHandlerState(const uint8_t *pc, Frame *frame) in UpdateInstructionHandlerState() argument
35 state_.UpdateState(pc, frame); in UpdateInstructionHandlerState()
54 ALWAYS_INLINE Frame *GetFrame() const in GetFrame()
59 ALWAYS_INLINE void SetFrame(Frame *frame) in SetFrame() argument
61 state_.SetFrame(frame); in SetFrame()
/arkcompiler/ets_runtime/ecmascript/interpreter/
Dframe_handler.cpp65 auto frame = it.GetFrame<AsmInterpretedFrame>(); in PrevJSFrame() local
67 fp_ = frame->GetCurrentFramePointer(); in PrevJSFrame()
84 auto *frame = AsmInterpretedFrame::GetFrameFromSp(sp_); in GetNumberArgs() local
85 return static_cast<uint32_t>(frame->GetCurrentFramePointer() - sp_); in GetNumberArgs()
91 auto *frame = it.GetFrame<AsmInterpretedFrame>(); in GetNumberArgs() local
92 prevSp = frame->GetPrevFrameFp(); in GetNumberArgs()
94 auto *frame = it.GetFrame<InterpretedFrame>(); in GetNumberArgs() local
95 prevSp = frame->GetPrevFrameFp(); in GetNumberArgs()
120 auto *frame = it.GetFrame<AsmInterpretedFrame>(); in GetAcc() local
121 return frame->acc; in GetAcc()
[all …]
/arkcompiler/runtime_core/runtime/entrypoints/
Dentrypoints.h23 class Frame; variable
25 extern "C" Frame *CreateFrameWithSize(uint32_t size, uint32_t nregs, Method *method, Frame *prev);
27 extern "C" Frame *CreateFrameWithActualArgsAndSize(uint32_t size, uint32_t nregs, uint32_t num_actu…
28 Method *method, Frame *prev);
30 extern "C" Frame *CreateNativeFrameWithActualArgsAndSize(uint32_t size, uint32_t nregs, uint32_t nu…
31 Method *method, Frame *prev);
33 extern "C" Frame *CreateFrameForMethod(Method *method, Frame *prev);
35 extern "C" Frame *CreateFrameForMethodDyn(Method *method, Frame *prev);
37 extern "C" Frame *CreateFrameForMethodWithActualArgs(uint32_t num_actual_args, Method *method, Fram…
39 extern "C" Frame *CreateFrameForMethodWithActualArgsDyn(uint32_t num_actual_args, Method *method, F…
[all …]
/arkcompiler/runtime_core/runtime/tests/
Di2c_bridge_test.cpp30 #include "runtime/interpreter/frame.h"
123 static Frame *CreateFrame(size_t nregs, Method *method, Frame *prev) in CreateFrame()
125 return panda::CreateFrameWithSize(Frame::GetActualSize<is_dynamic>(nregs), nregs, method, prev); in CreateFrame()
133 Frame *frame = CreateFrame(0, nullptr, nullptr); in TEST_F() local
137 InterpreterToCompiledCodeBridge(insn, frame, &callee, thread_); in TEST_F()
142 InterpreterToCompiledCodeBridge(insn2, frame, &callee, thread_); in TEST_F()
146 InvokeCompiledCodeWithArgArray(nullptr, frame, &callee, thread_); in TEST_F()
149 FreeFrame(frame); in TEST_F()
162 Frame *frame = CreateFrame(1, nullptr, nullptr); in TEST_F() local
163 auto frame_handler = StaticFrameHandler(frame); in TEST_F()
[all …]
Ddebugger_test.cpp65 static Frame *CreateFrame(size_t nregs, Method *method, Frame *prev) in CreateFrame()
68 …void *mem = aligned_alloc(8, Frame::GetAllocSize(Frame::GetActualSize<is_dynamic>(nregs), ext_sz)); in CreateFrame()
69 return new (Frame::FromExt(mem, ext_sz)) Frame(mem, method, prev, nregs); in CreateFrame()
72 static void FreeFrame(Frame *frame) in FreeFrame() argument
74 std::free(frame->GetExt()); in FreeFrame()
77 TEST_F(DebuggerTest, Frame) in TEST_F() argument
117 panda::Frame *frame = test::CreateFrame(nregs + nargs, &method, nullptr); in TEST_F() local
118 frame->SetBytecodeOffset(BYTECODE_OFFSET); in TEST_F()
130 auto frame_handler = StaticFrameHandler(frame); in TEST_F()
141 frame->GetAccAsVReg().SetPrimitive(static_cast<int64_t>(acc.value)); in TEST_F()
[all …]
/arkcompiler/runtime_core/runtime/bridge/
Dbridge.cpp67 …upposed to be called from the deoptimization code. It aims to call interpreter for given frame from
68 * specific pc. Note, that it releases input interpreter's frame at the exit.
70 extern "C" int64_t InvokeInterpreter(ManagedThread *thread, const uint8_t *pc, Frame *frame, Frame in InvokeInterpreter() argument
73 thread->SetCurrentFrame(frame); in InvokeInterpreter()
75 LOG(DEBUG, INTEROP) << "InvokeInterpreter for method: " << frame->GetMethod()->GetFullName(); in InvokeInterpreter()
77 interpreter::Execute(thread, pc, frame, thread->HasPendingException()); in InvokeInterpreter()
80 auto acc = frame->GetAcc(); in InvokeInterpreter()
81 if (frame->IsDynamic()) { in InvokeInterpreter()
87 auto prev_frame = frame->GetPrevFrame(); in InvokeInterpreter()
90 FreeFrame(frame); in InvokeInterpreter()
[all …]
Dbridge.h24 class Frame; variable
44 extern "C" void InterpreterToCompiledCodeBridge(const uint8_t *, const Frame *, const Method *, Man…
45 extern "C" void InterpreterToCompiledCodeBridgeDyn(const uint8_t *, const Frame *, const Method *, …
46 extern "C" DecodedTaggedValue InvokeCompiledCodeWithArgArray(const int64_t *, const Frame *, const …
48 extern "C" uint64_t InvokeCompiledCodeWithArgArrayDyn(const uint64_t *, uint32_t, const Frame *, co…
51 extern "C" int64_t InvokeInterpreter(ManagedThread *thread, const uint8_t *pc, Frame *frame, Frame
/arkcompiler/runtime_core/runtime/include/
Dmethod-inl.h40 inline void FrameDeleter::operator()(Frame *frame) const in operator()
42 interpreter::RuntimeInterface::FreeFrame(thread_, frame); in operator()
55 …ALWAYS_INLINE inline static void InitActualArgs(Frame *frame, Span<Value> args_span, uint32_t num_… in InitActualArgs() argument
58 StaticFrameHandler static_frame_helper(frame); in InitActualArgs()
73 …NLINE inline static void InterpreterExecute(ManagedThread *thread, const uint8_t *pc, Frame *frame) in InterpreterExecute() argument
75 interpreter::Execute(thread, pc, frame); in InterpreterExecute()
78 …ALWAYS_INLINE static Frame *CreateFrame([[maybe_unused]] ManagedThread *thread, uint32_t nregs_siz… in CreateFrame()
79 Frame *prev, uint32_t nregs, uint32_t num_actual_args) in CreateFrame()
96 …ALWAYS_INLINE inline static void InitActualArgs(Frame *frame, Span<coretypes::TaggedValue> args_sp… in InitActualArgs() argument
99 frame->SetDynamic(); in InitActualArgs()
[all …]
/arkcompiler/runtime_core/runtime/
Dosr.cpp39 void WriteOsrEventError(Frame *frame, FrameKind kind, uintptr_t loop_head_bc) in WriteOsrEventError() argument
55 EVENT_OSR_ENTRY(std::string(frame->GetMethod()->GetFullName()), loop_head_bc, osr_kind, in WriteOsrEventError()
63 Frame *frame = stack.GetIFrame(); in OsrEntry() local
69 WriteOsrEventError(frame, stack.GetPreviousFrameKind(), loop_head_bc); in OsrEntry()
76 LOG(DEBUG, INTEROP) << "OSR: after interpreter frame"; in OsrEntry()
77 EVENT_OSR_ENTRY(std::string(frame->GetMethod()->GetFullName()), loop_head_bc, in OsrEntry()
79 OsrEntryAfterIFrame(frame, loop_head_bc, osr_code, code_info.GetFrameSize()); in OsrEntry()
82 UnpoisonAsanStack(frame->GetPrevFrame()); in OsrEntry()
83 LOG(DEBUG, INTEROP) << "OSR: after compiled frame"; in OsrEntry()
84 EVENT_OSR_ENTRY(std::string(frame->GetMethod()->GetFullName()), loop_head_bc, in OsrEntry()
[all …]
Dosr.h20 #include "runtime/interpreter/frame.h"
26 extern "C" void *PrepareOsrEntry(const Frame *iframe, uintptr_t bc_offset, const void *osr_code, vo…
31 extern "C" void OsrEntryAfterCFrame(Frame *frame, uintptr_t loop_head_bc, const void *osr_code, siz…
32 extern "C" void OsrEntryAfterIFrame(Frame *frame, uintptr_t loop_head_bc, const void *osr_code, siz…
33 extern "C" void OsrEntryTopFrame(Frame *frame, uintptr_t loop_head_bc, const void *osr_code, size_t…
35 extern "C" void SetOsrResult(Frame *frame, uint64_t uval, double fval);
Ddeoptimization.cpp31 …* @param frame Pointer to the first interpreter frame to that CFrame will be converted. It …
34 …* @param last_frame Pointer to the last interpreter frame to that CFrame will be converted. It w…
38 …"C" [[noreturn]] void DeoptimizeAfterCFrame(ManagedThread *thread, const uint8_t *pc, Frame *frame,
39 … void *cframe_fp, Frame *last_frame, void *callee_regs);
41 * \brief Deoptimize CFrame that lies after interpreter frame.
44 …* @param frame Pointer to the first interpreter frame to that CFrame will be converted. It …
47 …* @param last_frame Pointer to the last interpreter frame to that CFrame will be converted. It w…
51 …"C" [[noreturn]] void DeoptimizeAfterIFrame(ManagedThread *thread, const uint8_t *pc, Frame *frame,
52 … void *cframe_fp, Frame *last_frame, void *callee_regs);
75 …// TODO(msherstennikov): remove this loop and check `methods` contains frame's method in stack tra… in InvalidateCompiledEntryPoint()
[all …]
/arkcompiler/runtime_core/compiler/tests/x86/
Dasmjit_test.cpp68 FuncFrame frame; in TEST_F() local
69 frame.init(func); in TEST_F()
70 frame.addDirtyRegs(lhs, rhs); in TEST_F()
74 args.updateFuncFrame(frame); in TEST_F()
75 frame.finalize(); in TEST_F()
77 a.emitProlog(frame); in TEST_F()
78 a.emitArgsAssignment(frame, args); in TEST_F()
80 a.emitEpilog(frame); in TEST_F()
110 FuncFrame frame; in TEST_F() local
111 frame.init(func); in TEST_F()
[all …]
/arkcompiler/runtime_core/irtoc/backend/compiler/
Dcodegen_interpreter.h41 auto frame = GetGraph()->GetLocalAllocator()->New<FrameInfo>( in CreateFrameInfo() local
44 frame->SetFrameSize(fl.GetFrameSize<CFrameLayout::BYTES>()); in CreateFrameInfo()
45 frame->SetSpillsCount(fl.GetSpillsCount()); in CreateFrameInfo()
47 frame->SetCallersOffset( in CreateFrameInfo()
49 frame->SetFpCallersOffset( in CreateFrameInfo()
51 frame->SetCalleesOffset( in CreateFrameInfo()
53 frame->SetFpCalleesOffset( in CreateFrameInfo()
56 frame->SetSetupFrame(false); in CreateFrameInfo()
57 frame->SetSaveFrameAndLinkRegs(true); in CreateFrameInfo()
58 frame->SetSaveUnusedCalleeRegs(true); in CreateFrameInfo()
[all …]
/arkcompiler/runtime_core/runtime/tooling/
Ddebugger.cpp22 #include "interpreter/frame.h"
35 #include "runtime/interpreter/frame.h"
155 static panda::Frame *GetPandaFrame(StackWalker *pstack, uint32_t frameDepth, bool *outIsNative = nu… in GetPandaFrame()
166 panda::Frame *frame = nullptr; in GetPandaFrame() local
171 frame = stack.GetIFrame(); in GetPandaFrame()
179 return frame; in GetPandaFrame()
182 static panda::Frame *GetPandaFrame(ManagedThread *thread, uint32_t frameDepth = 0, bool *outIsNativ… in GetPandaFrame()
188 static interpreter::StaticVRegisterRef GetThisAddrVRegByPandaFrame(panda::Frame *frame) in GetThisAddrVRegByPandaFrame() argument
190 ASSERT(!frame->IsDynamic()); in GetThisAddrVRegByPandaFrame()
191 ASSERT(frame->GetMethod()->GetNumArgs() > 0); in GetThisAddrVRegByPandaFrame()
[all …]
/arkcompiler/runtime_core/runtime/bridge/arch/amd64/
Dcompiled_code_to_interpreter_bridge_dyn_amd64.S19 // Frame* CreateFrameForMethodWithActualArgsDyn(uint32_t num_actual_args, Method* method, Frame* pr…
21 // void InterpreterEntryPoint(Method* pc, Frame* frame, bool is_dynamic);
23 // void FreeFrame(Frame* frame);
51 // construct the frame
55 movq %rsp, %rbp // set frame pointer
75 // Before we call IncrementHotnessCounter we should set pointer to C2I frame in the TLS,
86 // Compilation successfully done, so recover caller's frame in the TLS, since C2I is not needed.
116 // create an interpreter frame
130 …// Frame* CreateFrameForMethodWithActualArgsDyn(uint32_t num_actual_args, Method* method, Frame* p…
198 // void InterpreterEntryPoint(Method *method, Frame* frame);
[all …]
/arkcompiler/runtime_core/compiler/tests/amd64/
Dasmjit_test.cpp92 FuncFrame frame; in TEST_F() local
93 frame.init(func); in TEST_F()
94 frame.addDirtyRegs(lhs, rhs); in TEST_F()
98 args.updateFuncFrame(frame); in TEST_F()
99 frame.finalize(); in TEST_F()
101 a.emitProlog(frame); in TEST_F()
102 a.emitArgsAssignment(frame, args); in TEST_F()
104 a.emitEpilog(frame); in TEST_F()
183 FuncFrame frame; in TEST_F() local
184 frame.init(func); in TEST_F()
[all …]
/arkcompiler/runtime_core/compiler/optimizer/code_generator/
Dcodegen_native.cpp24 auto frame = GetGraph()->GetLocalAllocator()->New<FrameInfo>( in CreateFrameInfo() local
27 frame->SetFrameSize(fl.GetFrameSize<CFrameLayout::BYTES>()); in CreateFrameInfo()
28 frame->SetSpillsCount(fl.GetSpillsCount()); in CreateFrameInfo()
30 frame->SetCallersOffset( in CreateFrameInfo()
32 frame->SetFpCallersOffset( in CreateFrameInfo()
34 frame->SetCalleesOffset( in CreateFrameInfo()
36 frame->SetFpCalleesOffset( in CreateFrameInfo()
40 // we don't need to setup frame in native mode in CreateFrameInfo()
41 frame->SetSetupFrame(false); in CreateFrameInfo()
43 frame->SetSaveFrameAndLinkRegs(!GetGraph()->GetMethodProperties().IsLeaf()); in CreateFrameInfo()
[all …]
/arkcompiler/runtime_core/runtime/bridge/arch/arm/
Dcompiled_code_to_interpreter_bridge_dyn_arm.S19 // Frame* CreateFrameForMethodDyn(Method* method, Frame* prev);
21 // void FreeFrame(Frame* frame)
23 // void InterpreterEntryPoint(const uint8_t* pc, Frame* frame);

1234567891011