mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-10-25 00:27:29 +09:00
Issue #3049 - Fix loongarch64 wasm profiling integration
This commit is contained in:
parent
448d6362ad
commit
c0be6cfc60
2 changed files with 4 additions and 3 deletions
|
|
@ -2880,7 +2880,7 @@ class BaseCompiler
|
||||||
};
|
};
|
||||||
|
|
||||||
#if defined(JS_CODEGEN_LOONGARCH64)
|
#if defined(JS_CODEGEN_LOONGARCH64)
|
||||||
void branchDoubleToTrap(DoubleCondition cond, FloatRegister lhs,
|
void branchDoubleToTrap(Assembler::DoubleCondition cond, FloatRegister lhs,
|
||||||
FloatRegister rhs, Trap trapKind) {
|
FloatRegister rhs, Trap trapKind) {
|
||||||
Label trapLabel;
|
Label trapLabel;
|
||||||
masm.branchDouble(cond, lhs, rhs, &trapLabel);
|
masm.branchDouble(cond, lhs, rhs, &trapLabel);
|
||||||
|
|
|
||||||
|
|
@ -246,9 +246,7 @@ static const unsigned PostStorePrePopFP = 4;
|
||||||
static const unsigned PushedRetAddr = 8;
|
static const unsigned PushedRetAddr = 8;
|
||||||
static const unsigned PushedFP = 36;
|
static const unsigned PushedFP = 36;
|
||||||
static const unsigned StoredFP = 40;
|
static const unsigned StoredFP = 40;
|
||||||
# if defined(DEBUG)
|
|
||||||
static const unsigned PostStorePrePopFP = 0;
|
static const unsigned PostStorePrePopFP = 0;
|
||||||
# endif
|
|
||||||
#elif defined(JS_CODEGEN_NONE)
|
#elif defined(JS_CODEGEN_NONE)
|
||||||
# if defined(DEBUG)
|
# if defined(DEBUG)
|
||||||
static const unsigned PushedRetAddr = 0;
|
static const unsigned PushedRetAddr = 0;
|
||||||
|
|
@ -657,12 +655,15 @@ ProfilingFrameIterator::ProfilingFrameIterator(const WasmActivation& activation,
|
||||||
callerPC_ = state.lr;
|
callerPC_ = state.lr;
|
||||||
callerFP_ = fp;
|
callerFP_ = fp;
|
||||||
AssertMatchesCallSite(*activation_, callerPC_, callerFP_, sp - 2);
|
AssertMatchesCallSite(*activation_, callerPC_, callerFP_, sp - 2);
|
||||||
|
# if defined(JS_CODEGEN_ARM) || defined(JS_CODEGEN_MIPS32) || \
|
||||||
|
defined(JS_CODEGEN_MIPS64)
|
||||||
} else if (offsetInModule == codeRange->profilingReturn() - PostStorePrePopFP) {
|
} else if (offsetInModule == codeRange->profilingReturn() - PostStorePrePopFP) {
|
||||||
// Second-to-last instruction of the ARM/MIPS function; fp points to
|
// Second-to-last instruction of the ARM/MIPS function; fp points to
|
||||||
// the caller's fp; have not yet popped Frame.
|
// the caller's fp; have not yet popped Frame.
|
||||||
callerPC_ = ReturnAddressFromFP(sp);
|
callerPC_ = ReturnAddressFromFP(sp);
|
||||||
callerFP_ = CallerFPFromFP(sp);
|
callerFP_ = CallerFPFromFP(sp);
|
||||||
AssertMatchesCallSite(*activation_, callerPC_, callerFP_, sp);
|
AssertMatchesCallSite(*activation_, callerPC_, callerFP_, sp);
|
||||||
|
# endif
|
||||||
} else
|
} else
|
||||||
#endif
|
#endif
|
||||||
if (offsetInCodeRange < PushedFP || offsetInModule == codeRange->profilingReturn() ||
|
if (offsetInCodeRange < PushedFP || offsetInModule == codeRange->profilingReturn() ||
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue