mirror of
https://github.com/bytecodealliance/wasm-micro-runtime.git
synced 2025-11-27 10:00:59 +00:00
Merge commit from fork
* fix: remove SIMD prefix handling from interpreter and update opcode definitions * test: add case for classic interpreter handling of unsupported SIMD opcodes
This commit is contained in:
parent
33fdc4a671
commit
071e2aaed5
|
|
@ -6580,12 +6580,10 @@ wasm_interp_call_func_bytecode(WASMModuleInstance *module,
|
||||||
HANDLE_OP(WASM_OP_CATCH_ALL)
|
HANDLE_OP(WASM_OP_CATCH_ALL)
|
||||||
HANDLE_OP(EXT_OP_TRY)
|
HANDLE_OP(EXT_OP_TRY)
|
||||||
#endif
|
#endif
|
||||||
#if WASM_ENABLE_JIT != 0 && WASM_ENABLE_SIMD != 0
|
|
||||||
/* SIMD isn't supported by interpreter, but when JIT is
|
/* SIMD isn't supported by interpreter, but when JIT is
|
||||||
enabled, `iwasm --interp <wasm_file>` may be run to
|
enabled, `iwasm --interp <wasm_file>` may be run to
|
||||||
trigger the SIMD opcode in interpreter */
|
trigger the SIMD opcode in interpreter */
|
||||||
HANDLE_OP(WASM_OP_SIMD_PREFIX)
|
HANDLE_OP(WASM_OP_SIMD_PREFIX)
|
||||||
#endif
|
|
||||||
HANDLE_OP(WASM_OP_UNUSED_0x16)
|
HANDLE_OP(WASM_OP_UNUSED_0x16)
|
||||||
HANDLE_OP(WASM_OP_UNUSED_0x17)
|
HANDLE_OP(WASM_OP_UNUSED_0x17)
|
||||||
HANDLE_OP(WASM_OP_UNUSED_0x27)
|
HANDLE_OP(WASM_OP_UNUSED_0x27)
|
||||||
|
|
|
||||||
|
|
@ -790,13 +790,6 @@ typedef enum WASMAtomicEXTOpcode {
|
||||||
#endif
|
#endif
|
||||||
#define SET_GOTO_TABLE_ELEM(opcode) [opcode] = HANDLE_OPCODE(opcode)
|
#define SET_GOTO_TABLE_ELEM(opcode) [opcode] = HANDLE_OPCODE(opcode)
|
||||||
|
|
||||||
#if WASM_ENABLE_SIMDE != 0
|
|
||||||
#define SET_GOTO_TABLE_SIMD_PREFIX_ELEM() \
|
|
||||||
SET_GOTO_TABLE_ELEM(WASM_OP_SIMD_PREFIX),
|
|
||||||
#else
|
|
||||||
#define SET_GOTO_TABLE_SIMD_PREFIX_ELEM()
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if WASM_ENABLE_SIMDE != 0
|
#if WASM_ENABLE_SIMDE != 0
|
||||||
#define DEF_EXT_V128_HANDLE() \
|
#define DEF_EXT_V128_HANDLE() \
|
||||||
SET_GOTO_TABLE_ELEM(EXT_OP_SET_LOCAL_FAST_V128), /* 0xdd */ \
|
SET_GOTO_TABLE_ELEM(EXT_OP_SET_LOCAL_FAST_V128), /* 0xdd */ \
|
||||||
|
|
@ -1038,7 +1031,7 @@ typedef enum WASMAtomicEXTOpcode {
|
||||||
HANDLE_OPCODE(EXT_OP_TRY), /* 0xdb */ \
|
HANDLE_OPCODE(EXT_OP_TRY), /* 0xdb */ \
|
||||||
SET_GOTO_TABLE_ELEM(WASM_OP_GC_PREFIX), /* 0xfb */ \
|
SET_GOTO_TABLE_ELEM(WASM_OP_GC_PREFIX), /* 0xfb */ \
|
||||||
SET_GOTO_TABLE_ELEM(WASM_OP_MISC_PREFIX), /* 0xfc */ \
|
SET_GOTO_TABLE_ELEM(WASM_OP_MISC_PREFIX), /* 0xfc */ \
|
||||||
SET_GOTO_TABLE_SIMD_PREFIX_ELEM() /* 0xfd */ \
|
SET_GOTO_TABLE_ELEM(WASM_OP_SIMD_PREFIX), /* 0xfd */ \
|
||||||
SET_GOTO_TABLE_ELEM(WASM_OP_ATOMIC_PREFIX), /* 0xfe */ \
|
SET_GOTO_TABLE_ELEM(WASM_OP_ATOMIC_PREFIX), /* 0xfe */ \
|
||||||
DEF_DEBUG_BREAK_HANDLE() DEF_EXT_V128_HANDLE() \
|
DEF_DEBUG_BREAK_HANDLE() DEF_EXT_V128_HANDLE() \
|
||||||
};
|
};
|
||||||
|
|
|
||||||
BIN
tests/regression/ba-issues/issues/issue-980001/v128.wasm
Normal file
BIN
tests/regression/ba-issues/issues/issue-980001/v128.wasm
Normal file
Binary file not shown.
13
tests/regression/ba-issues/issues/issue-980001/v128.wat
Normal file
13
tests/regression/ba-issues/issues/issue-980001/v128.wat
Normal file
|
|
@ -0,0 +1,13 @@
|
||||||
|
(module
|
||||||
|
(type (;0;) (func))
|
||||||
|
(func (;0;) (type 0)
|
||||||
|
i32.const 0
|
||||||
|
i32.const 16
|
||||||
|
v128.load
|
||||||
|
i32.const 32
|
||||||
|
v128.load
|
||||||
|
i64x2.eq
|
||||||
|
v128.store)
|
||||||
|
(memory (;0;) 1 1)
|
||||||
|
(export "mem" (memory 0))
|
||||||
|
(export "main" (func 0)))
|
||||||
|
|
@ -1802,6 +1802,22 @@
|
||||||
"stdout content": "Exception: unreachable",
|
"stdout content": "Exception: unreachable",
|
||||||
"description": "no 'frame offset overflow'"
|
"description": "no 'frame offset overflow'"
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"deprecated": false,
|
||||||
|
"ids": [
|
||||||
|
980001
|
||||||
|
],
|
||||||
|
"runtime": "iwasm-llvm-jit",
|
||||||
|
"file": "v128.wasm",
|
||||||
|
"mode": "classic-interp",
|
||||||
|
"options": "-f main",
|
||||||
|
"argument": "",
|
||||||
|
"expected return": {
|
||||||
|
"ret code": 1,
|
||||||
|
"stdout content": "Exception: unsupported opcode",
|
||||||
|
"description": "classic-interp will exit gracefully when meeting simd opcodes"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user