[webkit-dev] MIPS port problem - cti_op_put_by_id slow case problem
Maciej Stachowiak
mjs at apple.com
Tue Jun 16 17:02:14 PDT 2009
It's cool that you are working on a MIPS port of the JIT. However,
it's somewhat off-topic to ask for help with private ports here.
There's also not much we can do to help without actually seeing the
code.
I would suggest posting some patches to get the start of your port in
svn.webkit.org, then it will be easier for us to help and for other
collaborators to contribute.
Cheers,
Maciej
On Jun 16, 2009, at 4:53 PM, Toshiyasu Morita wrote:
> I've gotten the MIPS port up to where it can compile and execute
> through about 9 functions of a testcase before it crashes.
>
> The reason for the crash appears to be related to op_put_by_id. When
> this opcode is compiled, the JIT executes:
>
> void JIT::compilePutByIdSlowCase(int baseVReg, Identifier* ident,
> int, Vector<SlowCaseEntry>::iterator& iter, unsigned
> propertyAccessInstructionIndex)
> {
> linkSlowCaseIfNotJSCell(iter, baseVReg);
> linkSlowCase(iter);
>
> emitPutJITStubArgConstant(ident, 2);
> emitPutJITStubArg(regT0, 1);
> emitPutJITStubArg(regT1, 3);
> Call call = emitCTICall(JITStubs::cti_op_put_by_id);
>
> // Track the location of the call; this will be used to recover
> patch information.
>
> m_propertyAccessCompilationInfo
> [propertyAccessInstructionIndex].callReturnLocation = call;
> }
>
> When the code is initially generated, it generates a call to address
> 0x6a2294 (JIT::cti_op_put_by_id) which is correct. Later on,
> something modifies the instruction to call address 0x6a26dc instead,
> which causes an infinite loop.
>
> What is the purpose of dynamically modifying this call instruction?
>
> Toshi
>
>
> _______________________________________________
> webkit-dev mailing list
> webkit-dev at lists.webkit.org
> http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.webkit.org/pipermail/webkit-dev/attachments/20090616/ed5841a2/attachment.html>
More information about the webkit-dev
mailing list