@@ -451,9 +451,9 @@ assign_table_init_value(AOTModuleInstance *module_inst, AOTModule *module,
451451#endif /* end of WASM_ENABLE_GC != 0 */
452452
453453static bool
454- get_init_expr_recursive (AOTModuleInstance * module_inst , AOTModule * module ,
455- InitializerExpression * expr , WASMValue * value ,
456- char * error_buf , uint32 error_buf_size )
454+ get_init_value_recursive (AOTModuleInstance * module_inst , AOTModule * module ,
455+ InitializerExpression * expr , WASMValue * value ,
456+ char * error_buf , uint32 error_buf_size )
457457{
458458 uint8 flag = expr -> init_expr_type ;
459459 switch (flag ) {
@@ -501,14 +501,14 @@ get_init_expr_recursive(AOTModuleInstance *module_inst, AOTModule *module,
501501 case INIT_EXPR_TYPE_I64_MUL :
502502 {
503503 WASMValue l_value , r_value ;
504- if (!get_init_expr_recursive (module_inst , module ,
505- expr -> u .binary .l_expr , & l_value ,
506- error_buf , error_buf_size )) {
504+ if (!get_init_value_recursive (module_inst , module ,
505+ expr -> u .binary .l_expr , & l_value ,
506+ error_buf , error_buf_size )) {
507507 return false;
508508 }
509- if (!get_init_expr_recursive (module_inst , module ,
510- expr -> u .binary .r_expr , & r_value ,
511- error_buf , error_buf_size )) {
509+ if (!get_init_value_recursive (module_inst , module ,
510+ expr -> u .binary .r_expr , & r_value ,
511+ error_buf , error_buf_size )) {
512512 return false;
513513 }
514514
@@ -580,9 +580,9 @@ global_instantiate(AOTModuleInstance *module_inst, AOTModule *module,
580580#endif
581581 {
582582 WASMValue value ;
583- if (!get_init_expr_recursive (module_inst , module , init_expr ,
584- & value , error_buf ,
585- error_buf_size )) {
583+ if (!get_init_value_recursive (module_inst , module , init_expr ,
584+ & value , error_buf ,
585+ error_buf_size )) {
586586 return false;
587587 }
588588 init_global_data (p , global -> type .val_type , & value );
@@ -845,26 +845,12 @@ tables_instantiate(AOTModuleInstance *module_inst, AOTModule *module,
845845 bh_assert (offset_flag == INIT_EXPR_TYPE_GET_GLOBAL
846846 || offset_flag == INIT_EXPR_TYPE_FUNCREF_CONST
847847 || offset_flag == INIT_EXPR_TYPE_REFNULL_CONST
848- || (tbl_inst -> is_table64
849- ? (offset_flag == INIT_EXPR_TYPE_I64_CONST
850- || offset_flag == INIT_EXPR_TYPE_I64_ADD
851- || offset_flag == INIT_EXPR_TYPE_I64_SUB
852- || offset_flag == INIT_EXPR_TYPE_I64_MUL )
853- : (offset_flag == INIT_EXPR_TYPE_I32_CONST
854- || offset_flag == INIT_EXPR_TYPE_I32_ADD
855- || offset_flag == INIT_EXPR_TYPE_I32_SUB
856- || offset_flag == INIT_EXPR_TYPE_I32_MUL )));
848+ || (tbl_inst -> is_table64 ? is_valid_i64_offset (offset_flag )
849+ : is_valid_i32_offset (offset_flag )));
857850#else
858851 bh_assert (offset_flag == INIT_EXPR_TYPE_GET_GLOBAL
859- || (tbl_inst -> is_table64
860- ? (offset_flag == INIT_EXPR_TYPE_I64_CONST
861- || offset_flag == INIT_EXPR_TYPE_I64_ADD
862- || offset_flag == INIT_EXPR_TYPE_I64_SUB
863- || offset_flag == INIT_EXPR_TYPE_I64_MUL )
864- : (offset_flag == INIT_EXPR_TYPE_I32_CONST
865- || offset_flag == INIT_EXPR_TYPE_I32_ADD
866- || offset_flag == INIT_EXPR_TYPE_I32_SUB
867- || offset_flag == INIT_EXPR_TYPE_I32_MUL )));
852+ || (tbl_inst -> is_table64 ? is_valid_i64_offset (offset_flag )
853+ : is_valid_i32_offset (offset_flag )));
868854#endif
869855
870856 /* Resolve table data base offset */
@@ -891,9 +877,9 @@ tables_instantiate(AOTModuleInstance *module_inst, AOTModule *module,
891877 }
892878 else {
893879 WASMValue offset_value ;
894- if (!get_init_expr_recursive (module_inst , module ,
895- & table_seg -> offset , & offset_value ,
896- error_buf , error_buf_size )) {
880+ if (!get_init_value_recursive (module_inst , module ,
881+ & table_seg -> offset , & offset_value ,
882+ error_buf , error_buf_size )) {
897883 return false;
898884 }
899885 base_offset = (uint32 )offset_value .i32 ;
@@ -1274,14 +1260,8 @@ memories_instantiate(AOTModuleInstance *module_inst, AOTModuleInstance *parent,
12741260 offset_flag = data_seg -> offset .init_expr_type ;
12751261 bh_assert (offset_flag == INIT_EXPR_TYPE_GET_GLOBAL
12761262 || (memory_inst -> is_memory64
1277- ? (offset_flag == INIT_EXPR_TYPE_I64_CONST
1278- || offset_flag == INIT_EXPR_TYPE_I64_ADD
1279- || offset_flag == INIT_EXPR_TYPE_I64_SUB
1280- || offset_flag == INIT_EXPR_TYPE_I64_MUL )
1281- : (offset_flag == INIT_EXPR_TYPE_I32_CONST
1282- || offset_flag == INIT_EXPR_TYPE_I32_ADD
1283- || offset_flag == INIT_EXPR_TYPE_I32_SUB
1284- || offset_flag == INIT_EXPR_TYPE_I32_MUL )));
1263+ ? is_valid_i64_offset (offset_flag )
1264+ : is_valid_i32_offset (offset_flag )));
12851265
12861266 /* Resolve memory data base offset */
12871267 if (offset_flag == INIT_EXPR_TYPE_GET_GLOBAL ) {
@@ -1314,9 +1294,9 @@ memories_instantiate(AOTModuleInstance *module_inst, AOTModuleInstance *parent,
13141294 }
13151295 else {
13161296 WASMValue offset_value ;
1317- if (!get_init_expr_recursive (module_inst , module , & data_seg -> offset ,
1318- & offset_value , error_buf ,
1319- error_buf_size )) {
1297+ if (!get_init_value_recursive (module_inst , module ,
1298+ & data_seg -> offset , & offset_value ,
1299+ error_buf , error_buf_size )) {
13201300 return false;
13211301 }
13221302#if WASM_ENABLE_MEMORY64 != 0
@@ -2238,7 +2218,7 @@ aot_instantiate(AOTModule *module, AOTModuleInstance *parent,
22382218 * (uint32 * )(module_inst -> global_data + data_offset );
22392219 }
22402220 else {
2241- if (!get_init_expr_recursive (
2221+ if (!get_init_value_recursive (
22422222 module_inst , module , & table_init_data -> offset ,
22432223 & offset_value , error_buf , error_buf_size )) {
22442224 goto fail ;
0 commit comments