[arm64] Push the full q register before lazy compile

If a lazy compilation happens in between 2 Wasm calls, we need to save
the full Q register, since we can have live v128 values.

Bug: chromium:1161555
Change-Id: I7393d6fbf5133f635a8fd62cd394323d7018f090
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2645694
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#72298}
This commit is contained in:
Ng Zhi An 2021-01-22 17:32:30 -08:00 committed by Commit Bot
parent 3097bf785d
commit 3b302d5cfe

View File

@ -2697,7 +2697,7 @@ void Builtins::Generate_WasmCompileLazy(MacroAssembler* masm) {
constexpr RegList fp_regs =
Register::ListOf(d0, d1, d2, d3, d4, d5, d6, d7);
__ PushXRegList(gp_regs);
__ PushDRegList(fp_regs);
__ PushQRegList(fp_regs);
// Pass instance and function index as explicit arguments to the runtime
// function.
@ -2714,7 +2714,7 @@ void Builtins::Generate_WasmCompileLazy(MacroAssembler* masm) {
__ Mov(x17, kReturnRegister0);
// Restore registers.
__ PopDRegList(fp_regs);
__ PopQRegList(fp_regs);
__ PopXRegList(gp_regs);
}
// Finally, jump to the entrypoint.