[Webkit-unassigned] [Bug 101328] MIPS DFG implementation.

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Mon Jan 7 10:52:49 PST 2013


https://bugs.webkit.org/show_bug.cgi?id=101328





--- Comment #21 from Filip Pizlo <fpizlo at apple.com>  2013-01-07 10:54:44 PST ---
(In reply to comment #20)
> (In reply to comment #19)
> > (From update of attachment 181319 [details] [details])
> > View in context: https://bugs.webkit.org/attachment.cgi?id=181319&action=review
> > 
> > > Source/JavaScriptCore/dfg/DFGCCallHelpers.h:963
> > > +#if CPU(MIPS)
> > > +    ALWAYS_INLINE void setupArgumentsWithExecState(GPRReg arg1, GPRReg arg2, GPRReg arg3, GPRReg arg4)
> > > +    {
> > > +        poke(arg4, 4);
> > > +        setupArgumentsWithExecState(arg1, arg2, arg3);
> > > +    }
> > > +
> > 
> > Why is all of this behind CPU(MIPS)?  It looks identical to the normal NUMBER_OF_ARGUMENT_REGISTERS == 4 case. :-/
> 
> Thank you for the review. On MIPS we have to give space for the register stored arguments on stack also so while other (params in 4 regs) arches can use:
>         poke(arg5, 1);
>         poke(arg4);
>         setupArgumentsWithExecState(arg1, arg2, arg3);
> on MIPS we have to use:
>         poke(arg5, 5);
>         poke(arg4, 4);
>         setupArgumentsWithExecState(arg1, arg2, arg3);
> Different stack offset values in poke call.

Then I would suggest abstracting the poke offset, and using #if's only for that.  That way, you don't have to duplicate all of that code!

Keep in mind that this code gets churned *a lot*.  Every time we add a DFGOperations function with a sufficiently exotic signature, this code gets touched.  Therefore, we should reduce code duplication as much as possible; otherwise you guys will have a lot more work to do to keep up with DFG changes.

-- 
Configure bugmail: https://bugs.webkit.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.



More information about the webkit-unassigned mailing list