|
|
@@ -3451,6 +3451,26 @@ wasm_runtime_invoke_native_raw(WASMExecEnv *exec_env, void *func_ptr,
|
|
|
sizeof(uintptr_t));
|
|
|
break;
|
|
|
}
|
|
|
+#endif
|
|
|
+#if WASM_ENABLE_GC != 0
|
|
|
+ case REF_TYPE_FUNCREF:
|
|
|
+ case REF_TYPE_EXTERNREF:
|
|
|
+ case REF_TYPE_ANYREF:
|
|
|
+ case REF_TYPE_EQREF:
|
|
|
+ case REF_TYPE_HT_NULLABLE:
|
|
|
+ case REF_TYPE_HT_NON_NULLABLE:
|
|
|
+ case REF_TYPE_I31REF:
|
|
|
+ case REF_TYPE_NULLFUNCREF:
|
|
|
+ case REF_TYPE_NULLEXTERNREF:
|
|
|
+ case REF_TYPE_STRUCTREF:
|
|
|
+ case REF_TYPE_ARRAYREF:
|
|
|
+ case REF_TYPE_NULLREF:
|
|
|
+ {
|
|
|
+ bh_memcpy_s(argv_dst, sizeof(uintptr_t), argv_src,
|
|
|
+ sizeof(uintptr_t));
|
|
|
+ argv_src += sizeof(uintptr_t) / sizeof(uint32);
|
|
|
+ break;
|
|
|
+ }
|
|
|
#endif
|
|
|
default:
|
|
|
bh_assert(0);
|
|
|
@@ -3494,6 +3514,25 @@ wasm_runtime_invoke_native_raw(WASMExecEnv *exec_env, void *func_ptr,
|
|
|
argv_ret[0] = externref_idx;
|
|
|
break;
|
|
|
}
|
|
|
+#endif
|
|
|
+#if WASM_ENABLE_GC != 0
|
|
|
+ case REF_TYPE_FUNCREF:
|
|
|
+ case REF_TYPE_EXTERNREF:
|
|
|
+ case REF_TYPE_ANYREF:
|
|
|
+ case REF_TYPE_EQREF:
|
|
|
+ case REF_TYPE_HT_NULLABLE:
|
|
|
+ case REF_TYPE_HT_NON_NULLABLE:
|
|
|
+ case REF_TYPE_I31REF:
|
|
|
+ case REF_TYPE_NULLFUNCREF:
|
|
|
+ case REF_TYPE_NULLEXTERNREF:
|
|
|
+ case REF_TYPE_STRUCTREF:
|
|
|
+ case REF_TYPE_ARRAYREF:
|
|
|
+ case REF_TYPE_NULLREF:
|
|
|
+ {
|
|
|
+ bh_memcpy_s(argv_ret, sizeof(uintptr_t), argv1,
|
|
|
+ sizeof(uintptr_t));
|
|
|
+ break;
|
|
|
+ }
|
|
|
#endif
|
|
|
default:
|
|
|
bh_assert(0);
|