[Webkit-unassigned] [Bug 117281] Crash in V8 benchmarks set in ARM, softfp, EABI

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Wed Sep 11 22:57:36 PDT 2013


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





--- Comment #66 from Michael Saboff <msaboff at apple.com>  2013-09-11 22:56:45 PST ---
(In reply to comment #64)
> (In reply to comment #63)
> > (In reply to comment #61)
> > > (In reply to comment #60)
> > > > (From update of attachment 211279 [details] [details] [details] [details])
> > > > View in context: https://bugs.webkit.org/attachment.cgi?id=211279&action=review
> > > > 
> > > > > Source/JavaScriptCore/dfg/DFGCCallHelpers.h:571
> > > > > +    ALWAYS_INLINE void setupArgumentsWithExecState(TrustedImm32 arg1, FPRReg arg2, GPRReg arg3)
> > > > > +    {
> > > > > +        moveDouble(arg2, FPRInfo::argumentFPR0);
> > > > > +        move(arg3, GPRInfo::argumentGPR1);
> > > > > +        move(GPRInfo::callFrameRegister, GPRInfo::argumentGPR0);
> > > > > +    }
> > > > > +
> > > > > +    ALWAYS_INLINE void setupArgumentsWithExecState(TrustedImm32 arg1, GPRReg arg2, GPRReg arg3, FPRReg arg4)
> > > > > +    {
> > > > > +        moveDouble(arg4, FPRInfo::argumentFPR0);
> > > > > +        setupStubArguments(arg2, arg3);
> > > > > +        move(GPRInfo::callFrameRegister, GPRInfo::argumentGPR0);
> > > > > +    }
> > > > 
> > > > It looks like arg1 is unused in these functions. Is that a bug? I believe that shouldn't even build, due to the unused argument warning. Did you test this code on ARM_HARDFP?
> > > 
> > > You are right, these two functions are the EABI_32BIT_DUMMY_ARG, ARM_HARDFP case.Then, How about use UNUSED_PARAM(arg1)?
> > 
> > Use UNUSED_PARAM(arg1).
> > 
> > Is there any concern that the argument registers are the same as the argumentGPRN?  Seems like this could be the case since ARM has a limited number of registers.
> 
> In ARM, r0-r3 are the argument and scratch registers. r0-r1 are also the result registers. So there are only 4 argumentGPRN and others use poke.
> 
> See the http://www.scribd.com/doc/6546078/ARM-Architecture-Procedure-Call-Standard#page=15.

I'm aware of the calling convention.  My concern was if there is every a case where the arguments and the calling convention arg registers could step on each other.  Given the order that the argument registers are moved into the calling convention arg registers AND that you use setupStubArguments() which is aware of the cases where the input registers collide with the arg registers, I think everything is fine.

-- 
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