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

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Wed Jun 19 15:03:54 PDT 2013


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





--- Comment #15 from Mark Lam <mark.lam at apple.com>  2013-06-19 15:02:30 PST ---
(From update of attachment 203943)
View in context: https://bugs.webkit.org/attachment.cgi?id=203943&action=review

> Source/JavaScriptCore/ChangeLog:3
> +        Crash fixex in V8 benchmark suite in ARM,softp,EABI environment.

Did you mean to say "Fixed crash in V8 benchmark suite for ARM, softfp, EABI environment"?

> 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 seems these are not use in the ARM_HARDFP port.  I see no reason to add them.

> Source/JavaScriptCore/dfg/DFGCCallHelpers.h:615
> +    ALWAYS_INLINE void setupArgumentsWithExecState(TrustedImm32 arg1, FPRReg arg2, GPRReg arg3)
> +    {
> +        poke(arg3, POKE_ARGUMENT_OFFSET);
> +        move(arg1, GPRInfo::argumentGPR1);
> +        assembler().vmov(GPRInfo::argumentGPR2, GPRInfo::argumentGPR3, arg2);
> +        move(GPRInfo::callFrameRegister, GPRInfo::argumentGPR0);
> +    }
> +
> +    ALWAYS_INLINE void setupArgumentsWithExecState(GPRReg arg1, GPRReg arg2, TrustedImm32 arg3, FPRReg arg4)
> +    {
> +        setupStubArguments(arg1, arg2);
> +        move(GPRInfo::callFrameRegister, GPRInfo::argumentGPR0);
> +        move(arg3, GPRInfo::argumentGPR3);
> +        assembler().vmov(GPRInfo::nonArgGPR0, GPRInfo::nonArgGPR1, arg4);
> +        poke(GPRInfo::nonArgGPR0, POKE_ARGUMENT_OFFSET);
> +        poke(GPRInfo::nonArgGPR1, POKE_ARGUMENT_OFFSET + 1);
> +    }

In the !ARM_HARDFP port, these replaces "setupArgumentsWithExecState(FPRReg arg1, GPRReg arg2)" and "setupArgumentsWithExecState(GPRReg arg1, GPRReg arg2, FPRReg arg3)".  Remove the now unused functions.

> Source/JavaScriptCore/dfg/DFGSpeculativeJIT.h:-1041
> -    JITCompiler::Call callOperation(V_DFGOperation_EOZD operation, GPRReg arg1, GPRReg arg2, FPRReg arg3)
> -    {
> -        m_jit.setupArgumentsWithExecState(arg1, arg2, arg3);
> -        return appendCallWithExceptionCheck(operation);
> -    }
> -

Is there a reason that you move this function below?

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