[webkit-dev] Non JS Function call.

2012-07-24 Thread vahe vardanyan
Hi all.

As I understand in SFX all non JS functions calls go trough
JITStubs:op_call_NotJSFunction function.

But in which point, where, the op_call_NotJSFunction function is called?

Can anyone please explain how function calls are implemented in SFX(simple
jit).

Thanks for attention
___
webkit-dev mailing list
webkit-dev@lists.webkit.org
http://lists.webkit.org/mailman/listinfo/webkit-dev


Re: [webkit-dev] Non JS Function call.

2012-07-24 Thread Filip Pizlo

On Jul 24, 2012, at 5:51 AM, vahe vardanyan vahag...@gmail.com wrote:

 Hi all.
 
 As I understand in SFX all non JS functions calls go trough 
 JITStubs:op_call_NotJSFunction function.
 
 But in which point, where, the op_call_NotJSFunction function is called?

It's called from code generated by the JIT. I would start by running a command 
called grep on the code in the jit directory to search for mentions of 
NotJSFunction. 

 
 Can anyone please explain how function calls are implemented in SFX(simple 
 jit).
 
 Thanks for attention
 ___
 webkit-dev mailing list
 webkit-dev@lists.webkit.org
 http://lists.webkit.org/mailman/listinfo/webkit-dev
___
webkit-dev mailing list
webkit-dev@lists.webkit.org
http://lists.webkit.org/mailman/listinfo/webkit-dev


Re: [webkit-dev] Non JS Function call.

2012-07-24 Thread vahe vardanyan
Grep gives nothing, there is only one mention of op_call_NotJSFunction
in privateCompileCTIMachineTrampolines(JITOpcodes.cpp), but I don't see any
call instruction there.

Still can't understand how calls orgonized in SXF.

On 24 July 2012 20:07, Filip Pizlo fpi...@apple.com wrote:


 On Jul 24, 2012, at 5:51 AM, vahe vardanyan vahag...@gmail.com wrote:

  Hi all.
 
  As I understand in SFX all non JS functions calls go trough
 JITStubs:op_call_NotJSFunction function.
 
  But in which point, where, the op_call_NotJSFunction function is called?

 It's called from code generated by the JIT. I would start by running a
 command called grep on the code in the jit directory to search for
 mentions of NotJSFunction.

 
  Can anyone please explain how function calls are implemented in
 SFX(simple jit).
 
  Thanks for attention
  ___
  webkit-dev mailing list
  webkit-dev@lists.webkit.org
  http://lists.webkit.org/mailman/listinfo/webkit-dev

___
webkit-dev mailing list
webkit-dev@lists.webkit.org
http://lists.webkit.org/mailman/listinfo/webkit-dev


Re: [webkit-dev] Non JS Function call.

2012-07-24 Thread Oliver Hunt
op_call_NotJSFunction is only referenced during the final linking phase.

Actual compilation requires two distinct operations:  1) planting the call 
instruction and 2) linking the call target after the code has been relocated.  
Here is the (64-bit) version of the call + link logic:

...
preserveReturnAddressAfterCall(regT3);
emitPutToCallFrameHeader(regT3, RegisterFile::ReturnPC);
emitPutImmediateToCallFrameHeader(0, RegisterFile::CodeBlock);

storePtr(callFrameRegister, m_globalData-topCallFrame);
restoreArgumentReference();
Call callCallNotJSFunction = call(); -- here is the call
emitGetFromCallFrameHeaderPtr(RegisterFile::CallerFrame, callFrameRegister);
restoreReturnAddressBeforeReturn(regT3);
ret();
...
patchBuffer.link(callCallNotJSFunction, 
FunctionPtr(cti_op_call_NotJSFunction));  -- here is us linking the call

--Oliver



On Jul 24, 2012, at 1:45 PM, vahe vardanyan wrote:

 Grep gives nothing, there is only one mention of op_call_NotJSFunction in 
 privateCompileCTIMachineTrampolines(JITOpcodes.cpp), but I don't see any call 
 instruction there.
 
 Still can't understand how calls orgonized in SXF.  
 
 On 24 July 2012 20:07, Filip Pizlo fpi...@apple.com wrote:
 
 On Jul 24, 2012, at 5:51 AM, vahe vardanyan vahag...@gmail.com wrote:
 
  Hi all.
 
  As I understand in SFX all non JS functions calls go trough 
  JITStubs:op_call_NotJSFunction function.
 
  But in which point, where, the op_call_NotJSFunction function is called?
 
 It's called from code generated by the JIT. I would start by running a 
 command called grep on the code in the jit directory to search for 
 mentions of NotJSFunction.
 
 
  Can anyone please explain how function calls are implemented in SFX(simple 
  jit).
 
  Thanks for attention
  ___
  webkit-dev mailing list
  webkit-dev@lists.webkit.org
  http://lists.webkit.org/mailman/listinfo/webkit-dev
 
 ___
 webkit-dev mailing list
 webkit-dev@lists.webkit.org
 http://lists.webkit.org/mailman/listinfo/webkit-dev

___
webkit-dev mailing list
webkit-dev@lists.webkit.org
http://lists.webkit.org/mailman/listinfo/webkit-dev