Add wamrc AoT compiler building support for Windows(MSVC) (#332)
This commit is contained in:
27
core/iwasm/common/arch/invokeNative_ia32.asm
Normal file
27
core/iwasm/common/arch/invokeNative_ia32.asm
Normal file
@ -0,0 +1,27 @@
|
||||
;
|
||||
; 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
|
||||
@ -13,7 +13,11 @@ file (GLOB c_source_all ${IWASM_COMMON_DIR}/*.c)
|
||||
if (WAMR_BUILD_TARGET STREQUAL "X86_64" OR WAMR_BUILD_TARGET STREQUAL "AMD_64")
|
||||
set (source_all ${c_source_all} ${IWASM_COMMON_DIR}/arch/invokeNative_em64.s)
|
||||
elseif (WAMR_BUILD_TARGET STREQUAL "X86_32")
|
||||
set (source_all ${c_source_all} ${IWASM_COMMON_DIR}/arch/invokeNative_ia32.s)
|
||||
if (WAMR_BUILD_PLATFORM STREQUAL "windows")
|
||||
set (source_all ${c_source_all} ${IWASM_COMMON_DIR}/arch/invokeNative_ia32.asm)
|
||||
else ()
|
||||
set (source_all ${c_source_all} ${IWASM_COMMON_DIR}/arch/invokeNative_ia32.s)
|
||||
endif ()
|
||||
elseif (WAMR_BUILD_TARGET MATCHES "ARM.*")
|
||||
if (WAMR_BUILD_TARGET MATCHES "ARM.*_VFP")
|
||||
set (source_all ${c_source_all} ${IWASM_COMMON_DIR}/arch/invokeNative_arm_vfp.s)
|
||||
|
||||
@ -1785,7 +1785,7 @@ aot_global_set(const AOTModuleInstance *inst_aot,
|
||||
.type;
|
||||
}
|
||||
|
||||
data = inst_aot->global_data.ptr + data_offset;
|
||||
data = (void *)((uint8 *)inst_aot->global_data.ptr + data_offset);
|
||||
switch (val_type_rt) {
|
||||
case VALUE_TYPE_I32:
|
||||
bh_assert(WASM_I32 == v->kind);
|
||||
@ -1834,7 +1834,7 @@ aot_global_get(const AOTModuleInstance *inst_aot,
|
||||
.type;
|
||||
}
|
||||
|
||||
data = inst_aot->global_data.ptr + data_offset;
|
||||
data = (void *)((uint8 *)inst_aot->global_data.ptr + data_offset);
|
||||
switch (val_type_rt) {
|
||||
case VALUE_TYPE_I32:
|
||||
out->kind = WASM_I32;
|
||||
|
||||
@ -91,7 +91,9 @@ struct wasm_export_type_t {
|
||||
};
|
||||
|
||||
/* Runtime Objects */
|
||||
struct wasm_ref_t {};
|
||||
struct wasm_ref_t {
|
||||
uint32 obj;
|
||||
};
|
||||
|
||||
struct wasm_trap_t {
|
||||
wasm_byte_vec_t *message;
|
||||
|
||||
Reference in New Issue
Block a user