Restructure copy implementation to avoid type-indexed block

This commit is contained in:
2026-03-10 21:25:37 +00:00
parent 118e6af896
commit 5369a0969e

View File

@@ -542,20 +542,25 @@
call $next) call $next)
(func $copy (local $src i32) (local $dst i32) (local $n i32) (func $copy (local $src i32) (local $dst i32) (local $n i32)
call $pop local.tee $dst call $pop local.set $dst
call $pop local.tee $src call $pop local.set $src
call $pop local.tee $n call $pop local.set $n
block $done (param i32 i32 i32) block $done
loop $loop (param i32 i32 i32) (result i32 i32 i32) loop $loop
local.get $n
i32.eqz br_if $done i32.eqz br_if $done
local.get $dst
local.get $src
i32.load8_u i32.store8 i32.load8_u i32.store8
local.get $dst i32.const 1 i32.add local.tee $dst
local.get $src i32.const 1 i32.add local.tee $src local.get $dst i32.const 1 i32.add local.set $dst
local.get $n i32.const 1 i32.sub local.tee $n local.get $src i32.const 1 i32.add local.set $src
br $loop local.get $n i32.const 1 i32.sub local.set $n
br $loop
end end
drop drop drop
end end
call $next) call $next)