gecko-dev/js
Ryan Hunt 130c68fe5c Bug 1718271 - wasm: Allow rtt.canon and rtt.sub as constant expressions. r=lth
This commit adds rtt.canon and rtt.sub to the initializer expression
interpreter.

 * LitVal and Val assertions are updated to allow rtts
 * Baseline global.get/set was updated to allow rtts
 * Decoder method namings were changed from specifying the exact
   instruction being decoded to specifying the index type being
   decoded, as I think that's more maintainable for sharing
   between OpIter and InitExpr.
 * Wrappers for constant expression instructions that are
   implemented on Instance are added. e.g. constantRefFunc,
   constantRttCanon, constantRttSub. This signals intent
   better and keeps Instance implementation details out of
   the constant expression interpreter.
 * Due to the previous, FuncRef required tracing to be
   suppported.
 * Globals are moved to be initialized after types are
   initialized, so that rtt.canon/rtt.sub initializers
   work correctly.
 * A SMDOC is added for explaining signatures/runtime types/
   renumbering/type transfer/global type cache. The design
   should change in the future, but the current one needs
   documentation to explain the changes made in this commit.
 * TypeIdDesc and TypeDefWithId are moved to WasmTypeDef.h
 * Constant expressions encode the original source type
   index for rtt.canon/sub, while at runtime we need the
   renumbered (see SMDOC) type index. The least hacky way
   of doing this (AFAIK) is to transfer the renumbering
   map into wasm::Metadata and use that at runtime. To
   make this serializable, a sparse vector is used instead
   of a hashmap.

Differential Revision: https://phabricator.services.mozilla.com/D118845
2021-07-16 19:34:15 +00:00
..
ductwork/debugger
examples
public Bug 1708450 - Move call and construct functions into js/public/CallAndConstruct.h. r=nbp 2021-07-13 11:52:43 +00:00
src Bug 1718271 - wasm: Allow rtt.canon and rtt.sub as constant expressions. r=lth 2021-07-16 19:34:15 +00:00
xpconnect Bug 1720368 - Remove MOZ_GECKO_PROFILER ifdefs around profiler_init and profiler_shutdown calls, r=gerald. 2021-07-15 22:04:23 +00:00
app.mozbuild
ffi.configure
moz.build Bug 1708739 - Move WeakMap APIs to new public header r=yulia 2021-05-01 12:10:14 +00:00
moz.configure Bug 1714933 - Part 5: Bump minimum required ICU version to 69.1. r=tcampbell 2021-06-15 07:54:05 +00:00
sub.configure