mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Bug 1130481 - IonMonkey: Assert that Ion frames are properly aligned. r=bbouvier
This commit is contained in:
parent
a3447ecae5
commit
fb23b10b53
@ -2006,6 +2006,10 @@ CodeGenerator::visitOsrEntry(LOsrEntry *lir)
|
||||
// to 0, before reserving the stack.
|
||||
MOZ_ASSERT(masm.framePushed() == frameSize());
|
||||
masm.setFramePushed(0);
|
||||
|
||||
// Ensure that the Ion frames is properly aligned.
|
||||
masm.assertStackAlignment(JitStackAlignment, 0);
|
||||
|
||||
masm.reserveStack(frameSize());
|
||||
}
|
||||
|
||||
|
@ -3128,9 +3128,7 @@ AssertJitStackInvariants(JSContext *cx)
|
||||
MOZ_RELEASE_ASSERT(frames.ionScript()->frameSize() % JitStackAlignment == 0,
|
||||
"Ensure that if the Ion frame is aligned, then the spill base is also aligned");
|
||||
|
||||
InlineFrameIterator lastInlinedFrame(cx, &frames);
|
||||
jsbytecode *pc = lastInlinedFrame.pc();
|
||||
if (JSOp(*pc) == JSOP_FUNAPPLY) {
|
||||
if (isScriptedCallee) {
|
||||
MOZ_RELEASE_ASSERT(prevFrameSize % JitStackAlignment == 0,
|
||||
"The ion frame should keep the alignment");
|
||||
}
|
||||
|
@ -52,6 +52,9 @@ CodeGeneratorARM::generatePrologue()
|
||||
if (isProfilerInstrumentationEnabled())
|
||||
masm.profilerEnterFrame(StackPointer, CallTempReg0);
|
||||
|
||||
// Ensure that the Ion frames is properly aligned.
|
||||
masm.assertStackAlignment(JitStackAlignment, 0);
|
||||
|
||||
// Note that this automatically sets MacroAssembler::framePushed().
|
||||
masm.reserveStack(frameSize());
|
||||
masm.checkStackAlignment();
|
||||
|
@ -49,6 +49,9 @@ CodeGeneratorMIPS::generatePrologue()
|
||||
if (isProfilerInstrumentationEnabled())
|
||||
masm.profilerEnterFrame(StackPointer, CallTempReg0);
|
||||
|
||||
// Ensure that the Ion frames is properly aligned.
|
||||
masm.assertStackAlignment(JitStackAlignment, 0);
|
||||
|
||||
// Note that this automatically sets MacroAssembler::framePushed().
|
||||
masm.reserveStack(frameSize());
|
||||
masm.checkStackAlignment();
|
||||
|
@ -48,6 +48,9 @@ CodeGeneratorX86Shared::generatePrologue()
|
||||
if (isProfilerInstrumentationEnabled())
|
||||
masm.profilerEnterFrame(StackPointer, CallTempReg0);
|
||||
|
||||
// Ensure that the Ion frames is properly aligned.
|
||||
masm.assertStackAlignment(JitStackAlignment, 0);
|
||||
|
||||
// Note that this automatically sets MacroAssembler::framePushed().
|
||||
masm.reserveStack(frameSize());
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user