From 267eaa174727d46b76362a9d7d95a9f1919a47c9 Mon Sep 17 00:00:00 2001 From: YAMAMOTO Takashi Date: Tue, 14 May 2024 13:16:19 +0900 Subject: [PATCH] product-mini/platforms/posix/main.c: Adapt to WASM_MEM_DUAL_BUS_MIRROR (#3427) --- product-mini/platforms/posix/main.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/product-mini/platforms/posix/main.c b/product-mini/platforms/posix/main.c index e4a9404bd..d951de2c9 100644 --- a/product-mini/platforms/posix/main.c +++ b/product-mini/platforms/posix/main.c @@ -887,6 +887,7 @@ main(int argc, char *argv[]) #if WASM_ENABLE_AOT != 0 if (wasm_runtime_is_xip_file(wasm_file_buf, wasm_file_size)) { uint8 *wasm_file_mapped; + uint8 *daddr; int map_prot = MMAP_PROT_READ | MMAP_PROT_WRITE | MMAP_PROT_EXEC; int map_flags = MMAP_MAP_32BIT; @@ -897,8 +898,15 @@ main(int argc, char *argv[]) goto fail1; } - bh_memcpy_s(wasm_file_mapped, wasm_file_size, wasm_file_buf, - wasm_file_size); +#if (WASM_MEM_DUAL_BUS_MIRROR != 0) + daddr = os_get_dbus_mirror(wasm_file_mapped); +#else + daddr = wasm_file_mapped; +#endif + bh_memcpy_s(daddr, wasm_file_size, wasm_file_buf, wasm_file_size); +#if (WASM_MEM_DUAL_BUS_MIRROR != 0) + os_dcache_flush(); +#endif wasm_runtime_free(wasm_file_buf); wasm_file_buf = wasm_file_mapped; is_xip_file = true;