diff --git a/cranelift/wasm/src/code_translator.rs b/cranelift/wasm/src/code_translator.rs index a8db0433bc..4e740b99e4 100644 --- a/cranelift/wasm/src/code_translator.rs +++ b/cranelift/wasm/src/code_translator.rs @@ -1171,23 +1171,26 @@ pub fn translate_operator( )?); } Operator::TableGrow { table } => { + let table_index = TableIndex::from_u32(*table); let delta = state.pop1(); let init_value = state.pop1(); state.push1(environ.translate_table_grow( builder.cursor(), - *table, + table_index, delta, init_value, )?); } Operator::TableGet { table } => { + let table_index = TableIndex::from_u32(*table); let index = state.pop1(); - state.push1(environ.translate_table_get(builder.cursor(), *table, index)?); + state.push1(environ.translate_table_get(builder.cursor(), table_index, index)?); } Operator::TableSet { table } => { + let table_index = TableIndex::from_u32(*table); let value = state.pop1(); let index = state.pop1(); - environ.translate_table_set(builder.cursor(), *table, value, index)?; + environ.translate_table_set(builder.cursor(), table_index, value, index)?; } Operator::TableCopy { dst_table: dst_table_index, @@ -1210,10 +1213,11 @@ pub fn translate_operator( )?; } Operator::TableFill { table } => { + let table_index = TableIndex::from_u32(*table); let len = state.pop1(); let val = state.pop1(); let dest = state.pop1(); - environ.translate_table_fill(builder.cursor(), *table, dest, val, len)?; + environ.translate_table_fill(builder.cursor(), table_index, dest, val, len)?; } Operator::TableInit { segment, diff --git a/cranelift/wasm/src/environ/dummy.rs b/cranelift/wasm/src/environ/dummy.rs index cf8b997c84..d5c9d63e40 100644 --- a/cranelift/wasm/src/environ/dummy.rs +++ b/cranelift/wasm/src/environ/dummy.rs @@ -433,7 +433,7 @@ impl<'dummy_environment> FuncEnvironment for DummyFuncEnvironment<'dummy_environ fn translate_table_grow( &mut self, mut pos: FuncCursor, - _table_index: u32, + _table_index: TableIndex, _delta: ir::Value, _init_value: ir::Value, ) -> WasmResult { @@ -443,7 +443,7 @@ impl<'dummy_environment> FuncEnvironment for DummyFuncEnvironment<'dummy_environ fn translate_table_get( &mut self, mut pos: FuncCursor, - _table_index: u32, + _table_index: TableIndex, _index: ir::Value, ) -> WasmResult { Ok(pos.ins().null(self.reference_type())) @@ -452,7 +452,7 @@ impl<'dummy_environment> FuncEnvironment for DummyFuncEnvironment<'dummy_environ fn translate_table_set( &mut self, _pos: FuncCursor, - _table_index: u32, + _table_index: TableIndex, _value: ir::Value, _index: ir::Value, ) -> WasmResult<()> { @@ -476,7 +476,7 @@ impl<'dummy_environment> FuncEnvironment for DummyFuncEnvironment<'dummy_environ fn translate_table_fill( &mut self, _pos: FuncCursor, - _table_index: u32, + _table_index: TableIndex, _dst: ir::Value, _val: ir::Value, _len: ir::Value, diff --git a/cranelift/wasm/src/environ/spec.rs b/cranelift/wasm/src/environ/spec.rs index 6788599797..aeec47cede 100644 --- a/cranelift/wasm/src/environ/spec.rs +++ b/cranelift/wasm/src/environ/spec.rs @@ -347,7 +347,7 @@ pub trait FuncEnvironment: TargetEnvironment { fn translate_table_grow( &mut self, pos: FuncCursor, - table_index: u32, + table_index: TableIndex, delta: ir::Value, init_value: ir::Value, ) -> WasmResult; @@ -356,7 +356,7 @@ pub trait FuncEnvironment: TargetEnvironment { fn translate_table_get( &mut self, pos: FuncCursor, - table_index: u32, + table_index: TableIndex, index: ir::Value, ) -> WasmResult; @@ -364,7 +364,7 @@ pub trait FuncEnvironment: TargetEnvironment { fn translate_table_set( &mut self, pos: FuncCursor, - table_index: u32, + table_index: TableIndex, value: ir::Value, index: ir::Value, ) -> WasmResult<()>; @@ -387,7 +387,7 @@ pub trait FuncEnvironment: TargetEnvironment { fn translate_table_fill( &mut self, pos: FuncCursor, - table_index: u32, + table_index: TableIndex, dst: ir::Value, val: ir::Value, len: ir::Value, diff --git a/crates/environ/src/func_environ.rs b/crates/environ/src/func_environ.rs index 6433a203e9..6ca501eb9a 100644 --- a/crates/environ/src/func_environ.rs +++ b/crates/environ/src/func_environ.rs @@ -727,7 +727,7 @@ impl<'module_environment> cranelift_wasm::FuncEnvironment for FuncEnvironment<'m fn translate_table_grow( &mut self, _: cranelift_codegen::cursor::FuncCursor<'_>, - _: u32, + _: TableIndex, _: ir::Value, _: ir::Value, ) -> WasmResult { @@ -739,7 +739,7 @@ impl<'module_environment> cranelift_wasm::FuncEnvironment for FuncEnvironment<'m fn translate_table_get( &mut self, _: cranelift_codegen::cursor::FuncCursor<'_>, - _: u32, + _: TableIndex, _: ir::Value, ) -> WasmResult { Err(WasmError::Unsupported( @@ -750,7 +750,7 @@ impl<'module_environment> cranelift_wasm::FuncEnvironment for FuncEnvironment<'m fn translate_table_set( &mut self, _: cranelift_codegen::cursor::FuncCursor<'_>, - _: u32, + _: TableIndex, _: ir::Value, _: ir::Value, ) -> WasmResult<()> { @@ -762,7 +762,7 @@ impl<'module_environment> cranelift_wasm::FuncEnvironment for FuncEnvironment<'m fn translate_table_fill( &mut self, _: cranelift_codegen::cursor::FuncCursor<'_>, - _: u32, + _: TableIndex, _: ir::Value, _: ir::Value, _: ir::Value,