Skip to content

Commit aaaab6b

Browse files
chore: update wasmparser to 0.263
Signed-off-by: Henry <mail@henrygressmann.de>
1 parent 7160f7f commit aaaab6b

11 files changed

Lines changed: 64 additions & 64 deletions

File tree

‎Cargo.lock‎

Lines changed: 37 additions & 37 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎Cargo.toml‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,9 +33,9 @@ pretty_env_logger = "0.5"
3333
serde = { version = "1.0", features = ["derive"] }
3434
serde_json = { version = "1.0" }
3535
wasm-testsuite = { version = "0.7" }
36-
wasmparser = { version = "0.261", default-features = false }
37-
wast = "261"
38-
wat = "1.261"
36+
wasmparser = { version = "0.263", default-features = false }
37+
wast = "263"
38+
wat = "1.263"
3939

4040
criterion = { version = "0.8", default-features = false, features = ["cargo_bench_support", "rayon"] }
4141

‎crates/parser/src/lib.rs‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -252,7 +252,7 @@ impl Parser {
252252

253253
for payload in wasmparser::Parser::new(0).parse_all(wasm) {
254254
match payload? {
255-
wasmparser::Payload::CodeSectionStart { count, range, size } => {
255+
wasmparser::Payload::CodeSectionStart { count, unchecked_range: range, size } => {
256256
reader.begin_code_section(count, range, size, validator.as_mut(), &self.options)?;
257257
}
258258
wasmparser::Payload::CodeSectionEntry(function) => {
@@ -305,7 +305,7 @@ impl Parser {
305305
let mut deferred_code_section = None;
306306

307307
match payload {
308-
wasmparser::Payload::CodeSectionStart { count, range, size } => {
308+
wasmparser::Payload::CodeSectionStart { count, unchecked_range: range, size } => {
309309
let defer =
310310
reader.begin_code_section(count, range, size, validator.as_mut(), &self.options)?;
311311

‎crates/parser/src/macros.rs‎

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -95,11 +95,7 @@ pub(crate) mod visit {
9595
$visit:ident $(($lane:ident: $ty:ty))? => $instr:ident $([$family:ident($($rule_arg:expr),*)])?
9696
) => {
9797
fn $visit(&mut self, memarg: wasmparser::MemArg $(, $lane: $ty)?) -> Self::Output {
98-
let address = self.metadata.memory_size(memarg.memory)?;
99-
self.mark_memory(memarg.memory);
100-
let memory_arg_idx = self.push128(tinywasm_types::Operand128::<
101-
tinywasm_types::MemoryOperand,
102-
>::new(memarg.offset, memarg.memory))?;
98+
let (address, memory_arg_idx) = self.memory_operand(memarg)?;
10399
lowering_ops!(@emit self address(address) [$($input),*] => [$($output),*]
104100
$instr(lowering_ops!(@memory_arg memory_arg_idx $(, $lane)?)) $([$family($($rule_arg),*)])?)
105101
}
@@ -115,11 +111,7 @@ pub(crate) mod visit {
115111
if memarg.align != ($width as u32).trailing_zeros() as u8 {
116112
return Err(crate::ParseError::Other("invalid atomic alignment".into()));
117113
}
118-
let address = self.metadata.memory_size(memarg.memory)?;
119-
self.mark_memory(memarg.memory);
120-
let memory = self.push128(tinywasm_types::Operand128::<tinywasm_types::MemoryOperand>::new(
121-
memarg.offset, memarg.memory,
122-
))?;
114+
let (address, memory) = self.memory_operand(memarg)?;
123115
let is_64 = lowering_ops!(@atomic_is64 [$($input),*] [$($output),*]);
124116
let arg = tinywasm_types::AtomicArg::new(
125117
memory, tinywasm_types::AtomicWidth::from_bytes($width), is_64, tinywasm_types::AtomicOp::$op,

‎crates/parser/src/visit.rs‎

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@ use alloc::{
1111
vec::Vec,
1212
};
1313
use tinywasm_types::{
14-
AtomicWaitOp, BinOp, BinOp128, CmpOp, ExceptionHandler, Global, Import, ImportKind, Instruction, MemoryType,
15-
Operand64, Operand64Idx, Operand128, Operand128Idx, StorageType, TableDefinition, TagType, TypeSection,
14+
AtomicWaitOp, BinOp, BinOp128, CmpOp, ExceptionHandler, Global, Import, ImportKind, Instruction, MemoryOperand,
15+
MemoryType, Operand64, Operand64Idx, Operand128, Operand128Idx, StorageType, TableDefinition, TagType, TypeSection,
1616
ValueCounts, ValueLane, WasmFunctionData,
1717
};
1818
use wasmparser::{FunctionBody, OperatorsReader, OperatorsReaderAllocations, VisitSimdOperator};
@@ -233,13 +233,21 @@ impl<'a> FunctionBuilder<'a> {
233233
self.uses_local_memory |= memory >= self.metadata.imported_memories;
234234
}
235235

236+
fn memory_operand(&mut self, memarg: wasmparser::MemArg) -> Result<(ValueLane, Operand128Idx<MemoryOperand>)> {
237+
let wasmparser::MemArgTarget::Memory(memory) = memarg.target else {
238+
return Err(crate::ParseError::UnsupportedOperator("multibyte array access".into()));
239+
};
240+
let address = self.metadata.memory_size(memory)?;
241+
self.mark_memory(memory);
242+
let operand = self.push128(Operand128::<MemoryOperand>::new(memarg.offset, memory))?;
243+
Ok((address, operand))
244+
}
245+
236246
fn atomic_wait(&mut self, memarg: wasmparser::MemArg, width: u8, op: AtomicWaitOp) -> Result<()> {
237247
if memarg.align != width.trailing_zeros() as u8 {
238248
return Err(crate::ParseError::Other("invalid atomic alignment".into()));
239249
}
240-
let address = self.metadata.memory_size(memarg.memory)?;
241-
self.mark_memory(memarg.memory);
242-
let memory = self.push128(Operand128::<tinywasm_types::MemoryOperand>::new(memarg.offset, memarg.memory))?;
250+
let (address, memory) = self.memory_operand(memarg)?;
243251
let inputs: &[ValueLane] = match op {
244252
AtomicWaitOp::Notify => &[address, ValueLane::S32],
245253
AtomicWaitOp::Wait32 => &[address, ValueLane::S32, ValueLane::S64],
@@ -572,7 +580,7 @@ impl<'a> wasmparser::VisitOperator<'a> for FunctionBuilder<'_> {
572580

573581
wasmparser::for_each_visit_operator!(impl_visit_operator);
574582

575-
fn visit_atomic_fence(&mut self) -> Self::Output {
583+
fn visit_atomic_fence(&mut self, _ordering: wasmparser::Ordering) -> Self::Output {
576584
self.emit(&[], &[], Instruction::AtomicFence)
577585
}
578586

‎crates/tinywasm/tests/generated/wasm-custom-page-sizes.csv‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,4 @@
33
0.9.1,207,0,[{"name":"binary.wast","passed":127,"failed":0},{"name":"custom-page-sizes-invalid.wast","passed":23,"failed":0},{"name":"custom-page-sizes.wast","passed":45,"failed":0},{"name":"memory_max.wast","passed":6,"failed":0},{"name":"memory_max_i64.wast","passed":6,"failed":0}]
44
0.10.0,207,0,[{"name":"binary.wast","passed":127,"failed":0},{"name":"custom-page-sizes-invalid.wast","passed":23,"failed":0},{"name":"custom-page-sizes.wast","passed":45,"failed":0},{"name":"memory_max.wast","passed":6,"failed":0},{"name":"memory_max_i64.wast","passed":6,"failed":0}]
55
0.11.0-pre.0,207,0,[{"name":"binary.wast","passed":127,"failed":0},{"name":"custom-page-sizes-invalid.wast","passed":23,"failed":0},{"name":"custom-page-sizes.wast","passed":45,"failed":0},{"name":"memory_max.wast","passed":6,"failed":0},{"name":"memory_max_i64.wast","passed":6,"failed":0}]
6-
0.11.0,207,0,[{"name":"binary.wast","passed":127,"failed":0},{"name":"custom-page-sizes-invalid.wast","passed":23,"failed":0},{"name":"custom-page-sizes.wast","passed":45,"failed":0},{"name":"memory_max.wast","passed":6,"failed":0},{"name":"memory_max_i64.wast","passed":6,"failed":0}]
6+
0.11.0,209,0,[{"name":"binary.wast","passed":129,"failed":0},{"name":"custom-page-sizes-invalid.wast","passed":23,"failed":0},{"name":"custom-page-sizes.wast","passed":45,"failed":0},{"name":"memory_max.wast","passed":6,"failed":0},{"name":"memory_max_i64.wast","passed":6,"failed":0}]
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
0.11.0,105,0,[{"name":"tag.wast","passed":10,"failed":0},{"name":"throw.wast","passed":13,"failed":0},{"name":"throw_ref.wast","passed":15,"failed":0},{"name":"try_table.wast","passed":67,"failed":0}]
1+
0.11.0,110,0,[{"name":"cast.wast","passed":5,"failed":0},{"name":"tag.wast","passed":10,"failed":0},{"name":"throw.wast","passed":13,"failed":0},{"name":"throw_ref.wast","passed":15,"failed":0},{"name":"try_table.wast","passed":67,"failed":0}]
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
0.9.0,80,703,[{"name":"array.wast","passed":6,"failed":48},{"name":"array_copy.wast","passed":4,"failed":31},{"name":"array_fill.wast","passed":3,"failed":27},{"name":"array_init_data.wast","passed":2,"failed":44},{"name":"array_init_elem.wast","passed":3,"failed":33},{"name":"array_new_data.wast","passed":0,"failed":28},{"name":"array_new_elem.wast","passed":0,"failed":24},{"name":"binary-gc.wast","passed":1,"failed":0},{"name":"br_on_cast.wast","passed":6,"failed":31},{"name":"br_on_cast_fail.wast","passed":6,"failed":31},{"name":"extern.wast","passed":0,"failed":18},{"name":"i31.wast","passed":2,"failed":71},{"name":"ref_cast.wast","passed":0,"failed":45},{"name":"ref_eq.wast","passed":6,"failed":83},{"name":"ref_test.wast","passed":0,"failed":71},{"name":"struct.wast","passed":5,"failed":25},{"name":"type-subtyping.wast","passed":36,"failed":93}]
22
0.10.0,80,704,[{"name":"array.wast","passed":6,"failed":48},{"name":"array_copy.wast","passed":4,"failed":31},{"name":"array_fill.wast","passed":3,"failed":27},{"name":"array_init_data.wast","passed":2,"failed":44},{"name":"array_init_elem.wast","passed":3,"failed":33},{"name":"array_new_data.wast","passed":0,"failed":28},{"name":"array_new_elem.wast","passed":0,"failed":24},{"name":"binary-gc.wast","passed":1,"failed":0},{"name":"br_on_cast.wast","passed":6,"failed":31},{"name":"br_on_cast_fail.wast","passed":6,"failed":31},{"name":"extern.wast","passed":0,"failed":18},{"name":"i31.wast","passed":2,"failed":71},{"name":"ref_cast.wast","passed":0,"failed":45},{"name":"ref_eq.wast","passed":6,"failed":83},{"name":"ref_test.wast","passed":0,"failed":71},{"name":"struct.wast","passed":5,"failed":25},{"name":"type-subtyping.wast","passed":36,"failed":94}]
33
0.11.0-pre.0,784,0,[{"name":"array.wast","passed":54,"failed":0},{"name":"array_copy.wast","passed":35,"failed":0},{"name":"array_fill.wast","passed":30,"failed":0},{"name":"array_init_data.wast","passed":46,"failed":0},{"name":"array_init_elem.wast","passed":36,"failed":0},{"name":"array_new_data.wast","passed":28,"failed":0},{"name":"array_new_elem.wast","passed":24,"failed":0},{"name":"binary-gc.wast","passed":1,"failed":0},{"name":"br_on_cast.wast","passed":37,"failed":0},{"name":"br_on_cast_fail.wast","passed":37,"failed":0},{"name":"extern.wast","passed":18,"failed":0},{"name":"i31.wast","passed":73,"failed":0},{"name":"ref_cast.wast","passed":45,"failed":0},{"name":"ref_eq.wast","passed":89,"failed":0},{"name":"ref_test.wast","passed":71,"failed":0},{"name":"struct.wast","passed":30,"failed":0},{"name":"type-subtyping.wast","passed":130,"failed":0}]
4-
0.11.0,785,0,[{"name":"array.wast","passed":54,"failed":0},{"name":"array_copy.wast","passed":35,"failed":0},{"name":"array_fill.wast","passed":30,"failed":0},{"name":"array_init_data.wast","passed":46,"failed":0},{"name":"array_init_elem.wast","passed":36,"failed":0},{"name":"array_new_data.wast","passed":28,"failed":0},{"name":"array_new_elem.wast","passed":24,"failed":0},{"name":"binary-gc.wast","passed":1,"failed":0},{"name":"br_on_cast.wast","passed":37,"failed":0},{"name":"br_on_cast_fail.wast","passed":37,"failed":0},{"name":"extern.wast","passed":18,"failed":0},{"name":"i31.wast","passed":73,"failed":0},{"name":"ref_cast.wast","passed":45,"failed":0},{"name":"ref_eq.wast","passed":89,"failed":0},{"name":"ref_test.wast","passed":71,"failed":0},{"name":"struct.wast","passed":30,"failed":0},{"name":"type-subtyping.wast","passed":131,"failed":0}]
4+
0.11.0,789,0,[{"name":"array.wast","passed":54,"failed":0},{"name":"array_copy.wast","passed":35,"failed":0},{"name":"array_fill.wast","passed":30,"failed":0},{"name":"array_init_data.wast","passed":48,"failed":0},{"name":"array_init_elem.wast","passed":36,"failed":0},{"name":"array_new_data.wast","passed":30,"failed":0},{"name":"array_new_elem.wast","passed":24,"failed":0},{"name":"binary-gc.wast","passed":1,"failed":0},{"name":"br_on_cast.wast","passed":37,"failed":0},{"name":"br_on_cast_fail.wast","passed":37,"failed":0},{"name":"extern.wast","passed":18,"failed":0},{"name":"i31.wast","passed":73,"failed":0},{"name":"ref_cast.wast","passed":45,"failed":0},{"name":"ref_eq.wast","passed":89,"failed":0},{"name":"ref_test.wast","passed":71,"failed":0},{"name":"struct.wast","passed":30,"failed":0},{"name":"type-subtyping.wast","passed":131,"failed":0}]

0 commit comments

Comments
 (0)