зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1450221
- [MIPS] Fix ProfilingFrameIterator unwinding when pc is in FarJumpIsland; r=bbouvier
This commit is contained in:
Родитель
f5fb323246
Коммит
44417b17cf
|
@ -843,7 +843,14 @@ js::wasm::StartUnwinding(const RegisterState& registers, UnwindState* unwindStat
|
||||||
case CodeRange::BuiltinThunk:
|
case CodeRange::BuiltinThunk:
|
||||||
case CodeRange::DebugTrap:
|
case CodeRange::DebugTrap:
|
||||||
#if defined(JS_CODEGEN_MIPS32) || defined(JS_CODEGEN_MIPS64)
|
#if defined(JS_CODEGEN_MIPS32) || defined(JS_CODEGEN_MIPS64)
|
||||||
if (offsetFromEntry < PushedFP || codeRange->isThunk()) {
|
if (codeRange->isThunk()) {
|
||||||
|
// The FarJumpIsland sequence temporary scrambles ra.
|
||||||
|
// Don't unwind to caller.
|
||||||
|
fixedPC = pc;
|
||||||
|
fixedFP = fp;
|
||||||
|
*unwoundCaller = false;
|
||||||
|
AssertMatchesCallSite(fp->returnAddress, fp->callerFP);
|
||||||
|
} else if (offsetFromEntry < PushedFP) {
|
||||||
// On MIPS we rely on register state instead of state saved on
|
// On MIPS we rely on register state instead of state saved on
|
||||||
// stack until the wasm::Frame is completely built.
|
// stack until the wasm::Frame is completely built.
|
||||||
// On entry the return address is in ra (registers.lr) and
|
// On entry the return address is in ra (registers.lr) and
|
||||||
|
|
Загрузка…
Ссылка в новой задаче