Re: [squirrelfish] [webkit-dev] Fwd: Understending LLInt
Sorry I just had a mistake, it is interprets code. but my question is how it actually does interpretation. In generateThunkWithJumpTo function there are 2 lines which I think actually start LLInt. jit.move(JSInterfaceJIT::TrustedImmPtr(bitwise_cast<void*>(target)), JSInterfaceJIT::regT0); jit.jump(JSInterfaceJIT::regT0); If I'm not mistaken this to lines do some preparations And actual interpretation begins only after JSValue result = JSValue::decode(ctiTrampoline(m_ref.code().executableAddress(), registerFile, callFrame, 0, 0, globalData)) in JITCode.h. Am I right? Thanks for attention! On Wed, Nov 14, 2012 at 8:11 PM, Filip Pizlo <fpizlo@apple.com> wrote:
The LLInt doesn't compile anything to native code, since its an interpreter. It interprets the code instead.
-Filip
On Nov 14, 2012, at 3:19 AM, wingoog moon <wingoog91@gmail.com> wrote:
---------- Forwarded message ---------- From: wingoog moon <wingoog91@gmail.com> Date: Wed, Nov 14, 2012 at 1:51 AM Subject: Understending LLInt To: squirrelfish-dev@lists.webkit.org
Hi All.
At which point LLInt starts to compile bytecode to the native code? If I'm not mistaken it should be in prepareForExecution function, so I guess that this part of code actually does translation from bytecode to native code.
if (JITCode::isBaselineCode(jitType)) { // Start off in the low level interpreter. LLInt::getEntrypoint(exec->globalData(), codeBlock.get(), jitCode); codeBlock->setJITCode(jitCode, MacroAssemblerCodePtr()); return true; }
But I just cannot figure out how translation actually is done. My only assumption that this function only set up some native code, and actually compilation begins when calling functions from native assembly code.
Can anyone please explain LLInt working mechanism, any links or articles?
_______________________________________________ webkit-dev mailing list webkit-dev@lists.webkit.org http://lists.webkit.org/mailman/listinfo/webkit-dev
And I don't want to believe that rubby interprets custom assembly runtime, can you please explain how it works? On Fri, Nov 16, 2012 at 7:42 PM, wingoog moon <wingoog91@gmail.com> wrote:
Sorry I just had a mistake, it is interprets code. but my question is how it actually does interpretation.
In generateThunkWithJumpTo function there are 2 lines which I think actually start LLInt.
jit.move(JSInterfaceJIT::TrustedImmPtr(bitwise_cast<void*>(target)), JSInterfaceJIT::regT0); jit.jump(JSInterfaceJIT::regT0);
If I'm not mistaken this to lines do some preparations
And actual interpretation begins only after JSValue result = JSValue::decode(ctiTrampoline(m_ref.code().executableAddress(), registerFile, callFrame, 0, 0, globalData)) in JITCode.h.
Am I right?
Thanks for attention!
On Wed, Nov 14, 2012 at 8:11 PM, Filip Pizlo <fpizlo@apple.com> wrote:
The LLInt doesn't compile anything to native code, since its an interpreter. It interprets the code instead.
-Filip
On Nov 14, 2012, at 3:19 AM, wingoog moon <wingoog91@gmail.com> wrote:
---------- Forwarded message ---------- From: wingoog moon <wingoog91@gmail.com> Date: Wed, Nov 14, 2012 at 1:51 AM Subject: Understending LLInt To: squirrelfish-dev@lists.webkit.org
Hi All.
At which point LLInt starts to compile bytecode to the native code? If I'm not mistaken it should be in prepareForExecution function, so I guess that this part of code actually does translation from bytecode to native code.
if (JITCode::isBaselineCode(jitType)) { // Start off in the low level interpreter. LLInt::getEntrypoint(exec->globalData(), codeBlock.get(), jitCode); codeBlock->setJITCode(jitCode, MacroAssemblerCodePtr()); return true; }
But I just cannot figure out how translation actually is done. My only assumption that this function only set up some native code, and actually compilation begins when calling functions from native assembly code.
Can anyone please explain LLInt working mechanism, any links or articles?
_______________________________________________ webkit-dev mailing list webkit-dev@lists.webkit.org http://lists.webkit.org/mailman/listinfo/webkit-dev
participants (1)
-
wingoog moon