Skip to content

Commit cd2c216

Browse files
luyahanV8 LUCI CQ
authored andcommitted
[riscv][jspi] Clear EPT entry on stack return
Port commit 54cf5fa Bug: 485784597 Change-Id: I4a7e12d9047f7a4257be4711d9d6645d42f02a38 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/7608971 Commit-Queue: Ji Qiu <[email protected]> Reviewed-by: Ji Qiu <[email protected]> Cr-Commit-Position: refs/heads/main@{#105464}
1 parent 854dee3 commit cd2c216

1 file changed

Lines changed: 7 additions & 5 deletions

File tree

src/builtins/riscv/builtins-riscv.cc

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3836,7 +3836,8 @@ void SwitchStacks(MacroAssembler* masm, ExternalReference fn,
38363836
{
38373837
FrameScope scope(masm, StackFrame::MANUAL);
38383838
DCHECK(old_stack.is_valid());
3839-
bool is_return = fn == ExternalReference::wasm_return_stack();
3839+
bool is_return = fn == ExternalReference::wasm_return_jspi_stack() ||
3840+
fn == ExternalReference::wasm_return_wasmfx_stack();
38403841
int num_args = is_return ? 2 : 5;
38413842
if (maybe_suspender.is_valid()) {
38423843
num_args++;
@@ -3874,8 +3875,9 @@ void ReloadParentStack(MacroAssembler* masm, Register return_reg,
38743875
__ LoadWord(parent, MemOperand(active_stack, wasm::kStackParentOffset));
38753876

38763877
// Switch stack!
3877-
SwitchStacks(masm, ExternalReference::wasm_return_stack(), parent, nullptr,
3878-
no_reg, tmp3, {return_reg, return_value, context, parent});
3878+
SwitchStacks(masm, ExternalReference::wasm_return_jspi_stack(), parent,
3879+
nullptr, no_reg, tmp3,
3880+
{return_reg, return_value, context, parent});
38793881
LoadJumpBuffer(masm, parent, false, tmp3);
38803882
}
38813883

@@ -4228,8 +4230,8 @@ void Builtins::Generate_WasmFXReturn(MacroAssembler* masm) {
42284230
DEFINE_PINNED(parent, a2);
42294231
__ Move(parent, MemOperand(active_stack, wasm::kStackParentOffset));
42304232
DEFINE_REG(scratch);
4231-
SwitchStacks(masm, ExternalReference::wasm_return_stack(), parent, nullptr,
4232-
no_reg, scratch, {parent, arg_buffer});
4233+
SwitchStacks(masm, ExternalReference::wasm_return_wasmfx_stack(), parent,
4234+
nullptr, no_reg, scratch, {parent, arg_buffer});
42334235
LoadJumpBuffer(masm, parent, true, scratch);
42344236
__ Trap();
42354237
}

0 commit comments

Comments
 (0)