On Mar 31, 2012, at 6:13 AM, wingoog moon <[email protected]> wrote:

> stubCall.call(currentInstruction[1].u.operand)  calls function 
> DEFINE_STUB_FUNCTION(JSObject*, op_new_array) from JITStubs.cpp. And at this 
> point execution of our JS programm is "interputing" and here C functions 
> starting  to work to "create array".

Just to be clear, this line of code does not directly call the cti helper stub, 
this is compiling JIT code, that when run will call the helper stub. Local 
variables & temporary values between operations are stored in the VM's register 
file, indexed by virtual register numbers. For the new_array opcode (and most 
opcodes) the virtual register indicating where to store the result in is stored 
in the bytecode instruction stream immediately after the opcode - and is being 
accessed here by the expression "currentInstruction[1].u.operand". The argument 
to the call method here is the virtual register number to store the result back 
to.

G.

Sent from my iPhone

_______________________________________________
squirrelfish-dev mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/squirrelfish-dev

Reply via email to