Thanks for documenting this all so well!

On Apr 13, 2017 9:33 AM, "'Jakob Gruber' via v8-dev" <
[email protected]> wrote:

> If you don't care about changes to the way TFS builtins are created you
> can stop reading now.
>
> TLDR: The TFS macro changed to take explicit argument names: TFS(name,
> kArgs....). The TFC macro was added for builtins that require a custom
> descriptor. CSA builtin documentation is now available at
> https://github.com/v8/v8/wiki/CodeStubAssembler-Builtins.
>
> Background:
> ---
>
> There have been quite a few changes to src/builtins in recent months. A
> quick summary to get everyone on the same page:
>
> * builtins.cc was split up into src/builtins/builtins-*.cc.
> * CSA builtins were refactored to use subclasses of CodeStubAssembler with
> TF_BUILTIN() as a convenience macro.
> * CSA builtins were moved to src/builtins/builtins-*-gen.cc as part of the
> effort of removing the code to generate builtins from the final binary.
> * CSA::CallBuiltin(id, context, args...) was added as a more convenient
> way to call builtins.
> * Builtin declarations were moved from src/builtins/builtins.h to a
> dedicated header file src/builtins/builtins-definitions.h.
> * The TFJ macro (for declaring CSA builtins with JS-linkage) was changed
> to include the list of arguments to allow referencing arguments by name
> instead of a magic number.
> * You can now use the BIND and VARIABLE macro in CSA to assign debug
> source information to basic blocks and variables. This is particularly
> helpful when trying to locate verifier errors.
>
> What changed:
> ---
>
> I landed a change on Friday that makes similar changes to the TFS macro,
> which now takes a list of named arguments. Old style:
>
> // Explicit definition of InterfaceDescriptor in
> src/interface-descriptors.h
> TFS(Name, InterfaceDescriptor, ReturnSize)
>
> New style:
>
> // Interface descriptor is auto-generated.
> TFS(Name, Arg1, Arg2, ..., ArgN)
>
> A new TFC macro was added for stub-linkage builtins that still require a
> custom descriptor (e.g. because they have untagged arguments or require
> passing arguments in specific registers).
>
> Some documentation is available on our public wiki at
> https://github.com/v8/v8/wiki/CodeStubAssembler-Builtins.
>
> Why:
> ---
>
> It's a common pattern to call TFS builtins from other builtins. I'm
> expecting this to become more frequent as we focus on reducing the size of
> our CSA builtins and change inlined code to stub calls.
>
> Stub calls have been tedious to set up, requiring the TFS builtin
> definition (builtins.h/builtins-*.cc), a new interface descriptor
> (interface-descriptors.h) and a new CodeFactory accessor
> (code-factory.{h,cc}).
>
> With this change landed, stub calls become much more convenient and only
> require the TFS builtin definition and a CallBuiltin(id, context, args...)
> call.
>
> --
> --
> v8-dev mailing list
> [email protected]
> http://groups.google.com/group/v8-dev
> ---
> You received this message because you are subscribed to the Google Groups
> "v8-dev" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> For more options, visit https://groups.google.com/d/optout.
>

-- 
-- 
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
--- 
You received this message because you are subscribed to the Google Groups 
"v8-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to