mirror of
				https://github.com/bytecodealliance/wasm-micro-runtime.git
				synced 2025-10-31 13:17:31 +00:00 
			
		
		
		
	Calculate func_index instead of adding an extra field to wasm frame
This commit is contained in:
		
							parent
							
								
									9ff8052329
								
							
						
					
					
						commit
						6bfc08849a
					
				|  | @ -26,8 +26,6 @@ typedef struct WASMInterpFrame { | |||
|     /* Instruction pointer of the bytecode array.  */ | ||||
|     uint8 *ip; | ||||
| 
 | ||||
|     uint32 func_index; | ||||
| 
 | ||||
| #if WASM_ENABLE_FAST_JIT != 0 | ||||
|     uint8 *jitted_return_addr; | ||||
| #endif | ||||
|  |  | |||
|  | @ -1264,11 +1264,9 @@ wasm_interp_call_func_native(WASMModuleInstance *module_inst, | |||
|     init_frame_refs(frame_ref, local_cell_num, cur_func); | ||||
| #endif | ||||
| 
 | ||||
|     cur_func_index = (uint32)(cur_func - module_inst->e->functions); | ||||
|     frame->func_index = cur_func_index; | ||||
| 
 | ||||
|     wasm_exec_env_set_cur_frame(exec_env, frame); | ||||
| 
 | ||||
|     cur_func_index = (uint32)(cur_func - module_inst->e->functions); | ||||
|     bh_assert(cur_func_index < module_inst->module->import_function_count); | ||||
|     if (!func_import->call_conv_wasm_c_api) { | ||||
|         native_func_pointer = module_inst->import_func_ptrs[cur_func_index]; | ||||
|  |  | |||
|  | @ -1205,11 +1205,9 @@ wasm_interp_call_func_native(WASMModuleInstance *module_inst, | |||
|     init_frame_refs(frame->frame_ref, local_cell_num, cur_func); | ||||
| #endif | ||||
| 
 | ||||
|     cur_func_index = (uint32)(cur_func - module_inst->e->functions); | ||||
|     frame->func_index = cur_func_index; | ||||
| 
 | ||||
|     wasm_exec_env_set_cur_frame(exec_env, frame); | ||||
| 
 | ||||
|     cur_func_index = (uint32)(cur_func - module_inst->e->functions); | ||||
|     bh_assert(cur_func_index < module_inst->module->import_function_count); | ||||
|     if (!func_import->call_conv_wasm_c_api) { | ||||
|         native_func_pointer = module_inst->import_func_ptrs[cur_func_index]; | ||||
|  | @ -6034,7 +6032,6 @@ wasm_interp_call_func_bytecode(WASMModuleInstance *module, | |||
| 
 | ||||
|             /* Initialize the interpreter context. */ | ||||
|             frame->function = cur_func; | ||||
|             frame->func_index = (uint32)(cur_func - module->e->functions); | ||||
|             frame_ip = wasm_get_func_code(cur_func); | ||||
|             frame_ip_end = wasm_get_func_code_end(cur_func); | ||||
| 
 | ||||
|  |  | |||
|  | @ -4222,7 +4222,8 @@ wasm_interp_iterate_callstack(WASMExecEnv *exec_env, | |||
|            && (uint8_t *)cur_frame + sizeof(WASMInterpFrame) <= top_boundary) { | ||||
|         record_frame.instance = module_inst; | ||||
|         record_frame.module_offset = 0; | ||||
|         record_frame.func_index = cur_frame->func_index; | ||||
|         // It's safe to dereference module_inst->e because "e" is asigned only once in wasm_instantiate
 | ||||
|         record_frame.func_index = (uint32)(cur_frame->function - module_inst->e->functions); | ||||
|         if (!frame_handler(user_data, &record_frame)) { | ||||
|             break; | ||||
|         } | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 Georgii Rylov
						Georgii Rylov