Make emscripten work again

This commit is contained in:
Syrus
2019-01-24 13:04:12 -08:00
parent c745d38a39
commit fc1b255d40
16 changed files with 297 additions and 290 deletions

View File

@ -3,13 +3,13 @@ use libc::{c_int, c_void, memcpy, size_t};
use wasmer_runtime_core::vm::Ctx;
/// emscripten: _emscripten_memcpy_big
pub extern "C" fn _emscripten_memcpy_big(dest: u32, src: u32, len: u32, vmctx: &mut Ctx) -> u32 {
pub extern "C" fn _emscripten_memcpy_big(dest: u32, src: u32, len: u32, ctx: &mut Ctx) -> u32 {
debug!(
"emscripten::_emscripten_memcpy_big {}, {}, {}",
dest, src, len
);
let dest_addr = vmctx.memory(0)[dest as usize] as *mut c_void;
let src_addr = vmctx.memory(0)[src as usize] as *mut c_void;
let dest_addr = emscripten_memory_pointer!(ctx.memory(0), dest) as *mut c_void;
let src_addr = emscripten_memory_pointer!(ctx.memory(0), src) as *mut c_void;
unsafe {
memcpy(dest_addr, src_addr, len as size_t);
}
@ -17,7 +17,7 @@ pub extern "C" fn _emscripten_memcpy_big(dest: u32, src: u32, len: u32, vmctx: &
}
/// emscripten: getTotalMemory
pub extern "C" fn get_total_memory(_vmctx: &mut Ctx) -> u32 {
pub extern "C" fn get_total_memory(_ctx: &mut Ctx) -> u32 {
debug!("emscripten::get_total_memory");
// instance.memories[0].current_pages()
// TODO: Fix implementation
@ -25,7 +25,7 @@ pub extern "C" fn get_total_memory(_vmctx: &mut Ctx) -> u32 {
}
/// emscripten: enlargeMemory
pub extern "C" fn enlarge_memory(_vmctx: &mut Ctx) -> u32 {
pub extern "C" fn enlarge_memory(_ctx: &mut Ctx) -> u32 {
debug!("emscripten::enlarge_memory");
// instance.memories[0].grow(100);
// TODO: Fix implementation