The hack caused bytecode for block declaration instantiation to be assigned the
location of the first statement inside the block. Unfortunately it made the
source view of the debugger client seem out of sync with the Scopes panel: when
paused after hitting a breakpoint on that line or stepping there, the source
panel showed our location as being inside the block, but the Scopes panel did
not show a block scope.
Two server tests required fixes (also r=jimb, in a separate patch in the same
bug).
test_stepping-08.js assumes that stepping into a function stops at the first
statement in the function. This is usually true. However, now we are removing a
hack, such that our actual behavior for this *particular* function is to stop
at the opening curly brace. This causes the test to fail, without anything
really being broken.
The test is intended to test the interaction of stepping and breakpoints, so
the fix that stays truest to the purpose of the test is to change the debuggee
here to a function with no prologue instructions, so that we don't stop at the
opening brace.
test_blackboxing-01.js is a similar story.
--HG--
extra : rebase_source : 7afc6cc039f313889ee08cdd93ce114691efa1e9
extra : histedit_source : dc274b7cefbb96574c8207a78db05d80238d291d
This also fixes a bug in that code: it skipped the first stopping point in the
function (before the first instruction).
--HG--
extra : rebase_source : 9682c42ba7ba09b1de475338c83479e1da30a6be
For ARM64 it will be the case initially that we'll have baseline but
not ion. Thus we need to be able to disable asm.js support in some
cases when wasm is supported (since baseline does not support asm.js)
and to make the logic that selects the compiler to use slightly more
subtle.
As a result the old logic of "just use Ion as a fallback" needs to go,
but we can now move that into HasCompilerSupport() and the result is
cleaner overall.
--HG--
extra : rebase_source : 2d50f56ecd653b08e1441391722ed0797a322600
No one uses this defines even if SpiderMonkey and We forget to remove this by bug 1423846
MozReview-Commit-ID: 2MOavTX7zrf
--HG--
extra : rebase_source : 3f881bd28ba2c762d9d0876d58330cf99d35ad49
Removing #define XRE_DONT_PROTECT_DLL_LOAD from plugin-container.cpp and xpcshell.cpp allows the #included nsWindowsWMain.cpp to protect DLL loads much earlier in the plugin process startup.
MozReview-Commit-ID: HbgyfvljvFs
--HG--
extra : rebase_source : dccdabb2e5bee4472d5aef9400a58cb0e397c112
extra : histedit_source : da248fc6fbdf96f30979f3a0396aefcf4bfcd5d9
- fix a bug where the wrong register was picked up
- support wasm out-of-bounds traps
- support wasm illegal instruction traps
- support (float,float)->float callout signature
- support wait() and wake() callout signatures
--HG--
extra : rebase_source : 9ec124e9e629da245360a80a4a6974d71c9a87c8
extra : source : ba2afb5aa6915b1112d0f58ab653949bec8d07fc
- Implement `InvertCondition(DoubleCondition)`
- Implement wasm buffer management
- Implement `bindLater()`
- Implement a better definition of `Unreachable()` that does not
change the PC or the registers
- Add `IsMovz()` and `IsMovk()` predicates, we'll need them
- Bugfix: Patching functions must flush the icache for the updated locs
- Bugfix: `AbiArgIter()` must handle 64-bit ints
- Bugfix: The wasm TLS register must be a non-volatile register
- Bugfix: HINT + NOP is not that hard, so clean it up
--HG--
extra : rebase_source : d7a8d400306e497540c6b628133fcaf8d33c3e98
extra : source : 6e6172a81661927823fb58026b05fe8384b9faeb
AutoFlushIcache::flush() was ifdef'd out on ARM64 without any
mechanism to signal that, but that's wrong. Reorganize ifdefs for
this function and also for AutoFlushICache::setInhibit() so that a new
port will not fail to detect that these functions do nothing unless
the new platform opts in to the code that does something.
--HG--
extra : rebase_source : c2979b897af71acd5a6943332a92d431c7656576
We introduce two new RAII types, ScratchTagScope and
ScratchTagScopeRelease, documented in MacroAssembler-arm64.h with
references from other header files. The former either allocates a
suitable scratch register *or* it resolves to value.typeReg(), as
appropriate. A reference to the ScratchTagScope variable is then
passed to splitTagForTest(); that function no longer allocates secret
scratch registers.
ScratchTagScopeRelease creates a hole in the scope of the tag register
binding and is used when we call to masm functions that may need the
bound scratch register.
Masm functions that use scratch registers without acquiring them with
any kind of RAII binding are not fixed by this patch, but they were
always living dangerously anyway.
--HG--
extra : rebase_source : e80757b70f7e23451f0a53492ad6bbb8d2bb3299