Skip to content

Commit 580e4b5

Browse files
jakobkummerowguybedford
authored andcommitted
deps: V8: backport 910cb91733dc
Original commit message: [wasm][liftoff][arm64] Fix DropExceptionValueAtOffset We cannot exit the iteration early, we must update all entries in the cache state. Fixed: 343748812 Change-Id: I8353acb7bd0edc4b979db92e44d24cb9028fd92b Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5596273 Reviewed-by: Clemens Backes <[email protected]> Commit-Queue: Clemens Backes <[email protected]> Auto-Submit: Jakob Kummerow <[email protected]> Commit-Queue: Jakob Kummerow <[email protected]> Cr-Commit-Position: refs/heads/main@{#94244} Refs: v8/v8@910cb91733dc
1 parent 85039be commit 580e4b5

1 file changed

Lines changed: 6 additions & 5 deletions

File tree

deps/v8/src/wasm/baseline/liftoff-assembler.cc

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -430,12 +430,13 @@ void LiftoffAssembler::DropExceptionValueAtOffset(int offset) {
430430
slot != end; ++slot) {
431431
*slot = *(slot + 1);
432432
stack_offset = NextSpillOffset(slot->kind(), stack_offset);
433-
// Padding could allow us to exit early.
434-
if (slot->offset() == stack_offset) break;
435-
if (slot->is_stack()) {
436-
MoveStackValue(stack_offset, slot->offset(), slot->kind());
433+
// Padding could cause some spill offsets to remain the same.
434+
if (slot->offset() != stack_offset) {
435+
if (slot->is_stack()) {
436+
MoveStackValue(stack_offset, slot->offset(), slot->kind());
437+
}
438+
slot->set_offset(stack_offset);
437439
}
438-
slot->set_offset(stack_offset);
439440
}
440441
cache_state_.stack_state.pop_back();
441442
}

0 commit comments

Comments
 (0)