mirror of
				https://github.com/bytecodealliance/wasm-micro-runtime.git
				synced 2025-10-31 05:11:19 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			27 lines
		
	
	
		
			755 B
		
	
	
	
		
			NASM
		
	
	
	
	
	
			
		
		
	
	
			27 lines
		
	
	
		
			755 B
		
	
	
	
		
			NASM
		
	
	
	
	
	
| ;
 | |
| ; Copyright (C) 2019 Intel Corporation.  All rights reserved.
 | |
| ; SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 | |
| ;
 | |
| 
 | |
|     .386
 | |
|     .model flat
 | |
|     .code
 | |
| _invokeNative PROC
 | |
|     push    ebp
 | |
|     mov     ebp,esp
 | |
|     mov     ecx, [ebp+16]          ; ecx = argc */
 | |
|     mov     edx, [ebp+12]          ; edx = argv */
 | |
|     test    ecx, ecx
 | |
|     jz      skip_push_args          ; if ecx == 0, skip pushing arguments */
 | |
|     lea     edx, [edx+ecx*4-4]   ; edx = edx + ecx * 4 - 4 */
 | |
|     sub     edx,esp              ; edx = edx - esp */
 | |
| loop_push:
 | |
|     push    [esp+edx]
 | |
|     loop    loop_push                      ; loop ecx counts */
 | |
| skip_push_args:
 | |
|     mov     edx, [ebp+8]           ; edx = func_ptr */
 | |
|     call    edx
 | |
|     leave
 | |
|     ret
 | |
| _invokeNative ENDP
 | |
| END | 
