[Webkit-unassigned] [Bug 183786] Implement setupArgumentsImpl for ARM and MIPS

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Tue Apr 17 07:41:10 PDT 2018


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

Yusuke Suzuki <utatane.tea at gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
 Attachment #338093|review?                     |review+, commit-queue-
              Flags|                            |

--- Comment #15 from Yusuke Suzuki <utatane.tea at gmail.com> ---
Comment on attachment 338093
  --> https://bugs.webkit.org/attachment.cgi?id=338093
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=338093&action=review

r=me with nits. Nice work!

> Source/JavaScriptCore/ChangeLog:39
> +        * assembler/MacroAssemblerARMv7.h:
> +        (JSC::MacroAssemblerARMv7::moveDouble):
> +        * assembler/MacroAssemblerMIPS.h:
> +        (JSC::MacroAssemblerMIPS::moveDouble):
> +        * jit/CCallHelpers.h:
> +        (JSC::CCallHelpers::setupStubCrossArgs):
> +        (JSC::CCallHelpers::ArgCollection::ArgCollection):
> +        (JSC::CCallHelpers::ArgCollection::pushRegArg):
> +        (JSC::CCallHelpers::ArgCollection::pushExtraRegArg):
> +        (JSC::CCallHelpers::ArgCollection::addGPRArg):
> +        (JSC::CCallHelpers::ArgCollection::addGPRExtraArg):
> +        (JSC::CCallHelpers::ArgCollection::addStackArg):
> +        (JSC::CCallHelpers::ArgCollection::addPoke):
> +        (JSC::CCallHelpers::ArgCollection::argCount):
> +        (JSC::CCallHelpers::clampArrayToSize):
> +        (JSC::CCallHelpers::calculatePokeOffset):
> +        (JSC::CCallHelpers::pokeForArgument):
> +        (JSC::CCallHelpers::pokeAligned):
> +        (JSC::CCallHelpers::marshallArgumentRegister):
> +        (JSC::CCallHelpers::setupArgumentsImpl):
> +        (JSC::CCallHelpers::align2):
> +        (JSC::CCallHelpers::pokeArgumentsAligned):
> +        (JSC::CCallHelpers::std::is_integral<CURRENT_ARGUMENT_TYPE>::value):
> +        (JSC::CCallHelpers::std::is_pointer<CURRENT_ARGUMENT_TYPE>::value):
> +        (JSC::CCallHelpers::setupArguments):
> +        * jit/FPRInfo.h:
> +        (JSC::FPRInfo::toArgumentRegister):

Could you update this ChangeLog to reflect the change in the latest patch? You can run `Tools/Scripts/webkit-patch upload --update-changelogs`.

> Source/JavaScriptCore/jit/CCallHelpers.h:585
> +            auto updatedArgSourceRegs1 = argSourceRegs.pushRegArg(arg.payloadGPR(), GPRInfo::toArgumentRegister(alignedArgCount));
> +            auto updatedArgSourceRegs2 = updatedArgSourceRegs1.pushExtraRegArg(arg.tagGPR(), GPRInfo::toArgumentRegister(alignedArgCount + 1));

OK, so can you add a comment about why we are increasing extra reg arg and not increasing numGPRArgs by 2 instead? It is tricky if we know that JSValueRegs is represented by two GPRRegs in 32bit function calls.

> Source/JavaScriptCore/jit/CCallHelpers.h:674
> +#if CPU(JSVALUE64)
>          static_assert(FunctionTraits<OperationType>::cCallArity() == numGPRArgs + numFPRArgs + extraPoke, "Check the CCall arity");
> +#endif

So, can we keep this static_assert for CPU(X86) too? It is useful for keeping 32bit build sane.

-- 
You are receiving this mail because:
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.webkit.org/pipermail/webkit-unassigned/attachments/20180417/16f36e6e/attachment.html>


More information about the webkit-unassigned mailing list