From 267d9a1a031868430d0af530de14229ee1ae8609 Mon Sep 17 00:00:00 2001 From: Zxilly Date: Wed, 9 Apr 2025 06:21:38 +0800 Subject: [PATCH] cmd/internal/obj/wasm: use i64 for large return addr --- src/cmd/internal/obj/wasm/wasmobj.go | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/cmd/internal/obj/wasm/wasmobj.go b/src/cmd/internal/obj/wasm/wasmobj.go index 42e5534f3b6254..9a3520f3195098 100644 --- a/src/cmd/internal/obj/wasm/wasmobj.go +++ b/src/cmd/internal/obj/wasm/wasmobj.go @@ -1006,9 +1006,10 @@ func genWasmExportWrapper(s *obj.LSym, appendp func(p *obj.Prog, as obj.As, args // In the unwinding case, we call wasm_pc_f_loop_export to handle stack switch and rewinding, // until a normal return (non-unwinding) back to this function. p = appendp(p, AIf) - p = appendp(p, AI32Const, retAddr) - p = appendp(p, AI32Const, constAddr(16)) - p = appendp(p, AI32ShrU) + p = appendp(p, AI64Const, retAddr) + p = appendp(p, AI64Const, constAddr(16)) + p = appendp(p, AI64ShrU) + p = appendp(p, AI32WrapI64) p = appendp(p, ACall, obj.Addr{Type: obj.TYPE_MEM, Name: obj.NAME_EXTERN, Sym: wasm_pc_f_loop_export}) p = appendp(p, AEnd)