The baldrdash integration of Cranelift is agreed between SM and CL
to be the wrong shape. Our import of the code base is also old and
causes difficulties for us when upgrading some crates (see bug
1774829). We should remove it for now to unblock bug 1774829.
Differential Revision: https://phabricator.services.mozilla.com/D152806
We are going to compile JS into WebAssembly! This is the first patch
in an upcoming queue. Here we introduce wasm32 architecture so that
SpiderMonkey can be compiled with enabled jit for wasi target.
Differential Revision: https://phabricator.services.mozilla.com/D145790
Remove the gating in moz.configure that prevents the arm64 simulator from
being compiled on an arm64 system.
Avoid using the fjcvt instruction when running on arm64 hardware, since
the simulator does not appear to support it while cpu detection does
support it. (The alternative would be to implement the instruction
on the simulator.)
Differential Revision: https://phabricator.services.mozilla.com/D147199
Restrict the platform for size tests to nightly, as some fields are
conditional to release/nightly. Testing on nightly should contain the
most fields and therefore be permissive.
Differential Revision: https://phabricator.services.mozilla.com/D145605
This commit adds an assertion for tracking the size of types that
we serialize so that we can detect if they change without updating
the corresponding serialize function.
Depends on D143404
Differential Revision: https://phabricator.services.mozilla.com/D144585
zlib includes unistd.h and the definition of getpid there conflicted with the macro
in GetPidProvider.h, breaking the WASI build on beta.
Differential Revision: https://phabricator.services.mozilla.com/D140187
This uses the same mechanism as SIMD configuration: exceptions are disabled by
default if cranelift is enabled, and enabling both explicitly will cause configuration
to fail.
Differential Revision: https://phabricator.services.mozilla.com/D139129
Avoid a null check on the slow path of call_indirect by catching the
signal resulting from dereferencing a null Tls pointer when loading
the heap register for the callee instance.
This does not work on x86-32 because we don't have a heap register to
load on that platform.
Differential Revision: https://phabricator.services.mozilla.com/D138286
- Implements 7 intrinsic functions
- These intrinsics are only enabled for x86/x86-64 platform and for
privileged extensions
- These intrinsics should never be accessible to web-pages
-- Added corresponding mochitest
Differential Revision: https://phabricator.services.mozilla.com/D136430
- AC_HAVE_FUNCS is an alias to AC_CHECK_FUNCS, so it is covered.
- Nothing uses HAVE___CXA_DEMANGLE, so we don't explictly set it,
although we do need the result of whether __cxa_demangle is supported.
- No moz.build uses MOZ_DEMANGLE_SYMBOLS, so we only `set_define` it.
- We leave dladdr in old-configure because it needs to move along other
dl* things.
- The hotfix for AC_CHECK_FUNC is however not needed for dladdr, so we
remove it.
- We replace the forced HAVE_LOCALECONV on Windows with a check shared
with all platforms.
Differential Revision: https://phabricator.services.mozilla.com/D134858
- AC_HAVE_FUNCS is an alias to AC_CHECK_FUNCS, so it is covered.
- Nothing uses HAVE___CXA_DEMANGLE, so we don't explictly set it,
although we do need the result of whether __cxa_demangle is supported.
- No moz.build uses MOZ_DEMANGLE_SYMBOLS, so we only `set_define` it.
- We leave dladdr in old-configure because it needs to move along other
dl* things.
- The hotfix for AC_CHECK_FUNC is however not needed for dladdr, so we
remove it.
- We replace the forced HAVE_LOCALECONV on Windows with a check shared
with all platforms.
Differential Revision: https://phabricator.services.mozilla.com/D134858
This is an alternative implementation to D87232. I didn't implement
object wrappers for these new primitive-like-objects yet, so
`typeof Object(rec)` is currently `"record"` and not `"object"`.
Differential Revision: https://phabricator.services.mozilla.com/D125644
Handle indirect-call-to-null with the trap handler.
Remove the null check in call_indirect altogether, and add code to the
signal handler that recognizes a call-to-null instead.
The trickiest bit is to validate the fault address on systems that
need to push the return address onto the stack, and to argue that
handling the fault will not hide bugs or impede system functionality.
See comments in the code for more about this.
Differential Revision: https://phabricator.services.mozilla.com/D132296
Scaffolding: Add assertions everywhere execution currently depends on
a memory being a memory32. These assertions will disappear by and by.
Add some useful predicates and guard memory64 on !huge-memory.
Make it possible for the initial heap size to be a 64-bit value,
update WasmBCE.cpp to deal with this, and note in a comment that this
does not affect asm.js at all.
Exclude Cranelift and MIPS64 from memory64 in moz.configure; this
is extra work that does not pay off at this time.
Enable the inclusion of memory64 code by default in moz.configure.
Flip the about:config switch to false so that we can land in Nightly
without exposing content to m64 until we have completed Milestone 2.
Test cases are in the last patch in the queue.
Differential Revision: https://phabricator.services.mozilla.com/D124887
Scaffolding: Add assertions everywhere execution currently depends on
a memory being a memory32. These assertions will disappear by and by.
Add some useful predicates and guard memory64 on !huge-memory.
Make it possible for the initial heap size to be a 64-bit value,
update WasmBCE.cpp to deal with this, and note in a comment that this
does not affect asm.js at all.
Exclude Cranelift and MIPS64 from memory64 in moz.configure; this
is extra work that does not pay off at this time.
Enable the inclusion of memory64 code by default in moz.configure.
Flip the about:config switch to false so that we can land in Nightly
without exposing content to m64 until we have completed Milestone 2.
Test cases are in the last patch in the queue.
Differential Revision: https://phabricator.services.mozilla.com/D124887