Revert "[ia32] Restore FP stack check in the deoptimizer"

This reverts commit 0cd8a913a7.

Reason for revert: There are reports of this check failing.
It's still unclear why it's failing and what the implications of
that are. The check had been disabled for many years so it seems
safe to disable it again for now (it's in --debug-code anyways).

Original change's description:
> [ia32] Restore FP stack check in the deoptimizer
>
> This restores the check that was removed in
> https://chromiumcodereview.appspot.com/12300020/
>
> Bug: chromium:736643
>
> Change-Id: I82e218b9f2572953a7f433d713dff0528574eea1
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2848469
> Reviewed-by: Jakob Gruber <jgruber@chromium.org>
> Commit-Queue: Ulan Degenbaev <ulan@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#74168}

Bug: chromium:1208057
Change-Id: I2f8ecfca3f4732583378a5d5b2a38ad636914e1c
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3041673
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Georg Neis <neis@chromium.org>
Commit-Queue: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75837}
This commit is contained in:
Georg Neis 2021-07-21 11:12:59 +00:00 committed by V8 LUCI CQ
parent c73d759bea
commit 930555e2f4
2 changed files with 2 additions and 10 deletions

View File

@ -3986,16 +3986,9 @@ void Generate_DeoptimizationEntry(MacroAssembler* masm,
__ movsd(Operand(esi, dst_offset), xmm0);
}
if (FLAG_debug_code) {
const int kTopMask = 0x3800;
__ push(eax);
__ fwait();
__ fnstsw_ax();
__ test(eax, Immediate(kTopMask));
__ Assert(zero, AbortReason::kFpuTopIsNotZeroInDeoptimizer);
__ pop(eax);
}
// Clear FPU all exceptions.
// TODO(ulan): Find out why the TOP register is not zero here in some cases,
// and check that the generated code never deoptimizes with unbalanced stack.
__ fnclex();
// Mark the stack as not iterable for the CPU profiler which won't be able to

View File

@ -25,7 +25,6 @@ namespace internal {
V(kExpectedBaselineData, "Expected baseline data") \
V(kFunctionDataShouldBeBytecodeArrayOnInterpreterEntry, \
"The function_data field should be a BytecodeArray on interpreter entry") \
V(kFpuTopIsNotZeroInDeoptimizer, "FPU TOP is not zero in deoptimizer") \
V(kInputStringTooLong, "Input string too long") \
V(kInvalidBytecode, "Invalid bytecode") \
V(kInvalidBytecodeAdvance, "Cannot advance current bytecode, ") \