| diff --git a/core/iwasm/aot/aot_loader.c b/core/iwasm/aot/aot_loader.c | |
| index 771ef87..5979df1 100644 | |
| --- a/core/iwasm/aot/aot_loader.c | |
| +++ b/core/iwasm/aot/aot_loader.c | |
| @@ -473,7 +473,10 @@ static bool | |
| check_feature_flags(char *error_buf, uint32 error_buf_size, | |
| uint64 feature_flags) | |
| { | |
| -#if WASM_ENABLE_SIMD == 0 | |
| +/* rive patch: aot simd code is precompiled native, so a sw-simd runtime can | |
| + run it as long as no v128 crosses the host boundary; rasc emits neither | |
| + v128 globals nor v128 export signatures */ | |
| +#if WASM_ENABLE_SIMD == 0 && !defined(RIVE_AOT_SIMD_ARTIFACTS) | |
| if (feature_flags & WASM_FEATURE_SIMD_128BIT) { | |
| set_error_buf(error_buf, error_buf_size, | |
| "SIMD is not enabled in this build"); | |
| diff --git a/core/iwasm/common/wasm_loader_common.c b/core/iwasm/common/wasm_loader_common.c | |
| index 4243e91..9b018ca 100644 | |
| --- a/core/iwasm/common/wasm_loader_common.c | |
| +++ b/core/iwasm/common/wasm_loader_common.c | |
| @@ -140,7 +140,9 @@ is_valid_value_type(uint8 type) | |
| #elif WASM_ENABLE_REF_TYPES != 0 | |
| || (type == VALUE_TYPE_FUNCREF || type == VALUE_TYPE_EXTERNREF) | |
| #endif | |
| -#if WASM_ENABLE_SIMD != 0 | |
| +/* rive patch: aot artifacts may carry v128 internally; the interpreter | |
| + wrapper below still rejects it for .wasm modules */ | |
| +#if WASM_ENABLE_SIMD != 0 || defined(RIVE_AOT_SIMD_ARTIFACTS) | |
| || type == VALUE_TYPE_V128 /* 0x7B */ | |
| #endif | |
| ) | |
| diff --git a/core/iwasm/interpreter/wasm_loader.c b/core/iwasm/interpreter/wasm_loader.c | |
| index 3f64472..917540b 100644 | |
| --- a/core/iwasm/interpreter/wasm_loader.c | |
| +++ b/core/iwasm/interpreter/wasm_loader.c | |
| @@ -15534,8 +15534,8 @@ re_scan: | |
| } | |
| PUSH_REF(type_tmp); | |
| if (!(frame_csp_tmp = check_branch_block( | |
| - loader_ctx, &p, p_end, opcode, error_buf, | |
| - error_buf_size))) { | |
| + loader_ctx, &p, p_end, opcode, false, | |
| + error_buf, error_buf_size))) { | |
| goto fail; | |
| } | |
| /* Ignore heap_types */ |