Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions core/iwasm/interpreter/wasm_interp_fast.c
Original file line number Diff line number Diff line change
Expand Up @@ -5057,6 +5057,10 @@ wasm_interp_call_func_bytecode(WASMModuleInstance *module,
PUT_I64_TO_ADDR((uint32 *)(frame_lp + local_offset),
GET_I64_FROM_ADDR(frame_lp + addr1));
}
else if (local_type == VALUE_TYPE_V128) {
PUT_V128_TO_ADDR((frame_lp + local_offset),
GET_V128_FROM_ADDR(frame_lp + addr1));
}
#if WASM_ENABLE_GC != 0
else if (wasm_is_type_reftype(local_type)) {
PUT_REF_TO_ADDR((uint32 *)(frame_lp + local_offset),
Expand Down
Binary file not shown.
43 changes: 43 additions & 0 deletions tests/regression/ba-issues/issues/issue-4643/test.wat
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
(module
(memory 1)
(export "memory" (memory 0))

(func $test
;; Add 130 i64 locals (260 slots) to push v128 past offset 256
(local $d0 i64) (local $d1 i64) (local $d2 i64) (local $d3 i64) (local $d4 i64)
(local $d5 i64) (local $d6 i64) (local $d7 i64) (local $d8 i64) (local $d9 i64)
(local $d10 i64) (local $d11 i64) (local $d12 i64) (local $d13 i64) (local $d14 i64)
(local $d15 i64) (local $d16 i64) (local $d17 i64) (local $d18 i64) (local $d19 i64)
(local $d20 i64) (local $d21 i64) (local $d22 i64) (local $d23 i64) (local $d24 i64)
(local $d25 i64) (local $d26 i64) (local $d27 i64) (local $d28 i64) (local $d29 i64)
(local $d30 i64) (local $d31 i64) (local $d32 i64) (local $d33 i64) (local $d34 i64)
(local $d35 i64) (local $d36 i64) (local $d37 i64) (local $d38 i64) (local $d39 i64)
(local $d40 i64) (local $d41 i64) (local $d42 i64) (local $d43 i64) (local $d44 i64)
(local $d45 i64) (local $d46 i64) (local $d47 i64) (local $d48 i64) (local $d49 i64)
(local $d50 i64) (local $d51 i64) (local $d52 i64) (local $d53 i64) (local $d54 i64)
(local $d55 i64) (local $d56 i64) (local $d57 i64) (local $d58 i64) (local $d59 i64)
(local $d60 i64) (local $d61 i64) (local $d62 i64) (local $d63 i64) (local $d64 i64)
(local $d65 i64) (local $d66 i64) (local $d67 i64) (local $d68 i64) (local $d69 i64)
(local $d70 i64) (local $d71 i64) (local $d72 i64) (local $d73 i64) (local $d74 i64)
(local $d75 i64) (local $d76 i64) (local $d77 i64) (local $d78 i64) (local $d79 i64)
(local $d80 i64) (local $d81 i64) (local $d82 i64) (local $d83 i64) (local $d84 i64)
(local $d85 i64) (local $d86 i64) (local $d87 i64) (local $d88 i64) (local $d89 i64)
(local $d90 i64) (local $d91 i64) (local $d92 i64) (local $d93 i64) (local $d94 i64)
(local $d95 i64) (local $d96 i64) (local $d97 i64) (local $d98 i64) (local $d99 i64)
(local $d100 i64) (local $d101 i64) (local $d102 i64) (local $d103 i64) (local $d104 i64)
(local $d105 i64) (local $d106 i64) (local $d107 i64) (local $d108 i64) (local $d109 i64)
(local $d110 i64) (local $d111 i64) (local $d112 i64) (local $d113 i64) (local $d114 i64)
(local $d115 i64) (local $d116 i64) (local $d117 i64) (local $d118 i64) (local $d119 i64)
(local $d120 i64) (local $d121 i64) (local $d122 i64) (local $d123 i64) (local $d124 i64)
(local $d125 i64) (local $d126 i64) (local $d127 i64) (local $d128 i64) (local $d129 i64)

(local $vec v128)

;; Should hit WASM_OP_TEE_LOCAL rather than EXT_OP_TEE_LOCAL_FAST_V128
(v128.const i32x4 1 2 3 4)
(local.tee $vec)
(drop)
)

(export "_start" (func $test))
)
16 changes: 16 additions & 0 deletions tests/regression/ba-issues/running_config.json
Original file line number Diff line number Diff line change
Expand Up @@ -1754,6 +1754,22 @@
"stdout content": "",
"description": "no sanitizer 'heap-buffer-overflow'"
}
},
{
"deprecated": false,
"ids": [
4643
],
"runtime": "iwasm-default-wasi-disabled",
"file": "test.wasm",
"mode": "fast-interp",
"options": "-f _start",
"argument": "",
"expected return": {
"ret code": 0,
"stdout content": "",
"description": "no 'invalid local type'"
}
}
]
}
Loading