From c03d67a4ff74a018069be37854d22beb72c0aa39 Mon Sep 17 00:00:00 2001 From: Dan Gohman Date: Thu, 7 Jun 2018 17:01:41 -0700 Subject: [PATCH] Update for wasm memory instruction renaming. The wasm spec renamed `grow_memory` and `current_memory` to `memory.grow` and `memory.size`, respectively. Update cretonne's names to follow. Also, update to wasmparser 0.17.0, which also renames its corresponding operators. --- lib/wasm/Cargo.toml | 2 +- lib/wasm/src/code_translator.rs | 10 +++++----- lib/wasm/src/environ/dummy.rs | 4 ++-- lib/wasm/src/environ/spec.rs | 8 ++++---- 4 files changed, 12 insertions(+), 12 deletions(-) diff --git a/lib/wasm/Cargo.toml b/lib/wasm/Cargo.toml index ebecc70999..60fa48a776 100644 --- a/lib/wasm/Cargo.toml +++ b/lib/wasm/Cargo.toml @@ -9,7 +9,7 @@ readme = "README.md" keywords = ["webassembly", "wasm"] [dependencies] -wasmparser = { version = "0.16.1", default-features = false } +wasmparser = { version = "0.17.0", default-features = false } cretonne-codegen = { path = "../codegen", version = "0.9.0", default-features = false } cretonne-frontend = { path = "../frontend", version = "0.9.0", default-features = false } hashmap_core = { version = "0.1.6", optional = true } diff --git a/lib/wasm/src/code_translator.rs b/lib/wasm/src/code_translator.rs index 1d5386184e..4b92c2ccc3 100644 --- a/lib/wasm/src/code_translator.rs +++ b/lib/wasm/src/code_translator.rs @@ -16,7 +16,7 @@ //! //! - the loads and stores need the memory base address; //! - the `get_global` et `set_global` instructions depends on how the globals are implemented; -//! - `current_memory` and `grow_memory` are runtime functions; +//! - `memory.size` and `memory.grow` are runtime functions; //! - `call_indirect` has to translate the function index into the address of where this //! is; //! @@ -398,18 +398,18 @@ pub fn translate_operator( * Memory management is handled by environment. It is usually translated into calls to * special functions. ************************************************************************************/ - Operator::GrowMemory { reserved } => { + Operator::MemoryGrow { reserved } => { // The WebAssembly MVP only supports one linear memory, but we expect the reserved // argument to be a memory index. let heap_index = reserved as MemoryIndex; let heap = state.get_heap(builder.func, reserved, environ); let val = state.pop1(); - state.push1(environ.translate_grow_memory(builder.cursor(), heap_index, heap, val)?) + state.push1(environ.translate_memory_grow(builder.cursor(), heap_index, heap, val)?) } - Operator::CurrentMemory { reserved } => { + Operator::MemorySize { reserved } => { let heap_index = reserved as MemoryIndex; let heap = state.get_heap(builder.func, reserved, environ); - state.push1(environ.translate_current_memory(builder.cursor(), heap_index, heap)?); + state.push1(environ.translate_memory_size(builder.cursor(), heap_index, heap)?); } /******************************* Load instructions *********************************** * Wasm specifies an integer alignment flag but we drop it in Cretonne. diff --git a/lib/wasm/src/environ/dummy.rs b/lib/wasm/src/environ/dummy.rs index 4794524b5a..7b71f8b69e 100644 --- a/lib/wasm/src/environ/dummy.rs +++ b/lib/wasm/src/environ/dummy.rs @@ -261,7 +261,7 @@ impl<'dummy_environment> FuncEnvironment for DummyFuncEnvironment<'dummy_environ Ok(pos.ins().Call(ir::Opcode::Call, VOID, callee, args).0) } - fn translate_grow_memory( + fn translate_memory_grow( &mut self, mut pos: FuncCursor, _index: MemoryIndex, @@ -271,7 +271,7 @@ impl<'dummy_environment> FuncEnvironment for DummyFuncEnvironment<'dummy_environ Ok(pos.ins().iconst(I32, -1)) } - fn translate_current_memory( + fn translate_memory_size( &mut self, mut pos: FuncCursor, _index: MemoryIndex, diff --git a/lib/wasm/src/environ/spec.rs b/lib/wasm/src/environ/spec.rs index 5b4ca58301..00882d035f 100644 --- a/lib/wasm/src/environ/spec.rs +++ b/lib/wasm/src/environ/spec.rs @@ -163,7 +163,7 @@ pub trait FuncEnvironment { Ok(pos.ins().call(callee, call_args)) } - /// Translate a `grow_memory` WebAssembly instruction. + /// Translate a `memory.grow` WebAssembly instruction. /// /// The `index` provided identifies the linear memory to grow, and `heap` is the heap reference /// returned by `make_heap` for the same index. @@ -171,7 +171,7 @@ pub trait FuncEnvironment { /// The `val` value is the requested memory size in pages. /// /// Returns the old size (in pages) of the memory. - fn translate_grow_memory( + fn translate_memory_grow( &mut self, pos: FuncCursor, index: MemoryIndex, @@ -179,13 +179,13 @@ pub trait FuncEnvironment { val: ir::Value, ) -> WasmResult; - /// Translates a `current_memory` WebAssembly instruction. + /// Translates a `memory.size` WebAssembly instruction. /// /// The `index` provided identifies the linear memory to query, and `heap` is the heap reference /// returned by `make_heap` for the same index. /// /// Returns the size in pages of the memory. - fn translate_current_memory( + fn translate_memory_size( &mut self, pos: FuncCursor, index: MemoryIndex,