@@ -68,6 +68,7 @@ static const aot_intrinsic g_intrinsic_mapping[] = {
6868 { "f32.const" , NULL , AOT_INTRINSIC_FLAG_F32_CONST },
6969 { "f64.const" , NULL , AOT_INTRINSIC_FLAG_F64_CONST },
7070 { "i64.div_s" , "aot_intrinsic_i64_div_s" , AOT_INTRINSIC_FLAG_I64_DIV_S },
71+ { "i32.div_s" , "aot_intrinsic_i32_div_s" , AOT_INTRINSIC_FLAG_I32_DIV_S },
7172 { "i32.div_u" , "aot_intrinsic_i32_div_u" , AOT_INTRINSIC_FLAG_I32_DIV_U },
7273 { "i32.rem_s" , "aot_intrinsic_i32_rem_s" , AOT_INTRINSIC_FLAG_I32_REM_S },
7374 { "i32.rem_u" , "aot_intrinsic_i32_rem_u" , AOT_INTRINSIC_FLAG_I32_REM_U },
@@ -504,6 +505,12 @@ aot_intrinsic_i64_div_s(int64 l, int64 r)
504505 return l / r ;
505506}
506507
508+ int32
509+ aot_intrinsic_i32_div_s (int32 l , int32 r )
510+ {
511+ return l / r ;
512+ }
513+
507514uint32
508515aot_intrinsic_i32_div_u (uint32 l , uint32 r )
509516{
@@ -593,6 +600,7 @@ add_i64_common_intrinsics(AOTCompContext *comp_ctx)
593600static void
594601add_i32_common_intrinsics (AOTCompContext * comp_ctx )
595602{
603+ add_intrinsic_capability (comp_ctx , AOT_INTRINSIC_FLAG_I32_DIV_S );
596604 add_intrinsic_capability (comp_ctx , AOT_INTRINSIC_FLAG_I32_DIV_U );
597605 add_intrinsic_capability (comp_ctx , AOT_INTRINSIC_FLAG_I32_REM_S );
598606 add_intrinsic_capability (comp_ctx , AOT_INTRINSIC_FLAG_I32_REM_U );
@@ -691,6 +699,7 @@ aot_intrinsic_fill_capability_flags(AOTCompContext *comp_ctx)
691699 return ;
692700
693701 if (!strncmp (comp_ctx -> target_arch , "thumb" , 5 )) {
702+ add_intrinsic_capability (comp_ctx , AOT_INTRINSIC_FLAG_I32_CONST );
694703 add_i32_common_intrinsics (comp_ctx );
695704 if (!strcmp (comp_ctx -> target_cpu , "cortex-m7" )) {
696705 }
@@ -705,6 +714,7 @@ aot_intrinsic_fill_capability_flags(AOTCompContext *comp_ctx)
705714 }
706715 }
707716 else if (!strncmp (comp_ctx -> target_arch , "riscv" , 5 )) {
717+ add_intrinsic_capability (comp_ctx , AOT_INTRINSIC_FLAG_I32_CONST );
708718 /*
709719 * Note: Use builtin intrinsics since hardware float operation
710720 * will cause rodata relocation
0 commit comments