mirror of
https://github.com/bytecodealliance/wasm-micro-runtime.git
synced 2025-05-07 12:16:24 +00:00
Add missing V128 handling in WASM_OP_BR, reported in #4173
This commit is contained in:
parent
5d8fe5dcfd
commit
0702f788fd
|
@ -1013,6 +1013,22 @@ fail:
|
||||||
SET_FRAME_REF((unsigned)(dst_offsets[0] + 1)); \
|
SET_FRAME_REF((unsigned)(dst_offsets[0] + 1)); \
|
||||||
} \
|
} \
|
||||||
} \
|
} \
|
||||||
|
else if (cells[0] == 4) { \
|
||||||
|
PUT_V128_TO_ADDR( \
|
||||||
|
frame_lp + dst_offsets[0], \
|
||||||
|
GET_V128_FROM_ADDR(frame_lp + src_offsets[0])); \
|
||||||
|
/* Ignore constants because they are not reference */ \
|
||||||
|
if (src_offsets[0] >= 0) { \
|
||||||
|
CLEAR_FRAME_REF((unsigned)src_offsets[0]); \
|
||||||
|
CLEAR_FRAME_REF((unsigned)(src_offsets[0] + 1)); \
|
||||||
|
CLEAR_FRAME_REF((unsigned)(src_offsets[0] + 2)); \
|
||||||
|
CLEAR_FRAME_REF((unsigned)(src_offsets[0] + 3)); \
|
||||||
|
SET_FRAME_REF((unsigned)dst_offsets[0]); \
|
||||||
|
SET_FRAME_REF((unsigned)(dst_offsets[0] + 1)); \
|
||||||
|
SET_FRAME_REF((unsigned)(dst_offsets[0] + 2)); \
|
||||||
|
SET_FRAME_REF((unsigned)(dst_offsets[0] + 3)); \
|
||||||
|
} \
|
||||||
|
} \
|
||||||
} \
|
} \
|
||||||
else { \
|
else { \
|
||||||
if (!copy_stack_values(module, frame_lp, arity, frame_ref, \
|
if (!copy_stack_values(module, frame_lp, arity, frame_ref, \
|
||||||
|
@ -1053,6 +1069,11 @@ fail:
|
||||||
frame_lp + dst_offsets[0], \
|
frame_lp + dst_offsets[0], \
|
||||||
GET_I64_FROM_ADDR(frame_lp + src_offsets[0])); \
|
GET_I64_FROM_ADDR(frame_lp + src_offsets[0])); \
|
||||||
} \
|
} \
|
||||||
|
else if (cells[0] == 4) { \
|
||||||
|
PUT_V128_TO_ADDR( \
|
||||||
|
frame_lp + dst_offsets[0], \
|
||||||
|
GET_V128_FROM_ADDR(frame_lp + src_offsets[0])); \
|
||||||
|
} \
|
||||||
} \
|
} \
|
||||||
else { \
|
else { \
|
||||||
if (!copy_stack_values(module, frame_lp, arity, total_cell, \
|
if (!copy_stack_values(module, frame_lp, arity, total_cell, \
|
||||||
|
|
Loading…
Reference in New Issue
Block a user