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.
