소스 검색

Register missing symbols for f32 to 64 bit integer conversion (#1850)

Huang Qi 3 년 전
부모
커밋
d309091706
2개의 변경된 파일10개의 추가작업 그리고 0개의 파일을 삭제
  1. 8 0
      core/iwasm/aot/aot_intrinsic.c
  2. 2 0
      core/iwasm/aot/aot_reloc.h

+ 8 - 0
core/iwasm/aot/aot_intrinsic.c

@@ -58,6 +58,8 @@ static const aot_intrinsic g_intrinsic_mapping[] = {
     { "i32_trunc_f64_u", "aot_intrinsic_f64_to_u32", AOT_INTRINSIC_FLAG_F64_TO_U32 },
     { "i32_trunc_f64_s", "aot_intrinsic_f64_to_i32", AOT_INTRINSIC_FLAG_F64_TO_I32 },
     { "i64_trunc_f64_u", "aot_intrinsic_f64_to_u64", AOT_INTRINSIC_FLAG_F64_TO_U64 },
+    { "i64_trunc_f32_s", "aot_intrinsic_f32_to_i64", AOT_INTRINSIC_FLAG_F32_TO_I64 },
+    { "i64_trunc_f32_u", "aot_intrinsic_f32_to_u64", AOT_INTRINSIC_FLAG_F32_TO_U64 },
     { "i64_trunc_f64_s", "aot_intrinsic_f64_to_i64", AOT_INTRINSIC_FLAG_F64_TO_I64 },
     { "f32_demote_f64", "aot_intrinsic_f64_to_f32", AOT_INTRINSIC_FLAG_F64_TO_F32 },
     { "f64_promote_f32", "aot_intrinsic_f32_to_f64", AOT_INTRINSIC_FLAG_F32_TO_F64 },
@@ -635,6 +637,12 @@ add_f64_common_intrinsics(AOTCompContext *comp_ctx)
     add_intrinsic_capability(comp_ctx, AOT_INTRINSIC_FLAG_F64_FADD);
     add_intrinsic_capability(comp_ctx, AOT_INTRINSIC_FLAG_F64_FSUB);
     add_intrinsic_capability(comp_ctx, AOT_INTRINSIC_FLAG_F64_FMUL);
+    add_intrinsic_capability(comp_ctx, AOT_INTRINSIC_FLAG_F64_MIN);
+    add_intrinsic_capability(comp_ctx, AOT_INTRINSIC_FLAG_F64_MAX);
+    add_intrinsic_capability(comp_ctx, AOT_INTRINSIC_FLAG_F64_CEIL);
+    add_intrinsic_capability(comp_ctx, AOT_INTRINSIC_FLAG_F64_FLOOR);
+    add_intrinsic_capability(comp_ctx, AOT_INTRINSIC_FLAG_F64_TRUNC);
+    add_intrinsic_capability(comp_ctx, AOT_INTRINSIC_FLAG_F64_RINT);
     add_intrinsic_capability(comp_ctx, AOT_INTRINSIC_FLAG_F64_FDIV);
     add_intrinsic_capability(comp_ctx, AOT_INTRINSIC_FLAG_F64_SQRT);
     add_intrinsic_capability(comp_ctx, AOT_INTRINSIC_FLAG_F64_CMP);

+ 2 - 0
core/iwasm/aot/aot_reloc.h

@@ -101,6 +101,8 @@ typedef struct {
     REG_SYM(aot_intrinsic_f64_to_f32),    \
     REG_SYM(aot_intrinsic_f32_to_i32),    \
     REG_SYM(aot_intrinsic_f32_to_u32),    \
+    REG_SYM(aot_intrinsic_f32_to_i64),    \
+    REG_SYM(aot_intrinsic_f32_to_u64),    \
     REG_SYM(aot_intrinsic_f64_to_i32),    \
     REG_SYM(aot_intrinsic_f64_to_u32),    \
     REG_SYM(aot_intrinsic_f64_to_i64),    \