This separates unused SIMD code (from asm.js) from code that's being
actively maintained by placing out-of-line definitions in a new file,
and creating separate sections in the header for the declarations and
in-line definitions.
The code is included in the build so that it doesn't go completely
stale, but this is not technically required.
Differential Revision: https://phabricator.services.mozilla.com/D87307
This is technical debt from the initial SIMD work - it's faster to load a
constant here than to compute it. Benchmark data not forthcoming, but
elsewhere i've found that we break even at two instructions and it's
better to load the value than to compute it in three.
Differential Revision: https://phabricator.services.mozilla.com/D87306
Always use ScratchSimd128Scope to claim ScratchSimd128Reg.
The only hard part is that the register was claimed deep in the
assembler in what appears to be a late non-AVX bugfix to work around
the fact that compare operations are not three-address on non-AVX.
I fixed this by making compare operations two-address and moving the
code that shuffles registers for this case into the macroassembler,
where the scratch can be claimed correctly.
As a result, we have less support for AVX, but since AVX is not
supported or tested this does not actually matter. A MOZ_CRASH
ensures we'll run into this if testing with AVX.
Another couple of similar cases elsewhere have similar local fixes:
MOZ_CRASH for AVX, two-address code for the normal case.
Differential Revision: https://phabricator.services.mozilla.com/D87284
These test cases expected specific payloads for some NaN results but
the wasm spec does not guarantee that, and some implementations of
some architectures will not return the same payloads as x64. So
adjust the tests.
Differential Revision: https://phabricator.services.mozilla.com/D87455
Fixing the font cache issue the 3rd time now by just running "fc-cache" as the worker user should hopefully fix it for real, and no longer be regressed by some docker image changes.
The Puppeteer jobs will keep the 15s startup timeout for Firefox, so that we could detect another fallout again.
Differential Revision: https://phabricator.services.mozilla.com/D87745
The flag setting in the ModuleEnv if shared memory is available was using the
wrong predicate. In addition to looking at if shared memory is effectively
enabled, it should also look at whether we're fuzzing or not.
This fixes crashes that happen only when fuzzing, that is, running the shell
with --wasm-compiler=cranelift --fuzzing-safe.
Differential Revision: https://phabricator.services.mozilla.com/D87739
This required a change to vtt.jsm because it previously used clientHeight to determine whether the controls were showing.
Now that the controls are visually hidden but not display: none, that doesn't work because clientHeight can be > 0 even when the controls are visually hidden.
The hidden attribute is now used instead.
Differential Revision: https://phabricator.services.mozilla.com/D87403
Currently the `jest/no-standalone-expect` rule needs to be disabled for `jest-in-case` cases blocks as it is not compatible.
Differential Revision: https://phabricator.services.mozilla.com/D87184
The idea behind removing marking of wrapper rooters from the mark phase is OK
except we rely on marking being done by the time we start sweeping (we can't
yield between the end of marking and the start of sweeping) and if we delay
marking these wrappers until the sweep phase we may end up with marking work to
do at this point.
The fix is to mark these in mark slices that may end up sweeping (mostly this
doesn't happen because we yield before we start sweeping). Then the marking
gets done by markUntilBudgetExhausted before we get to the sweep phase.
Differential Revision: https://phabricator.services.mozilla.com/D87459
Before this patch stack, nsPageSequenceFrame and every nsPageFrame each
individually tracked the number of pages.
As of the previous patch, we've coalesced the nsPageFrame variables into a
single variable that lives on nsSharedPageData. This patch here replaces
nsPageSequenceFrame's member-var with that nsSharedPageData variable, too.
Depends on D87696
Differential Revision: https://phabricator.services.mozilla.com/D87697
We already do this static_cast'ing before this patch, for a single
nsPageFrame-specific method call. This patch just captures the result of that
static_cast in a reusable variable, so that I can easily add another
nsPageFrame-specific function call in the next patch of this patch series.
(We can be confident this casting is valid, because we only ever give
PrintedSheetFrame this one type of child frame.)
Differential Revision: https://phabricator.services.mozilla.com/D87695
This patch adds a createDefaultSettings() method to nsIPrinter to
initialize a default print settings object specific to that printer.
It implements the functionality for Linux and macOS but adds only stubs
for Windows.
Differential Revision: https://phabricator.services.mozilla.com/D87125