Coverage Report

Created: 2023-04-25 07:07

/src/wasm-tools/crates/wasmparser/src/binary_reader.rs
Line
Count
Source (jump to first uncovered line)
1
/* Copyright 2018 Mozilla Foundation
2
 *
3
 * Licensed under the Apache License, Version 2.0 (the "License");
4
 * you may not use this file except in compliance with the License.
5
 * You may obtain a copy of the License at
6
 *
7
 *     http://www.apache.org/licenses/LICENSE-2.0
8
 *
9
 * Unless required by applicable law or agreed to in writing, software
10
 * distributed under the License is distributed on an "AS IS" BASIS,
11
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
 * See the License for the specific language governing permissions and
13
 * limitations under the License.
14
 */
15
16
use crate::{limits::*, *};
17
use std::convert::TryInto;
18
use std::error::Error;
19
use std::fmt;
20
use std::marker;
21
use std::ops::Range;
22
use std::str;
23
24
pub(crate) const WASM_MAGIC_NUMBER: &[u8; 4] = b"\0asm";
25
26
/// A binary reader for WebAssembly modules.
27
0
#[derive(Debug, Clone)]
28
pub struct BinaryReaderError {
29
    // Wrap the actual error data in a `Box` so that the error is just one
30
    // word. This means that we can continue returning small `Result`s in
31
    // registers.
32
    pub(crate) inner: Box<BinaryReaderErrorInner>,
33
}
34
35
0
#[derive(Debug, Clone)]
36
pub(crate) struct BinaryReaderErrorInner {
37
    pub(crate) message: String,
38
    pub(crate) offset: usize,
39
    pub(crate) needed_hint: Option<usize>,
40
}
41
42
/// The result for `BinaryReader` operations.
43
pub type Result<T, E = BinaryReaderError> = std::result::Result<T, E>;
44
45
impl Error for BinaryReaderError {}
46
47
impl fmt::Display for BinaryReaderError {
48
0
    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
49
0
        write!(
50
0
            f,
51
0
            "{} (at offset 0x{:x})",
52
0
            self.inner.message, self.inner.offset
53
0
        )
54
0
    }
55
}
56
57
impl BinaryReaderError {
58
    #[cold]
59
34.1k
    pub(crate) fn new(message: impl Into<String>, offset: usize) -> Self {
60
34.1k
        let message = message.into();
61
34.1k
        BinaryReaderError {
62
34.1k
            inner: Box::new(BinaryReaderErrorInner {
63
34.1k
                message,
64
34.1k
                offset,
65
34.1k
                needed_hint: None,
66
34.1k
            }),
67
34.1k
        }
68
34.1k
    }
<wasmparser::binary_reader::BinaryReaderError>::new::<&str>
Line
Count
Source
59
23.3k
    pub(crate) fn new(message: impl Into<String>, offset: usize) -> Self {
60
23.3k
        let message = message.into();
61
23.3k
        BinaryReaderError {
62
23.3k
            inner: Box::new(BinaryReaderErrorInner {
63
23.3k
                message,
64
23.3k
                offset,
65
23.3k
                needed_hint: None,
66
23.3k
            }),
67
23.3k
        }
68
23.3k
    }
<wasmparser::binary_reader::BinaryReaderError>::new::<alloc::string::String>
Line
Count
Source
59
10.8k
    pub(crate) fn new(message: impl Into<String>, offset: usize) -> Self {
60
10.8k
        let message = message.into();
61
10.8k
        BinaryReaderError {
62
10.8k
            inner: Box::new(BinaryReaderErrorInner {
63
10.8k
                message,
64
10.8k
                offset,
65
10.8k
                needed_hint: None,
66
10.8k
            }),
67
10.8k
        }
68
10.8k
    }
69
70
    #[cold]
71
10.8k
    pub(crate) fn fmt(args: fmt::Arguments<'_>, offset: usize) -> Self {
72
10.8k
        BinaryReaderError::new(args.to_string(), offset)
73
10.8k
    }
74
75
    #[cold]
76
10.4M
    pub(crate) fn eof(offset: usize, needed_hint: usize) -> Self {
77
10.4M
        BinaryReaderError {
78
10.4M
            inner: Box::new(BinaryReaderErrorInner {
79
10.4M
                message: "unexpected end-of-file".to_string(),
80
10.4M
                offset,
81
10.4M
                needed_hint: Some(needed_hint),
82
10.4M
            }),
83
10.4M
        }
84
10.4M
    }
85
86
    /// Get this error's message.
87
5.02k
    pub fn message(&self) -> &str {
88
5.02k
        &self.inner.message
89
5.02k
    }
90
91
    /// Get the offset within the Wasm binary where the error occurred.
92
5.02k
    pub fn offset(&self) -> usize {
93
5.02k
        self.inner.offset
94
5.02k
    }
95
}
96
97
/// A binary reader of the WebAssembly structures and types.
98
6.62M
#[derive(Clone, Debug, Hash)]
<wasmparser::binary_reader::BinaryReader as core::clone::Clone>::clone
Line
Count
Source
98
34.8k
#[derive(Clone, Debug, Hash)]
<wasmparser::binary_reader::BinaryReader as core::clone::Clone>::clone
Line
Count
Source
98
6.58M
#[derive(Clone, Debug, Hash)]
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReader as core::clone::Clone>::clone
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReader as core::clone::Clone>::clone
99
pub struct BinaryReader<'a> {
100
    pub(crate) buffer: &'a [u8],
101
    pub(crate) position: usize,
102
    original_offset: usize,
103
    allow_memarg64: bool,
104
}
105
106
impl<'a> BinaryReader<'a> {
107
    /// Constructs `BinaryReader` type.
108
    ///
109
    /// # Examples
110
    /// ```
111
    /// let fn_body = &vec![0x41, 0x00, 0x10, 0x00, 0x0B];
112
    /// let mut reader = wasmparser::BinaryReader::new(fn_body);
113
    /// while !reader.eof() {
114
    ///     let op = reader.read_operator();
115
    ///     println!("{:?}", op)
116
    /// }
117
    /// ```
118
38.7k
    pub fn new(data: &[u8]) -> BinaryReader {
119
38.7k
        BinaryReader {
120
38.7k
            buffer: data,
121
38.7k
            position: 0,
122
38.7k
            original_offset: 0,
123
38.7k
            allow_memarg64: false,
124
38.7k
        }
125
38.7k
    }
126
127
    /// Constructs a `BinaryReader` with an explicit starting offset.
128
82.0M
    pub fn new_with_offset(data: &[u8], original_offset: usize) -> BinaryReader {
129
82.0M
        BinaryReader {
130
82.0M
            buffer: data,
131
82.0M
            position: 0,
132
82.0M
            original_offset,
133
82.0M
            allow_memarg64: false,
134
82.0M
        }
135
82.0M
    }
136
137
    /// Gets the original position of the binary reader.
138
    #[inline]
139
694M
    pub fn original_position(&self) -> usize {
140
694M
        self.original_offset + self.position
141
694M
    }
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReader>::original_position
<wasmparser::binary_reader::BinaryReader>::original_position
Line
Count
Source
139
171M
    pub fn original_position(&self) -> usize {
140
171M
        self.original_offset + self.position
141
171M
    }
<wasmparser::binary_reader::BinaryReader>::original_position
Line
Count
Source
139
522M
    pub fn original_position(&self) -> usize {
140
522M
        self.original_offset + self.position
141
522M
    }
<wasmparser::binary_reader::BinaryReader>::original_position
Line
Count
Source
139
75.0k
    pub fn original_position(&self) -> usize {
140
75.0k
        self.original_offset + self.position
141
75.0k
    }
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReader>::original_position
142
143
    /// Whether or not to allow 64-bit memory arguments in functions.
144
    ///
145
    /// This is intended to be `true` when support for the memory64
146
    /// WebAssembly proposal is also enabled.
147
2.23M
    pub fn allow_memarg64(&mut self, allow: bool) {
148
2.23M
        self.allow_memarg64 = allow;
149
2.23M
    }
150
151
    /// Returns a range from the starting offset to the end of the buffer.
152
6.78M
    pub fn range(&self) -> Range<usize> {
153
6.78M
        self.original_offset..self.original_offset + self.buffer.len()
154
6.78M
    }
155
156
20.0M
    pub(crate) fn remaining_buffer(&self) -> &'a [u8] {
157
20.0M
        &self.buffer[self.position..]
158
20.0M
    }
159
160
147M
    fn ensure_has_byte(&self) -> Result<()> {
161
147M
        if self.position < self.buffer.len() {
162
147M
            Ok(())
163
        } else {
164
669
            Err(BinaryReaderError::eof(self.original_position(), 1))
165
        }
166
147M
    }
167
168
105M
    pub(crate) fn ensure_has_bytes(&self, len: usize) -> Result<()> {
169
105M
        if self.position + len <= self.buffer.len() {
170
95.3M
            Ok(())
171
        } else {
172
10.1M
            let hint = self.position + len - self.buffer.len();
173
10.1M
            Err(BinaryReaderError::eof(self.original_position(), hint))
174
        }
175
105M
    }
176
177
    /// Reads a value of type `T` from this binary reader, advancing the
178
    /// internal position in this reader forward as data is read.
179
    #[inline]
180
381M
    pub fn read<T>(&mut self) -> Result<T>
181
381M
    where
182
381M
        T: FromReader<'a>,
183
381M
    {
184
381M
        T::from_reader(self)
185
381M
    }
<wasmparser::binary_reader::BinaryReader>::read::<wasmparser::readers::core::code::FunctionBody>
Line
Count
Source
180
506k
    pub fn read<T>(&mut self) -> Result<T>
181
506k
    where
182
506k
        T: FromReader<'a>,
183
506k
    {
184
506k
        T::from_reader(self)
185
506k
    }
<wasmparser::binary_reader::BinaryReader>::read::<wasmparser::readers::core::names::IndirectNaming>
Line
Count
Source
180
125k
    pub fn read<T>(&mut self) -> Result<T>
181
125k
    where
182
125k
        T: FromReader<'a>,
183
125k
    {
184
125k
        T::from_reader(self)
185
125k
    }
<wasmparser::binary_reader::BinaryReader>::read::<wasmparser::readers::core::names::Naming>
Line
Count
Source
180
694k
    pub fn read<T>(&mut self) -> Result<T>
181
694k
    where
182
694k
        T: FromReader<'a>,
183
694k
    {
184
694k
        T::from_reader(self)
185
694k
    }
<wasmparser::binary_reader::BinaryReader>::read::<wasmparser::readers::core::types::GlobalType>
Line
Count
Source
180
1.33M
    pub fn read<T>(&mut self) -> Result<T>
181
1.33M
    where
182
1.33M
        T: FromReader<'a>,
183
1.33M
    {
184
1.33M
        T::from_reader(self)
185
1.33M
    }
<wasmparser::binary_reader::BinaryReader>::read::<wasmparser::readers::component::canonicals::CanonicalFunction>
Line
Count
Source
180
212k
    pub fn read<T>(&mut self) -> Result<T>
181
212k
    where
182
212k
        T: FromReader<'a>,
183
212k
    {
184
212k
        T::from_reader(self)
185
212k
    }
<wasmparser::binary_reader::BinaryReader>::read::<wasmparser::readers::component::types::InstanceTypeDeclaration>
Line
Count
Source
180
30.5M
    pub fn read<T>(&mut self) -> Result<T>
181
30.5M
    where
182
30.5M
        T: FromReader<'a>,
183
30.5M
    {
184
30.5M
        T::from_reader(self)
185
30.5M
    }
<wasmparser::binary_reader::BinaryReader>::read::<(&str, wasmparser::readers::component::types::ComponentValType)>
Line
Count
Source
180
16.0M
    pub fn read<T>(&mut self) -> Result<T>
181
16.0M
    where
182
16.0M
        T: FromReader<'a>,
183
16.0M
    {
184
16.0M
        T::from_reader(self)
185
16.0M
    }
<wasmparser::binary_reader::BinaryReader>::read::<wasmparser::readers::core::data::Data>
Line
Count
Source
180
282k
    pub fn read<T>(&mut self) -> Result<T>
181
282k
    where
182
282k
        T: FromReader<'a>,
183
282k
    {
184
282k
        T::from_reader(self)
185
282k
    }
<wasmparser::binary_reader::BinaryReader>::read::<wasmparser::readers::core::types::ValType>
Line
Count
Source
180
39.8M
    pub fn read<T>(&mut self) -> Result<T>
181
39.8M
    where
182
39.8M
        T: FromReader<'a>,
183
39.8M
    {
184
39.8M
        T::from_reader(self)
185
39.8M
    }
<wasmparser::binary_reader::BinaryReader>::read::<wasmparser::readers::core::imports::TypeRef>
Line
Count
Source
180
1.10M
    pub fn read<T>(&mut self) -> Result<T>
181
1.10M
    where
182
1.10M
        T: FromReader<'a>,
183
1.10M
    {
184
1.10M
        T::from_reader(self)
185
1.10M
    }
<wasmparser::binary_reader::BinaryReader>::read::<wasmparser::readers::component::imports::TypeBounds>
Line
Count
Source
180
5.29M
    pub fn read<T>(&mut self) -> Result<T>
181
5.29M
    where
182
5.29M
        T: FromReader<'a>,
183
5.29M
    {
184
5.29M
        T::from_reader(self)
185
5.29M
    }
<wasmparser::binary_reader::BinaryReader>::read::<wasmparser::readers::core::types::HeapType>
Line
Count
Source
180
52.6M
    pub fn read<T>(&mut self) -> Result<T>
181
52.6M
    where
182
52.6M
        T: FromReader<'a>,
183
52.6M
    {
184
52.6M
        T::from_reader(self)
185
52.6M
    }
<wasmparser::binary_reader::BinaryReader>::read::<wasmparser::readers::component::exports::ComponentExport>
Line
Count
Source
180
557k
    pub fn read<T>(&mut self) -> Result<T>
181
557k
    where
182
557k
        T: FromReader<'a>,
183
557k
    {
184
557k
        T::from_reader(self)
185
557k
    }
<wasmparser::binary_reader::BinaryReader>::read::<wasmparser::readers::component::types::CoreType>
Line
Count
Source
180
815
    pub fn read<T>(&mut self) -> Result<T>
181
815
    where
182
815
        T: FromReader<'a>,
183
815
    {
184
815
        T::from_reader(self)
185
815
    }
<wasmparser::binary_reader::BinaryReader>::read::<wasmparser::readers::core::exports::ExternalKind>
Line
Count
Source
180
2.72M
    pub fn read<T>(&mut self) -> Result<T>
181
2.72M
    where
182
2.72M
        T: FromReader<'a>,
183
2.72M
    {
184
2.72M
        T::from_reader(self)
185
2.72M
    }
<wasmparser::binary_reader::BinaryReader>::read::<wasmparser::readers::core::init::ConstExpr>
Line
Count
Source
180
17.4M
    pub fn read<T>(&mut self) -> Result<T>
181
17.4M
    where
182
17.4M
        T: FromReader<'a>,
183
17.4M
    {
184
17.4M
        T::from_reader(self)
185
17.4M
    }
<wasmparser::binary_reader::BinaryReader>::read::<wasmparser::readers::core::types::Type>
Line
Count
Source
180
1.21M
    pub fn read<T>(&mut self) -> Result<T>
181
1.21M
    where
182
1.21M
        T: FromReader<'a>,
183
1.21M
    {
184
1.21M
        T::from_reader(self)
185
1.21M
    }
<wasmparser::binary_reader::BinaryReader>::read::<wasmparser::readers::core::globals::Global>
Line
Count
Source
180
1.05M
    pub fn read<T>(&mut self) -> Result<T>
181
1.05M
    where
182
1.05M
        T: FromReader<'a>,
183
1.05M
    {
184
1.05M
        T::from_reader(self)
185
1.05M
    }
<wasmparser::binary_reader::BinaryReader>::read::<wasmparser::readers::component::aliases::ComponentAlias>
Line
Count
Source
180
2.03M
    pub fn read<T>(&mut self) -> Result<T>
181
2.03M
    where
182
2.03M
        T: FromReader<'a>,
183
2.03M
    {
184
2.03M
        T::from_reader(self)
185
2.03M
    }
<wasmparser::binary_reader::BinaryReader>::read::<wasmparser::readers::component::canonicals::CanonicalOption>
Line
Count
Source
180
221k
    pub fn read<T>(&mut self) -> Result<T>
181
221k
    where
182
221k
        T: FromReader<'a>,
183
221k
    {
184
221k
        T::from_reader(self)
185
221k
    }
<wasmparser::binary_reader::BinaryReader>::read::<wasmparser::readers::component::types::ComponentFuncResult>
Line
Count
Source
180
2.62M
    pub fn read<T>(&mut self) -> Result<T>
181
2.62M
    where
182
2.62M
        T: FromReader<'a>,
183
2.62M
    {
184
2.62M
        T::from_reader(self)
185
2.62M
    }
<wasmparser::binary_reader::BinaryReader>::read::<wasmparser::readers::core::tables::Table>
Line
Count
Source
180
245k
    pub fn read<T>(&mut self) -> Result<T>
181
245k
    where
182
245k
        T: FromReader<'a>,
183
245k
    {
184
245k
        T::from_reader(self)
185
245k
    }
<wasmparser::binary_reader::BinaryReader>::read::<wasmparser::readers::component::instances::InstantiationArgKind>
Line
Count
Source
180
62.2k
    pub fn read<T>(&mut self) -> Result<T>
181
62.2k
    where
182
62.2k
        T: FromReader<'a>,
183
62.2k
    {
184
62.2k
        T::from_reader(self)
185
62.2k
    }
<wasmparser::binary_reader::BinaryReader>::read::<wasmparser::readers::core::types::FuncType>
Line
Count
Source
180
1.21M
    pub fn read<T>(&mut self) -> Result<T>
181
1.21M
    where
182
1.21M
        T: FromReader<'a>,
183
1.21M
    {
184
1.21M
        T::from_reader(self)
185
1.21M
    }
<wasmparser::binary_reader::BinaryReader>::read::<core::option::Option<wasmparser::readers::component::types::ComponentValType>>
Line
Count
Source
180
4.08M
    pub fn read<T>(&mut self) -> Result<T>
181
4.08M
    where
182
4.08M
        T: FromReader<'a>,
183
4.08M
    {
184
4.08M
        T::from_reader(self)
185
4.08M
    }
<wasmparser::binary_reader::BinaryReader>::read::<wasmparser::readers::core::elements::Element>
Line
Count
Source
180
670k
    pub fn read<T>(&mut self) -> Result<T>
181
670k
    where
182
670k
        T: FromReader<'a>,
183
670k
    {
184
670k
        T::from_reader(self)
185
670k
    }
<wasmparser::binary_reader::BinaryReader>::read::<wasmparser::readers::core::types::TableType>
Line
Count
Source
180
349k
    pub fn read<T>(&mut self) -> Result<T>
181
349k
    where
182
349k
        T: FromReader<'a>,
183
349k
    {
184
349k
        T::from_reader(self)
185
349k
    }
<wasmparser::binary_reader::BinaryReader>::read::<wasmparser::readers::component::types::ComponentValType>
Line
Count
Source
180
35.8M
    pub fn read<T>(&mut self) -> Result<T>
181
35.8M
    where
182
35.8M
        T: FromReader<'a>,
183
35.8M
    {
184
35.8M
        T::from_reader(self)
185
35.8M
    }
<wasmparser::binary_reader::BinaryReader>::read::<wasmparser::readers::component::types::ComponentTypeDeclaration>
Line
Count
Source
180
8.35M
    pub fn read<T>(&mut self) -> Result<T>
181
8.35M
    where
182
8.35M
        T: FromReader<'a>,
183
8.35M
    {
184
8.35M
        T::from_reader(self)
185
8.35M
    }
<wasmparser::binary_reader::BinaryReader>::read::<wasmparser::readers::component::exports::ComponentExternalKind>
Line
Count
Source
180
11.2M
    pub fn read<T>(&mut self) -> Result<T>
181
11.2M
    where
182
11.2M
        T: FromReader<'a>,
183
11.2M
    {
184
11.2M
        T::from_reader(self)
185
11.2M
    }
<wasmparser::binary_reader::BinaryReader>::read::<wasmparser::readers::component::imports::ComponentImport>
Line
Count
Source
180
2.41M
    pub fn read<T>(&mut self) -> Result<T>
181
2.41M
    where
182
2.41M
        T: FromReader<'a>,
183
2.41M
    {
184
2.41M
        T::from_reader(self)
185
2.41M
    }
<wasmparser::binary_reader::BinaryReader>::read::<wasmparser::readers::core::types::MemoryType>
Line
Count
Source
180
438k
    pub fn read<T>(&mut self) -> Result<T>
181
438k
    where
182
438k
        T: FromReader<'a>,
183
438k
    {
184
438k
        T::from_reader(self)
185
438k
    }
<wasmparser::binary_reader::BinaryReader>::read::<wasmparser::readers::component::instances::Instance>
Line
Count
Source
180
181k
    pub fn read<T>(&mut self) -> Result<T>
181
181k
    where
182
181k
        T: FromReader<'a>,
183
181k
    {
184
181k
        T::from_reader(self)
185
181k
    }
<wasmparser::binary_reader::BinaryReader>::read::<wasmparser::readers::component::instances::InstantiationArg>
Line
Count
Source
180
62.2k
    pub fn read<T>(&mut self) -> Result<T>
181
62.2k
    where
182
62.2k
        T: FromReader<'a>,
183
62.2k
    {
184
62.2k
        T::from_reader(self)
185
62.2k
    }
<wasmparser::binary_reader::BinaryReader>::read::<wasmparser::readers::component::instances::ComponentInstantiationArg>
Line
Count
Source
180
44.4k
    pub fn read<T>(&mut self) -> Result<T>
181
44.4k
    where
182
44.4k
        T: FromReader<'a>,
183
44.4k
    {
184
44.4k
        T::from_reader(self)
185
44.4k
    }
<wasmparser::binary_reader::BinaryReader>::read::<wasmparser::readers::core::types::TagType>
Line
Count
Source
180
247k
    pub fn read<T>(&mut self) -> Result<T>
181
247k
    where
182
247k
        T: FromReader<'a>,
183
247k
    {
184
247k
        T::from_reader(self)
185
247k
    }
<wasmparser::binary_reader::BinaryReader>::read::<wasmparser::readers::component::instances::ComponentInstance>
Line
Count
Source
180
30.3k
    pub fn read<T>(&mut self) -> Result<T>
181
30.3k
    where
182
30.3k
        T: FromReader<'a>,
183
30.3k
    {
184
30.3k
        T::from_reader(self)
185
30.3k
    }
<wasmparser::binary_reader::BinaryReader>::read::<wasmparser::readers::core::imports::Import>
Line
Count
Source
180
1.10M
    pub fn read<T>(&mut self) -> Result<T>
181
1.10M
    where
182
1.10M
        T: FromReader<'a>,
183
1.10M
    {
184
1.10M
        T::from_reader(self)
185
1.10M
    }
<wasmparser::binary_reader::BinaryReader>::read::<wasmparser::readers::core::exports::Export>
Line
Count
Source
180
1.25M
    pub fn read<T>(&mut self) -> Result<T>
181
1.25M
    where
182
1.25M
        T: FromReader<'a>,
183
1.25M
    {
184
1.25M
        T::from_reader(self)
185
1.25M
    }
<wasmparser::binary_reader::BinaryReader>::read::<wasmparser::readers::component::imports::ComponentTypeRef>
Line
Count
Source
180
10.6M
    pub fn read<T>(&mut self) -> Result<T>
181
10.6M
    where
182
10.6M
        T: FromReader<'a>,
183
10.6M
    {
184
10.6M
        T::from_reader(self)
185
10.6M
    }
<wasmparser::binary_reader::BinaryReader>::read::<wasmparser::readers::core::types::RefType>
Line
Count
Source
180
6.87M
    pub fn read<T>(&mut self) -> Result<T>
181
6.87M
    where
182
6.87M
        T: FromReader<'a>,
183
6.87M
    {
184
6.87M
        T::from_reader(self)
185
6.87M
    }
<wasmparser::binary_reader::BinaryReader>::read::<wasmparser::readers::component::types::ComponentType>
Line
Count
Source
180
22.7M
    pub fn read<T>(&mut self) -> Result<T>
181
22.7M
    where
182
22.7M
        T: FromReader<'a>,
183
22.7M
    {
184
22.7M
        T::from_reader(self)
185
22.7M
    }
<wasmparser::binary_reader::BinaryReader>::read::<u32>
Line
Count
Source
180
46.0M
    pub fn read<T>(&mut self) -> Result<T>
181
46.0M
    where
182
46.0M
        T: FromReader<'a>,
183
46.0M
    {
184
46.0M
        T::from_reader(self)
185
46.0M
    }
<wasmparser::binary_reader::BinaryReader>::read::<wasmparser::readers::component::types::ModuleTypeDeclaration>
Line
Count
Source
180
513
    pub fn read<T>(&mut self) -> Result<T>
181
513
    where
182
513
        T: FromReader<'a>,
183
513
    {
184
513
        T::from_reader(self)
185
513
    }
<wasmparser::binary_reader::BinaryReader>::read::<&str>
Line
Count
Source
180
48.9M
    pub fn read<T>(&mut self) -> Result<T>
181
48.9M
    where
182
48.9M
        T: FromReader<'a>,
183
48.9M
    {
184
48.9M
        T::from_reader(self)
185
48.9M
    }
<wasmparser::binary_reader::BinaryReader>::read::<wasmparser::readers::component::start::ComponentStartFunction>
Line
Count
Source
180
4.41k
    pub fn read<T>(&mut self) -> Result<T>
181
4.41k
    where
182
4.41k
        T: FromReader<'a>,
183
4.41k
    {
184
4.41k
        T::from_reader(self)
185
4.41k
    }
<wasmparser::binary_reader::BinaryReader>::read::<wasmparser::readers::component::types::VariantCase>
Line
Count
Source
180
2.13M
    pub fn read<T>(&mut self) -> Result<T>
181
2.13M
    where
182
2.13M
        T: FromReader<'a>,
183
2.13M
    {
184
2.13M
        T::from_reader(self)
185
2.13M
    }
<wasmparser::binary_reader::BinaryReader>::read::<wasmparser::readers::core::producers::ProducersFieldValue>
Line
Count
Source
180
37.5k
    pub fn read<T>(&mut self) -> Result<T>
181
37.5k
    where
182
37.5k
        T: FromReader<'a>,
183
37.5k
    {
184
37.5k
        T::from_reader(self)
185
37.5k
    }
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReader>::read::<wasmparser::readers::core::names::IndirectNaming>
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReader>::read::<wasmparser::readers::core::names::Naming>
<wasmparser::binary_reader::BinaryReader>::read::<wasmparser::readers::core::producers::ProducersField>
Line
Count
Source
180
37.5k
    pub fn read<T>(&mut self) -> Result<T>
181
37.5k
    where
182
37.5k
        T: FromReader<'a>,
183
37.5k
    {
184
37.5k
        T::from_reader(self)
185
37.5k
    }
186
187
180k
    pub(crate) fn read_u7(&mut self) -> Result<u8> {
188
180k
        let b = self.read_u8()?;
189
180k
        if (b & 0x80) != 0 {
190
1.41k
            return Err(BinaryReaderError::new(
191
1.41k
                "invalid u7",
192
1.41k
                self.original_position() - 1,
193
1.41k
            ));
194
178k
        }
195
178k
        Ok(b)
196
180k
    }
197
198
3.06M
    pub(crate) fn external_kind_from_byte(byte: u8, offset: usize) -> Result<ExternalKind> {
199
3.06M
        match byte {
200
1.94M
            0x00 => Ok(ExternalKind::Func),
201
316k
            0x01 => Ok(ExternalKind::Table),
202
317k
            0x02 => Ok(ExternalKind::Memory),
203
424k
            0x03 => Ok(ExternalKind::Global),
204
66.1k
            0x04 => Ok(ExternalKind::Tag),
205
126
            x => Err(Self::invalid_leading_byte_error(x, "external kind", offset)),
206
        }
207
3.06M
    }
208
209
    /// Reads a variable-length 32-bit size from the byte stream while checking
210
    /// against a limit.
211
15.3M
    pub fn read_size(&mut self, limit: usize, desc: &str) -> Result<usize> {
212
15.3M
        let pos = self.original_position();
213
15.3M
        let size = self.read_var_u32()? as usize;
214
15.3M
        if size > limit {
215
155
            bail!(pos, "{desc} size is out of bounds");
216
15.3M
        }
217
15.3M
        Ok(size)
218
15.3M
    }
219
220
    /// Reads a variable-length 32-bit size from the byte stream while checking
221
    /// against a limit.
222
    ///
223
    /// Then reads that many values of type `T` and returns them as an iterator.
224
    ///
225
    /// Note that regardless of how many items are read from the returned
226
    /// iterator the items will still be parsed from this reader.
227
15.2M
    pub fn read_iter<'me, T>(
228
15.2M
        &'me mut self,
229
15.2M
        limit: usize,
230
15.2M
        desc: &str,
231
15.2M
    ) -> Result<BinaryReaderIter<'a, 'me, T>>
232
15.2M
    where
233
15.2M
        T: FromReader<'a>,
234
15.2M
    {
235
15.2M
        let size = self.read_size(limit, desc)?;
236
15.2M
        Ok(BinaryReaderIter {
237
15.2M
            remaining: size,
238
15.2M
            reader: self,
239
15.2M
            _marker: marker::PhantomData,
240
15.2M
        })
241
15.2M
    }
<wasmparser::binary_reader::BinaryReader>::read_iter::<wasmparser::readers::component::types::VariantCase>
Line
Count
Source
227
669k
    pub fn read_iter<'me, T>(
228
669k
        &'me mut self,
229
669k
        limit: usize,
230
669k
        desc: &str,
231
669k
    ) -> Result<BinaryReaderIter<'a, 'me, T>>
232
669k
    where
233
669k
        T: FromReader<'a>,
234
669k
    {
235
669k
        let size = self.read_size(limit, desc)?;
236
669k
        Ok(BinaryReaderIter {
237
669k
            remaining: size,
238
669k
            reader: self,
239
669k
            _marker: marker::PhantomData,
240
669k
        })
241
669k
    }
<wasmparser::binary_reader::BinaryReader>::read_iter::<wasmparser::readers::component::canonicals::CanonicalOption>
Line
Count
Source
227
212k
    pub fn read_iter<'me, T>(
228
212k
        &'me mut self,
229
212k
        limit: usize,
230
212k
        desc: &str,
231
212k
    ) -> Result<BinaryReaderIter<'a, 'me, T>>
232
212k
    where
233
212k
        T: FromReader<'a>,
234
212k
    {
235
212k
        let size = self.read_size(limit, desc)?;
236
211k
        Ok(BinaryReaderIter {
237
211k
            remaining: size,
238
211k
            reader: self,
239
211k
            _marker: marker::PhantomData,
240
211k
        })
241
212k
    }
<wasmparser::binary_reader::BinaryReader>::read_iter::<wasmparser::readers::core::types::ValType>
Line
Count
Source
227
2.43M
    pub fn read_iter<'me, T>(
228
2.43M
        &'me mut self,
229
2.43M
        limit: usize,
230
2.43M
        desc: &str,
231
2.43M
    ) -> Result<BinaryReaderIter<'a, 'me, T>>
232
2.43M
    where
233
2.43M
        T: FromReader<'a>,
234
2.43M
    {
235
2.43M
        let size = self.read_size(limit, desc)?;
236
2.43M
        Ok(BinaryReaderIter {
237
2.43M
            remaining: size,
238
2.43M
            reader: self,
239
2.43M
            _marker: marker::PhantomData,
240
2.43M
        })
241
2.43M
    }
<wasmparser::binary_reader::BinaryReader>::read_iter::<wasmparser::readers::component::instances::InstantiationArg>
Line
Count
Source
227
119k
    pub fn read_iter<'me, T>(
228
119k
        &'me mut self,
229
119k
        limit: usize,
230
119k
        desc: &str,
231
119k
    ) -> Result<BinaryReaderIter<'a, 'me, T>>
232
119k
    where
233
119k
        T: FromReader<'a>,
234
119k
    {
235
119k
        let size = self.read_size(limit, desc)?;
236
119k
        Ok(BinaryReaderIter {
237
119k
            remaining: size,
238
119k
            reader: self,
239
119k
            _marker: marker::PhantomData,
240
119k
        })
241
119k
    }
<wasmparser::binary_reader::BinaryReader>::read_iter::<(&str, wasmparser::readers::component::types::ComponentValType)>
Line
Count
Source
227
5.33M
    pub fn read_iter<'me, T>(
228
5.33M
        &'me mut self,
229
5.33M
        limit: usize,
230
5.33M
        desc: &str,
231
5.33M
    ) -> Result<BinaryReaderIter<'a, 'me, T>>
232
5.33M
    where
233
5.33M
        T: FromReader<'a>,
234
5.33M
    {
235
5.33M
        let size = self.read_size(limit, desc)?;
236
5.33M
        Ok(BinaryReaderIter {
237
5.33M
            remaining: size,
238
5.33M
            reader: self,
239
5.33M
            _marker: marker::PhantomData,
240
5.33M
        })
241
5.33M
    }
<wasmparser::binary_reader::BinaryReader>::read_iter::<wasmparser::readers::component::instances::ComponentInstantiationArg>
Line
Count
Source
227
30.0k
    pub fn read_iter<'me, T>(
228
30.0k
        &'me mut self,
229
30.0k
        limit: usize,
230
30.0k
        desc: &str,
231
30.0k
    ) -> Result<BinaryReaderIter<'a, 'me, T>>
232
30.0k
    where
233
30.0k
        T: FromReader<'a>,
234
30.0k
    {
235
30.0k
        let size = self.read_size(limit, desc)?;
236
30.0k
        Ok(BinaryReaderIter {
237
30.0k
            remaining: size,
238
30.0k
            reader: self,
239
30.0k
            _marker: marker::PhantomData,
240
30.0k
        })
241
30.0k
    }
<wasmparser::binary_reader::BinaryReader>::read_iter::<u32>
Line
Count
Source
227
4.37k
    pub fn read_iter<'me, T>(
228
4.37k
        &'me mut self,
229
4.37k
        limit: usize,
230
4.37k
        desc: &str,
231
4.37k
    ) -> Result<BinaryReaderIter<'a, 'me, T>>
232
4.37k
    where
233
4.37k
        T: FromReader<'a>,
234
4.37k
    {
235
4.37k
        let size = self.read_size(limit, desc)?;
236
4.23k
        Ok(BinaryReaderIter {
237
4.23k
            remaining: size,
238
4.23k
            reader: self,
239
4.23k
            _marker: marker::PhantomData,
240
4.23k
        })
241
4.37k
    }
<wasmparser::binary_reader::BinaryReader>::read_iter::<wasmparser::readers::core::exports::Export>
Line
Count
Source
227
62.2k
    pub fn read_iter<'me, T>(
228
62.2k
        &'me mut self,
229
62.2k
        limit: usize,
230
62.2k
        desc: &str,
231
62.2k
    ) -> Result<BinaryReaderIter<'a, 'me, T>>
232
62.2k
    where
233
62.2k
        T: FromReader<'a>,
234
62.2k
    {
235
62.2k
        let size = self.read_size(limit, desc)?;
236
62.2k
        Ok(BinaryReaderIter {
237
62.2k
            remaining: size,
238
62.2k
            reader: self,
239
62.2k
            _marker: marker::PhantomData,
240
62.2k
        })
241
62.2k
    }
<wasmparser::binary_reader::BinaryReader>::read_iter::<wasmparser::readers::component::types::InstanceTypeDeclaration>
Line
Count
Source
227
1.52M
    pub fn read_iter<'me, T>(
228
1.52M
        &'me mut self,
229
1.52M
        limit: usize,
230
1.52M
        desc: &str,
231
1.52M
    ) -> Result<BinaryReaderIter<'a, 'me, T>>
232
1.52M
    where
233
1.52M
        T: FromReader<'a>,
234
1.52M
    {
235
1.52M
        let size = self.read_size(limit, desc)?;
236
1.52M
        Ok(BinaryReaderIter {
237
1.52M
            remaining: size,
238
1.52M
            reader: self,
239
1.52M
            _marker: marker::PhantomData,
240
1.52M
        })
241
1.52M
    }
<wasmparser::binary_reader::BinaryReader>::read_iter::<wasmparser::readers::component::types::ModuleTypeDeclaration>
Line
Count
Source
227
656
    pub fn read_iter<'me, T>(
228
656
        &'me mut self,
229
656
        limit: usize,
230
656
        desc: &str,
231
656
    ) -> Result<BinaryReaderIter<'a, 'me, T>>
232
656
    where
233
656
        T: FromReader<'a>,
234
656
    {
235
656
        let size = self.read_size(limit, desc)?;
236
654
        Ok(BinaryReaderIter {
237
654
            remaining: size,
238
654
            reader: self,
239
654
            _marker: marker::PhantomData,
240
654
        })
241
656
    }
<wasmparser::binary_reader::BinaryReader>::read_iter::<&str>
Line
Count
Source
227
2.06M
    pub fn read_iter<'me, T>(
228
2.06M
        &'me mut self,
229
2.06M
        limit: usize,
230
2.06M
        desc: &str,
231
2.06M
    ) -> Result<BinaryReaderIter<'a, 'me, T>>
232
2.06M
    where
233
2.06M
        T: FromReader<'a>,
234
2.06M
    {
235
2.06M
        let size = self.read_size(limit, desc)?;
236
2.06M
        Ok(BinaryReaderIter {
237
2.06M
            remaining: size,
238
2.06M
            reader: self,
239
2.06M
            _marker: marker::PhantomData,
240
2.06M
        })
241
2.06M
    }
<wasmparser::binary_reader::BinaryReader>::read_iter::<wasmparser::readers::component::types::ComponentTypeDeclaration>
Line
Count
Source
227
1.12M
    pub fn read_iter<'me, T>(
228
1.12M
        &'me mut self,
229
1.12M
        limit: usize,
230
1.12M
        desc: &str,
231
1.12M
    ) -> Result<BinaryReaderIter<'a, 'me, T>>
232
1.12M
    where
233
1.12M
        T: FromReader<'a>,
234
1.12M
    {
235
1.12M
        let size = self.read_size(limit, desc)?;
236
1.12M
        Ok(BinaryReaderIter {
237
1.12M
            remaining: size,
238
1.12M
            reader: self,
239
1.12M
            _marker: marker::PhantomData,
240
1.12M
        })
241
1.12M
    }
<wasmparser::binary_reader::BinaryReader>::read_iter::<wasmparser::readers::component::types::ComponentValType>
Line
Count
Source
227
1.62M
    pub fn read_iter<'me, T>(
228
1.62M
        &'me mut self,
229
1.62M
        limit: usize,
230
1.62M
        desc: &str,
231
1.62M
    ) -> Result<BinaryReaderIter<'a, 'me, T>>
232
1.62M
    where
233
1.62M
        T: FromReader<'a>,
234
1.62M
    {
235
1.62M
        let size = self.read_size(limit, desc)?;
236
1.62M
        Ok(BinaryReaderIter {
237
1.62M
            remaining: size,
238
1.62M
            reader: self,
239
1.62M
            _marker: marker::PhantomData,
240
1.62M
        })
241
1.62M
    }
242
243
2.91M
    fn read_first_byte_and_var_u32(&mut self) -> Result<(u8, u32)> {
244
2.91M
        let pos = self.position;
245
2.91M
        let val = self.read_var_u32()?;
246
2.91M
        Ok((self.buffer[pos], val))
247
2.91M
    }
248
249
6.18M
    fn read_memarg(&mut self, max_align: u8) -> Result<MemArg> {
250
6.18M
        let flags_pos = self.original_position();
251
6.18M
        let mut flags = self.read_var_u32()?;
252
6.18M
        let memory = if flags & (1 << 6) != 0 {
253
3.39M
            flags ^= 1 << 6;
254
3.39M
            self.read_var_u32()?
255
        } else {
256
2.79M
            0
257
        };
258
6.18M
        let align = if flags >= (1 << 6) {
259
271
            return Err(BinaryReaderError::new("alignment too large", flags_pos));
260
        } else {
261
6.18M
            flags as u8
262
        };
263
6.18M
        let offset = if self.allow_memarg64 {
264
4.38M
            self.read_var_u64()?
265
        } else {
266
1.79M
            u64::from(self.read_var_u32()?)
267
        };
268
6.18M
        Ok(MemArg {
269
6.18M
            align,
270
6.18M
            max_align,
271
6.18M
            offset,
272
6.18M
            memory,
273
6.18M
        })
274
6.18M
    }
275
276
140k
    fn read_br_table(&mut self) -> Result<BrTable<'a>> {
277
140k
        let cnt = self.read_size(MAX_WASM_BR_TABLE_SIZE, "br_table")?;
278
140k
        let start = self.position;
279
140k
        for _ in 0..cnt {
280
4.64M
            self.read_var_u32()?;
281
        }
282
140k
        let end = self.position;
283
140k
        let default = self.read_var_u32()?;
284
140k
        Ok(BrTable {
285
140k
            reader: BinaryReader::new_with_offset(&self.buffer[start..end], start),
286
140k
            cnt: cnt as u32,
287
140k
            default,
288
140k
        })
289
140k
    }
290
291
    /// Returns whether the `BinaryReader` has reached the end of the file.
292
    #[inline]
293
274M
    pub fn eof(&self) -> bool {
294
274M
        self.position >= self.buffer.len()
295
274M
    }
<wasmparser::binary_reader::BinaryReader>::eof
Line
Count
Source
293
33.6k
    pub fn eof(&self) -> bool {
294
33.6k
        self.position >= self.buffer.len()
295
33.6k
    }
<wasmparser::binary_reader::BinaryReader>::eof
Line
Count
Source
293
76.5M
    pub fn eof(&self) -> bool {
294
76.5M
        self.position >= self.buffer.len()
295
76.5M
    }
<wasmparser::binary_reader::BinaryReader>::eof
Line
Count
Source
293
197M
    pub fn eof(&self) -> bool {
294
197M
        self.position >= self.buffer.len()
295
197M
    }
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReader>::eof
<wasmparser::binary_reader::BinaryReader>::eof
Line
Count
Source
293
75.0k
    pub fn eof(&self) -> bool {
294
75.0k
        self.position >= self.buffer.len()
295
75.0k
    }
296
297
    /// Returns the `BinaryReader`'s current position.
298
    #[inline]
299
0
    pub fn current_position(&self) -> usize {
300
0
        self.position
301
0
    }
302
303
    /// Returns the number of bytes remaining in the `BinaryReader`.
304
    #[inline]
305
14.3M
    pub fn bytes_remaining(&self) -> usize {
306
14.3M
        self.buffer.len() - self.position
307
14.3M
    }
308
309
    /// Advances the `BinaryReader` `size` bytes, and returns a slice from the
310
    /// current position of `size` length.
311
    ///
312
    /// # Errors
313
    /// If `size` exceeds the remaining length in `BinaryReader`.
314
    pub fn read_bytes(&mut self, size: usize) -> Result<&'a [u8]> {
315
89.5M
        self.ensure_has_bytes(size)?;
316
79.4M
        let start = self.position;
317
79.4M
        self.position += size;
318
79.4M
        Ok(&self.buffer[start..self.position])
319
89.5M
    }
320
321
    /// Reads a length-prefixed list of bytes from this reader and returns a
322
    /// new `BinaryReader` to read that list of bytes.
323
    ///
324
    /// Advances the position of this reader by the number of bytes read.
325
965k
    pub fn read_reader(&mut self, err: &str) -> Result<BinaryReader<'a>> {
326
965k
        let size = self.read_var_u32()? as usize;
327
964k
        let body_start = self.position;
328
964k
        let buffer = match self.buffer.get(self.position..).and_then(|s| s.get(..size)) {
329
958k
            Some(buf) => buf,
330
            None => {
331
6.13k
                return Err(BinaryReaderError::new(
332
6.13k
                    err,
333
6.13k
                    self.original_offset + self.buffer.len(),
334
6.13k
                ))
335
            }
336
        };
337
958k
        self.position += size;
338
958k
        Ok(BinaryReader::new_with_offset(
339
958k
            buffer,
340
958k
            self.original_offset + body_start,
341
958k
        ))
342
965k
    }
343
344
    /// Advances the `BinaryReader` four bytes and returns a `u32`.
345
    /// # Errors
346
    /// If `BinaryReader` has less than four bytes remaining.
347
    pub fn read_u32(&mut self) -> Result<u32> {
348
8.18M
        self.ensure_has_bytes(4)?;
349
8.17M
        let word = u32::from_le_bytes(
350
8.17M
            self.buffer[self.position..self.position + 4]
351
8.17M
                .try_into()
352
8.17M
                .unwrap(),
353
8.17M
        );
354
8.17M
        self.position += 4;
355
8.17M
        Ok(word)
356
8.18M
    }
357
358
    /// Advances the `BinaryReader` eight bytes and returns a `u64`.
359
    /// # Errors
360
    /// If `BinaryReader` has less than eight bytes remaining.
361
    pub fn read_u64(&mut self) -> Result<u64> {
362
7.17M
        self.ensure_has_bytes(8)?;
363
7.17M
        let word = u64::from_le_bytes(
364
7.17M
            self.buffer[self.position..self.position + 8]
365
7.17M
                .try_into()
366
7.17M
                .unwrap(),
367
7.17M
        );
368
7.17M
        self.position += 8;
369
7.17M
        Ok(word)
370
7.17M
    }
371
372
    /// Advances the `BinaryReader` a single byte.
373
    ///
374
    /// # Errors
375
    ///
376
    /// If `BinaryReader` has no bytes remaining.
377
    #[inline]
378
832M
    pub fn read_u8(&mut self) -> Result<u8> {
379
832M
        let b = match self.buffer.get(self.position) {
380
832M
            Some(b) => *b,
381
366k
            None => return Err(self.eof_err()),
382
        };
383
832M
        self.position += 1;
384
832M
        Ok(b)
385
832M
    }
<wasmparser::binary_reader::BinaryReader>::read_u8
Line
Count
Source
378
36.4k
    pub fn read_u8(&mut self) -> Result<u8> {
379
36.4k
        let b = match self.buffer.get(self.position) {
380
36.4k
            Some(b) => *b,
381
0
            None => return Err(self.eof_err()),
382
        };
383
36.4k
        self.position += 1;
384
36.4k
        Ok(b)
385
36.4k
    }
<wasmparser::binary_reader::BinaryReader>::read_u8
Line
Count
Source
378
133M
    pub fn read_u8(&mut self) -> Result<u8> {
379
133M
        let b = match self.buffer.get(self.position) {
380
133M
            Some(b) => *b,
381
76
            None => return Err(self.eof_err()),
382
        };
383
133M
        self.position += 1;
384
133M
        Ok(b)
385
133M
    }
<wasmparser::binary_reader::BinaryReader>::read_u8
Line
Count
Source
378
698M
    pub fn read_u8(&mut self) -> Result<u8> {
379
698M
        let b = match self.buffer.get(self.position) {
380
698M
            Some(b) => *b,
381
366k
            None => return Err(self.eof_err()),
382
        };
383
698M
        self.position += 1;
384
698M
        Ok(b)
385
698M
    }
<wasmparser::binary_reader::BinaryReader>::read_u8
Line
Count
Source
378
75.0k
    pub fn read_u8(&mut self) -> Result<u8> {
379
75.0k
        let b = match self.buffer.get(self.position) {
380
75.0k
            Some(b) => *b,
381
0
            None => return Err(self.eof_err()),
382
        };
383
75.0k
        self.position += 1;
384
75.0k
        Ok(b)
385
75.0k
    }
<wasmparser::binary_reader::BinaryReader>::read_u8
Line
Count
Source
378
37.5k
    pub fn read_u8(&mut self) -> Result<u8> {
379
37.5k
        let b = match self.buffer.get(self.position) {
380
37.5k
            Some(b) => *b,
381
0
            None => return Err(self.eof_err()),
382
        };
383
37.5k
        self.position += 1;
384
37.5k
        Ok(b)
385
37.5k
    }
386
387
    #[cold]
388
366k
    fn eof_err(&self) -> BinaryReaderError {
389
366k
        BinaryReaderError::eof(self.original_position(), 1)
390
366k
    }
391
392
    /// Advances the `BinaryReader` up to four bytes to parse a variable
393
    /// length integer as a `u32`.
394
    ///
395
    /// # Errors
396
    ///
397
    /// If `BinaryReader` has less than one or up to four bytes remaining, or
398
    /// the integer is larger than 32 bits.
399
    #[inline]
400
274M
    pub fn read_var_u32(&mut self) -> Result<u32> {
401
        // Optimization for single byte i32.
402
274M
        let byte = self.read_u8()?;
403
273M
        if (byte & 0x80) == 0 {
404
243M
            Ok(u32::from(byte))
405
        } else {
406
29.9M
            self.read_var_u32_big(byte)
407
        }
408
274M
    }
<wasmparser::binary_reader::BinaryReader>::read_var_u32
Line
Count
Source
400
36.4k
    pub fn read_var_u32(&mut self) -> Result<u32> {
401
        // Optimization for single byte i32.
402
36.4k
        let byte = self.read_u8()?;
403
36.4k
        if (byte & 0x80) == 0 {
404
35.5k
            Ok(u32::from(byte))
405
        } else {
406
862
            self.read_var_u32_big(byte)
407
        }
408
36.4k
    }
<wasmparser::binary_reader::BinaryReader>::read_var_u32
Line
Count
Source
400
37.4M
    pub fn read_var_u32(&mut self) -> Result<u32> {
401
        // Optimization for single byte i32.
402
37.4M
        let byte = self.read_u8()?;
403
37.4M
        if (byte & 0x80) == 0 {
404
29.6M
            Ok(u32::from(byte))
405
        } else {
406
7.74M
            self.read_var_u32_big(byte)
407
        }
408
37.4M
    }
<wasmparser::binary_reader::BinaryReader>::read_var_u32
Line
Count
Source
400
236M
    pub fn read_var_u32(&mut self) -> Result<u32> {
401
        // Optimization for single byte i32.
402
236M
        let byte = self.read_u8()?;
403
236M
        if (byte & 0x80) == 0 {
404
214M
            Ok(u32::from(byte))
405
        } else {
406
22.2M
            self.read_var_u32_big(byte)
407
        }
408
236M
    }
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReader>::read_var_u32
<wasmparser::binary_reader::BinaryReader>::read_var_u32
Line
Count
Source
400
37.5k
    pub fn read_var_u32(&mut self) -> Result<u32> {
401
        // Optimization for single byte i32.
402
37.5k
        let byte = self.read_u8()?;
403
37.5k
        if (byte & 0x80) == 0 {
404
37.5k
            Ok(u32::from(byte))
405
        } else {
406
0
            self.read_var_u32_big(byte)
407
        }
408
37.5k
    }
409
410
29.9M
    fn read_var_u32_big(&mut self, byte: u8) -> Result<u32> {
411
29.9M
        let mut result = (byte & 0x7F) as u32;
412
29.9M
        let mut shift = 7;
413
        loop {
414
40.8M
            let byte = self.read_u8()?;
415
40.7M
            result |= ((byte & 0x7F) as u32) << shift;
416
40.7M
            if shift >= 25 && (byte >> (32 - shift)) != 0 {
417
1.20k
                let msg = if byte & 0x80 != 0 {
418
1.01k
                    "invalid var_u32: integer representation too long"
419
                } else {
420
189
                    "invalid var_u32: integer too large"
421
                };
422
                // The continuation bit or unused bits are set.
423
1.20k
                return Err(BinaryReaderError::new(msg, self.original_position() - 1));
424
40.7M
            }
425
40.7M
            shift += 7;
426
40.7M
            if (byte & 0x80) == 0 {
427
29.9M
                break;
428
10.8M
            }
429
        }
430
29.9M
        Ok(result)
431
29.9M
    }
432
433
    /// Advances the `BinaryReader` up to four bytes to parse a variable
434
    /// length integer as a `u64`.
435
    ///
436
    /// # Errors
437
    ///
438
    /// If `BinaryReader` has less than one or up to eight bytes remaining, or
439
    /// the integer is larger than 64 bits.
440
    #[inline]
441
4.81M
    pub fn read_var_u64(&mut self) -> Result<u64> {
442
        // Optimization for single byte u64.
443
4.81M
        let byte = u64::from(self.read_u8()?);
444
4.81M
        if (byte & 0x80) == 0 {
445
1.92M
            Ok(byte)
446
        } else {
447
2.89M
            self.read_var_u64_big(byte)
448
        }
449
4.81M
    }
450
451
2.89M
    fn read_var_u64_big(&mut self, byte: u64) -> Result<u64> {
452
2.89M
        let mut result = byte & 0x7F;
453
2.89M
        let mut shift = 7;
454
        loop {
455
11.1M
            let byte = u64::from(self.read_u8()?);
456
11.1M
            result |= (byte & 0x7F) << shift;
457
11.1M
            if shift >= 57 && (byte >> (64 - shift)) != 0 {
458
22
                let msg = if byte & 0x80 != 0 {
459
15
                    "invalid var_u64: integer representation too long"
460
                } else {
461
7
                    "invalid var_u64: integer too large"
462
                };
463
                // The continuation bit or unused bits are set.
464
22
                return Err(BinaryReaderError::new(msg, self.original_position() - 1));
465
11.1M
            }
466
11.1M
            shift += 7;
467
11.1M
            if (byte & 0x80) == 0 {
468
2.89M
                break;
469
8.22M
            }
470
        }
471
2.89M
        Ok(result)
472
2.89M
    }
473
474
    /// Executes `f` to skip some data in this binary reader and then returns a
475
    /// reader which will read the skipped data.
476
18.3M
    pub fn skip(&mut self, f: impl FnOnce(&mut Self) -> Result<()>) -> Result<Self> {
477
18.3M
        let start = self.position;
478
18.3M
        f(self)?;
479
18.2M
        Ok(BinaryReader::new_with_offset(
480
18.2M
            &self.buffer[start..self.position],
481
18.2M
            self.original_offset + start,
482
18.2M
        ))
483
18.3M
    }
<wasmparser::binary_reader::BinaryReader>::skip::<<wasmparser::readers::core::names::IndirectNaming as wasmparser::readers::FromReader>::from_reader::{closure#0}>
Line
Count
Source
476
122k
    pub fn skip(&mut self, f: impl FnOnce(&mut Self) -> Result<()>) -> Result<Self> {
477
122k
        let start = self.position;
478
122k
        f(self)?;
479
83.7k
        Ok(BinaryReader::new_with_offset(
480
83.7k
            &self.buffer[start..self.position],
481
83.7k
            self.original_offset + start,
482
83.7k
        ))
483
122k
    }
<wasmparser::binary_reader::BinaryReader>::skip::<<wasmparser::readers::core::init::ConstExpr as wasmparser::readers::FromReader>::from_reader::{closure#0}>
Line
Count
Source
476
17.4M
    pub fn skip(&mut self, f: impl FnOnce(&mut Self) -> Result<()>) -> Result<Self> {
477
17.4M
        let start = self.position;
478
17.4M
        f(self)?;
479
17.4M
        Ok(BinaryReader::new_with_offset(
480
17.4M
            &self.buffer[start..self.position],
481
17.4M
            self.original_offset + start,
482
17.4M
        ))
483
17.4M
    }
<wasmparser::binary_reader::BinaryReader>::skip::<<wasmparser::readers::core::producers::ProducersField as wasmparser::readers::FromReader>::from_reader::{closure#0}>
Line
Count
Source
476
37.5k
    pub fn skip(&mut self, f: impl FnOnce(&mut Self) -> Result<()>) -> Result<Self> {
477
37.5k
        let start = self.position;
478
37.5k
        f(self)?;
479
37.5k
        Ok(BinaryReader::new_with_offset(
480
37.5k
            &self.buffer[start..self.position],
481
37.5k
            self.original_offset + start,
482
37.5k
        ))
483
37.5k
    }
<wasmparser::binary_reader::BinaryReader>::skip::<<wasmparser::readers::core::elements::Element as wasmparser::readers::FromReader>::from_reader::{closure#0}>
Line
Count
Source
476
666k
    pub fn skip(&mut self, f: impl FnOnce(&mut Self) -> Result<()>) -> Result<Self> {
477
666k
        let start = self.position;
478
666k
        f(self)?;
479
664k
        Ok(BinaryReader::new_with_offset(
480
664k
            &self.buffer[start..self.position],
481
664k
            self.original_offset + start,
482
664k
        ))
483
666k
    }
484
485
    /// Advances the `BinaryReader` past a WebAssembly string. This method does
486
    /// not perform any utf-8 validation.
487
    /// # Errors
488
    /// If `BinaryReader` has less than four bytes, the string's length exceeds
489
    /// the remaining bytes, or the string length
490
    /// exceeds `limits::MAX_WASM_STRING_SIZE`.
491
573k
    pub fn skip_string(&mut self) -> Result<()> {
492
573k
        let len = self.read_var_u32()? as usize;
493
571k
        if len > MAX_WASM_STRING_SIZE {
494
178
            return Err(BinaryReaderError::new(
495
178
                "string size out of bounds",
496
178
                self.original_position() - 1,
497
178
            ));
498
571k
        }
499
571k
        self.ensure_has_bytes(len)?;
500
536k
        self.position += len;
501
536k
        Ok(())
502
573k
    }
503
504
    /// Advances the `BinaryReader` up to four bytes to parse a variable
505
    /// length integer as a `i32`.
506
    /// # Errors
507
    /// If `BinaryReader` has less than one or up to four bytes remaining, or
508
    /// the integer is larger than 32 bits.
509
    #[inline]
510
6.51M
    pub fn read_var_i32(&mut self) -> Result<i32> {
511
        // Optimization for single byte i32.
512
6.51M
        let byte = self.read_u8()?;
513
6.51M
        if (byte & 0x80) == 0 {
514
2.79M
            Ok(((byte as i32) << 25) >> 25)
515
        } else {
516
3.72M
            self.read_var_i32_big(byte)
517
        }
518
6.51M
    }
<wasmparser::binary_reader::BinaryReader>::read_var_i32
Line
Count
Source
510
2.30M
    pub fn read_var_i32(&mut self) -> Result<i32> {
511
        // Optimization for single byte i32.
512
2.30M
        let byte = self.read_u8()?;
513
2.30M
        if (byte & 0x80) == 0 {
514
852k
            Ok(((byte as i32) << 25) >> 25)
515
        } else {
516
1.45M
            self.read_var_i32_big(byte)
517
        }
518
2.30M
    }
<wasmparser::binary_reader::BinaryReader>::read_var_i32
Line
Count
Source
510
4.21M
    pub fn read_var_i32(&mut self) -> Result<i32> {
511
        // Optimization for single byte i32.
512
4.21M
        let byte = self.read_u8()?;
513
4.21M
        if (byte & 0x80) == 0 {
514
1.94M
            Ok(((byte as i32) << 25) >> 25)
515
        } else {
516
2.26M
            self.read_var_i32_big(byte)
517
        }
518
4.21M
    }
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReader>::read_var_i32
519
520
3.72M
    fn read_var_i32_big(&mut self, byte: u8) -> Result<i32> {
521
3.72M
        let mut result = (byte & 0x7F) as i32;
522
3.72M
        let mut shift = 7;
523
        loop {
524
13.8M
            let byte = self.read_u8()?;
525
13.8M
            result |= ((byte & 0x7F) as i32) << shift;
526
13.8M
            if shift >= 25 {
527
3.18M
                let continuation_bit = (byte & 0x80) != 0;
528
3.18M
                let sign_and_unused_bit = (byte << 1) as i8 >> (32 - shift);
529
3.18M
                if continuation_bit || (sign_and_unused_bit != 0 && sign_and_unused_bit != -1) {
530
10
                    let msg = if continuation_bit {
531
8
                        "invalid var_i32: integer representation too long"
532
                    } else {
533
2
                        "invalid var_i32: integer too large"
534
                    };
535
10
                    return Err(BinaryReaderError::new(msg, self.original_position() - 1));
536
3.18M
                }
537
3.18M
                return Ok(result);
538
10.6M
            }
539
10.6M
            shift += 7;
540
10.6M
            if (byte & 0x80) == 0 {
541
531k
                break;
542
10.1M
            }
543
        }
544
531k
        let ashift = 32 - shift;
545
531k
        Ok((result << ashift) >> ashift)
546
3.72M
    }
547
548
    /// Advances the `BinaryReader` up to four bytes to parse a variable
549
    /// length integer as a signed 33 bit integer, returned as a `i64`.
550
    /// # Errors
551
    /// If `BinaryReader` has less than one or up to five bytes remaining, or
552
    /// the integer is larger than 33 bits.
553
18.9M
    pub fn read_var_s33(&mut self) -> Result<i64> {
554
        // Optimization for single byte.
555
18.9M
        let byte = self.read_u8()?;
556
18.9M
        if (byte & 0x80) == 0 {
557
12.8M
            return Ok(((byte as i8) << 1) as i64 >> 1);
558
6.11M
        }
559
6.11M
560
6.11M
        let mut result = (byte & 0x7F) as i64;
561
6.11M
        let mut shift = 7;
562
        loop {
563
6.20M
            let byte = self.read_u8()?;
564
6.20M
            result |= ((byte & 0x7F) as i64) << shift;
565
6.20M
            if shift >= 25 {
566
783
                let continuation_bit = (byte & 0x80) != 0;
567
783
                let sign_and_unused_bit = (byte << 1) as i8 >> (33 - shift);
568
783
                if continuation_bit || (sign_and_unused_bit != 0 && sign_and_unused_bit != -1) {
569
39
                    return Err(BinaryReaderError::new(
570
39
                        "invalid var_s33: integer representation too long",
571
39
                        self.original_position() - 1,
572
39
                    ));
573
744
                }
574
744
                return Ok(result);
575
6.20M
            }
576
6.20M
            shift += 7;
577
6.20M
            if (byte & 0x80) == 0 {
578
6.11M
                break;
579
94.9k
            }
580
        }
581
6.11M
        let ashift = 64 - shift;
582
6.11M
        Ok((result << ashift) >> ashift)
583
18.9M
    }
584
585
    /// Advances the `BinaryReader` up to eight bytes to parse a variable
586
    /// length integer as a 64 bit integer, returned as a `i64`.
587
    /// # Errors
588
    /// If `BinaryReader` has less than one or up to eight bytes remaining, or
589
    /// the integer is larger than 64 bits.
590
4.33M
    pub fn read_var_i64(&mut self) -> Result<i64> {
591
4.33M
        let mut result: i64 = 0;
592
4.33M
        let mut shift = 0;
593
        loop {
594
25.2M
            let byte = self.read_u8()?;
595
25.2M
            result |= i64::from(byte & 0x7F) << shift;
596
25.2M
            if shift >= 57 {
597
1.23M
                let continuation_bit = (byte & 0x80) != 0;
598
1.23M
                let sign_and_unused_bit = ((byte << 1) as i8) >> (64 - shift);
599
1.23M
                if continuation_bit || (sign_and_unused_bit != 0 && sign_and_unused_bit != -1) {
600
10
                    let msg = if continuation_bit {
601
7
                        "invalid var_i64: integer representation too long"
602
                    } else {
603
3
                        "invalid var_i64: integer too large"
604
                    };
605
10
                    return Err(BinaryReaderError::new(msg, self.original_position() - 1));
606
1.23M
                }
607
1.23M
                return Ok(result);
608
23.9M
            }
609
23.9M
            shift += 7;
610
23.9M
            if (byte & 0x80) == 0 {
611
3.09M
                break;
612
20.8M
            }
613
        }
614
3.09M
        let ashift = 64 - shift;
615
3.09M
        Ok((result << ashift) >> ashift)
616
4.33M
    }
617
618
    /// Advances the `BinaryReader` up to four bytes to parse a variable
619
    /// length integer as a 32 bit floating point integer, returned as `Ieee32`.
620
    /// # Errors
621
    /// If `BinaryReader` has less than one or up to four bytes remaining, or
622
    /// the integer is larger than 32 bits.
623
7.62M
    pub fn read_f32(&mut self) -> Result<Ieee32> {
624
7.62M
        let value = self.read_u32()?;
625
7.62M
        Ok(Ieee32(value))
626
7.62M
    }
627
628
    /// Advances the `BinaryReader` up to four bytes to parse a variable
629
    /// length integer as a 32 bit floating point integer, returned as `Ieee32`.
630
    /// # Errors
631
    /// If `BinaryReader` has less than one or up to four bytes remaining, or
632
    /// the integer is larger than 32 bits.
633
7.17M
    pub fn read_f64(&mut self) -> Result<Ieee64> {
634
7.17M
        let value = self.read_u64()?;
635
7.17M
        Ok(Ieee64(value))
636
7.17M
    }
637
638
    /// Reads a WebAssembly string from the module.
639
    /// # Errors
640
    /// If `BinaryReader` has less than up to four bytes remaining, the string's
641
    /// length exceeds the remaining bytes, the string's length exceeds
642
    /// `limits::MAX_WASM_STRING_SIZE`, or the string contains invalid utf-8.
643
53.4M
    pub fn read_string(&mut self) -> Result<&'a str> {
644
53.4M
        let len = self.read_var_u32()? as usize;
645
53.4M
        if len > MAX_WASM_STRING_SIZE {
646
569
            return Err(BinaryReaderError::new(
647
569
                "string size out of bounds",
648
569
                self.original_position() - 1,
649
569
            ));
650
53.4M
        }
651
53.4M
        let bytes = self.read_bytes(len)?;
652
53.4M
        str::from_utf8(bytes).map_err(|_| {
653
876
            BinaryReaderError::new("invalid UTF-8 encoding", self.original_position() - 1)
654
53.4M
        })
655
53.4M
    }
656
657
    #[cold]
658
708
    pub(crate) fn invalid_leading_byte<T>(&self, byte: u8, desc: &str) -> Result<T> {
659
708
        Err(Self::invalid_leading_byte_error(
660
708
            byte,
661
708
            desc,
662
708
            self.original_position() - 1,
663
708
        ))
664
708
    }
<wasmparser::binary_reader::BinaryReader>::invalid_leading_byte::<wasmparser::readers::core::types::Type>
Line
Count
Source
658
66
    pub(crate) fn invalid_leading_byte<T>(&self, byte: u8, desc: &str) -> Result<T> {
659
66
        Err(Self::invalid_leading_byte_error(
660
66
            byte,
661
66
            desc,
662
66
            self.original_position() - 1,
663
66
        ))
664
66
    }
<wasmparser::binary_reader::BinaryReader>::invalid_leading_byte::<wasmparser::readers::component::imports::TypeBounds>
Line
Count
Source
658
2
    pub(crate) fn invalid_leading_byte<T>(&self, byte: u8, desc: &str) -> Result<T> {
659
2
        Err(Self::invalid_leading_byte_error(
660
2
            byte,
661
2
            desc,
662
2
            self.original_position() - 1,
663
2
        ))
664
2
    }
<wasmparser::binary_reader::BinaryReader>::invalid_leading_byte::<wasmparser::readers::component::types::ComponentDefinedType>
Line
Count
Source
658
298
    pub(crate) fn invalid_leading_byte<T>(&self, byte: u8, desc: &str) -> Result<T> {
659
298
        Err(Self::invalid_leading_byte_error(
660
298
            byte,
661
298
            desc,
662
298
            self.original_position() - 1,
663
298
        ))
664
298
    }
<wasmparser::binary_reader::BinaryReader>::invalid_leading_byte::<wasmparser::readers::component::canonicals::CanonicalOption>
Line
Count
Source
658
23
    pub(crate) fn invalid_leading_byte<T>(&self, byte: u8, desc: &str) -> Result<T> {
659
23
        Err(Self::invalid_leading_byte_error(
660
23
            byte,
661
23
            desc,
662
23
            self.original_position() - 1,
663
23
        ))
664
23
    }
<wasmparser::binary_reader::BinaryReader>::invalid_leading_byte::<wasmparser::readers::component::types::VariantCase>
Line
Count
Source
658
7
    pub(crate) fn invalid_leading_byte<T>(&self, byte: u8, desc: &str) -> Result<T> {
659
7
        Err(Self::invalid_leading_byte_error(
660
7
            byte,
661
7
            desc,
662
7
            self.original_position() - 1,
663
7
        ))
664
7
    }
<wasmparser::binary_reader::BinaryReader>::invalid_leading_byte::<wasmparser::readers::component::canonicals::CanonicalFunction>
Line
Count
Source
658
60
    pub(crate) fn invalid_leading_byte<T>(&self, byte: u8, desc: &str) -> Result<T> {
659
60
        Err(Self::invalid_leading_byte_error(
660
60
            byte,
661
60
            desc,
662
60
            self.original_position() - 1,
663
60
        ))
664
60
    }
<wasmparser::binary_reader::BinaryReader>::invalid_leading_byte::<wasmparser::readers::component::types::InstanceTypeDeclaration>
Line
Count
Source
658
60
    pub(crate) fn invalid_leading_byte<T>(&self, byte: u8, desc: &str) -> Result<T> {
659
60
        Err(Self::invalid_leading_byte_error(
660
60
            byte,
661
60
            desc,
662
60
            self.original_position() - 1,
663
60
        ))
664
60
    }
<wasmparser::binary_reader::BinaryReader>::invalid_leading_byte::<wasmparser::readers::component::types::ComponentFuncResult>
Line
Count
Source
658
5
    pub(crate) fn invalid_leading_byte<T>(&self, byte: u8, desc: &str) -> Result<T> {
659
5
        Err(Self::invalid_leading_byte_error(
660
5
            byte,
661
5
            desc,
662
5
            self.original_position() - 1,
663
5
        ))
664
5
    }
<wasmparser::binary_reader::BinaryReader>::invalid_leading_byte::<wasmparser::readers::component::instances::ComponentInstance>
Line
Count
Source
658
29
    pub(crate) fn invalid_leading_byte<T>(&self, byte: u8, desc: &str) -> Result<T> {
659
29
        Err(Self::invalid_leading_byte_error(
660
29
            byte,
661
29
            desc,
662
29
            self.original_position() - 1,
663
29
        ))
664
29
    }
<wasmparser::binary_reader::BinaryReader>::invalid_leading_byte::<wasmparser::readers::component::aliases::ComponentAlias>
Line
Count
Source
658
24
    pub(crate) fn invalid_leading_byte<T>(&self, byte: u8, desc: &str) -> Result<T> {
659
24
        Err(Self::invalid_leading_byte_error(
660
24
            byte,
661
24
            desc,
662
24
            self.original_position() - 1,
663
24
        ))
664
24
    }
<wasmparser::binary_reader::BinaryReader>::invalid_leading_byte::<wasmparser::readers::component::instances::Instance>
Line
Count
Source
658
23
    pub(crate) fn invalid_leading_byte<T>(&self, byte: u8, desc: &str) -> Result<T> {
659
23
        Err(Self::invalid_leading_byte_error(
660
23
            byte,
661
23
            desc,
662
23
            self.original_position() - 1,
663
23
        ))
664
23
    }
<wasmparser::binary_reader::BinaryReader>::invalid_leading_byte::<wasmparser::readers::component::types::CoreType>
Line
Count
Source
658
69
    pub(crate) fn invalid_leading_byte<T>(&self, byte: u8, desc: &str) -> Result<T> {
659
69
        Err(Self::invalid_leading_byte_error(
660
69
            byte,
661
69
            desc,
662
69
            self.original_position() - 1,
663
69
        ))
664
69
    }
<wasmparser::binary_reader::BinaryReader>::invalid_leading_byte::<wasmparser::readers::component::instances::InstantiationArgKind>
Line
Count
Source
658
13
    pub(crate) fn invalid_leading_byte<T>(&self, byte: u8, desc: &str) -> Result<T> {
659
13
        Err(Self::invalid_leading_byte_error(
660
13
            byte,
661
13
            desc,
662
13
            self.original_position() - 1,
663
13
        ))
664
13
    }
<wasmparser::binary_reader::BinaryReader>::invalid_leading_byte::<core::option::Option<wasmparser::readers::component::types::ComponentValType>>
Line
Count
Source
658
19
    pub(crate) fn invalid_leading_byte<T>(&self, byte: u8, desc: &str) -> Result<T> {
659
19
        Err(Self::invalid_leading_byte_error(
660
19
            byte,
661
19
            desc,
662
19
            self.original_position() - 1,
663
19
        ))
664
19
    }
<wasmparser::binary_reader::BinaryReader>::invalid_leading_byte::<wasmparser::readers::component::types::ModuleTypeDeclaration>
Line
Count
Source
658
10
    pub(crate) fn invalid_leading_byte<T>(&self, byte: u8, desc: &str) -> Result<T> {
659
10
        Err(Self::invalid_leading_byte_error(
660
10
            byte,
661
10
            desc,
662
10
            self.original_position() - 1,
663
10
        ))
664
10
    }
665
666
923
    pub(crate) fn invalid_leading_byte_error(
667
923
        byte: u8,
668
923
        desc: &str,
669
923
        offset: usize,
670
923
    ) -> BinaryReaderError {
671
923
        format_err!(offset, "invalid leading byte (0x{byte:x}) for {desc}")
672
923
    }
673
674
    pub(crate) fn peek(&self) -> Result<u8> {
675
147M
        self.ensure_has_byte()?;
676
147M
        Ok(self.buffer[self.position])
677
147M
    }
678
679
10.2M
    fn read_block_type(&mut self) -> Result<BlockType> {
680
10.2M
        let b = self.peek()?;
681
682
        // Check for empty block
683
10.2M
        if b == 0x40 {
684
4.03M
            self.position += 1;
685
4.03M
            return Ok(BlockType::Empty);
686
6.23M
        }
687
6.23M
688
6.23M
        // Check for a block type of form [] -> [t].
689
6.23M
        if ValType::is_valtype_byte(b) {
690
3.69M
            return Ok(BlockType::Type(self.read()?));
691
2.53M
        }
692
693
        // Not empty or a singular type, so read the function type index
694
2.53M
        let idx = self.read_var_s33()?;
695
2.53M
        match u32::try_from(idx) {
696
2.53M
            Ok(idx) => Ok(BlockType::FuncType(idx)),
697
            Err(_) => {
698
143
                return Err(BinaryReaderError::new(
699
143
                    "invalid function type",
700
143
                    self.original_position(),
701
143
                ));
702
            }
703
        }
704
10.2M
    }
705
706
    /// Visit the next available operator with the specified [`VisitOperator`] instance.
707
    ///
708
    /// Note that this does not implicitly propagate any additional information such as instruction
709
    /// offsets. In order to do so, consider storing such data within the visitor before visiting.
710
    ///
711
    /// # Errors
712
    ///
713
    /// If `BinaryReader` has less bytes remaining than required to parse the `Operator`.
714
    ///
715
    /// # Examples
716
    ///
717
    /// Store an offset for use in diagnostics or any other purposes:
718
    ///
719
    /// ```
720
    /// # use wasmparser::{BinaryReader, VisitOperator, Result, for_each_operator};
721
    ///
722
    /// pub fn dump(mut reader: BinaryReader) -> Result<()> {
723
    ///     let mut visitor = Dumper { offset: 0 };
724
    ///     while !reader.eof() {
725
    ///         visitor.offset = reader.original_position();
726
    ///         reader.visit_operator(&mut visitor)?;
727
    ///     }
728
    ///     Ok(())
729
    /// }
730
    ///
731
    /// struct Dumper {
732
    ///     offset: usize
733
    /// }
734
    ///
735
    /// macro_rules! define_visit_operator {
736
    ///     ($(@$proposal:ident $op:ident $({ $($arg:ident: $argty:ty),* })? => $visit:ident)*) => {
737
    ///         $(
738
    ///             fn $visit(&mut self $($(,$arg: $argty)*)?) -> Self::Output {
739
    ///                 println!("{}: {}", self.offset, stringify!($visit));
740
    ///             }
741
    ///         )*
742
    ///     }
743
    /// }
744
    ///
745
    /// impl<'a> VisitOperator<'a> for Dumper {
746
    ///     type Output = ();
747
    ///     for_each_operator!(define_visit_operator);
748
    /// }
749
    ///
750
    /// ```
751
315M
    pub fn visit_operator<T>(&mut self, visitor: &mut T) -> Result<<T as VisitOperator<'a>>::Output>
752
315M
    where
753
315M
        T: VisitOperator<'a>,
754
315M
    {
755
315M
        let pos = self.original_position();
756
315M
        let code = self.read_u8()? as u8;
757
315M
        Ok(match code {
758
16.8M
            0x00 => visitor.visit_unreachable(),
759
2.51M
            0x01 => visitor.visit_nop(),
760
5.00M
            0x02 => visitor.visit_block(self.read_block_type()?),
761
1.86M
            0x03 => visitor.visit_loop(self.read_block_type()?),
762
661k
            0x04 => visitor.visit_if(self.read_block_type()?),
763
383k
            0x05 => visitor.visit_else(),
764
2.73M
            0x06 => visitor.visit_try(self.read_block_type()?),
765
32.3k
            0x07 => visitor.visit_catch(self.read_var_u32()?),
766
3.11M
            0x08 => visitor.visit_throw(self.read_var_u32()?),
767
198k
            0x09 => visitor.visit_rethrow(self.read_var_u32()?),
768
62.1M
            0x0b => visitor.visit_end(),
769
4.50M
            0x0c => visitor.visit_br(self.read_var_u32()?),
770
594k
            0x0d => visitor.visit_br_if(self.read_var_u32()?),
771
140k
            0x0e => visitor.visit_br_table(self.read_br_table()?),
772
299k
            0x0f => visitor.visit_return(),
773
1.49M
            0x10 => visitor.visit_call(self.read_var_u32()?),
774
            0x11 => {
775
316k
                let index = self.read_var_u32()?;
776
316k
                let (table_byte, table_index) = self.read_first_byte_and_var_u32()?;
777
316k
                visitor.visit_call_indirect(index, table_index, table_byte)
778
            }
779
238k
            0x12 => visitor.visit_return_call(self.read_var_u32()?),
780
44.8k
            0x13 => visitor.visit_return_call_indirect(self.read_var_u32()?, self.read_var_u32()?),
781
4.65k
            0x14 => visitor.visit_call_ref(self.read()?),
782
6.98k
            0x15 => visitor.visit_return_call_ref(self.read()?),
783
73.1k
            0x18 => visitor.visit_delegate(self.read_var_u32()?),
784
96.6k
            0x19 => visitor.visit_catch_all(),
785
27.3M
            0x1a => visitor.visit_drop(),
786
3.26M
            0x1b => visitor.visit_select(),
787
            0x1c => {
788
17.1k
                let results = self.read_var_u32()?;
789
17.1k
                if results != 1 {
790
56
                    return Err(BinaryReaderError::new(
791
56
                        "invalid result arity",
792
56
                        self.position,
793
56
                    ));
794
17.1k
                }
795
17.1k
                visitor.visit_typed_select(self.read()?)
796
            }
797
798
11.9M
            0x20 => visitor.visit_local_get(self.read_var_u32()?),
799
1.41M
            0x21 => visitor.visit_local_set(self.read_var_u32()?),
800
5.71M
            0x22 => visitor.visit_local_tee(self.read_var_u32()?),
801
1.35M
            0x23 => visitor.visit_global_get(self.read_var_u32()?),
802
515k
            0x24 => visitor.visit_global_set(self.read_var_u32()?),
803
90.6k
            0x25 => visitor.visit_table_get(self.read_var_u32()?),
804
26.4k
            0x26 => visitor.visit_table_set(self.read_var_u32()?),
805
806
527k
            0x28 => visitor.visit_i32_load(self.read_memarg(2)?),
807
452k
            0x29 => visitor.visit_i64_load(self.read_memarg(3)?),
808
198k
            0x2a => visitor.visit_f32_load(self.read_memarg(2)?),
809
181k
            0x2b => visitor.visit_f64_load(self.read_memarg(3)?),
810
201k
            0x2c => visitor.visit_i32_load8_s(self.read_memarg(0)?),
811
318k
            0x2d => visitor.visit_i32_load8_u(self.read_memarg(0)?),
812
552k
            0x2e => visitor.visit_i32_load16_s(self.read_memarg(1)?),
813
207k
            0x2f => visitor.visit_i32_load16_u(self.read_memarg(1)?),
814
324k
            0x30 => visitor.visit_i64_load8_s(self.read_memarg(0)?),
815
324k
            0x31 => visitor.visit_i64_load8_u(self.read_memarg(0)?),
816
470k
            0x32 => visitor.visit_i64_load16_s(self.read_memarg(1)?),
817
225k
            0x33 => visitor.visit_i64_load16_u(self.read_memarg(1)?),
818
274k
            0x34 => visitor.visit_i64_load32_s(self.read_memarg(2)?),
819
166k
            0x35 => visitor.visit_i64_load32_u(self.read_memarg(2)?),
820
61.7k
            0x36 => visitor.visit_i32_store(self.read_memarg(2)?),
821
123k
            0x37 => visitor.visit_i64_store(self.read_memarg(3)?),
822
19.3k
            0x38 => visitor.visit_f32_store(self.read_memarg(2)?),
823
13.6k
            0x39 => visitor.visit_f64_store(self.read_memarg(3)?),
824
36.4k
            0x3a => visitor.visit_i32_store8(self.read_memarg(0)?),
825
30.3k
            0x3b => visitor.visit_i32_store16(self.read_memarg(1)?),
826
23.2k
            0x3c => visitor.visit_i64_store8(self.read_memarg(0)?),
827
42.1k
            0x3d => visitor.visit_i64_store16(self.read_memarg(1)?),
828
40.7k
            0x3e => visitor.visit_i64_store32(self.read_memarg(2)?),
829
            0x3f => {
830
1.63M
                let (mem_byte, mem) = self.read_first_byte_and_var_u32()?;
831
1.63M
                visitor.visit_memory_size(mem, mem_byte)
832
            }
833
            0x40 => {
834
965k
                let (mem_byte, mem) = self.read_first_byte_and_var_u32()?;
835
965k
                visitor.visit_memory_grow(mem, mem_byte)
836
            }
837
838
6.51M
            0x41 => visitor.visit_i32_const(self.read_var_i32()?),
839
4.33M
            0x42 => visitor.visit_i64_const(self.read_var_i64()?),
840
7.62M
            0x43 => visitor.visit_f32_const(self.read_f32()?),
841
7.17M
            0x44 => visitor.visit_f64_const(self.read_f64()?),
842
843
889k
            0x45 => visitor.visit_i32_eqz(),
844
79.4k
            0x46 => visitor.visit_i32_eq(),
845
70.8k
            0x47 => visitor.visit_i32_ne(),
846
106k
            0x48 => visitor.visit_i32_lt_s(),
847
56.5k
            0x49 => visitor.visit_i32_lt_u(),
848
223k
            0x4a => visitor.visit_i32_gt_s(),
849
72.7k
            0x4b => visitor.visit_i32_gt_u(),
850
129k
            0x4c => visitor.visit_i32_le_s(),
851
129k
            0x4d => visitor.visit_i32_le_u(),
852
273k
            0x4e => visitor.visit_i32_ge_s(),
853
58.3k
            0x4f => visitor.visit_i32_ge_u(),
854
540k
            0x50 => visitor.visit_i64_eqz(),
855
23.5k
            0x51 => visitor.visit_i64_eq(),
856
55.2k
            0x52 => visitor.visit_i64_ne(),
857
61.4k
            0x53 => visitor.visit_i64_lt_s(),
858
66.2k
            0x54 => visitor.visit_i64_lt_u(),
859
35.0k
            0x55 => visitor.visit_i64_gt_s(),
860
42.4k
            0x56 => visitor.visit_i64_gt_u(),
861
110k
            0x57 => visitor.visit_i64_le_s(),
862
163k
            0x58 => visitor.visit_i64_le_u(),
863
72.7k
            0x59 => visitor.visit_i64_ge_s(),
864
34.1k
            0x5a => visitor.visit_i64_ge_u(),
865
1.38M
            0x5b => visitor.visit_f32_eq(),
866
76.5k
            0x5c => visitor.visit_f32_ne(),
867
308k
            0x5d => visitor.visit_f32_lt(),
868
116k
            0x5e => visitor.visit_f32_gt(),
869
29.2k
            0x5f => visitor.visit_f32_le(),
870
50.4k
            0x60 => visitor.visit_f32_ge(),
871
1.86M
            0x61 => visitor.visit_f64_eq(),
872
74.0k
            0x62 => visitor.visit_f64_ne(),
873
73.8k
            0x63 => visitor.visit_f64_lt(),
874
54.5k
            0x64 => visitor.visit_f64_gt(),
875
231k
            0x65 => visitor.visit_f64_le(),
876
34.3k
            0x66 => visitor.visit_f64_ge(),
877
943k
            0x67 => visitor.visit_i32_clz(),
878
564k
            0x68 => visitor.visit_i32_ctz(),
879
750k
            0x69 => visitor.visit_i32_popcnt(),
880
1.61M
            0x6a => visitor.visit_i32_add(),
881
48.3k
            0x6b => visitor.visit_i32_sub(),
882
119k
            0x6c => visitor.visit_i32_mul(),
883
145k
            0x6d => visitor.visit_i32_div_s(),
884
118k
            0x6e => visitor.visit_i32_div_u(),
885
88.1k
            0x6f => visitor.visit_i32_rem_s(),
886
98.1k
            0x70 => visitor.visit_i32_rem_u(),
887
42.7k
            0x71 => visitor.visit_i32_and(),
888
214k
            0x72 => visitor.visit_i32_or(),
889
136k
            0x73 => visitor.visit_i32_xor(),
890
48.4k
            0x74 => visitor.visit_i32_shl(),
891
86.2k
            0x75 => visitor.visit_i32_shr_s(),
892
119k
            0x76 => visitor.visit_i32_shr_u(),
893
31.2k
            0x77 => visitor.visit_i32_rotl(),
894
560k
            0x78 => visitor.visit_i32_rotr(),
895
555k
            0x79 => visitor.visit_i64_clz(),
896
592k
            0x7a => visitor.visit_i64_ctz(),
897
589k
            0x7b => visitor.visit_i64_popcnt(),
898
183k
            0x7c => visitor.visit_i64_add(),
899
49.5k
            0x7d => visitor.visit_i64_sub(),
900
142k
            0x7e => visitor.visit_i64_mul(),
901
108k
            0x7f => visitor.visit_i64_div_s(),
902
203k
            0x80 => visitor.visit_i64_div_u(),
903
81.5k
            0x81 => visitor.visit_i64_rem_s(),
904
20.9k
            0x82 => visitor.visit_i64_rem_u(),
905
28.7k
            0x83 => visitor.visit_i64_and(),
906
45.1k
            0x84 => visitor.visit_i64_or(),
907
19.3k
            0x85 => visitor.visit_i64_xor(),
908
22.0k
            0x86 => visitor.visit_i64_shl(),
909
22.6k
            0x87 => visitor.visit_i64_shr_s(),
910
55.1k
            0x88 => visitor.visit_i64_shr_u(),
911
14.6k
            0x89 => visitor.visit_i64_rotl(),
912
18.3k
            0x8a => visitor.visit_i64_rotr(),
913
536k
            0x8b => visitor.visit_f32_abs(),
914
558k
            0x8c => visitor.visit_f32_neg(),
915
345k
            0x8d => visitor.visit_f32_ceil(),
916
257k
            0x8e => visitor.visit_f32_floor(),
917
258k
            0x8f => visitor.visit_f32_trunc(),
918
314k
            0x90 => visitor.visit_f32_nearest(),
919
286k
            0x91 => visitor.visit_f32_sqrt(),
920
38.3k
            0x92 => visitor.visit_f32_add(),
921
50.1k
            0x93 => visitor.visit_f32_sub(),
922
69.5k
            0x94 => visitor.visit_f32_mul(),
923
39.9k
            0x95 => visitor.visit_f32_div(),
924
13.8k
            0x96 => visitor.visit_f32_min(),
925
33.5k
            0x97 => visitor.visit_f32_max(),
926
79.9k
            0x98 => visitor.visit_f32_copysign(),
927
414k
            0x99 => visitor.visit_f64_abs(),
928
688k
            0x9a => visitor.visit_f64_neg(),
929
495k
            0x9b => visitor.visit_f64_ceil(),
930
316k
            0x9c => visitor.visit_f64_floor(),
931
525k
            0x9d => visitor.visit_f64_trunc(),
932
573k
            0x9e => visitor.visit_f64_nearest(),
933
267k
            0x9f => visitor.visit_f64_sqrt(),
934
38.5k
            0xa0 => visitor.visit_f64_add(),
935
52.3k
            0xa1 => visitor.visit_f64_sub(),
936
54.2k
            0xa2 => visitor.visit_f64_mul(),
937
24.1k
            0xa3 => visitor.visit_f64_div(),
938
22.0k
            0xa4 => visitor.visit_f64_min(),
939
16.6k
            0xa5 => visitor.visit_f64_max(),
940
46.7k
            0xa6 => visitor.visit_f64_copysign(),
941
275k
            0xa7 => visitor.visit_i32_wrap_i64(),
942
175k
            0xa8 => visitor.visit_i32_trunc_f32_s(),
943
151k
            0xa9 => visitor.visit_i32_trunc_f32_u(),
944
128k
            0xaa => visitor.visit_i32_trunc_f64_s(),
945
164k
            0xab => visitor.visit_i32_trunc_f64_u(),
946
229k
            0xac => visitor.visit_i64_extend_i32_s(),
947
260k
            0xad => visitor.visit_i64_extend_i32_u(),
948
141k
            0xae => visitor.visit_i64_trunc_f32_s(),
949
179k
            0xaf => visitor.visit_i64_trunc_f32_u(),
950
161k
            0xb0 => visitor.visit_i64_trunc_f64_s(),
951
202k
            0xb1 => visitor.visit_i64_trunc_f64_u(),
952
262k
            0xb2 => visitor.visit_f32_convert_i32_s(),
953
568k
            0xb3 => visitor.visit_f32_convert_i32_u(),
954
311k
            0xb4 => visitor.visit_f32_convert_i64_s(),
955
163k
            0xb5 => visitor.visit_f32_convert_i64_u(),
956
224k
            0xb6 => visitor.visit_f32_demote_f64(),
957
318k
            0xb7 => visitor.visit_f64_convert_i32_s(),
958
465k
            0xb8 => visitor.visit_f64_convert_i32_u(),
959
128k
            0xb9 => visitor.visit_f64_convert_i64_s(),
960
652k
            0xba => visitor.visit_f64_convert_i64_u(),
961
262k
            0xbb => visitor.visit_f64_promote_f32(),
962
340k
            0xbc => visitor.visit_i32_reinterpret_f32(),
963
172k
            0xbd => visitor.visit_i64_reinterpret_f64(),
964
569k
            0xbe => visitor.visit_f32_reinterpret_i32(),
965
191k
            0xbf => visitor.visit_f64_reinterpret_i64(),
966
967
980k
            0xc0 => visitor.visit_i32_extend8_s(),
968
567k
            0xc1 => visitor.visit_i32_extend16_s(),
969
307k
            0xc2 => visitor.visit_i64_extend8_s(),
970
507k
            0xc3 => visitor.visit_i64_extend16_s(),
971
225k
            0xc4 => visitor.visit_i64_extend32_s(),
972
973
52.6M
            0xd0 => visitor.visit_ref_null(self.read()?),
974
132k
            0xd1 => visitor.visit_ref_is_null(),
975
922k
            0xd2 => visitor.visit_ref_func(self.read_var_u32()?),
976
2.12k
            0xd3 => visitor.visit_ref_as_non_null(),
977
953
            0xd4 => visitor.visit_br_on_null(self.read_var_u32()?),
978
2.31k
            0xd6 => visitor.visit_br_on_non_null(self.read_var_u32()?),
979
980
6.04M
            0xfc => self.visit_0xfc_operator(pos, visitor)?,
981
35.1M
            0xfd => self.visit_0xfd_operator(pos, visitor)?,
982
461k
            0xfe => self.visit_0xfe_operator(pos, visitor)?,
983
984
1.52k
            _ => bail!(pos, "illegal opcode: 0x{code:x}"),
985
        })
986
315M
    }
<wasmparser::binary_reader::BinaryReader>::visit_operator::<wasmprinter::operator::PrintOperator>
Line
Count
Source
751
94.1M
    pub fn visit_operator<T>(&mut self, visitor: &mut T) -> Result<<T as VisitOperator<'a>>::Output>
752
94.1M
    where
753
94.1M
        T: VisitOperator<'a>,
754
94.1M
    {
755
94.1M
        let pos = self.original_position();
756
94.1M
        let code = self.read_u8()? as u8;
757
94.1M
        Ok(match code {
758
3.00M
            0x00 => visitor.visit_unreachable(),
759
919k
            0x01 => visitor.visit_nop(),
760
1.19M
            0x02 => visitor.visit_block(self.read_block_type()?),
761
659k
            0x03 => visitor.visit_loop(self.read_block_type()?),
762
124k
            0x04 => visitor.visit_if(self.read_block_type()?),
763
119k
            0x05 => visitor.visit_else(),
764
1.57M
            0x06 => visitor.visit_try(self.read_block_type()?),
765
12.7k
            0x07 => visitor.visit_catch(self.read_var_u32()?),
766
1.23M
            0x08 => visitor.visit_throw(self.read_var_u32()?),
767
101k
            0x09 => visitor.visit_rethrow(self.read_var_u32()?),
768
10.9M
            0x0b => visitor.visit_end(),
769
1.39M
            0x0c => visitor.visit_br(self.read_var_u32()?),
770
143k
            0x0d => visitor.visit_br_if(self.read_var_u32()?),
771
63.1k
            0x0e => visitor.visit_br_table(self.read_br_table()?),
772
135k
            0x0f => visitor.visit_return(),
773
541k
            0x10 => visitor.visit_call(self.read_var_u32()?),
774
            0x11 => {
775
147k
                let index = self.read_var_u32()?;
776
147k
                let (table_byte, table_index) = self.read_first_byte_and_var_u32()?;
777
147k
                visitor.visit_call_indirect(index, table_index, table_byte)
778
            }
779
112k
            0x12 => visitor.visit_return_call(self.read_var_u32()?),
780
23.2k
            0x13 => visitor.visit_return_call_indirect(self.read_var_u32()?, self.read_var_u32()?),
781
1.31k
            0x14 => visitor.visit_call_ref(self.read()?),
782
2.44k
            0x15 => visitor.visit_return_call_ref(self.read()?),
783
37.9k
            0x18 => visitor.visit_delegate(self.read_var_u32()?),
784
40.4k
            0x19 => visitor.visit_catch_all(),
785
12.5M
            0x1a => visitor.visit_drop(),
786
1.39M
            0x1b => visitor.visit_select(),
787
            0x1c => {
788
1.44k
                let results = self.read_var_u32()?;
789
1.44k
                if results != 1 {
790
10
                    return Err(BinaryReaderError::new(
791
10
                        "invalid result arity",
792
10
                        self.position,
793
10
                    ));
794
1.43k
                }
795
1.43k
                visitor.visit_typed_select(self.read()?)
796
            }
797
798
4.69M
            0x20 => visitor.visit_local_get(self.read_var_u32()?),
799
195k
            0x21 => visitor.visit_local_set(self.read_var_u32()?),
800
2.58M
            0x22 => visitor.visit_local_tee(self.read_var_u32()?),
801
507k
            0x23 => visitor.visit_global_get(self.read_var_u32()?),
802
175k
            0x24 => visitor.visit_global_set(self.read_var_u32()?),
803
27.4k
            0x25 => visitor.visit_table_get(self.read_var_u32()?),
804
9.85k
            0x26 => visitor.visit_table_set(self.read_var_u32()?),
805
806
274k
            0x28 => visitor.visit_i32_load(self.read_memarg(2)?),
807
242k
            0x29 => visitor.visit_i64_load(self.read_memarg(3)?),
808
84.3k
            0x2a => visitor.visit_f32_load(self.read_memarg(2)?),
809
83.9k
            0x2b => visitor.visit_f64_load(self.read_memarg(3)?),
810
74.0k
            0x2c => visitor.visit_i32_load8_s(self.read_memarg(0)?),
811
116k
            0x2d => visitor.visit_i32_load8_u(self.read_memarg(0)?),
812
167k
            0x2e => visitor.visit_i32_load16_s(self.read_memarg(1)?),
813
83.7k
            0x2f => visitor.visit_i32_load16_u(self.read_memarg(1)?),
814
81.3k
            0x30 => visitor.visit_i64_load8_s(self.read_memarg(0)?),
815
102k
            0x31 => visitor.visit_i64_load8_u(self.read_memarg(0)?),
816
97.6k
            0x32 => visitor.visit_i64_load16_s(self.read_memarg(1)?),
817
75.3k
            0x33 => visitor.visit_i64_load16_u(self.read_memarg(1)?),
818
84.0k
            0x34 => visitor.visit_i64_load32_s(self.read_memarg(2)?),
819
63.0k
            0x35 => visitor.visit_i64_load32_u(self.read_memarg(2)?),
820
21.1k
            0x36 => visitor.visit_i32_store(self.read_memarg(2)?),
821
54.1k
            0x37 => visitor.visit_i64_store(self.read_memarg(3)?),
822
6.84k
            0x38 => visitor.visit_f32_store(self.read_memarg(2)?),
823
4.60k
            0x39 => visitor.visit_f64_store(self.read_memarg(3)?),
824
9.63k
            0x3a => visitor.visit_i32_store8(self.read_memarg(0)?),
825
10.8k
            0x3b => visitor.visit_i32_store16(self.read_memarg(1)?),
826
9.28k
            0x3c => visitor.visit_i64_store8(self.read_memarg(0)?),
827
10.1k
            0x3d => visitor.visit_i64_store16(self.read_memarg(1)?),
828
18.7k
            0x3e => visitor.visit_i64_store32(self.read_memarg(2)?),
829
            0x3f => {
830
553k
                let (mem_byte, mem) = self.read_first_byte_and_var_u32()?;
831
553k
                visitor.visit_memory_size(mem, mem_byte)
832
            }
833
            0x40 => {
834
202k
                let (mem_byte, mem) = self.read_first_byte_and_var_u32()?;
835
202k
                visitor.visit_memory_grow(mem, mem_byte)
836
            }
837
838
2.30M
            0x41 => visitor.visit_i32_const(self.read_var_i32()?),
839
1.69M
            0x42 => visitor.visit_i64_const(self.read_var_i64()?),
840
2.67M
            0x43 => visitor.visit_f32_const(self.read_f32()?),
841
2.86M
            0x44 => visitor.visit_f64_const(self.read_f64()?),
842
843
210k
            0x45 => visitor.visit_i32_eqz(),
844
29.1k
            0x46 => visitor.visit_i32_eq(),
845
16.5k
            0x47 => visitor.visit_i32_ne(),
846
41.1k
            0x48 => visitor.visit_i32_lt_s(),
847
21.5k
            0x49 => visitor.visit_i32_lt_u(),
848
70.6k
            0x4a => visitor.visit_i32_gt_s(),
849
17.3k
            0x4b => visitor.visit_i32_gt_u(),
850
37.7k
            0x4c => visitor.visit_i32_le_s(),
851
23.9k
            0x4d => visitor.visit_i32_le_u(),
852
22.5k
            0x4e => visitor.visit_i32_ge_s(),
853
18.8k
            0x4f => visitor.visit_i32_ge_u(),
854
72.0k
            0x50 => visitor.visit_i64_eqz(),
855
9.64k
            0x51 => visitor.visit_i64_eq(),
856
8.08k
            0x52 => visitor.visit_i64_ne(),
857
24.8k
            0x53 => visitor.visit_i64_lt_s(),
858
24.1k
            0x54 => visitor.visit_i64_lt_u(),
859
12.1k
            0x55 => visitor.visit_i64_gt_s(),
860
15.8k
            0x56 => visitor.visit_i64_gt_u(),
861
15.9k
            0x57 => visitor.visit_i64_le_s(),
862
41.2k
            0x58 => visitor.visit_i64_le_u(),
863
24.2k
            0x59 => visitor.visit_i64_ge_s(),
864
11.1k
            0x5a => visitor.visit_i64_ge_u(),
865
572k
            0x5b => visitor.visit_f32_eq(),
866
17.0k
            0x5c => visitor.visit_f32_ne(),
867
44.4k
            0x5d => visitor.visit_f32_lt(),
868
28.2k
            0x5e => visitor.visit_f32_gt(),
869
8.11k
            0x5f => visitor.visit_f32_le(),
870
16.6k
            0x60 => visitor.visit_f32_ge(),
871
840k
            0x61 => visitor.visit_f64_eq(),
872
14.4k
            0x62 => visitor.visit_f64_ne(),
873
15.3k
            0x63 => visitor.visit_f64_lt(),
874
7.53k
            0x64 => visitor.visit_f64_gt(),
875
88.8k
            0x65 => visitor.visit_f64_le(),
876
13.1k
            0x66 => visitor.visit_f64_ge(),
877
457k
            0x67 => visitor.visit_i32_clz(),
878
195k
            0x68 => visitor.visit_i32_ctz(),
879
250k
            0x69 => visitor.visit_i32_popcnt(),
880
14.5k
            0x6a => visitor.visit_i32_add(),
881
11.3k
            0x6b => visitor.visit_i32_sub(),
882
21.5k
            0x6c => visitor.visit_i32_mul(),
883
47.8k
            0x6d => visitor.visit_i32_div_s(),
884
23.1k
            0x6e => visitor.visit_i32_div_u(),
885
38.5k
            0x6f => visitor.visit_i32_rem_s(),
886
31.7k
            0x70 => visitor.visit_i32_rem_u(),
887
16.7k
            0x71 => visitor.visit_i32_and(),
888
22.9k
            0x72 => visitor.visit_i32_or(),
889
53.7k
            0x73 => visitor.visit_i32_xor(),
890
16.4k
            0x74 => visitor.visit_i32_shl(),
891
31.8k
            0x75 => visitor.visit_i32_shr_s(),
892
21.6k
            0x76 => visitor.visit_i32_shr_u(),
893
12.2k
            0x77 => visitor.visit_i32_rotl(),
894
208k
            0x78 => visitor.visit_i32_rotr(),
895
266k
            0x79 => visitor.visit_i64_clz(),
896
253k
            0x7a => visitor.visit_i64_ctz(),
897
137k
            0x7b => visitor.visit_i64_popcnt(),
898
51.2k
            0x7c => visitor.visit_i64_add(),
899
20.1k
            0x7d => visitor.visit_i64_sub(),
900
19.6k
            0x7e => visitor.visit_i64_mul(),
901
32.5k
            0x7f => visitor.visit_i64_div_s(),
902
18.3k
            0x80 => visitor.visit_i64_div_u(),
903
33.7k
            0x81 => visitor.visit_i64_rem_s(),
904
7.93k
            0x82 => visitor.visit_i64_rem_u(),
905
11.9k
            0x83 => visitor.visit_i64_and(),
906
14.4k
            0x84 => visitor.visit_i64_or(),
907
7.04k
            0x85 => visitor.visit_i64_xor(),
908
9.26k
            0x86 => visitor.visit_i64_shl(),
909
7.93k
            0x87 => visitor.visit_i64_shr_s(),
910
21.8k
            0x88 => visitor.visit_i64_shr_u(),
911
5.45k
            0x89 => visitor.visit_i64_rotl(),
912
4.88k
            0x8a => visitor.visit_i64_rotr(),
913
169k
            0x8b => visitor.visit_f32_abs(),
914
264k
            0x8c => visitor.visit_f32_neg(),
915
136k
            0x8d => visitor.visit_f32_ceil(),
916
93.7k
            0x8e => visitor.visit_f32_floor(),
917
121k
            0x8f => visitor.visit_f32_trunc(),
918
129k
            0x90 => visitor.visit_f32_nearest(),
919
116k
            0x91 => visitor.visit_f32_sqrt(),
920
11.9k
            0x92 => visitor.visit_f32_add(),
921
6.36k
            0x93 => visitor.visit_f32_sub(),
922
23.3k
            0x94 => visitor.visit_f32_mul(),
923
16.2k
            0x95 => visitor.visit_f32_div(),
924
3.86k
            0x96 => visitor.visit_f32_min(),
925
14.2k
            0x97 => visitor.visit_f32_max(),
926
15.5k
            0x98 => visitor.visit_f32_copysign(),
927
165k
            0x99 => visitor.visit_f64_abs(),
928
207k
            0x9a => visitor.visit_f64_neg(),
929
218k
            0x9b => visitor.visit_f64_ceil(),
930
117k
            0x9c => visitor.visit_f64_floor(),
931
160k
            0x9d => visitor.visit_f64_trunc(),
932
262k
            0x9e => visitor.visit_f64_nearest(),
933
108k
            0x9f => visitor.visit_f64_sqrt(),
934
13.1k
            0xa0 => visitor.visit_f64_add(),
935
24.1k
            0xa1 => visitor.visit_f64_sub(),
936
26.2k
            0xa2 => visitor.visit_f64_mul(),
937
7.51k
            0xa3 => visitor.visit_f64_div(),
938
7.89k
            0xa4 => visitor.visit_f64_min(),
939
4.04k
            0xa5 => visitor.visit_f64_max(),
940
7.84k
            0xa6 => visitor.visit_f64_copysign(),
941
113k
            0xa7 => visitor.visit_i32_wrap_i64(),
942
70.8k
            0xa8 => visitor.visit_i32_trunc_f32_s(),
943
69.5k
            0xa9 => visitor.visit_i32_trunc_f32_u(),
944
49.4k
            0xaa => visitor.visit_i32_trunc_f64_s(),
945
68.8k
            0xab => visitor.visit_i32_trunc_f64_u(),
946
93.7k
            0xac => visitor.visit_i64_extend_i32_s(),
947
131k
            0xad => visitor.visit_i64_extend_i32_u(),
948
56.4k
            0xae => visitor.visit_i64_trunc_f32_s(),
949
73.1k
            0xaf => visitor.visit_i64_trunc_f32_u(),
950
70.7k
            0xb0 => visitor.visit_i64_trunc_f64_s(),
951
94.7k
            0xb1 => visitor.visit_i64_trunc_f64_u(),
952
94.0k
            0xb2 => visitor.visit_f32_convert_i32_s(),
953
189k
            0xb3 => visitor.visit_f32_convert_i32_u(),
954
129k
            0xb4 => visitor.visit_f32_convert_i64_s(),
955
70.6k
            0xb5 => visitor.visit_f32_convert_i64_u(),
956
72.0k
            0xb6 => visitor.visit_f32_demote_f64(),
957
127k
            0xb7 => visitor.visit_f64_convert_i32_s(),
958
193k
            0xb8 => visitor.visit_f64_convert_i32_u(),
959
51.5k
            0xb9 => visitor.visit_f64_convert_i64_s(),
960
233k
            0xba => visitor.visit_f64_convert_i64_u(),
961
98.0k
            0xbb => visitor.visit_f64_promote_f32(),
962
102k
            0xbc => visitor.visit_i32_reinterpret_f32(),
963
73.3k
            0xbd => visitor.visit_i64_reinterpret_f64(),
964
182k
            0xbe => visitor.visit_f32_reinterpret_i32(),
965
87.7k
            0xbf => visitor.visit_f64_reinterpret_i64(),
966
967
403k
            0xc0 => visitor.visit_i32_extend8_s(),
968
167k
            0xc1 => visitor.visit_i32_extend16_s(),
969
104k
            0xc2 => visitor.visit_i64_extend8_s(),
970
261k
            0xc3 => visitor.visit_i64_extend16_s(),
971
65.3k
            0xc4 => visitor.visit_i64_extend32_s(),
972
973
7.74M
            0xd0 => visitor.visit_ref_null(self.read()?),
974
28.2k
            0xd1 => visitor.visit_ref_is_null(),
975
98.9k
            0xd2 => visitor.visit_ref_func(self.read_var_u32()?),
976
457
            0xd3 => visitor.visit_ref_as_non_null(),
977
197
            0xd4 => visitor.visit_br_on_null(self.read_var_u32()?),
978
673
            0xd6 => visitor.visit_br_on_non_null(self.read_var_u32()?),
979
980
2.00M
            0xfc => self.visit_0xfc_operator(pos, visitor)?,
981
16.5M
            0xfd => self.visit_0xfd_operator(pos, visitor)?,
982
155k
            0xfe => self.visit_0xfe_operator(pos, visitor)?,
983
984
20
            _ => bail!(pos, "illegal opcode: 0x{code:x}"),
985
        })
986
94.1M
    }
<wasmparser::binary_reader::BinaryReader>::visit_operator::<wasmparser::binary_reader::OperatorFactory>
Line
Count
Source
751
89.7M
    pub fn visit_operator<T>(&mut self, visitor: &mut T) -> Result<<T as VisitOperator<'a>>::Output>
752
89.7M
    where
753
89.7M
        T: VisitOperator<'a>,
754
89.7M
    {
755
89.7M
        let pos = self.original_position();
756
89.7M
        let code = self.read_u8()? as u8;
757
89.7M
        Ok(match code {
758
5.96M
            0x00 => visitor.visit_unreachable(),
759
951k
            0x01 => visitor.visit_nop(),
760
138k
            0x02 => visitor.visit_block(self.read_block_type()?),
761
77.1k
            0x03 => visitor.visit_loop(self.read_block_type()?),
762
70.2k
            0x04 => visitor.visit_if(self.read_block_type()?),
763
104k
            0x05 => visitor.visit_else(),
764
528k
            0x06 => visitor.visit_try(self.read_block_type()?),
765
17.2k
            0x07 => visitor.visit_catch(self.read_var_u32()?),
766
1.86M
            0x08 => visitor.visit_throw(self.read_var_u32()?),
767
65.6k
            0x09 => visitor.visit_rethrow(self.read_var_u32()?),
768
34.0M
            0x0b => visitor.visit_end(),
769
311k
            0x0c => visitor.visit_br(self.read_var_u32()?),
770
81.4k
            0x0d => visitor.visit_br_if(self.read_var_u32()?),
771
13.2k
            0x0e => visitor.visit_br_table(self.read_br_table()?),
772
12.8k
            0x0f => visitor.visit_return(),
773
104k
            0x10 => visitor.visit_call(self.read_var_u32()?),
774
            0x11 => {
775
14.9k
                let index = self.read_var_u32()?;
776
14.9k
                let (table_byte, table_index) = self.read_first_byte_and_var_u32()?;
777
14.9k
                visitor.visit_call_indirect(index, table_index, table_byte)
778
            }
779
18.1k
            0x12 => visitor.visit_return_call(self.read_var_u32()?),
780
9.48k
            0x13 => visitor.visit_return_call_indirect(self.read_var_u32()?, self.read_var_u32()?),
781
3.31k
            0x14 => visitor.visit_call_ref(self.read()?),
782
4.46k
            0x15 => visitor.visit_return_call_ref(self.read()?),
783
21.6k
            0x18 => visitor.visit_delegate(self.read_var_u32()?),
784
52.0k
            0x19 => visitor.visit_catch_all(),
785
1.27M
            0x1a => visitor.visit_drop(),
786
140k
            0x1b => visitor.visit_select(),
787
            0x1c => {
788
3.85k
                let results = self.read_var_u32()?;
789
3.84k
                if results != 1 {
790
38
                    return Err(BinaryReaderError::new(
791
38
                        "invalid result arity",
792
38
                        self.position,
793
38
                    ));
794
3.80k
                }
795
3.80k
                visitor.visit_typed_select(self.read()?)
796
            }
797
798
540k
            0x20 => visitor.visit_local_get(self.read_var_u32()?),
799
37.7k
            0x21 => visitor.visit_local_set(self.read_var_u32()?),
800
261k
            0x22 => visitor.visit_local_tee(self.read_var_u32()?),
801
119k
            0x23 => visitor.visit_global_get(self.read_var_u32()?),
802
16.2k
            0x24 => visitor.visit_global_set(self.read_var_u32()?),
803
9.24k
            0x25 => visitor.visit_table_get(self.read_var_u32()?),
804
10.1k
            0x26 => visitor.visit_table_set(self.read_var_u32()?),
805
806
28.6k
            0x28 => visitor.visit_i32_load(self.read_memarg(2)?),
807
15.5k
            0x29 => visitor.visit_i64_load(self.read_memarg(3)?),
808
17.3k
            0x2a => visitor.visit_f32_load(self.read_memarg(2)?),
809
16.0k
            0x2b => visitor.visit_f64_load(self.read_memarg(3)?),
810
27.8k
            0x2c => visitor.visit_i32_load8_s(self.read_memarg(0)?),
811
17.4k
            0x2d => visitor.visit_i32_load8_u(self.read_memarg(0)?),
812
28.9k
            0x2e => visitor.visit_i32_load16_s(self.read_memarg(1)?),
813
14.4k
            0x2f => visitor.visit_i32_load16_u(self.read_memarg(1)?),
814
27.1k
            0x30 => visitor.visit_i64_load8_s(self.read_memarg(0)?),
815
58.2k
            0x31 => visitor.visit_i64_load8_u(self.read_memarg(0)?),
816
101k
            0x32 => visitor.visit_i64_load16_s(self.read_memarg(1)?),
817
19.8k
            0x33 => visitor.visit_i64_load16_u(self.read_memarg(1)?),
818
31.4k
            0x34 => visitor.visit_i64_load32_s(self.read_memarg(2)?),
819
22.9k
            0x35 => visitor.visit_i64_load32_u(self.read_memarg(2)?),
820
24.2k
            0x36 => visitor.visit_i32_store(self.read_memarg(2)?),
821
30.7k
            0x37 => visitor.visit_i64_store(self.read_memarg(3)?),
822
5.50k
            0x38 => visitor.visit_f32_store(self.read_memarg(2)?),
823
3.89k
            0x39 => visitor.visit_f64_store(self.read_memarg(3)?),
824
9.05k
            0x3a => visitor.visit_i32_store8(self.read_memarg(0)?),
825
6.27k
            0x3b => visitor.visit_i32_store16(self.read_memarg(1)?),
826
3.62k
            0x3c => visitor.visit_i64_store8(self.read_memarg(0)?),
827
9.45k
            0x3d => visitor.visit_i64_store16(self.read_memarg(1)?),
828
3.42k
            0x3e => visitor.visit_i64_store32(self.read_memarg(2)?),
829
            0x3f => {
830
45.9k
                let (mem_byte, mem) = self.read_first_byte_and_var_u32()?;
831
45.9k
                visitor.visit_memory_size(mem, mem_byte)
832
            }
833
            0x40 => {
834
214k
                let (mem_byte, mem) = self.read_first_byte_and_var_u32()?;
835
214k
                visitor.visit_memory_grow(mem, mem_byte)
836
            }
837
838
946k
            0x41 => visitor.visit_i32_const(self.read_var_i32()?),
839
393k
            0x42 => visitor.visit_i64_const(self.read_var_i64()?),
840
448k
            0x43 => visitor.visit_f32_const(self.read_f32()?),
841
430k
            0x44 => visitor.visit_f64_const(self.read_f64()?),
842
843
163k
            0x45 => visitor.visit_i32_eqz(),
844
27.5k
            0x46 => visitor.visit_i32_eq(),
845
16.4k
            0x47 => visitor.visit_i32_ne(),
846
25.1k
            0x48 => visitor.visit_i32_lt_s(),
847
17.0k
            0x49 => visitor.visit_i32_lt_u(),
848
79.6k
            0x4a => visitor.visit_i32_gt_s(),
849
18.2k
            0x4b => visitor.visit_i32_gt_u(),
850
13.7k
            0x4c => visitor.visit_i32_le_s(),
851
33.2k
            0x4d => visitor.visit_i32_le_u(),
852
29.6k
            0x4e => visitor.visit_i32_ge_s(),
853
18.2k
            0x4f => visitor.visit_i32_ge_u(),
854
28.6k
            0x50 => visitor.visit_i64_eqz(),
855
6.53k
            0x51 => visitor.visit_i64_eq(),
856
8.58k
            0x52 => visitor.visit_i64_ne(),
857
16.9k
            0x53 => visitor.visit_i64_lt_s(),
858
29.6k
            0x54 => visitor.visit_i64_lt_u(),
859
6.32k
            0x55 => visitor.visit_i64_gt_s(),
860
12.8k
            0x56 => visitor.visit_i64_gt_u(),
861
5.65k
            0x57 => visitor.visit_i64_le_s(),
862
41.6k
            0x58 => visitor.visit_i64_le_u(),
863
35.5k
            0x59 => visitor.visit_i64_ge_s(),
864
9.38k
            0x5a => visitor.visit_i64_ge_u(),
865
74.3k
            0x5b => visitor.visit_f32_eq(),
866
8.89k
            0x5c => visitor.visit_f32_ne(),
867
36.5k
            0x5d => visitor.visit_f32_lt(),
868
42.5k
            0x5e => visitor.visit_f32_gt(),
869
14.3k
            0x5f => visitor.visit_f32_le(),
870
21.6k
            0x60 => visitor.visit_f32_ge(),
871
117k
            0x61 => visitor.visit_f64_eq(),
872
14.0k
            0x62 => visitor.visit_f64_ne(),
873
14.8k
            0x63 => visitor.visit_f64_lt(),
874
4.85k
            0x64 => visitor.visit_f64_gt(),
875
128k
            0x65 => visitor.visit_f64_le(),
876
12.2k
            0x66 => visitor.visit_f64_ge(),
877
67.5k
            0x67 => visitor.visit_i32_clz(),
878
43.3k
            0x68 => visitor.visit_i32_ctz(),
879
40.4k
            0x69 => visitor.visit_i32_popcnt(),
880
16.4k
            0x6a => visitor.visit_i32_add(),
881
5.30k
            0x6b => visitor.visit_i32_sub(),
882
23.8k
            0x6c => visitor.visit_i32_mul(),
883
73.7k
            0x6d => visitor.visit_i32_div_s(),
884
22.4k
            0x6e => visitor.visit_i32_div_u(),
885
26.1k
            0x6f => visitor.visit_i32_rem_s(),
886
46.6k
            0x70 => visitor.visit_i32_rem_u(),
887
8.23k
            0x71 => visitor.visit_i32_and(),
888
20.6k
            0x72 => visitor.visit_i32_or(),
889
59.0k
            0x73 => visitor.visit_i32_xor(),
890
20.8k
            0x74 => visitor.visit_i32_shl(),
891
31.0k
            0x75 => visitor.visit_i32_shr_s(),
892
61.0k
            0x76 => visitor.visit_i32_shr_u(),
893
6.29k
            0x77 => visitor.visit_i32_rotl(),
894
328k
            0x78 => visitor.visit_i32_rotr(),
895
39.2k
            0x79 => visitor.visit_i64_clz(),
896
48.5k
            0x7a => visitor.visit_i64_ctz(),
897
46.8k
            0x7b => visitor.visit_i64_popcnt(),
898
14.0k
            0x7c => visitor.visit_i64_add(),
899
7.47k
            0x7d => visitor.visit_i64_sub(),
900
24.6k
            0x7e => visitor.visit_i64_mul(),
901
43.6k
            0x7f => visitor.visit_i64_div_s(),
902
16.8k
            0x80 => visitor.visit_i64_div_u(),
903
32.2k
            0x81 => visitor.visit_i64_rem_s(),
904
5.56k
            0x82 => visitor.visit_i64_rem_u(),
905
6.40k
            0x83 => visitor.visit_i64_and(),
906
20.5k
            0x84 => visitor.visit_i64_or(),
907
3.69k
            0x85 => visitor.visit_i64_xor(),
908
5.02k
            0x86 => visitor.visit_i64_shl(),
909
2.59k
            0x87 => visitor.visit_i64_shr_s(),
910
8.39k
            0x88 => visitor.visit_i64_shr_u(),
911
3.12k
            0x89 => visitor.visit_i64_rotl(),
912
4.65k
            0x8a => visitor.visit_i64_rotr(),
913
82.8k
            0x8b => visitor.visit_f32_abs(),
914
19.0k
            0x8c => visitor.visit_f32_neg(),
915
14.8k
            0x8d => visitor.visit_f32_ceil(),
916
14.7k
            0x8e => visitor.visit_f32_floor(),
917
13.5k
            0x8f => visitor.visit_f32_trunc(),
918
19.2k
            0x90 => visitor.visit_f32_nearest(),
919
28.3k
            0x91 => visitor.visit_f32_sqrt(),
920
10.4k
            0x92 => visitor.visit_f32_add(),
921
19.4k
            0x93 => visitor.visit_f32_sub(),
922
35.7k
            0x94 => visitor.visit_f32_mul(),
923
14.5k
            0x95 => visitor.visit_f32_div(),
924
3.76k
            0x96 => visitor.visit_f32_min(),
925
15.1k
            0x97 => visitor.visit_f32_max(),
926
29.2k
            0x98 => visitor.visit_f32_copysign(),
927
58.7k
            0x99 => visitor.visit_f64_abs(),
928
29.2k
            0x9a => visitor.visit_f64_neg(),
929
31.7k
            0x9b => visitor.visit_f64_ceil(),
930
21.2k
            0x9c => visitor.visit_f64_floor(),
931
88.8k
            0x9d => visitor.visit_f64_trunc(),
932
44.7k
            0x9e => visitor.visit_f64_nearest(),
933
26.7k
            0x9f => visitor.visit_f64_sqrt(),
934
12.9k
            0xa0 => visitor.visit_f64_add(),
935
10.1k
            0xa1 => visitor.visit_f64_sub(),
936
5.62k
            0xa2 => visitor.visit_f64_mul(),
937
4.06k
            0xa3 => visitor.visit_f64_div(),
938
6.61k
            0xa4 => visitor.visit_f64_min(),
939
2.71k
            0xa5 => visitor.visit_f64_max(),
940
13.4k
            0xa6 => visitor.visit_f64_copysign(),
941
28.7k
            0xa7 => visitor.visit_i32_wrap_i64(),
942
17.9k
            0xa8 => visitor.visit_i32_trunc_f32_s(),
943
9.99k
            0xa9 => visitor.visit_i32_trunc_f32_u(),
944
15.5k
            0xaa => visitor.visit_i32_trunc_f64_s(),
945
16.3k
            0xab => visitor.visit_i32_trunc_f64_u(),
946
17.4k
            0xac => visitor.visit_i64_extend_i32_s(),
947
16.6k
            0xad => visitor.visit_i64_extend_i32_u(),
948
17.8k
            0xae => visitor.visit_i64_trunc_f32_s(),
949
40.6k
            0xaf => visitor.visit_i64_trunc_f32_u(),
950
11.1k
            0xb0 => visitor.visit_i64_trunc_f64_s(),
951
20.7k
            0xb1 => visitor.visit_i64_trunc_f64_u(),
952
30.8k
            0xb2 => visitor.visit_f32_convert_i32_s(),
953
28.4k
            0xb3 => visitor.visit_f32_convert_i32_u(),
954
74.5k
            0xb4 => visitor.visit_f32_convert_i64_s(),
955
25.3k
            0xb5 => visitor.visit_f32_convert_i64_u(),
956
15.2k
            0xb6 => visitor.visit_f32_demote_f64(),
957
34.5k
            0xb7 => visitor.visit_f64_convert_i32_s(),
958
23.9k
            0xb8 => visitor.visit_f64_convert_i32_u(),
959
10.2k
            0xb9 => visitor.visit_f64_convert_i64_s(),
960
336k
            0xba => visitor.visit_f64_convert_i64_u(),
961
11.7k
            0xbb => visitor.visit_f64_promote_f32(),
962
38.6k
            0xbc => visitor.visit_i32_reinterpret_f32(),
963
27.4k
            0xbd => visitor.visit_i64_reinterpret_f64(),
964
55.1k
            0xbe => visitor.visit_f32_reinterpret_i32(),
965
14.5k
            0xbf => visitor.visit_f64_reinterpret_i64(),
966
967
36.1k
            0xc0 => visitor.visit_i32_extend8_s(),
968
28.6k
            0xc1 => visitor.visit_i32_extend16_s(),
969
31.7k
            0xc2 => visitor.visit_i64_extend8_s(),
970
20.9k
            0xc3 => visitor.visit_i64_extend16_s(),
971
28.1k
            0xc4 => visitor.visit_i64_extend32_s(),
972
973
32.1M
            0xd0 => visitor.visit_ref_null(self.read()?),
974
9.18k
            0xd1 => visitor.visit_ref_is_null(),
975
276k
            0xd2 => visitor.visit_ref_func(self.read_var_u32()?),
976
1.31k
            0xd3 => visitor.visit_ref_as_non_null(),
977
675
            0xd4 => visitor.visit_br_on_null(self.read_var_u32()?),
978
1.62k
            0xd6 => visitor.visit_br_on_non_null(self.read_var_u32()?),
979
980
312k
            0xfc => self.visit_0xfc_operator(pos, visitor)?,
981
2.69M
            0xfd => self.visit_0xfd_operator(pos, visitor)?,
982
283k
            0xfe => self.visit_0xfe_operator(pos, visitor)?,
983
984
982
            _ => bail!(pos, "illegal opcode: 0x{code:x}"),
985
        })
986
89.7M
    }
<wasmparser::binary_reader::BinaryReader>::visit_operator::<wasmparser::validator::operators::WasmProposalValidator<wasmparser::validator::core::ValidatorResources>>
Line
Count
Source
751
110M
    pub fn visit_operator<T>(&mut self, visitor: &mut T) -> Result<<T as VisitOperator<'a>>::Output>
752
110M
    where
753
110M
        T: VisitOperator<'a>,
754
110M
    {
755
110M
        let pos = self.original_position();
756
110M
        let code = self.read_u8()? as u8;
757
110M
        Ok(match code {
758
7.82M
            0x00 => visitor.visit_unreachable(),
759
640k
            0x01 => visitor.visit_nop(),
760
3.66M
            0x02 => visitor.visit_block(self.read_block_type()?),
761
1.12M
            0x03 => visitor.visit_loop(self.read_block_type()?),
762
466k
            0x04 => visitor.visit_if(self.read_block_type()?),
763
159k
            0x05 => visitor.visit_else(),
764
626k
            0x06 => visitor.visit_try(self.read_block_type()?),
765
2.37k
            0x07 => visitor.visit_catch(self.read_var_u32()?),
766
24.6k
            0x08 => visitor.visit_throw(self.read_var_u32()?),
767
31.8k
            0x09 => visitor.visit_rethrow(self.read_var_u32()?),
768
6.99M
            0x0b => visitor.visit_end(),
769
2.79M
            0x0c => visitor.visit_br(self.read_var_u32()?),
770
369k
            0x0d => visitor.visit_br_if(self.read_var_u32()?),
771
64.2k
            0x0e => visitor.visit_br_table(self.read_br_table()?),
772
150k
            0x0f => visitor.visit_return(),
773
853k
            0x10 => visitor.visit_call(self.read_var_u32()?),
774
            0x11 => {
775
153k
                let index = self.read_var_u32()?;
776
153k
                let (table_byte, table_index) = self.read_first_byte_and_var_u32()?;
777
153k
                visitor.visit_call_indirect(index, table_index, table_byte)
778
            }
779
108k
            0x12 => visitor.visit_return_call(self.read_var_u32()?),
780
12.0k
            0x13 => visitor.visit_return_call_indirect(self.read_var_u32()?, self.read_var_u32()?),
781
20
            0x14 => visitor.visit_call_ref(self.read()?),
782
76
            0x15 => visitor.visit_return_call_ref(self.read()?),
783
13.6k
            0x18 => visitor.visit_delegate(self.read_var_u32()?),
784
4.15k
            0x19 => visitor.visit_catch_all(),
785
13.5M
            0x1a => visitor.visit_drop(),
786
1.72M
            0x1b => visitor.visit_select(),
787
            0x1c => {
788
11.8k
                let results = self.read_var_u32()?;
789
11.8k
                if results != 1 {
790
8
                    return Err(BinaryReaderError::new(
791
8
                        "invalid result arity",
792
8
                        self.position,
793
8
                    ));
794
11.8k
                }
795
11.8k
                visitor.visit_typed_select(self.read()?)
796
            }
797
798
6.67M
            0x20 => visitor.visit_local_get(self.read_var_u32()?),
799
1.18M
            0x21 => visitor.visit_local_set(self.read_var_u32()?),
800
2.86M
            0x22 => visitor.visit_local_tee(self.read_var_u32()?),
801
696k
            0x23 => visitor.visit_global_get(self.read_var_u32()?),
802
323k
            0x24 => visitor.visit_global_set(self.read_var_u32()?),
803
54.0k
            0x25 => visitor.visit_table_get(self.read_var_u32()?),
804
6.46k
            0x26 => visitor.visit_table_set(self.read_var_u32()?),
805
806
223k
            0x28 => visitor.visit_i32_load(self.read_memarg(2)?),
807
194k
            0x29 => visitor.visit_i64_load(self.read_memarg(3)?),
808
97.3k
            0x2a => visitor.visit_f32_load(self.read_memarg(2)?),
809
81.7k
            0x2b => visitor.visit_f64_load(self.read_memarg(3)?),
810
99.1k
            0x2c => visitor.visit_i32_load8_s(self.read_memarg(0)?),
811
184k
            0x2d => visitor.visit_i32_load8_u(self.read_memarg(0)?),
812
356k
            0x2e => visitor.visit_i32_load16_s(self.read_memarg(1)?),
813
109k
            0x2f => visitor.visit_i32_load16_u(self.read_memarg(1)?),
814
215k
            0x30 => visitor.visit_i64_load8_s(self.read_memarg(0)?),
815
164k
            0x31 => visitor.visit_i64_load8_u(self.read_memarg(0)?),
816
271k
            0x32 => visitor.visit_i64_load16_s(self.read_memarg(1)?),
817
130k
            0x33 => visitor.visit_i64_load16_u(self.read_memarg(1)?),
818
158k
            0x34 => visitor.visit_i64_load32_s(self.read_memarg(2)?),
819
80.9k
            0x35 => visitor.visit_i64_load32_u(self.read_memarg(2)?),
820
16.3k
            0x36 => visitor.visit_i32_store(self.read_memarg(2)?),
821
38.4k
            0x37 => visitor.visit_i64_store(self.read_memarg(3)?),
822
7.00k
            0x38 => visitor.visit_f32_store(self.read_memarg(2)?),
823
5.19k
            0x39 => visitor.visit_f64_store(self.read_memarg(3)?),
824
17.7k
            0x3a => visitor.visit_i32_store8(self.read_memarg(0)?),
825
13.2k
            0x3b => visitor.visit_i32_store16(self.read_memarg(1)?),
826
10.3k
            0x3c => visitor.visit_i64_store8(self.read_memarg(0)?),
827
22.4k
            0x3d => visitor.visit_i64_store16(self.read_memarg(1)?),
828
18.5k
            0x3e => visitor.visit_i64_store32(self.read_memarg(2)?),
829
            0x3f => {
830
1.03M
                let (mem_byte, mem) = self.read_first_byte_and_var_u32()?;
831
1.03M
                visitor.visit_memory_size(mem, mem_byte)
832
            }
833
            0x40 => {
834
548k
                let (mem_byte, mem) = self.read_first_byte_and_var_u32()?;
835
548k
                visitor.visit_memory_grow(mem, mem_byte)
836
            }
837
838
3.00M
            0x41 => visitor.visit_i32_const(self.read_var_i32()?),
839
2.16M
            0x42 => visitor.visit_i64_const(self.read_var_i64()?),
840
4.40M
            0x43 => visitor.visit_f32_const(self.read_f32()?),
841
3.79M
            0x44 => visitor.visit_f64_const(self.read_f64()?),
842
843
515k
            0x45 => visitor.visit_i32_eqz(),
844
22.7k
            0x46 => visitor.visit_i32_eq(),
845
37.8k
            0x47 => visitor.visit_i32_ne(),
846
39.8k
            0x48 => visitor.visit_i32_lt_s(),
847
17.9k
            0x49 => visitor.visit_i32_lt_u(),
848
73.3k
            0x4a => visitor.visit_i32_gt_s(),
849
37.1k
            0x4b => visitor.visit_i32_gt_u(),
850
78.1k
            0x4c => visitor.visit_i32_le_s(),
851
72.5k
            0x4d => visitor.visit_i32_le_u(),
852
220k
            0x4e => visitor.visit_i32_ge_s(),
853
21.2k
            0x4f => visitor.visit_i32_ge_u(),
854
439k
            0x50 => visitor.visit_i64_eqz(),
855
7.33k
            0x51 => visitor.visit_i64_eq(),
856
38.5k
            0x52 => visitor.visit_i64_ne(),
857
19.6k
            0x53 => visitor.visit_i64_lt_s(),
858
12.4k
            0x54 => visitor.visit_i64_lt_u(),
859
16.5k
            0x55 => visitor.visit_i64_gt_s(),
860
13.6k
            0x56 => visitor.visit_i64_gt_u(),
861
89.0k
            0x57 => visitor.visit_i64_le_s(),
862
80.9k
            0x58 => visitor.visit_i64_le_u(),
863
12.9k
            0x59 => visitor.visit_i64_ge_s(),
864
13.6k
            0x5a => visitor.visit_i64_ge_u(),
865
734k
            0x5b => visitor.visit_f32_eq(),
866
50.5k
            0x5c => visitor.visit_f32_ne(),
867
227k
            0x5d => visitor.visit_f32_lt(),
868
45.7k
            0x5e => visitor.visit_f32_gt(),
869
6.71k
            0x5f => visitor.visit_f32_le(),
870
12.1k
            0x60 => visitor.visit_f32_ge(),
871
910k
            0x61 => visitor.visit_f64_eq(),
872
45.5k
            0x62 => visitor.visit_f64_ne(),
873
43.6k
            0x63 => visitor.visit_f64_lt(),
874
42.1k
            0x64 => visitor.visit_f64_gt(),
875
14.5k
            0x65 => visitor.visit_f64_le(),
876
8.97k
            0x66 => visitor.visit_f64_ge(),
877
418k
            0x67 => visitor.visit_i32_clz(),
878
325k
            0x68 => visitor.visit_i32_ctz(),
879
459k
            0x69 => visitor.visit_i32_popcnt(),
880
1.58M
            0x6a => visitor.visit_i32_add(),
881
31.6k
            0x6b => visitor.visit_i32_sub(),
882
74.2k
            0x6c => visitor.visit_i32_mul(),
883
23.4k
            0x6d => visitor.visit_i32_div_s(),
884
72.9k
            0x6e => visitor.visit_i32_div_u(),
885
23.4k
            0x6f => visitor.visit_i32_rem_s(),
886
19.7k
            0x70 => visitor.visit_i32_rem_u(),
887
17.7k
            0x71 => visitor.visit_i32_and(),
888
170k
            0x72 => visitor.visit_i32_or(),
889
23.5k
            0x73 => visitor.visit_i32_xor(),
890
11.2k
            0x74 => visitor.visit_i32_shl(),
891
23.4k
            0x75 => visitor.visit_i32_shr_s(),
892
36.5k
            0x76 => visitor.visit_i32_shr_u(),
893
12.6k
            0x77 => visitor.visit_i32_rotl(),
894
22.8k
            0x78 => visitor.visit_i32_rotr(),
895
249k
            0x79 => visitor.visit_i64_clz(),
896
290k
            0x7a => visitor.visit_i64_ctz(),
897
405k
            0x7b => visitor.visit_i64_popcnt(),
898
118k
            0x7c => visitor.visit_i64_add(),
899
21.9k
            0x7d => visitor.visit_i64_sub(),
900
98.3k
            0x7e => visitor.visit_i64_mul(),
901
32.4k
            0x7f => visitor.visit_i64_div_s(),
902
167k
            0x80 => visitor.visit_i64_div_u(),
903
15.5k
            0x81 => visitor.visit_i64_rem_s(),
904
7.44k
            0x82 => visitor.visit_i64_rem_u(),
905
10.4k
            0x83 => visitor.visit_i64_and(),
906
10.1k
            0x84 => visitor.visit_i64_or(),
907
8.63k
            0x85 => visitor.visit_i64_xor(),
908
7.81k
            0x86 => visitor.visit_i64_shl(),
909
12.1k
            0x87 => visitor.visit_i64_shr_s(),
910
24.9k
            0x88 => visitor.visit_i64_shr_u(),
911
6.07k
            0x89 => visitor.visit_i64_rotl(),
912
8.77k
            0x8a => visitor.visit_i64_rotr(),
913
284k
            0x8b => visitor.visit_f32_abs(),
914
275k
            0x8c => visitor.visit_f32_neg(),
915
194k
            0x8d => visitor.visit_f32_ceil(),
916
149k
            0x8e => visitor.visit_f32_floor(),
917
123k
            0x8f => visitor.visit_f32_trunc(),
918
165k
            0x90 => visitor.visit_f32_nearest(),
919
142k
            0x91 => visitor.visit_f32_sqrt(),
920
15.9k
            0x92 => visitor.visit_f32_add(),
921
24.3k
            0x93 => visitor.visit_f32_sub(),
922
10.4k
            0x94 => visitor.visit_f32_mul(),
923
9.11k
            0x95 => visitor.visit_f32_div(),
924
6.26k
            0x96 => visitor.visit_f32_min(),
925
4.12k
            0x97 => visitor.visit_f32_max(),
926
35.1k
            0x98 => visitor.visit_f32_copysign(),
927
190k
            0x99 => visitor.visit_f64_abs(),
928
451k
            0x9a => visitor.visit_f64_neg(),
929
245k
            0x9b => visitor.visit_f64_ceil(),
930
177k
            0x9c => visitor.visit_f64_floor(),
931
275k
            0x9d => visitor.visit_f64_trunc(),
932
266k
            0x9e => visitor.visit_f64_nearest(),
933
132k
            0x9f => visitor.visit_f64_sqrt(),
934
12.4k
            0xa0 => visitor.visit_f64_add(),
935
17.9k
            0xa1 => visitor.visit_f64_sub(),
936
22.4k
            0xa2 => visitor.visit_f64_mul(),
937
12.5k
            0xa3 => visitor.visit_f64_div(),
938
7.57k
            0xa4 => visitor.visit_f64_min(),
939
9.84k
            0xa5 => visitor.visit_f64_max(),
940
25.4k
            0xa6 => visitor.visit_f64_copysign(),
941
133k
            0xa7 => visitor.visit_i32_wrap_i64(),
942
86.3k
            0xa8 => visitor.visit_i32_trunc_f32_s(),
943
71.8k
            0xa9 => visitor.visit_i32_trunc_f32_u(),
944
63.6k
            0xaa => visitor.visit_i32_trunc_f64_s(),
945
79.5k
            0xab => visitor.visit_i32_trunc_f64_u(),
946
118k
            0xac => visitor.visit_i64_extend_i32_s(),
947
112k
            0xad => visitor.visit_i64_extend_i32_u(),
948
67.6k
            0xae => visitor.visit_i64_trunc_f32_s(),
949
65.7k
            0xaf => visitor.visit_i64_trunc_f32_u(),
950
79.2k
            0xb0 => visitor.visit_i64_trunc_f64_s(),
951
86.4k
            0xb1 => visitor.visit_i64_trunc_f64_u(),
952
138k
            0xb2 => visitor.visit_f32_convert_i32_s(),
953
351k
            0xb3 => visitor.visit_f32_convert_i32_u(),
954
107k
            0xb4 => visitor.visit_f32_convert_i64_s(),
955
67.8k
            0xb5 => visitor.visit_f32_convert_i64_u(),
956
136k
            0xb6 => visitor.visit_f32_demote_f64(),
957
157k
            0xb7 => visitor.visit_f64_convert_i32_s(),
958
248k
            0xb8 => visitor.visit_f64_convert_i32_u(),
959
66.3k
            0xb9 => visitor.visit_f64_convert_i64_s(),
960
82.7k
            0xba => visitor.visit_f64_convert_i64_u(),
961
152k
            0xbb => visitor.visit_f64_promote_f32(),
962
198k
            0xbc => visitor.visit_i32_reinterpret_f32(),
963
72.0k
            0xbd => visitor.visit_i64_reinterpret_f64(),
964
331k
            0xbe => visitor.visit_f32_reinterpret_i32(),
965
88.8k
            0xbf => visitor.visit_f64_reinterpret_i64(),
966
967
541k
            0xc0 => visitor.visit_i32_extend8_s(),
968
371k
            0xc1 => visitor.visit_i32_extend16_s(),
969
171k
            0xc2 => visitor.visit_i64_extend8_s(),
970
224k
            0xc3 => visitor.visit_i64_extend16_s(),
971
132k
            0xc4 => visitor.visit_i64_extend32_s(),
972
973
3.26M
            0xd0 => visitor.visit_ref_null(self.read()?),
974
95.4k
            0xd1 => visitor.visit_ref_is_null(),
975
452k
            0xd2 => visitor.visit_ref_func(self.read_var_u32()?),
976
344
            0xd3 => visitor.visit_ref_as_non_null(),
977
80
            0xd4 => visitor.visit_br_on_null(self.read_var_u32()?),
978
9
            0xd6 => visitor.visit_br_on_non_null(self.read_var_u32()?),
979
980
3.72M
            0xfc => self.visit_0xfc_operator(pos, visitor)?,
981
15.9M
            0xfd => self.visit_0xfd_operator(pos, visitor)?,
982
21.9k
            0xfe => self.visit_0xfe_operator(pos, visitor)?,
983
984
520
            _ => bail!(pos, "illegal opcode: 0x{code:x}"),
985
        })
986
110M
    }
<wasmparser::binary_reader::BinaryReader>::visit_operator::<<wasmparser::validator::core::ModuleState>::check_const_expr::VisitConstOperator>
Line
Count
Source
751
20.2M
    pub fn visit_operator<T>(&mut self, visitor: &mut T) -> Result<<T as VisitOperator<'a>>::Output>
752
20.2M
    where
753
20.2M
        T: VisitOperator<'a>,
754
20.2M
    {
755
20.2M
        let pos = self.original_position();
756
20.2M
        let code = self.read_u8()? as u8;
757
20.2M
        Ok(match code {
758
16
            0x00 => visitor.visit_unreachable(),
759
6
            0x01 => visitor.visit_nop(),
760
3
            0x02 => visitor.visit_block(self.read_block_type()?),
761
6
            0x03 => visitor.visit_loop(self.read_block_type()?),
762
2
            0x04 => visitor.visit_if(self.read_block_type()?),
763
0
            0x05 => visitor.visit_else(),
764
1
            0x06 => visitor.visit_try(self.read_block_type()?),
765
1
            0x07 => visitor.visit_catch(self.read_var_u32()?),
766
2
            0x08 => visitor.visit_throw(self.read_var_u32()?),
767
1
            0x09 => visitor.visit_rethrow(self.read_var_u32()?),
768
10.1M
            0x0b => visitor.visit_end(),
769
32
            0x0c => visitor.visit_br(self.read_var_u32()?),
770
4
            0x0d => visitor.visit_br_if(self.read_var_u32()?),
771
1
            0x0e => visitor.visit_br_table(self.read_br_table()?),
772
3
            0x0f => visitor.visit_return(),
773
3
            0x10 => visitor.visit_call(self.read_var_u32()?),
774
            0x11 => {
775
2
                let index = self.read_var_u32()?;
776
2
                let (table_byte, table_index) = self.read_first_byte_and_var_u32()?;
777
2
                visitor.visit_call_indirect(index, table_index, table_byte)
778
            }
779
3
            0x12 => visitor.visit_return_call(self.read_var_u32()?),
780
1
            0x13 => visitor.visit_return_call_indirect(self.read_var_u32()?, self.read_var_u32()?),
781
1
            0x14 => visitor.visit_call_ref(self.read()?),
782
0
            0x15 => visitor.visit_return_call_ref(self.read()?),
783
3
            0x18 => visitor.visit_delegate(self.read_var_u32()?),
784
1
            0x19 => visitor.visit_catch_all(),
785
1
            0x1a => visitor.visit_drop(),
786
4
            0x1b => visitor.visit_select(),
787
            0x1c => {
788
0
                let results = self.read_var_u32()?;
789
0
                if results != 1 {
790
0
                    return Err(BinaryReaderError::new(
791
0
                        "invalid result arity",
792
0
                        self.position,
793
0
                    ));
794
0
                }
795
0
                visitor.visit_typed_select(self.read()?)
796
            }
797
798
3
            0x20 => visitor.visit_local_get(self.read_var_u32()?),
799
1
            0x21 => visitor.visit_local_set(self.read_var_u32()?),
800
5
            0x22 => visitor.visit_local_tee(self.read_var_u32()?),
801
27.1k
            0x23 => visitor.visit_global_get(self.read_var_u32()?),
802
4
            0x24 => visitor.visit_global_set(self.read_var_u32()?),
803
6
            0x25 => visitor.visit_table_get(self.read_var_u32()?),
804
1
            0x26 => visitor.visit_table_set(self.read_var_u32()?),
805
806
1
            0x28 => visitor.visit_i32_load(self.read_memarg(2)?),
807
3
            0x29 => visitor.visit_i64_load(self.read_memarg(3)?),
808
2
            0x2a => visitor.visit_f32_load(self.read_memarg(2)?),
809
2
            0x2b => visitor.visit_f64_load(self.read_memarg(3)?),
810
3
            0x2c => visitor.visit_i32_load8_s(self.read_memarg(0)?),
811
0
            0x2d => visitor.visit_i32_load8_u(self.read_memarg(0)?),
812
4
            0x2e => visitor.visit_i32_load16_s(self.read_memarg(1)?),
813
1
            0x2f => visitor.visit_i32_load16_u(self.read_memarg(1)?),
814
2
            0x30 => visitor.visit_i64_load8_s(self.read_memarg(0)?),
815
3
            0x31 => visitor.visit_i64_load8_u(self.read_memarg(0)?),
816
2
            0x32 => visitor.visit_i64_load16_s(self.read_memarg(1)?),
817
2
            0x33 => visitor.visit_i64_load16_u(self.read_memarg(1)?),
818
0
            0x34 => visitor.visit_i64_load32_s(self.read_memarg(2)?),
819
0
            0x35 => visitor.visit_i64_load32_u(self.read_memarg(2)?),
820
3
            0x36 => visitor.visit_i32_store(self.read_memarg(2)?),
821
0
            0x37 => visitor.visit_i64_store(self.read_memarg(3)?),
822
1
            0x38 => visitor.visit_f32_store(self.read_memarg(2)?),
823
2
            0x39 => visitor.visit_f64_store(self.read_memarg(3)?),
824
0
            0x3a => visitor.visit_i32_store8(self.read_memarg(0)?),
825
1
            0x3b => visitor.visit_i32_store16(self.read_memarg(1)?),
826
2
            0x3c => visitor.visit_i64_store8(self.read_memarg(0)?),
827
1
            0x3d => visitor.visit_i64_store16(self.read_memarg(1)?),
828
1
            0x3e => visitor.visit_i64_store32(self.read_memarg(2)?),
829
            0x3f => {
830
4
                let (mem_byte, mem) = self.read_first_byte_and_var_u32()?;
831
4
                visitor.visit_memory_size(mem, mem_byte)
832
            }
833
            0x40 => {
834
7
                let (mem_byte, mem) = self.read_first_byte_and_var_u32()?;
835
7
                visitor.visit_memory_grow(mem, mem_byte)
836
            }
837
838
259k
            0x41 => visitor.visit_i32_const(self.read_var_i32()?),
839
75.7k
            0x42 => visitor.visit_i64_const(self.read_var_i64()?),
840
100k
            0x43 => visitor.visit_f32_const(self.read_f32()?),
841
81.7k
            0x44 => visitor.visit_f64_const(self.read_f64()?),
842
843
1
            0x45 => visitor.visit_i32_eqz(),
844
0
            0x46 => visitor.visit_i32_eq(),
845
2
            0x47 => visitor.visit_i32_ne(),
846
3
            0x48 => visitor.visit_i32_lt_s(),
847
1
            0x49 => visitor.visit_i32_lt_u(),
848
0
            0x4a => visitor.visit_i32_gt_s(),
849
2
            0x4b => visitor.visit_i32_gt_u(),
850
0
            0x4c => visitor.visit_i32_le_s(),
851
1
            0x4d => visitor.visit_i32_le_u(),
852
0
            0x4e => visitor.visit_i32_ge_s(),
853
1
            0x4f => visitor.visit_i32_ge_u(),
854
0
            0x50 => visitor.visit_i64_eqz(),
855
1
            0x51 => visitor.visit_i64_eq(),
856
4
            0x52 => visitor.visit_i64_ne(),
857
2
            0x53 => visitor.visit_i64_lt_s(),
858
2
            0x54 => visitor.visit_i64_lt_u(),
859
2
            0x55 => visitor.visit_i64_gt_s(),
860
1
            0x56 => visitor.visit_i64_gt_u(),
861
1
            0x57 => visitor.visit_i64_le_s(),
862
0
            0x58 => visitor.visit_i64_le_u(),
863
1
            0x59 => visitor.visit_i64_ge_s(),
864
1
            0x5a => visitor.visit_i64_ge_u(),
865
1
            0x5b => visitor.visit_f32_eq(),
866
4
            0x5c => visitor.visit_f32_ne(),
867
1
            0x5d => visitor.visit_f32_lt(),
868
1
            0x5e => visitor.visit_f32_gt(),
869
2
            0x5f => visitor.visit_f32_le(),
870
1
            0x60 => visitor.visit_f32_ge(),
871
2
            0x61 => visitor.visit_f64_eq(),
872
3
            0x62 => visitor.visit_f64_ne(),
873
2
            0x63 => visitor.visit_f64_lt(),
874
3
            0x64 => visitor.visit_f64_gt(),
875
1
            0x65 => visitor.visit_f64_le(),
876
1
            0x66 => visitor.visit_f64_ge(),
877
0
            0x67 => visitor.visit_i32_clz(),
878
2
            0x68 => visitor.visit_i32_ctz(),
879
2
            0x69 => visitor.visit_i32_popcnt(),
880
2
            0x6a => visitor.visit_i32_add(),
881
2
            0x6b => visitor.visit_i32_sub(),
882
1
            0x6c => visitor.visit_i32_mul(),
883
2
            0x6d => visitor.visit_i32_div_s(),
884
2
            0x6e => visitor.visit_i32_div_u(),
885
2
            0x6f => visitor.visit_i32_rem_s(),
886
1
            0x70 => visitor.visit_i32_rem_u(),
887
1
            0x71 => visitor.visit_i32_and(),
888
2
            0x72 => visitor.visit_i32_or(),
889
4
            0x73 => visitor.visit_i32_xor(),
890
3
            0x74 => visitor.visit_i32_shl(),
891
2
            0x75 => visitor.visit_i32_shr_s(),
892
0
            0x76 => visitor.visit_i32_shr_u(),
893
1
            0x77 => visitor.visit_i32_rotl(),
894
1
            0x78 => visitor.visit_i32_rotr(),
895
2
            0x79 => visitor.visit_i64_clz(),
896
0
            0x7a => visitor.visit_i64_ctz(),
897
3
            0x7b => visitor.visit_i64_popcnt(),
898
1
            0x7c => visitor.visit_i64_add(),
899
2
            0x7d => visitor.visit_i64_sub(),
900
0
            0x7e => visitor.visit_i64_mul(),
901
1
            0x7f => visitor.visit_i64_div_s(),
902
1
            0x80 => visitor.visit_i64_div_u(),
903
0
            0x81 => visitor.visit_i64_rem_s(),
904
2
            0x82 => visitor.visit_i64_rem_u(),
905
0
            0x83 => visitor.visit_i64_and(),
906
2
            0x84 => visitor.visit_i64_or(),
907
3
            0x85 => visitor.visit_i64_xor(),
908
0
            0x86 => visitor.visit_i64_shl(),
909
0
            0x87 => visitor.visit_i64_shr_s(),
910
0
            0x88 => visitor.visit_i64_shr_u(),
911
2
            0x89 => visitor.visit_i64_rotl(),
912
1
            0x8a => visitor.visit_i64_rotr(),
913
4
            0x8b => visitor.visit_f32_abs(),
914
5
            0x8c => visitor.visit_f32_neg(),
915
4
            0x8d => visitor.visit_f32_ceil(),
916
0
            0x8e => visitor.visit_f32_floor(),
917
0
            0x8f => visitor.visit_f32_trunc(),
918
1
            0x90 => visitor.visit_f32_nearest(),
919
1
            0x91 => visitor.visit_f32_sqrt(),
920
1
            0x92 => visitor.visit_f32_add(),
921
1
            0x93 => visitor.visit_f32_sub(),
922
1
            0x94 => visitor.visit_f32_mul(),
923
0
            0x95 => visitor.visit_f32_div(),
924
0
            0x96 => visitor.visit_f32_min(),
925
2
            0x97 => visitor.visit_f32_max(),
926
2
            0x98 => visitor.visit_f32_copysign(),
927
1
            0x99 => visitor.visit_f64_abs(),
928
4
            0x9a => visitor.visit_f64_neg(),
929
6
            0x9b => visitor.visit_f64_ceil(),
930
2
            0x9c => visitor.visit_f64_floor(),
931
0
            0x9d => visitor.visit_f64_trunc(),
932
3
            0x9e => visitor.visit_f64_nearest(),
933
1
            0x9f => visitor.visit_f64_sqrt(),
934
2
            0xa0 => visitor.visit_f64_add(),
935
1
            0xa1 => visitor.visit_f64_sub(),
936
4
            0xa2 => visitor.visit_f64_mul(),
937
3
            0xa3 => visitor.visit_f64_div(),
938
1
            0xa4 => visitor.visit_f64_min(),
939
2
            0xa5 => visitor.visit_f64_max(),
940
1
            0xa6 => visitor.visit_f64_copysign(),
941
2
            0xa7 => visitor.visit_i32_wrap_i64(),
942
1
            0xa8 => visitor.visit_i32_trunc_f32_s(),
943
2
            0xa9 => visitor.visit_i32_trunc_f32_u(),
944
1
            0xaa => visitor.visit_i32_trunc_f64_s(),
945
2
            0xab => visitor.visit_i32_trunc_f64_u(),
946
0
            0xac => visitor.visit_i64_extend_i32_s(),
947
1
            0xad => visitor.visit_i64_extend_i32_u(),
948
0
            0xae => visitor.visit_i64_trunc_f32_s(),
949
0
            0xaf => visitor.visit_i64_trunc_f32_u(),
950
1
            0xb0 => visitor.visit_i64_trunc_f64_s(),
951
1
            0xb1 => visitor.visit_i64_trunc_f64_u(),
952
1
            0xb2 => visitor.visit_f32_convert_i32_s(),
953
1
            0xb3 => visitor.visit_f32_convert_i32_u(),
954
3
            0xb4 => visitor.visit_f32_convert_i64_s(),
955
0
            0xb5 => visitor.visit_f32_convert_i64_u(),
956
2
            0xb6 => visitor.visit_f32_demote_f64(),
957
1
            0xb7 => visitor.visit_f64_convert_i32_s(),
958
2
            0xb8 => visitor.visit_f64_convert_i32_u(),
959
2
            0xb9 => visitor.visit_f64_convert_i64_s(),
960
6
            0xba => visitor.visit_f64_convert_i64_u(),
961
1
            0xbb => visitor.visit_f64_promote_f32(),
962
0
            0xbc => visitor.visit_i32_reinterpret_f32(),
963
0
            0xbd => visitor.visit_i64_reinterpret_f64(),
964
1
            0xbe => visitor.visit_f32_reinterpret_i32(),
965
2
            0xbf => visitor.visit_f64_reinterpret_i64(),
966
967
3
            0xc0 => visitor.visit_i32_extend8_s(),
968
2
            0xc1 => visitor.visit_i32_extend16_s(),
969
1
            0xc2 => visitor.visit_i64_extend8_s(),
970
1
            0xc3 => visitor.visit_i64_extend16_s(),
971
1
            0xc4 => visitor.visit_i64_extend32_s(),
972
973
9.48M
            0xd0 => visitor.visit_ref_null(self.read()?),
974
0
            0xd1 => visitor.visit_ref_is_null(),
975
94.6k
            0xd2 => visitor.visit_ref_func(self.read_var_u32()?),
976
0
            0xd3 => visitor.visit_ref_as_non_null(),
977
1
            0xd4 => visitor.visit_br_on_null(self.read_var_u32()?),
978
1
            0xd6 => visitor.visit_br_on_non_null(self.read_var_u32()?),
979
980
42
            0xfc => self.visit_0xfc_operator(pos, visitor)?,
981
23.6k
            0xfd => self.visit_0xfd_operator(pos, visitor)?,
982
84
            0xfe => self.visit_0xfe_operator(pos, visitor)?,
983
984
0
            _ => bail!(pos, "illegal opcode: 0x{code:x}"),
985
        })
986
20.2M
    }
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReader>::visit_operator::<wit_component::gc::Module>
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReader>::visit_operator::<wit_component::gc::Encoder>
987
988
6.04M
    fn visit_0xfc_operator<T>(
989
6.04M
        &mut self,
990
6.04M
        pos: usize,
991
6.04M
        visitor: &mut T,
992
6.04M
    ) -> Result<<T as VisitOperator<'a>>::Output>
993
6.04M
    where
994
6.04M
        T: VisitOperator<'a>,
995
6.04M
    {
996
6.04M
        let code = self.read_var_u32()?;
997
6.04M
        Ok(match code {
998
529k
            0x00 => visitor.visit_i32_trunc_sat_f32_s(),
999
237k
            0x01 => visitor.visit_i32_trunc_sat_f32_u(),
1000
255k
            0x02 => visitor.visit_i32_trunc_sat_f64_s(),
1001
355k
            0x03 => visitor.visit_i32_trunc_sat_f64_u(),
1002
101k
            0x04 => visitor.visit_i64_trunc_sat_f32_s(),
1003
93.6k
            0x05 => visitor.visit_i64_trunc_sat_f32_u(),
1004
129k
            0x06 => visitor.visit_i64_trunc_sat_f64_s(),
1005
102k
            0x07 => visitor.visit_i64_trunc_sat_f64_u(),
1006
1007
            0x08 => {
1008
33.0k
                let segment = self.read_var_u32()?;
1009
33.0k
                let mem = self.read_var_u32()?;
1010
33.0k
                visitor.visit_memory_init(segment, mem)
1011
            }
1012
            0x09 => {
1013
2.30M
                let segment = self.read_var_u32()?;
1014
2.30M
                visitor.visit_data_drop(segment)
1015
            }
1016
            0x0a => {
1017
16.3k
                let dst = self.read_var_u32()?;
1018
16.3k
                let src = self.read_var_u32()?;
1019
16.3k
                visitor.visit_memory_copy(dst, src)
1020
            }
1021
            0x0b => {
1022
33.0k
                let mem = self.read_var_u32()?;
1023
32.9k
                visitor.visit_memory_fill(mem)
1024
            }
1025
            0x0c => {
1026
12.3k
                let segment = self.read_var_u32()?;
1027
12.3k
                let table = self.read_var_u32()?;
1028
12.3k
                visitor.visit_table_init(segment, table)
1029
            }
1030
            0x0d => {
1031
1.14M
                let segment = self.read_var_u32()?;
1032
1.14M
                visitor.visit_elem_drop(segment)
1033
            }
1034
            0x0e => {
1035
22.6k
                let dst_table = self.read_var_u32()?;
1036
22.6k
                let src_table = self.read_var_u32()?;
1037
22.6k
                visitor.visit_table_copy(dst_table, src_table)
1038
            }
1039
1040
            0x0f => {
1041
41.6k
                let table = self.read_var_u32()?;
1042
41.6k
                visitor.visit_table_grow(table)
1043
            }
1044
            0x10 => {
1045
623k
                let table = self.read_var_u32()?;
1046
623k
                visitor.visit_table_size(table)
1047
            }
1048
1049
            0x11 => {
1050
9.19k
                let table = self.read_var_u32()?;
1051
9.18k
                visitor.visit_table_fill(table)
1052
            }
1053
1054
            0x12 => {
1055
1.72k
                let mem = self.read_var_u32()?;
1056
1.72k
                visitor.visit_memory_discard(mem)
1057
            }
1058
1059
42
            _ => bail!(pos, "unknown 0xfc subopcode: 0x{code:x}"),
1060
        })
1061
6.04M
    }
<wasmparser::binary_reader::BinaryReader>::visit_0xfc_operator::<wasmprinter::operator::PrintOperator>
Line
Count
Source
988
2.00M
    fn visit_0xfc_operator<T>(
989
2.00M
        &mut self,
990
2.00M
        pos: usize,
991
2.00M
        visitor: &mut T,
992
2.00M
    ) -> Result<<T as VisitOperator<'a>>::Output>
993
2.00M
    where
994
2.00M
        T: VisitOperator<'a>,
995
2.00M
    {
996
2.00M
        let code = self.read_var_u32()?;
997
2.00M
        Ok(match code {
998
216k
            0x00 => visitor.visit_i32_trunc_sat_f32_s(),
999
59.8k
            0x01 => visitor.visit_i32_trunc_sat_f32_u(),
1000
126k
            0x02 => visitor.visit_i32_trunc_sat_f64_s(),
1001
119k
            0x03 => visitor.visit_i32_trunc_sat_f64_u(),
1002
39.3k
            0x04 => visitor.visit_i64_trunc_sat_f32_s(),
1003
44.0k
            0x05 => visitor.visit_i64_trunc_sat_f32_u(),
1004
43.1k
            0x06 => visitor.visit_i64_trunc_sat_f64_s(),
1005
44.6k
            0x07 => visitor.visit_i64_trunc_sat_f64_u(),
1006
1007
            0x08 => {
1008
11.7k
                let segment = self.read_var_u32()?;
1009
11.7k
                let mem = self.read_var_u32()?;
1010
11.7k
                visitor.visit_memory_init(segment, mem)
1011
            }
1012
            0x09 => {
1013
859k
                let segment = self.read_var_u32()?;
1014
859k
                visitor.visit_data_drop(segment)
1015
            }
1016
            0x0a => {
1017
3.25k
                let dst = self.read_var_u32()?;
1018
3.25k
                let src = self.read_var_u32()?;
1019
3.25k
                visitor.visit_memory_copy(dst, src)
1020
            }
1021
            0x0b => {
1022
5.66k
                let mem = self.read_var_u32()?;
1023
5.65k
                visitor.visit_memory_fill(mem)
1024
            }
1025
            0x0c => {
1026
4.09k
                let segment = self.read_var_u32()?;
1027
4.09k
                let table = self.read_var_u32()?;
1028
4.09k
                visitor.visit_table_init(segment, table)
1029
            }
1030
            0x0d => {
1031
298k
                let segment = self.read_var_u32()?;
1032
298k
                visitor.visit_elem_drop(segment)
1033
            }
1034
            0x0e => {
1035
6.47k
                let dst_table = self.read_var_u32()?;
1036
6.47k
                let src_table = self.read_var_u32()?;
1037
6.47k
                visitor.visit_table_copy(dst_table, src_table)
1038
            }
1039
1040
            0x0f => {
1041
4.41k
                let table = self.read_var_u32()?;
1042
4.40k
                visitor.visit_table_grow(table)
1043
            }
1044
            0x10 => {
1045
116k
                let table = self.read_var_u32()?;
1046
116k
                visitor.visit_table_size(table)
1047
            }
1048
1049
            0x11 => {
1050
2.59k
                let table = self.read_var_u32()?;
1051
2.59k
                visitor.visit_table_fill(table)
1052
            }
1053
1054
            0x12 => {
1055
583
                let mem = self.read_var_u32()?;
1056
582
                visitor.visit_memory_discard(mem)
1057
            }
1058
1059
1
            _ => bail!(pos, "unknown 0xfc subopcode: 0x{code:x}"),
1060
        })
1061
2.00M
    }
<wasmparser::binary_reader::BinaryReader>::visit_0xfc_operator::<wasmparser::validator::operators::WasmProposalValidator<wasmparser::validator::core::ValidatorResources>>
Line
Count
Source
988
3.72M
    fn visit_0xfc_operator<T>(
989
3.72M
        &mut self,
990
3.72M
        pos: usize,
991
3.72M
        visitor: &mut T,
992
3.72M
    ) -> Result<<T as VisitOperator<'a>>::Output>
993
3.72M
    where
994
3.72M
        T: VisitOperator<'a>,
995
3.72M
    {
996
3.72M
        let code = self.read_var_u32()?;
997
3.72M
        Ok(match code {
998
279k
            0x00 => visitor.visit_i32_trunc_sat_f32_s(),
999
153k
            0x01 => visitor.visit_i32_trunc_sat_f32_u(),
1000
119k
            0x02 => visitor.visit_i32_trunc_sat_f64_s(),
1001
220k
            0x03 => visitor.visit_i32_trunc_sat_f64_u(),
1002
55.3k
            0x04 => visitor.visit_i64_trunc_sat_f32_s(),
1003
44.7k
            0x05 => visitor.visit_i64_trunc_sat_f32_u(),
1004
63.8k
            0x06 => visitor.visit_i64_trunc_sat_f64_s(),
1005
48.7k
            0x07 => visitor.visit_i64_trunc_sat_f64_u(),
1006
1007
            0x08 => {
1008
905
                let segment = self.read_var_u32()?;
1009
904
                let mem = self.read_var_u32()?;
1010
903
                visitor.visit_memory_init(segment, mem)
1011
            }
1012
            0x09 => {
1013
1.34M
                let segment = self.read_var_u32()?;
1014
1.34M
                visitor.visit_data_drop(segment)
1015
            }
1016
            0x0a => {
1017
6.86k
                let dst = self.read_var_u32()?;
1018
6.85k
                let src = self.read_var_u32()?;
1019
6.85k
                visitor.visit_memory_copy(dst, src)
1020
            }
1021
            0x0b => {
1022
9.99k
                let mem = self.read_var_u32()?;
1023
9.98k
                visitor.visit_memory_fill(mem)
1024
            }
1025
            0x0c => {
1026
1.67k
                let segment = self.read_var_u32()?;
1027
1.67k
                let table = self.read_var_u32()?;
1028
1.67k
                visitor.visit_table_init(segment, table)
1029
            }
1030
            0x0d => {
1031
838k
                let segment = self.read_var_u32()?;
1032
838k
                visitor.visit_elem_drop(segment)
1033
            }
1034
            0x0e => {
1035
6.17k
                let dst_table = self.read_var_u32()?;
1036
6.17k
                let src_table = self.read_var_u32()?;
1037
6.17k
                visitor.visit_table_copy(dst_table, src_table)
1038
            }
1039
1040
            0x0f => {
1041
33.6k
                let table = self.read_var_u32()?;
1042
33.6k
                visitor.visit_table_grow(table)
1043
            }
1044
            0x10 => {
1045
493k
                let table = self.read_var_u32()?;
1046
493k
                visitor.visit_table_size(table)
1047
            }
1048
1049
            0x11 => {
1050
4.86k
                let table = self.read_var_u32()?;
1051
4.86k
                visitor.visit_table_fill(table)
1052
            }
1053
1054
            0x12 => {
1055
54
                let mem = self.read_var_u32()?;
1056
52
                visitor.visit_memory_discard(mem)
1057
            }
1058
1059
12
            _ => bail!(pos, "unknown 0xfc subopcode: 0x{code:x}"),
1060
        })
1061
3.72M
    }
<wasmparser::binary_reader::BinaryReader>::visit_0xfc_operator::<wasmparser::binary_reader::OperatorFactory>
Line
Count
Source
988
312k
    fn visit_0xfc_operator<T>(
989
312k
        &mut self,
990
312k
        pos: usize,
991
312k
        visitor: &mut T,
992
312k
    ) -> Result<<T as VisitOperator<'a>>::Output>
993
312k
    where
994
312k
        T: VisitOperator<'a>,
995
312k
    {
996
312k
        let code = self.read_var_u32()?;
997
312k
        Ok(match code {
998
33.6k
            0x00 => visitor.visit_i32_trunc_sat_f32_s(),
999
24.8k
            0x01 => visitor.visit_i32_trunc_sat_f32_u(),
1000
9.69k
            0x02 => visitor.visit_i32_trunc_sat_f64_s(),
1001
15.2k
            0x03 => visitor.visit_i32_trunc_sat_f64_u(),
1002
6.83k
            0x04 => visitor.visit_i64_trunc_sat_f32_s(),
1003
4.85k
            0x05 => visitor.visit_i64_trunc_sat_f32_u(),
1004
22.2k
            0x06 => visitor.visit_i64_trunc_sat_f64_s(),
1005
8.70k
            0x07 => visitor.visit_i64_trunc_sat_f64_u(),
1006
1007
            0x08 => {
1008
20.4k
                let segment = self.read_var_u32()?;
1009
20.4k
                let mem = self.read_var_u32()?;
1010
20.4k
                visitor.visit_memory_init(segment, mem)
1011
            }
1012
            0x09 => {
1013
95.4k
                let segment = self.read_var_u32()?;
1014
95.4k
                visitor.visit_data_drop(segment)
1015
            }
1016
            0x0a => {
1017
6.20k
                let dst = self.read_var_u32()?;
1018
6.20k
                let src = self.read_var_u32()?;
1019
6.19k
                visitor.visit_memory_copy(dst, src)
1020
            }
1021
            0x0b => {
1022
17.3k
                let mem = self.read_var_u32()?;
1023
17.3k
                visitor.visit_memory_fill(mem)
1024
            }
1025
            0x0c => {
1026
6.57k
                let segment = self.read_var_u32()?;
1027
6.56k
                let table = self.read_var_u32()?;
1028
6.56k
                visitor.visit_table_init(segment, table)
1029
            }
1030
            0x0d => {
1031
9.73k
                let segment = self.read_var_u32()?;
1032
9.72k
                visitor.visit_elem_drop(segment)
1033
            }
1034
            0x0e => {
1035
9.96k
                let dst_table = self.read_var_u32()?;
1036
9.96k
                let src_table = self.read_var_u32()?;
1037
9.95k
                visitor.visit_table_copy(dst_table, src_table)
1038
            }
1039
1040
            0x0f => {
1041
3.59k
                let table = self.read_var_u32()?;
1042
3.59k
                visitor.visit_table_grow(table)
1043
            }
1044
            0x10 => {
1045
13.8k
                let table = self.read_var_u32()?;
1046
13.8k
                visitor.visit_table_size(table)
1047
            }
1048
1049
            0x11 => {
1050
1.73k
                let table = self.read_var_u32()?;
1051
1.72k
                visitor.visit_table_fill(table)
1052
            }
1053
1054
            0x12 => {
1055
1.09k
                let mem = self.read_var_u32()?;
1056
1.08k
                visitor.visit_memory_discard(mem)
1057
            }
1058
1059
29
            _ => bail!(pos, "unknown 0xfc subopcode: 0x{code:x}"),
1060
        })
1061
312k
    }
<wasmparser::binary_reader::BinaryReader>::visit_0xfc_operator::<<wasmparser::validator::core::ModuleState>::check_const_expr::VisitConstOperator>
Line
Count
Source
988
42
    fn visit_0xfc_operator<T>(
989
42
        &mut self,
990
42
        pos: usize,
991
42
        visitor: &mut T,
992
42
    ) -> Result<<T as VisitOperator<'a>>::Output>
993
42
    where
994
42
        T: VisitOperator<'a>,
995
42
    {
996
42
        let code = self.read_var_u32()?;
997
42
        Ok(match code {
998
1
            0x00 => visitor.visit_i32_trunc_sat_f32_s(),
999
1
            0x01 => visitor.visit_i32_trunc_sat_f32_u(),
1000
2
            0x02 => visitor.visit_i32_trunc_sat_f64_s(),
1001
0
            0x03 => visitor.visit_i32_trunc_sat_f64_u(),
1002
0
            0x04 => visitor.visit_i64_trunc_sat_f32_s(),
1003
3
            0x05 => visitor.visit_i64_trunc_sat_f32_u(),
1004
0
            0x06 => visitor.visit_i64_trunc_sat_f64_s(),
1005
0
            0x07 => visitor.visit_i64_trunc_sat_f64_u(),
1006
1007
            0x08 => {
1008
2
                let segment = self.read_var_u32()?;
1009
2
                let mem = self.read_var_u32()?;
1010
2
                visitor.visit_memory_init(segment, mem)
1011
            }
1012
            0x09 => {
1013
6
                let segment = self.read_var_u32()?;
1014
6
                visitor.visit_data_drop(segment)
1015
            }
1016
            0x0a => {
1017
2
                let dst = self.read_var_u32()?;
1018
2
                let src = self.read_var_u32()?;
1019
2
                visitor.visit_memory_copy(dst, src)
1020
            }
1021
            0x0b => {
1022
4
                let mem = self.read_var_u32()?;
1023
4
                visitor.visit_memory_fill(mem)
1024
            }
1025
            0x0c => {
1026
4
                let segment = self.read_var_u32()?;
1027
4
                let table = self.read_var_u32()?;
1028
4
                visitor.visit_table_init(segment, table)
1029
            }
1030
            0x0d => {
1031
2
                let segment = self.read_var_u32()?;
1032
2
                visitor.visit_elem_drop(segment)
1033
            }
1034
            0x0e => {
1035
3
                let dst_table = self.read_var_u32()?;
1036
3
                let src_table = self.read_var_u32()?;
1037
3
                visitor.visit_table_copy(dst_table, src_table)
1038
            }
1039
1040
            0x0f => {
1041
1
                let table = self.read_var_u32()?;
1042
1
                visitor.visit_table_grow(table)
1043
            }
1044
            0x10 => {
1045
5
                let table = self.read_var_u32()?;
1046
5
                visitor.visit_table_size(table)
1047
            }
1048
1049
            0x11 => {
1050
6
                let table = self.read_var_u32()?;
1051
6
                visitor.visit_table_fill(table)
1052
            }
1053
1054
            0x12 => {
1055
0
                let mem = self.read_var_u32()?;
1056
0
                visitor.visit_memory_discard(mem)
1057
            }
1058
1059
0
            _ => bail!(pos, "unknown 0xfc subopcode: 0x{code:x}"),
1060
        })
1061
42
    }
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReader>::visit_0xfc_operator::<wit_component::gc::Encoder>
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReader>::visit_0xfc_operator::<wit_component::gc::Module>
1062
1063
35.1M
    fn visit_0xfd_operator<T>(
1064
35.1M
        &mut self,
1065
35.1M
        pos: usize,
1066
35.1M
        visitor: &mut T,
1067
35.1M
    ) -> Result<<T as VisitOperator<'a>>::Output>
1068
35.1M
    where
1069
35.1M
        T: VisitOperator<'a>,
1070
35.1M
    {
1071
35.1M
        let code = self.read_var_u32()?;
1072
35.1M
        Ok(match code {
1073
182k
            0x00 => visitor.visit_v128_load(self.read_memarg(4)?),
1074
49.2k
            0x01 => visitor.visit_v128_load8x8_s(self.read_memarg(3)?),
1075
102k
            0x02 => visitor.visit_v128_load8x8_u(self.read_memarg(3)?),
1076
34.1k
            0x03 => visitor.visit_v128_load16x4_s(self.read_memarg(3)?),
1077
36.8k
            0x04 => visitor.visit_v128_load16x4_u(self.read_memarg(3)?),
1078
30.0k
            0x05 => visitor.visit_v128_load32x2_s(self.read_memarg(3)?),
1079
35.7k
            0x06 => visitor.visit_v128_load32x2_u(self.read_memarg(3)?),
1080
36.0k
            0x07 => visitor.visit_v128_load8_splat(self.read_memarg(0)?),
1081
29.4k
            0x08 => visitor.visit_v128_load16_splat(self.read_memarg(1)?),
1082
34.3k
            0x09 => visitor.visit_v128_load32_splat(self.read_memarg(2)?),
1083
32.3k
            0x0a => visitor.visit_v128_load64_splat(self.read_memarg(3)?),
1084
1085
36.0k
            0x0b => visitor.visit_v128_store(self.read_memarg(4)?),
1086
9.32M
            0x0c => visitor.visit_v128_const(self.read_v128()?),
1087
            0x0d => {
1088
11.2k
                let mut lanes: [u8; 16] = [0; 16];
1089
188k
                for lane in &mut lanes {
1090
177k
                    *lane = self.read_lane_index(32)?
1091
                }
1092
11.0k
                visitor.visit_i8x16_shuffle(lanes)
1093
            }
1094
1095
21.4k
            0x0e => visitor.visit_i8x16_swizzle(),
1096
184k
            0x0f => visitor.visit_i8x16_splat(),
1097
130k
            0x10 => visitor.visit_i16x8_splat(),
1098
112k
            0x11 => visitor.visit_i32x4_splat(),
1099
73.7k
            0x12 => visitor.visit_i64x2_splat(),
1100
75.8k
            0x13 => visitor.visit_f32x4_splat(),
1101
69.3k
            0x14 => visitor.visit_f64x2_splat(),
1102
1103
122k
            0x15 => visitor.visit_i8x16_extract_lane_s(self.read_lane_index(16)?),
1104
94.0k
            0x16 => visitor.visit_i8x16_extract_lane_u(self.read_lane_index(16)?),
1105
38.2k
            0x17 => visitor.visit_i8x16_replace_lane(self.read_lane_index(16)?),
1106
93.7k
            0x18 => visitor.visit_i16x8_extract_lane_s(self.read_lane_index(8)?),
1107
126k
            0x19 => visitor.visit_i16x8_extract_lane_u(self.read_lane_index(8)?),
1108
21.1k
            0x1a => visitor.visit_i16x8_replace_lane(self.read_lane_index(8)?),
1109
87.8k
            0x1b => visitor.visit_i32x4_extract_lane(self.read_lane_index(4)?),
1110
1111
120k
            0x1c => visitor.visit_i32x4_replace_lane(self.read_lane_index(4)?),
1112
99.7k
            0x1d => visitor.visit_i64x2_extract_lane(self.read_lane_index(2)?),
1113
15.1k
            0x1e => visitor.visit_i64x2_replace_lane(self.read_lane_index(2)?),
1114
159k
            0x1f => visitor.visit_f32x4_extract_lane(self.read_lane_index(4)?),
1115
64.5k
            0x20 => visitor.visit_f32x4_replace_lane(self.read_lane_index(4)?),
1116
98.9k
            0x21 => visitor.visit_f64x2_extract_lane(self.read_lane_index(2)?),
1117
27.7k
            0x22 => visitor.visit_f64x2_replace_lane(self.read_lane_index(2)?),
1118
1119
31.1k
            0x23 => visitor.visit_i8x16_eq(),
1120
258k
            0x24 => visitor.visit_i8x16_ne(),
1121
13.8k
            0x25 => visitor.visit_i8x16_lt_s(),
1122
26.2k
            0x26 => visitor.visit_i8x16_lt_u(),
1123
33.5k
            0x27 => visitor.visit_i8x16_gt_s(),
1124
81.5k
            0x28 => visitor.visit_i8x16_gt_u(),
1125
29.1k
            0x29 => visitor.visit_i8x16_le_s(),
1126
28.4k
            0x2a => visitor.visit_i8x16_le_u(),
1127
12.5k
            0x2b => visitor.visit_i8x16_ge_s(),
1128
21.3k
            0x2c => visitor.visit_i8x16_ge_u(),
1129
18.0k
            0x2d => visitor.visit_i16x8_eq(),
1130
26.9k
            0x2e => visitor.visit_i16x8_ne(),
1131
16.1k
            0x2f => visitor.visit_i16x8_lt_s(),
1132
186k
            0x30 => visitor.visit_i16x8_lt_u(),
1133
42.9k
            0x31 => visitor.visit_i16x8_gt_s(),
1134
26.3k
            0x32 => visitor.visit_i16x8_gt_u(),
1135
36.8k
            0x33 => visitor.visit_i16x8_le_s(),
1136
174k
            0x34 => visitor.visit_i16x8_le_u(),
1137
34.5k
            0x35 => visitor.visit_i16x8_ge_s(),
1138
23.1k
            0x36 => visitor.visit_i16x8_ge_u(),
1139
22.8k
            0x37 => visitor.visit_i32x4_eq(),
1140
17.3k
            0x38 => visitor.visit_i32x4_ne(),
1141
17.3k
            0x39 => visitor.visit_i32x4_lt_s(),
1142
28.3k
            0x3a => visitor.visit_i32x4_lt_u(),
1143
15.4k
            0x3b => visitor.visit_i32x4_gt_s(),
1144
41.4k
            0x3c => visitor.visit_i32x4_gt_u(),
1145
16.4k
            0x3d => visitor.visit_i32x4_le_s(),
1146
13.7k
            0x3e => visitor.visit_i32x4_le_u(),
1147
31.7k
            0x3f => visitor.visit_i32x4_ge_s(),
1148
17.4k
            0x40 => visitor.visit_i32x4_ge_u(),
1149
764k
            0x41 => visitor.visit_f32x4_eq(),
1150
30.2k
            0x42 => visitor.visit_f32x4_ne(),
1151
23.3k
            0x43 => visitor.visit_f32x4_lt(),
1152
24.9k
            0x44 => visitor.visit_f32x4_gt(),
1153
60.1k
            0x45 => visitor.visit_f32x4_le(),
1154
33.8k
            0x46 => visitor.visit_f32x4_ge(),
1155
871k
            0x47 => visitor.visit_f64x2_eq(),
1156
15.4k
            0x48 => visitor.visit_f64x2_ne(),
1157
20.1k
            0x49 => visitor.visit_f64x2_lt(),
1158
32.1k
            0x4a => visitor.visit_f64x2_gt(),
1159
22.6k
            0x4b => visitor.visit_f64x2_le(),
1160
38.7k
            0x4c => visitor.visit_f64x2_ge(),
1161
323k
            0x4d => visitor.visit_v128_not(),
1162
26.2k
            0x4e => visitor.visit_v128_and(),
1163
14.2k
            0x4f => visitor.visit_v128_andnot(),
1164
35.8k
            0x50 => visitor.visit_v128_or(),
1165
22.3k
            0x51 => visitor.visit_v128_xor(),
1166
1.60M
            0x52 => visitor.visit_v128_bitselect(),
1167
28.1k
            0x53 => visitor.visit_v128_any_true(),
1168
1169
            0x54 => {
1170
11.0k
                let memarg = self.read_memarg(0)?;
1171
11.0k
                let lane = self.read_lane_index(16)?;
1172
10.9k
                visitor.visit_v128_load8_lane(memarg, lane)
1173
            }
1174
            0x55 => {
1175
15.3k
                let memarg = self.read_memarg(1)?;
1176
15.3k
                let lane = self.read_lane_index(8)?;
1177
15.3k
                visitor.visit_v128_load16_lane(memarg, lane)
1178
            }
1179
            0x56 => {
1180
13.8k
                let memarg = self.read_memarg(2)?;
1181
13.8k
                let lane = self.read_lane_index(4)?;
1182
13.8k
                visitor.visit_v128_load32_lane(memarg, lane)
1183
            }
1184
            0x57 => {
1185
28.9k
                let memarg = self.read_memarg(3)?;
1186
28.9k
                let lane = self.read_lane_index(2)?;
1187
28.9k
                visitor.visit_v128_load64_lane(memarg, lane)
1188
            }
1189
            0x58 => {
1190
16.6k
                let memarg = self.read_memarg(0)?;
1191
16.6k
                let lane = self.read_lane_index(16)?;
1192
16.6k
                visitor.visit_v128_store8_lane(memarg, lane)
1193
            }
1194
            0x59 => {
1195
11.0k
                let memarg = self.read_memarg(1)?;
1196
11.0k
                let lane = self.read_lane_index(8)?;
1197
11.0k
                visitor.visit_v128_store16_lane(memarg, lane)
1198
            }
1199
            0x5a => {
1200
14.6k
                let memarg = self.read_memarg(2)?;
1201
14.5k
                let lane = self.read_lane_index(4)?;
1202
14.5k
                visitor.visit_v128_store32_lane(memarg, lane)
1203
            }
1204
            0x5b => {
1205
17.0k
                let memarg = self.read_memarg(3)?;
1206
17.0k
                let lane = self.read_lane_index(2)?;
1207
17.0k
                visitor.visit_v128_store64_lane(memarg, lane)
1208
            }
1209
1210
89.9k
            0x5c => visitor.visit_v128_load32_zero(self.read_memarg(2)?),
1211
52.6k
            0x5d => visitor.visit_v128_load64_zero(self.read_memarg(3)?),
1212
435k
            0x5e => visitor.visit_f32x4_demote_f64x2_zero(),
1213
215k
            0x5f => visitor.visit_f64x2_promote_low_f32x4(),
1214
349k
            0x60 => visitor.visit_i8x16_abs(),
1215
149k
            0x61 => visitor.visit_i8x16_neg(),
1216
168k
            0x62 => visitor.visit_i8x16_popcnt(),
1217
86.6k
            0x63 => visitor.visit_i8x16_all_true(),
1218
149k
            0x64 => visitor.visit_i8x16_bitmask(),
1219
65.4k
            0x65 => visitor.visit_i8x16_narrow_i16x8_s(),
1220
17.7k
            0x66 => visitor.visit_i8x16_narrow_i16x8_u(),
1221
158k
            0x67 => visitor.visit_f32x4_ceil(),
1222
188k
            0x68 => visitor.visit_f32x4_floor(),
1223
118k
            0x69 => visitor.visit_f32x4_trunc(),
1224
158k
            0x6a => visitor.visit_f32x4_nearest(),
1225
13.6k
            0x6b => visitor.visit_i8x16_shl(),
1226
26.8k
            0x6c => visitor.visit_i8x16_shr_s(),
1227
19.2k
            0x6d => visitor.visit_i8x16_shr_u(),
1228
24.6k
            0x6e => visitor.visit_i8x16_add(),
1229
75.4k
            0x6f => visitor.visit_i8x16_add_sat_s(),
1230
23.3k
            0x70 => visitor.visit_i8x16_add_sat_u(),
1231
28.1k
            0x71 => visitor.visit_i8x16_sub(),
1232
15.6k
            0x72 => visitor.visit_i8x16_sub_sat_s(),
1233
23.7k
            0x73 => visitor.visit_i8x16_sub_sat_u(),
1234
175k
            0x74 => visitor.visit_f64x2_ceil(),
1235
190k
            0x75 => visitor.visit_f64x2_floor(),
1236
28.2k
            0x76 => visitor.visit_i8x16_min_s(),
1237
16.0k
            0x77 => visitor.visit_i8x16_min_u(),
1238
88.4k
            0x78 => visitor.visit_i8x16_max_s(),
1239
23.1k
            0x79 => visitor.visit_i8x16_max_u(),
1240
174k
            0x7a => visitor.visit_f64x2_trunc(),
1241
28.6k
            0x7b => visitor.visit_i8x16_avgr_u(),
1242
143k
            0x7c => visitor.visit_i16x8_extadd_pairwise_i8x16_s(),
1243
311k
            0x7d => visitor.visit_i16x8_extadd_pairwise_i8x16_u(),
1244
662k
            0x7e => visitor.visit_i32x4_extadd_pairwise_i16x8_s(),
1245
352k
            0x7f => visitor.visit_i32x4_extadd_pairwise_i16x8_u(),
1246
451k
            0x80 => visitor.visit_i16x8_abs(),
1247
274k
            0x81 => visitor.visit_i16x8_neg(),
1248
14.8k
            0x82 => visitor.visit_i16x8_q15mulr_sat_s(),
1249
82.3k
            0x83 => visitor.visit_i16x8_all_true(),
1250
134k
            0x84 => visitor.visit_i16x8_bitmask(),
1251
14.6k
            0x85 => visitor.visit_i16x8_narrow_i32x4_s(),
1252
12.6k
            0x86 => visitor.visit_i16x8_narrow_i32x4_u(),
1253
215k
            0x87 => visitor.visit_i16x8_extend_low_i8x16_s(),
1254
198k
            0x88 => visitor.visit_i16x8_extend_high_i8x16_s(),
1255
198k
            0x89 => visitor.visit_i16x8_extend_low_i8x16_u(),
1256
147k
            0x8a => visitor.visit_i16x8_extend_high_i8x16_u(),
1257
14.5k
            0x8b => visitor.visit_i16x8_shl(),
1258
13.0k
            0x8c => visitor.visit_i16x8_shr_s(),
1259
16.4k
            0x8d => visitor.visit_i16x8_shr_u(),
1260
43.8k
            0x8e => visitor.visit_i16x8_add(),
1261
38.4k
            0x8f => visitor.visit_i16x8_add_sat_s(),
1262
21.2k
            0x90 => visitor.visit_i16x8_add_sat_u(),
1263
14.2k
            0x91 => visitor.visit_i16x8_sub(),
1264
22.6k
            0x92 => visitor.visit_i16x8_sub_sat_s(),
1265
30.8k
            0x93 => visitor.visit_i16x8_sub_sat_u(),
1266
189k
            0x94 => visitor.visit_f64x2_nearest(),
1267
23.3k
            0x95 => visitor.visit_i16x8_mul(),
1268
17.7k
            0x96 => visitor.visit_i16x8_min_s(),
1269
11.3k
            0x97 => visitor.visit_i16x8_min_u(),
1270
14.5k
            0x98 => visitor.visit_i16x8_max_s(),
1271
11.6k
            0x99 => visitor.visit_i16x8_max_u(),
1272
15.7k
            0x9b => visitor.visit_i16x8_avgr_u(),
1273
21.9k
            0x9c => visitor.visit_i16x8_extmul_low_i8x16_s(),
1274
36.9k
            0x9d => visitor.visit_i16x8_extmul_high_i8x16_s(),
1275
9.96k
            0x9e => visitor.visit_i16x8_extmul_low_i8x16_u(),
1276
11.4k
            0x9f => visitor.visit_i16x8_extmul_high_i8x16_u(),
1277
396k
            0xa0 => visitor.visit_i32x4_abs(),
1278
248k
            0xa1 => visitor.visit_i32x4_neg(),
1279
77.1k
            0xa3 => visitor.visit_i32x4_all_true(),
1280
73.3k
            0xa4 => visitor.visit_i32x4_bitmask(),
1281
161k
            0xa7 => visitor.visit_i32x4_extend_low_i16x8_s(),
1282
222k
            0xa8 => visitor.visit_i32x4_extend_high_i16x8_s(),
1283
215k
            0xa9 => visitor.visit_i32x4_extend_low_i16x8_u(),
1284
238k
            0xaa => visitor.visit_i32x4_extend_high_i16x8_u(),
1285
10.0k
            0xab => visitor.visit_i32x4_shl(),
1286
23.0k
            0xac => visitor.visit_i32x4_shr_s(),
1287
7.25k
            0xad => visitor.visit_i32x4_shr_u(),
1288
12.5k
            0xae => visitor.visit_i32x4_add(),
1289
35.6k
            0xb1 => visitor.visit_i32x4_sub(),
1290
13.0k
            0xb5 => visitor.visit_i32x4_mul(),
1291
14.3k
            0xb6 => visitor.visit_i32x4_min_s(),
1292
25.9k
            0xb7 => visitor.visit_i32x4_min_u(),
1293
15.1k
            0xb8 => visitor.visit_i32x4_max_s(),
1294
11.8k
            0xb9 => visitor.visit_i32x4_max_u(),
1295
13.2k
            0xba => visitor.visit_i32x4_dot_i16x8_s(),
1296
10.1k
            0xbc => visitor.visit_i32x4_extmul_low_i16x8_s(),
1297
19.3k
            0xbd => visitor.visit_i32x4_extmul_high_i16x8_s(),
1298
49.0k
            0xbe => visitor.visit_i32x4_extmul_low_i16x8_u(),
1299
7.56k
            0xbf => visitor.visit_i32x4_extmul_high_i16x8_u(),
1300
661k
            0xc0 => visitor.visit_i64x2_abs(),
1301
474k
            0xc1 => visitor.visit_i64x2_neg(),
1302
151k
            0xc3 => visitor.visit_i64x2_all_true(),
1303
71.6k
            0xc4 => visitor.visit_i64x2_bitmask(),
1304
609k
            0xc7 => visitor.visit_i64x2_extend_low_i32x4_s(),
1305
379k
            0xc8 => visitor.visit_i64x2_extend_high_i32x4_s(),
1306
415k
            0xc9 => visitor.visit_i64x2_extend_low_i32x4_u(),
1307
336k
            0xca => visitor.visit_i64x2_extend_high_i32x4_u(),
1308
12.2k
            0xcb => visitor.visit_i64x2_shl(),
1309
10.7k
            0xcc => visitor.visit_i64x2_shr_s(),
1310
8.93k
            0xcd => visitor.visit_i64x2_shr_u(),
1311
20.2k
            0xce => visitor.visit_i64x2_add(),
1312
19.2k
            0xd1 => visitor.visit_i64x2_sub(),
1313
18.6k
            0xd5 => visitor.visit_i64x2_mul(),
1314
19.1k
            0xd6 => visitor.visit_i64x2_eq(),
1315
45.7k
            0xd7 => visitor.visit_i64x2_ne(),
1316
19.4k
            0xd8 => visitor.visit_i64x2_lt_s(),
1317
46.1k
            0xd9 => visitor.visit_i64x2_gt_s(),
1318
22.9k
            0xda => visitor.visit_i64x2_le_s(),
1319
12.8k
            0xdb => visitor.visit_i64x2_ge_s(),
1320
27.9k
            0xdc => visitor.visit_i64x2_extmul_low_i32x4_s(),
1321
28.1k
            0xdd => visitor.visit_i64x2_extmul_high_i32x4_s(),
1322
12.1k
            0xde => visitor.visit_i64x2_extmul_low_i32x4_u(),
1323
54.8k
            0xdf => visitor.visit_i64x2_extmul_high_i32x4_u(),
1324
256k
            0xe0 => visitor.visit_f32x4_abs(),
1325
155k
            0xe1 => visitor.visit_f32x4_neg(),
1326
169k
            0xe3 => visitor.visit_f32x4_sqrt(),
1327
17.5k
            0xe4 => visitor.visit_f32x4_add(),
1328
34.8k
            0xe5 => visitor.visit_f32x4_sub(),
1329
32.9k
            0xe6 => visitor.visit_f32x4_mul(),
1330
13.3k
            0xe7 => visitor.visit_f32x4_div(),
1331
26.2k
            0xe8 => visitor.visit_f32x4_min(),
1332
31.8k
            0xe9 => visitor.visit_f32x4_max(),
1333
27.1k
            0xea => visitor.visit_f32x4_pmin(),
1334
14.3k
            0xeb => visitor.visit_f32x4_pmax(),
1335
276k
            0xec => visitor.visit_f64x2_abs(),
1336
277k
            0xed => visitor.visit_f64x2_neg(),
1337
209k
            0xef => visitor.visit_f64x2_sqrt(),
1338
19.6k
            0xf0 => visitor.visit_f64x2_add(),
1339
16.4k
            0xf1 => visitor.visit_f64x2_sub(),
1340
36.7k
            0xf2 => visitor.visit_f64x2_mul(),
1341
20.3k
            0xf3 => visitor.visit_f64x2_div(),
1342
16.4k
            0xf4 => visitor.visit_f64x2_min(),
1343
16.1k
            0xf5 => visitor.visit_f64x2_max(),
1344
11.3k
            0xf6 => visitor.visit_f64x2_pmin(),
1345
16.4k
            0xf7 => visitor.visit_f64x2_pmax(),
1346
228k
            0xf8 => visitor.visit_i32x4_trunc_sat_f32x4_s(),
1347
506k
            0xf9 => visitor.visit_i32x4_trunc_sat_f32x4_u(),
1348
254k
            0xfa => visitor.visit_f32x4_convert_i32x4_s(),
1349
385k
            0xfb => visitor.visit_f32x4_convert_i32x4_u(),
1350
355k
            0xfc => visitor.visit_i32x4_trunc_sat_f64x2_s_zero(),
1351
279k
            0xfd => visitor.visit_i32x4_trunc_sat_f64x2_u_zero(),
1352
212k
            0xfe => visitor.visit_f64x2_convert_low_i32x4_s(),
1353
232k
            0xff => visitor.visit_f64x2_convert_low_i32x4_u(),
1354
14.2k
            0x100 => visitor.visit_i8x16_relaxed_swizzle(),
1355
165k
            0x101 => visitor.visit_i32x4_relaxed_trunc_f32x4_s(),
1356
396k
            0x102 => visitor.visit_i32x4_relaxed_trunc_f32x4_u(),
1357
215k
            0x103 => visitor.visit_i32x4_relaxed_trunc_f64x2_s_zero(),
1358
147k
            0x104 => visitor.visit_i32x4_relaxed_trunc_f64x2_u_zero(),
1359
8.30k
            0x105 => visitor.visit_f32x4_relaxed_madd(),
1360
10.9k
            0x106 => visitor.visit_f32x4_relaxed_nmadd(),
1361
8.45k
            0x107 => visitor.visit_f64x2_relaxed_madd(),
1362
11.3k
            0x108 => visitor.visit_f64x2_relaxed_nmadd(),
1363
11.9k
            0x109 => visitor.visit_i8x16_relaxed_laneselect(),
1364
24.8k
            0x10a => visitor.visit_i16x8_relaxed_laneselect(),
1365
15.4k
            0x10b => visitor.visit_i32x4_relaxed_laneselect(),
1366
22.0k
            0x10c => visitor.visit_i64x2_relaxed_laneselect(),
1367
30.0k
            0x10d => visitor.visit_f32x4_relaxed_min(),
1368
19.4k
            0x10e => visitor.visit_f32x4_relaxed_max(),
1369
11.1k
            0x10f => visitor.visit_f64x2_relaxed_min(),
1370
16.5k
            0x110 => visitor.visit_f64x2_relaxed_max(),
1371
27.9k
            0x111 => visitor.visit_i16x8_relaxed_q15mulr_s(),
1372
9.86k
            0x112 => visitor.visit_i16x8_relaxed_dot_i8x16_i7x16_s(),
1373
14.3k
            0x113 => visitor.visit_i32x4_relaxed_dot_i8x16_i7x16_add_s(),
1374
1375
302
            _ => bail!(pos, "unknown 0xfd subopcode: 0x{code:x}"),
1376
        })
1377
35.1M
    }
<wasmparser::binary_reader::BinaryReader>::visit_0xfd_operator::<wasmprinter::operator::PrintOperator>
Line
Count
Source
1063
16.5M
    fn visit_0xfd_operator<T>(
1064
16.5M
        &mut self,
1065
16.5M
        pos: usize,
1066
16.5M
        visitor: &mut T,
1067
16.5M
    ) -> Result<<T as VisitOperator<'a>>::Output>
1068
16.5M
    where
1069
16.5M
        T: VisitOperator<'a>,
1070
16.5M
    {
1071
16.5M
        let code = self.read_var_u32()?;
1072
16.5M
        Ok(match code {
1073
40.5k
            0x00 => visitor.visit_v128_load(self.read_memarg(4)?),
1074
18.5k
            0x01 => visitor.visit_v128_load8x8_s(self.read_memarg(3)?),
1075
51.5k
            0x02 => visitor.visit_v128_load8x8_u(self.read_memarg(3)?),
1076
15.8k
            0x03 => visitor.visit_v128_load16x4_s(self.read_memarg(3)?),
1077
13.7k
            0x04 => visitor.visit_v128_load16x4_u(self.read_memarg(3)?),
1078
10.4k
            0x05 => visitor.visit_v128_load32x2_s(self.read_memarg(3)?),
1079
14.1k
            0x06 => visitor.visit_v128_load32x2_u(self.read_memarg(3)?),
1080
12.7k
            0x07 => visitor.visit_v128_load8_splat(self.read_memarg(0)?),
1081
13.2k
            0x08 => visitor.visit_v128_load16_splat(self.read_memarg(1)?),
1082
13.8k
            0x09 => visitor.visit_v128_load32_splat(self.read_memarg(2)?),
1083
15.5k
            0x0a => visitor.visit_v128_load64_splat(self.read_memarg(3)?),
1084
1085
10.3k
            0x0b => visitor.visit_v128_store(self.read_memarg(4)?),
1086
4.66M
            0x0c => visitor.visit_v128_const(self.read_v128()?),
1087
            0x0d => {
1088
4.21k
                let mut lanes: [u8; 16] = [0; 16];
1089
71.5k
                for lane in &mut lanes {
1090
67.3k
                    *lane = self.read_lane_index(32)?
1091
                }
1092
4.20k
                visitor.visit_i8x16_shuffle(lanes)
1093
            }
1094
1095
5.95k
            0x0e => visitor.visit_i8x16_swizzle(),
1096
104k
            0x0f => visitor.visit_i8x16_splat(),
1097
69.0k
            0x10 => visitor.visit_i16x8_splat(),
1098
56.3k
            0x11 => visitor.visit_i32x4_splat(),
1099
32.3k
            0x12 => visitor.visit_i64x2_splat(),
1100
35.3k
            0x13 => visitor.visit_f32x4_splat(),
1101
33.9k
            0x14 => visitor.visit_f64x2_splat(),
1102
1103
55.1k
            0x15 => visitor.visit_i8x16_extract_lane_s(self.read_lane_index(16)?),
1104
45.5k
            0x16 => visitor.visit_i8x16_extract_lane_u(self.read_lane_index(16)?),
1105
17.6k
            0x17 => visitor.visit_i8x16_replace_lane(self.read_lane_index(16)?),
1106
44.5k
            0x18 => visitor.visit_i16x8_extract_lane_s(self.read_lane_index(8)?),
1107
66.2k
            0x19 => visitor.visit_i16x8_extract_lane_u(self.read_lane_index(8)?),
1108
6.18k
            0x1a => visitor.visit_i16x8_replace_lane(self.read_lane_index(8)?),
1109
40.1k
            0x1b => visitor.visit_i32x4_extract_lane(self.read_lane_index(4)?),
1110
1111
6.74k
            0x1c => visitor.visit_i32x4_replace_lane(self.read_lane_index(4)?),
1112
47.9k
            0x1d => visitor.visit_i64x2_extract_lane(self.read_lane_index(2)?),
1113
6.70k
            0x1e => visitor.visit_i64x2_replace_lane(self.read_lane_index(2)?),
1114
89.3k
            0x1f => visitor.visit_f32x4_extract_lane(self.read_lane_index(4)?),
1115
21.3k
            0x20 => visitor.visit_f32x4_replace_lane(self.read_lane_index(4)?),
1116
49.1k
            0x21 => visitor.visit_f64x2_extract_lane(self.read_lane_index(2)?),
1117
13.8k
            0x22 => visitor.visit_f64x2_replace_lane(self.read_lane_index(2)?),
1118
1119
14.0k
            0x23 => visitor.visit_i8x16_eq(),
1120
6.45k
            0x24 => visitor.visit_i8x16_ne(),
1121
6.74k
            0x25 => visitor.visit_i8x16_lt_s(),
1122
13.7k
            0x26 => visitor.visit_i8x16_lt_u(),
1123
14.9k
            0x27 => visitor.visit_i8x16_gt_s(),
1124
34.8k
            0x28 => visitor.visit_i8x16_gt_u(),
1125
12.7k
            0x29 => visitor.visit_i8x16_le_s(),
1126
10.1k
            0x2a => visitor.visit_i8x16_le_u(),
1127
4.41k
            0x2b => visitor.visit_i8x16_ge_s(),
1128
7.09k
            0x2c => visitor.visit_i8x16_ge_u(),
1129
7.53k
            0x2d => visitor.visit_i16x8_eq(),
1130
10.8k
            0x2e => visitor.visit_i16x8_ne(),
1131
7.95k
            0x2f => visitor.visit_i16x8_lt_s(),
1132
71.6k
            0x30 => visitor.visit_i16x8_lt_u(),
1133
17.0k
            0x31 => visitor.visit_i16x8_gt_s(),
1134
9.16k
            0x32 => visitor.visit_i16x8_gt_u(),
1135
8.69k
            0x33 => visitor.visit_i16x8_le_s(),
1136
29.2k
            0x34 => visitor.visit_i16x8_le_u(),
1137
19.5k
            0x35 => visitor.visit_i16x8_ge_s(),
1138
10.6k
            0x36 => visitor.visit_i16x8_ge_u(),
1139
9.81k
            0x37 => visitor.visit_i32x4_eq(),
1140
7.73k
            0x38 => visitor.visit_i32x4_ne(),
1141
6.17k
            0x39 => visitor.visit_i32x4_lt_s(),
1142
11.4k
            0x3a => visitor.visit_i32x4_lt_u(),
1143
4.82k
            0x3b => visitor.visit_i32x4_gt_s(),
1144
4.11k
            0x3c => visitor.visit_i32x4_gt_u(),
1145
8.04k
            0x3d => visitor.visit_i32x4_le_s(),
1146
6.03k
            0x3e => visitor.visit_i32x4_le_u(),
1147
16.5k
            0x3f => visitor.visit_i32x4_ge_s(),
1148
6.52k
            0x40 => visitor.visit_i32x4_ge_u(),
1149
346k
            0x41 => visitor.visit_f32x4_eq(),
1150
17.3k
            0x42 => visitor.visit_f32x4_ne(),
1151
12.6k
            0x43 => visitor.visit_f32x4_lt(),
1152
8.34k
            0x44 => visitor.visit_f32x4_gt(),
1153
22.2k
            0x45 => visitor.visit_f32x4_le(),
1154
20.4k
            0x46 => visitor.visit_f32x4_ge(),
1155
413k
            0x47 => visitor.visit_f64x2_eq(),
1156
5.30k
            0x48 => visitor.visit_f64x2_ne(),
1157
8.24k
            0x49 => visitor.visit_f64x2_lt(),
1158
16.2k
            0x4a => visitor.visit_f64x2_gt(),
1159
13.2k
            0x4b => visitor.visit_f64x2_le(),
1160
5.61k
            0x4c => visitor.visit_f64x2_ge(),
1161
116k
            0x4d => visitor.visit_v128_not(),
1162
10.2k
            0x4e => visitor.visit_v128_and(),
1163
6.82k
            0x4f => visitor.visit_v128_andnot(),
1164
20.7k
            0x50 => visitor.visit_v128_or(),
1165
9.00k
            0x51 => visitor.visit_v128_xor(),
1166
740k
            0x52 => visitor.visit_v128_bitselect(),
1167
13.9k
            0x53 => visitor.visit_v128_any_true(),
1168
1169
            0x54 => {
1170
1.93k
                let memarg = self.read_memarg(0)?;
1171
1.93k
                let lane = self.read_lane_index(16)?;
1172
1.93k
                visitor.visit_v128_load8_lane(memarg, lane)
1173
            }
1174
            0x55 => {
1175
3.80k
                let memarg = self.read_memarg(1)?;
1176
3.80k
                let lane = self.read_lane_index(8)?;
1177
3.80k
                visitor.visit_v128_load16_lane(memarg, lane)
1178
            }
1179
            0x56 => {
1180
2.82k
                let memarg = self.read_memarg(2)?;
1181
2.82k
                let lane = self.read_lane_index(4)?;
1182
2.82k
                visitor.visit_v128_load32_lane(memarg, lane)
1183
            }
1184
            0x57 => {
1185
10.8k
                let memarg = self.read_memarg(3)?;
1186
10.8k
                let lane = self.read_lane_index(2)?;
1187
10.8k
                visitor.visit_v128_load64_lane(memarg, lane)
1188
            }
1189
            0x58 => {
1190
5.10k
                let memarg = self.read_memarg(0)?;
1191
5.10k
                let lane = self.read_lane_index(16)?;
1192
5.10k
                visitor.visit_v128_store8_lane(memarg, lane)
1193
            }
1194
            0x59 => {
1195
1.50k
                let memarg = self.read_memarg(1)?;
1196
1.50k
                let lane = self.read_lane_index(8)?;
1197
1.49k
                visitor.visit_v128_store16_lane(memarg, lane)
1198
            }
1199
            0x5a => {
1200
4.82k
                let memarg = self.read_memarg(2)?;
1201
4.82k
                let lane = self.read_lane_index(4)?;
1202
4.81k
                visitor.visit_v128_store32_lane(memarg, lane)
1203
            }
1204
            0x5b => {
1205
5.69k
                let memarg = self.read_memarg(3)?;
1206
5.69k
                let lane = self.read_lane_index(2)?;
1207
5.69k
                visitor.visit_v128_store64_lane(memarg, lane)
1208
            }
1209
1210
52.7k
            0x5c => visitor.visit_v128_load32_zero(self.read_memarg(2)?),
1211
25.5k
            0x5d => visitor.visit_v128_load64_zero(self.read_memarg(3)?),
1212
266k
            0x5e => visitor.visit_f32x4_demote_f64x2_zero(),
1213
107k
            0x5f => visitor.visit_f64x2_promote_low_f32x4(),
1214
185k
            0x60 => visitor.visit_i8x16_abs(),
1215
74.4k
            0x61 => visitor.visit_i8x16_neg(),
1216
75.7k
            0x62 => visitor.visit_i8x16_popcnt(),
1217
44.8k
            0x63 => visitor.visit_i8x16_all_true(),
1218
83.6k
            0x64 => visitor.visit_i8x16_bitmask(),
1219
24.9k
            0x65 => visitor.visit_i8x16_narrow_i16x8_s(),
1220
7.58k
            0x66 => visitor.visit_i8x16_narrow_i16x8_u(),
1221
73.8k
            0x67 => visitor.visit_f32x4_ceil(),
1222
75.7k
            0x68 => visitor.visit_f32x4_floor(),
1223
49.9k
            0x69 => visitor.visit_f32x4_trunc(),
1224
78.7k
            0x6a => visitor.visit_f32x4_nearest(),
1225
5.90k
            0x6b => visitor.visit_i8x16_shl(),
1226
12.2k
            0x6c => visitor.visit_i8x16_shr_s(),
1227
9.06k
            0x6d => visitor.visit_i8x16_shr_u(),
1228
8.05k
            0x6e => visitor.visit_i8x16_add(),
1229
28.8k
            0x6f => visitor.visit_i8x16_add_sat_s(),
1230
11.7k
            0x70 => visitor.visit_i8x16_add_sat_u(),
1231
12.6k
            0x71 => visitor.visit_i8x16_sub(),
1232
8.00k
            0x72 => visitor.visit_i8x16_sub_sat_s(),
1233
12.2k
            0x73 => visitor.visit_i8x16_sub_sat_u(),
1234
84.2k
            0x74 => visitor.visit_f64x2_ceil(),
1235
84.4k
            0x75 => visitor.visit_f64x2_floor(),
1236
16.1k
            0x76 => visitor.visit_i8x16_min_s(),
1237
5.10k
            0x77 => visitor.visit_i8x16_min_u(),
1238
54.8k
            0x78 => visitor.visit_i8x16_max_s(),
1239
14.0k
            0x79 => visitor.visit_i8x16_max_u(),
1240
61.3k
            0x7a => visitor.visit_f64x2_trunc(),
1241
14.1k
            0x7b => visitor.visit_i8x16_avgr_u(),
1242
77.4k
            0x7c => visitor.visit_i16x8_extadd_pairwise_i8x16_s(),
1243
136k
            0x7d => visitor.visit_i16x8_extadd_pairwise_i8x16_u(),
1244
289k
            0x7e => visitor.visit_i32x4_extadd_pairwise_i16x8_s(),
1245
106k
            0x7f => visitor.visit_i32x4_extadd_pairwise_i16x8_u(),
1246
276k
            0x80 => visitor.visit_i16x8_abs(),
1247
160k
            0x81 => visitor.visit_i16x8_neg(),
1248
6.38k
            0x82 => visitor.visit_i16x8_q15mulr_sat_s(),
1249
38.6k
            0x83 => visitor.visit_i16x8_all_true(),
1250
59.1k
            0x84 => visitor.visit_i16x8_bitmask(),
1251
4.03k
            0x85 => visitor.visit_i16x8_narrow_i32x4_s(),
1252
5.37k
            0x86 => visitor.visit_i16x8_narrow_i32x4_u(),
1253
105k
            0x87 => visitor.visit_i16x8_extend_low_i8x16_s(),
1254
101k
            0x88 => visitor.visit_i16x8_extend_high_i8x16_s(),
1255
72.2k
            0x89 => visitor.visit_i16x8_extend_low_i8x16_u(),
1256
63.4k
            0x8a => visitor.visit_i16x8_extend_high_i8x16_u(),
1257
7.52k
            0x8b => visitor.visit_i16x8_shl(),
1258
6.56k
            0x8c => visitor.visit_i16x8_shr_s(),
1259
9.16k
            0x8d => visitor.visit_i16x8_shr_u(),
1260
4.79k
            0x8e => visitor.visit_i16x8_add(),
1261
14.4k
            0x8f => visitor.visit_i16x8_add_sat_s(),
1262
11.9k
            0x90 => visitor.visit_i16x8_add_sat_u(),
1263
6.61k
            0x91 => visitor.visit_i16x8_sub(),
1264
9.90k
            0x92 => visitor.visit_i16x8_sub_sat_s(),
1265
16.9k
            0x93 => visitor.visit_i16x8_sub_sat_u(),
1266
76.7k
            0x94 => visitor.visit_f64x2_nearest(),
1267
8.61k
            0x95 => visitor.visit_i16x8_mul(),
1268
6.11k
            0x96 => visitor.visit_i16x8_min_s(),
1269
5.37k
            0x97 => visitor.visit_i16x8_min_u(),
1270
7.14k
            0x98 => visitor.visit_i16x8_max_s(),
1271
5.63k
            0x99 => visitor.visit_i16x8_max_u(),
1272
7.09k
            0x9b => visitor.visit_i16x8_avgr_u(),
1273
6.72k
            0x9c => visitor.visit_i16x8_extmul_low_i8x16_s(),
1274
22.3k
            0x9d => visitor.visit_i16x8_extmul_high_i8x16_s(),
1275
3.89k
            0x9e => visitor.visit_i16x8_extmul_low_i8x16_u(),
1276
5.08k
            0x9f => visitor.visit_i16x8_extmul_high_i8x16_u(),
1277
239k
            0xa0 => visitor.visit_i32x4_abs(),
1278
110k
            0xa1 => visitor.visit_i32x4_neg(),
1279
34.8k
            0xa3 => visitor.visit_i32x4_all_true(),
1280
35.1k
            0xa4 => visitor.visit_i32x4_bitmask(),
1281
76.3k
            0xa7 => visitor.visit_i32x4_extend_low_i16x8_s(),
1282
112k
            0xa8 => visitor.visit_i32x4_extend_high_i16x8_s(),
1283
119k
            0xa9 => visitor.visit_i32x4_extend_low_i16x8_u(),
1284
124k
            0xaa => visitor.visit_i32x4_extend_high_i16x8_u(),
1285
4.47k
            0xab => visitor.visit_i32x4_shl(),
1286
6.69k
            0xac => visitor.visit_i32x4_shr_s(),
1287
2.32k
            0xad => visitor.visit_i32x4_shr_u(),
1288
4.03k
            0xae => visitor.visit_i32x4_add(),
1289
15.1k
            0xb1 => visitor.visit_i32x4_sub(),
1290
5.72k
            0xb5 => visitor.visit_i32x4_mul(),
1291
6.38k
            0xb6 => visitor.visit_i32x4_min_s(),
1292
10.9k
            0xb7 => visitor.visit_i32x4_min_u(),
1293
7.67k
            0xb8 => visitor.visit_i32x4_max_s(),
1294
6.42k
            0xb9 => visitor.visit_i32x4_max_u(),
1295
6.95k
            0xba => visitor.visit_i32x4_dot_i16x8_s(),
1296
3.14k
            0xbc => visitor.visit_i32x4_extmul_low_i16x8_s(),
1297
10.1k
            0xbd => visitor.visit_i32x4_extmul_high_i16x8_s(),
1298
27.6k
            0xbe => visitor.visit_i32x4_extmul_low_i16x8_u(),
1299
3.32k
            0xbf => visitor.visit_i32x4_extmul_high_i16x8_u(),
1300
236k
            0xc0 => visitor.visit_i64x2_abs(),
1301
198k
            0xc1 => visitor.visit_i64x2_neg(),
1302
70.0k
            0xc3 => visitor.visit_i64x2_all_true(),
1303
34.7k
            0xc4 => visitor.visit_i64x2_bitmask(),
1304
324k
            0xc7 => visitor.visit_i64x2_extend_low_i32x4_s(),
1305
148k
            0xc8 => visitor.visit_i64x2_extend_high_i32x4_s(),
1306
234k
            0xc9 => visitor.visit_i64x2_extend_low_i32x4_u(),
1307
121k
            0xca => visitor.visit_i64x2_extend_high_i32x4_u(),
1308
4.93k
            0xcb => visitor.visit_i64x2_shl(),
1309
4.07k
            0xcc => visitor.visit_i64x2_shr_s(),
1310
3.15k
            0xcd => visitor.visit_i64x2_shr_u(),
1311
7.48k
            0xce => visitor.visit_i64x2_add(),
1312
8.12k
            0xd1 => visitor.visit_i64x2_sub(),
1313
8.77k
            0xd5 => visitor.visit_i64x2_mul(),
1314
9.22k
            0xd6 => visitor.visit_i64x2_eq(),
1315
19.2k
            0xd7 => visitor.visit_i64x2_ne(),
1316
10.1k
            0xd8 => visitor.visit_i64x2_lt_s(),
1317
25.3k
            0xd9 => visitor.visit_i64x2_gt_s(),
1318
10.3k
            0xda => visitor.visit_i64x2_le_s(),
1319
5.61k
            0xdb => visitor.visit_i64x2_ge_s(),
1320
6.11k
            0xdc => visitor.visit_i64x2_extmul_low_i32x4_s(),
1321
15.6k
            0xdd => visitor.visit_i64x2_extmul_high_i32x4_s(),
1322
6.14k
            0xde => visitor.visit_i64x2_extmul_low_i32x4_u(),
1323
27.1k
            0xdf => visitor.visit_i64x2_extmul_high_i32x4_u(),
1324
132k
            0xe0 => visitor.visit_f32x4_abs(),
1325
83.8k
            0xe1 => visitor.visit_f32x4_neg(),
1326
75.6k
            0xe3 => visitor.visit_f32x4_sqrt(),
1327
9.23k
            0xe4 => visitor.visit_f32x4_add(),
1328
20.7k
            0xe5 => visitor.visit_f32x4_sub(),
1329
16.5k
            0xe6 => visitor.visit_f32x4_mul(),
1330
5.51k
            0xe7 => visitor.visit_f32x4_div(),
1331
13.4k
            0xe8 => visitor.visit_f32x4_min(),
1332
17.4k
            0xe9 => visitor.visit_f32x4_max(),
1333
6.92k
            0xea => visitor.visit_f32x4_pmin(),
1334
7.00k
            0xeb => visitor.visit_f32x4_pmax(),
1335
118k
            0xec => visitor.visit_f64x2_abs(),
1336
155k
            0xed => visitor.visit_f64x2_neg(),
1337
115k
            0xef => visitor.visit_f64x2_sqrt(),
1338
11.1k
            0xf0 => visitor.visit_f64x2_add(),
1339
6.79k
            0xf1 => visitor.visit_f64x2_sub(),
1340
21.2k
            0xf2 => visitor.visit_f64x2_mul(),
1341
10.8k
            0xf3 => visitor.visit_f64x2_div(),
1342
6.94k
            0xf4 => visitor.visit_f64x2_min(),
1343
7.20k
            0xf5 => visitor.visit_f64x2_max(),
1344
3.85k
            0xf6 => visitor.visit_f64x2_pmin(),
1345
5.63k
            0xf7 => visitor.visit_f64x2_pmax(),
1346
97.3k
            0xf8 => visitor.visit_i32x4_trunc_sat_f32x4_s(),
1347
286k
            0xf9 => visitor.visit_i32x4_trunc_sat_f32x4_u(),
1348
132k
            0xfa => visitor.visit_f32x4_convert_i32x4_s(),
1349
137k
            0xfb => visitor.visit_f32x4_convert_i32x4_u(),
1350
152k
            0xfc => visitor.visit_i32x4_trunc_sat_f64x2_s_zero(),
1351
167k
            0xfd => visitor.visit_i32x4_trunc_sat_f64x2_u_zero(),
1352
87.3k
            0xfe => visitor.visit_f64x2_convert_low_i32x4_s(),
1353
117k
            0xff => visitor.visit_f64x2_convert_low_i32x4_u(),
1354
7.95k
            0x100 => visitor.visit_i8x16_relaxed_swizzle(),
1355
80.2k
            0x101 => visitor.visit_i32x4_relaxed_trunc_f32x4_s(),
1356
171k
            0x102 => visitor.visit_i32x4_relaxed_trunc_f32x4_u(),
1357
113k
            0x103 => visitor.visit_i32x4_relaxed_trunc_f64x2_s_zero(),
1358
81.2k
            0x104 => visitor.visit_i32x4_relaxed_trunc_f64x2_u_zero(),
1359
1.57k
            0x105 => visitor.visit_f32x4_relaxed_madd(),
1360
4.61k
            0x106 => visitor.visit_f32x4_relaxed_nmadd(),
1361
4.73k
            0x107 => visitor.visit_f64x2_relaxed_madd(),
1362
5.49k
            0x108 => visitor.visit_f64x2_relaxed_nmadd(),
1363
6.61k
            0x109 => visitor.visit_i8x16_relaxed_laneselect(),
1364
15.1k
            0x10a => visitor.visit_i16x8_relaxed_laneselect(),
1365
6.82k
            0x10b => visitor.visit_i32x4_relaxed_laneselect(),
1366
13.7k
            0x10c => visitor.visit_i64x2_relaxed_laneselect(),
1367
14.9k
            0x10d => visitor.visit_f32x4_relaxed_min(),
1368
8.10k
            0x10e => visitor.visit_f32x4_relaxed_max(),
1369
5.44k
            0x10f => visitor.visit_f64x2_relaxed_min(),
1370
6.53k
            0x110 => visitor.visit_f64x2_relaxed_max(),
1371
6.51k
            0x111 => visitor.visit_i16x8_relaxed_q15mulr_s(),
1372
4.48k
            0x112 => visitor.visit_i16x8_relaxed_dot_i8x16_i7x16_s(),
1373
8.63k
            0x113 => visitor.visit_i32x4_relaxed_dot_i8x16_i7x16_add_s(),
1374
1375
28
            _ => bail!(pos, "unknown 0xfd subopcode: 0x{code:x}"),
1376
        })
1377
16.5M
    }
<wasmparser::binary_reader::BinaryReader>::visit_0xfd_operator::<<wasmparser::validator::core::ModuleState>::check_const_expr::VisitConstOperator>
Line
Count
Source
1063
23.6k
    fn visit_0xfd_operator<T>(
1064
23.6k
        &mut self,
1065
23.6k
        pos: usize,
1066
23.6k
        visitor: &mut T,
1067
23.6k
    ) -> Result<<T as VisitOperator<'a>>::Output>
1068
23.6k
    where
1069
23.6k
        T: VisitOperator<'a>,
1070
23.6k
    {
1071
23.6k
        let code = self.read_var_u32()?;
1072
23.6k
        Ok(match code {
1073
136
            0x00 => visitor.visit_v128_load(self.read_memarg(4)?),
1074
11
            0x01 => visitor.visit_v128_load8x8_s(self.read_memarg(3)?),
1075
1
            0x02 => visitor.visit_v128_load8x8_u(self.read_memarg(3)?),
1076
1
            0x03 => visitor.visit_v128_load16x4_s(self.read_memarg(3)?),
1077
3
            0x04 => visitor.visit_v128_load16x4_u(self.read_memarg(3)?),
1078
0
            0x05 => visitor.visit_v128_load32x2_s(self.read_memarg(3)?),
1079
1
            0x06 => visitor.visit_v128_load32x2_u(self.read_memarg(3)?),
1080
2
            0x07 => visitor.visit_v128_load8_splat(self.read_memarg(0)?),
1081
1
            0x08 => visitor.visit_v128_load16_splat(self.read_memarg(1)?),
1082
1
            0x09 => visitor.visit_v128_load32_splat(self.read_memarg(2)?),
1083
1
            0x0a => visitor.visit_v128_load64_splat(self.read_memarg(3)?),
1084
1085
2
            0x0b => visitor.visit_v128_store(self.read_memarg(4)?),
1086
23.1k
            0x0c => visitor.visit_v128_const(self.read_v128()?),
1087
            0x0d => {
1088
3
                let mut lanes: [u8; 16] = [0; 16];
1089
51
                for lane in &mut lanes {
1090
48
                    *lane = self.read_lane_index(32)?
1091
                }
1092
3
                visitor.visit_i8x16_shuffle(lanes)
1093
            }
1094
1095
2
            0x0e => visitor.visit_i8x16_swizzle(),
1096
1
            0x0f => visitor.visit_i8x16_splat(),
1097
1
            0x10 => visitor.visit_i16x8_splat(),
1098
2
            0x11 => visitor.visit_i32x4_splat(),
1099
2
            0x12 => visitor.visit_i64x2_splat(),
1100
4
            0x13 => visitor.visit_f32x4_splat(),
1101
0
            0x14 => visitor.visit_f64x2_splat(),
1102
1103
1
            0x15 => visitor.visit_i8x16_extract_lane_s(self.read_lane_index(16)?),
1104
1
            0x16 => visitor.visit_i8x16_extract_lane_u(self.read_lane_index(16)?),
1105
0
            0x17 => visitor.visit_i8x16_replace_lane(self.read_lane_index(16)?),
1106
1
            0x18 => visitor.visit_i16x8_extract_lane_s(self.read_lane_index(8)?),
1107
0
            0x19 => visitor.visit_i16x8_extract_lane_u(self.read_lane_index(8)?),
1108
2
            0x1a => visitor.visit_i16x8_replace_lane(self.read_lane_index(8)?),
1109
0
            0x1b => visitor.visit_i32x4_extract_lane(self.read_lane_index(4)?),
1110
1111
2
            0x1c => visitor.visit_i32x4_replace_lane(self.read_lane_index(4)?),
1112
2
            0x1d => visitor.visit_i64x2_extract_lane(self.read_lane_index(2)?),
1113
2
            0x1e => visitor.visit_i64x2_replace_lane(self.read_lane_index(2)?),
1114
1
            0x1f => visitor.visit_f32x4_extract_lane(self.read_lane_index(4)?),
1115
2
            0x20 => visitor.visit_f32x4_replace_lane(self.read_lane_index(4)?),
1116
0
            0x21 => visitor.visit_f64x2_extract_lane(self.read_lane_index(2)?),
1117
2
            0x22 => visitor.visit_f64x2_replace_lane(self.read_lane_index(2)?),
1118
1119
1
            0x23 => visitor.visit_i8x16_eq(),
1120
3
            0x24 => visitor.visit_i8x16_ne(),
1121
1
            0x25 => visitor.visit_i8x16_lt_s(),
1122
2
            0x26 => visitor.visit_i8x16_lt_u(),
1123
1
            0x27 => visitor.visit_i8x16_gt_s(),
1124
1
            0x28 => visitor.visit_i8x16_gt_u(),
1125
1
            0x29 => visitor.visit_i8x16_le_s(),
1126
0
            0x2a => visitor.visit_i8x16_le_u(),
1127
2
            0x2b => visitor.visit_i8x16_ge_s(),
1128
3
            0x2c => visitor.visit_i8x16_ge_u(),
1129
2
            0x2d => visitor.visit_i16x8_eq(),
1130
1
            0x2e => visitor.visit_i16x8_ne(),
1131
2
            0x2f => visitor.visit_i16x8_lt_s(),
1132
1
            0x30 => visitor.visit_i16x8_lt_u(),
1133
2
            0x31 => visitor.visit_i16x8_gt_s(),
1134
4
            0x32 => visitor.visit_i16x8_gt_u(),
1135
2
            0x33 => visitor.visit_i16x8_le_s(),
1136
3
            0x34 => visitor.visit_i16x8_le_u(),
1137
3
            0x35 => visitor.visit_i16x8_ge_s(),
1138
2
            0x36 => visitor.visit_i16x8_ge_u(),
1139
1
            0x37 => visitor.visit_i32x4_eq(),
1140
1
            0x38 => visitor.visit_i32x4_ne(),
1141
1
            0x39 => visitor.visit_i32x4_lt_s(),
1142
1
            0x3a => visitor.visit_i32x4_lt_u(),
1143
1
            0x3b => visitor.visit_i32x4_gt_s(),
1144
3
            0x3c => visitor.visit_i32x4_gt_u(),
1145
1
            0x3d => visitor.visit_i32x4_le_s(),
1146
2
            0x3e => visitor.visit_i32x4_le_u(),
1147
0
            0x3f => visitor.visit_i32x4_ge_s(),
1148
1
            0x40 => visitor.visit_i32x4_ge_u(),
1149
1
            0x41 => visitor.visit_f32x4_eq(),
1150
2
            0x42 => visitor.visit_f32x4_ne(),
1151
2
            0x43 => visitor.visit_f32x4_lt(),
1152
2
            0x44 => visitor.visit_f32x4_gt(),
1153
1
            0x45 => visitor.visit_f32x4_le(),
1154
0
            0x46 => visitor.visit_f32x4_ge(),
1155
2
            0x47 => visitor.visit_f64x2_eq(),
1156
1
            0x48 => visitor.visit_f64x2_ne(),
1157
0
            0x49 => visitor.visit_f64x2_lt(),
1158
1
            0x4a => visitor.visit_f64x2_gt(),
1159
0
            0x4b => visitor.visit_f64x2_le(),
1160
1
            0x4c => visitor.visit_f64x2_ge(),
1161
1
            0x4d => visitor.visit_v128_not(),
1162
0
            0x4e => visitor.visit_v128_and(),
1163
3
            0x4f => visitor.visit_v128_andnot(),
1164
3
            0x50 => visitor.visit_v128_or(),
1165
1
            0x51 => visitor.visit_v128_xor(),
1166
2
            0x52 => visitor.visit_v128_bitselect(),
1167
1
            0x53 => visitor.visit_v128_any_true(),
1168
1169
            0x54 => {
1170
2
                let memarg = self.read_memarg(0)?;
1171
2
                let lane = self.read_lane_index(16)?;
1172
2
                visitor.visit_v128_load8_lane(memarg, lane)
1173
            }
1174
            0x55 => {
1175
2
                let memarg = self.read_memarg(1)?;
1176
2
                let lane = self.read_lane_index(8)?;
1177
2
                visitor.visit_v128_load16_lane(memarg, lane)
1178
            }
1179
            0x56 => {
1180
0
                let memarg = self.read_memarg(2)?;
1181
0
                let lane = self.read_lane_index(4)?;
1182
0
                visitor.visit_v128_load32_lane(memarg, lane)
1183
            }
1184
            0x57 => {
1185
1
                let memarg = self.read_memarg(3)?;
1186
1
                let lane = self.read_lane_index(2)?;
1187
1
                visitor.visit_v128_load64_lane(memarg, lane)
1188
            }
1189
            0x58 => {
1190
1
                let memarg = self.read_memarg(0)?;
1191
1
                let lane = self.read_lane_index(16)?;
1192
1
                visitor.visit_v128_store8_lane(memarg, lane)
1193
            }
1194
            0x59 => {
1195
1
                let memarg = self.read_memarg(1)?;
1196
1
                let lane = self.read_lane_index(8)?;
1197
1
                visitor.visit_v128_store16_lane(memarg, lane)
1198
            }
1199
            0x5a => {
1200
1
                let memarg = self.read_memarg(2)?;
1201
1
                let lane = self.read_lane_index(4)?;
1202
1
                visitor.visit_v128_store32_lane(memarg, lane)
1203
            }
1204
            0x5b => {
1205
1
                let memarg = self.read_memarg(3)?;
1206
1
                let lane = self.read_lane_index(2)?;
1207
1
                visitor.visit_v128_store64_lane(memarg, lane)
1208
            }
1209
1210
0
            0x5c => visitor.visit_v128_load32_zero(self.read_memarg(2)?),
1211
4
            0x5d => visitor.visit_v128_load64_zero(self.read_memarg(3)?),
1212
1
            0x5e => visitor.visit_f32x4_demote_f64x2_zero(),
1213
0
            0x5f => visitor.visit_f64x2_promote_low_f32x4(),
1214
1
            0x60 => visitor.visit_i8x16_abs(),
1215
1
            0x61 => visitor.visit_i8x16_neg(),
1216
1
            0x62 => visitor.visit_i8x16_popcnt(),
1217
1
            0x63 => visitor.visit_i8x16_all_true(),
1218
1
            0x64 => visitor.visit_i8x16_bitmask(),
1219
1
            0x65 => visitor.visit_i8x16_narrow_i16x8_s(),
1220
2
            0x66 => visitor.visit_i8x16_narrow_i16x8_u(),
1221
2
            0x67 => visitor.visit_f32x4_ceil(),
1222
3
            0x68 => visitor.visit_f32x4_floor(),
1223
1
            0x69 => visitor.visit_f32x4_trunc(),
1224
2
            0x6a => visitor.visit_f32x4_nearest(),
1225
2
            0x6b => visitor.visit_i8x16_shl(),
1226
0
            0x6c => visitor.visit_i8x16_shr_s(),
1227
5
            0x6d => visitor.visit_i8x16_shr_u(),
1228
1
            0x6e => visitor.visit_i8x16_add(),
1229
2
            0x6f => visitor.visit_i8x16_add_sat_s(),
1230
1
            0x70 => visitor.visit_i8x16_add_sat_u(),
1231
1
            0x71 => visitor.visit_i8x16_sub(),
1232
0
            0x72 => visitor.visit_i8x16_sub_sat_s(),
1233
2
            0x73 => visitor.visit_i8x16_sub_sat_u(),
1234
1
            0x74 => visitor.visit_f64x2_ceil(),
1235
1
            0x75 => visitor.visit_f64x2_floor(),
1236
1
            0x76 => visitor.visit_i8x16_min_s(),
1237
1
            0x77 => visitor.visit_i8x16_min_u(),
1238
1
            0x78 => visitor.visit_i8x16_max_s(),
1239
1
            0x79 => visitor.visit_i8x16_max_u(),
1240
0
            0x7a => visitor.visit_f64x2_trunc(),
1241
1
            0x7b => visitor.visit_i8x16_avgr_u(),
1242
0
            0x7c => visitor.visit_i16x8_extadd_pairwise_i8x16_s(),
1243
0
            0x7d => visitor.visit_i16x8_extadd_pairwise_i8x16_u(),
1244
0
            0x7e => visitor.visit_i32x4_extadd_pairwise_i16x8_s(),
1245
2
            0x7f => visitor.visit_i32x4_extadd_pairwise_i16x8_u(),
1246
1
            0x80 => visitor.visit_i16x8_abs(),
1247
0
            0x81 => visitor.visit_i16x8_neg(),
1248
1
            0x82 => visitor.visit_i16x8_q15mulr_sat_s(),
1249
4
            0x83 => visitor.visit_i16x8_all_true(),
1250
2
            0x84 => visitor.visit_i16x8_bitmask(),
1251
0
            0x85 => visitor.visit_i16x8_narrow_i32x4_s(),
1252
2
            0x86 => visitor.visit_i16x8_narrow_i32x4_u(),
1253
2
            0x87 => visitor.visit_i16x8_extend_low_i8x16_s(),
1254
3
            0x88 => visitor.visit_i16x8_extend_high_i8x16_s(),
1255
3
            0x89 => visitor.visit_i16x8_extend_low_i8x16_u(),
1256
1
            0x8a => visitor.visit_i16x8_extend_high_i8x16_u(),
1257
1
            0x8b => visitor.visit_i16x8_shl(),
1258
0
            0x8c => visitor.visit_i16x8_shr_s(),
1259
1
            0x8d => visitor.visit_i16x8_shr_u(),
1260
8
            0x8e => visitor.visit_i16x8_add(),
1261
2
            0x8f => visitor.visit_i16x8_add_sat_s(),
1262
2
            0x90 => visitor.visit_i16x8_add_sat_u(),
1263
2
            0x91 => visitor.visit_i16x8_sub(),
1264
2
            0x92 => visitor.visit_i16x8_sub_sat_s(),
1265
1
            0x93 => visitor.visit_i16x8_sub_sat_u(),
1266
0
            0x94 => visitor.visit_f64x2_nearest(),
1267
1
            0x95 => visitor.visit_i16x8_mul(),
1268
0
            0x96 => visitor.visit_i16x8_min_s(),
1269
1
            0x97 => visitor.visit_i16x8_min_u(),
1270
3
            0x98 => visitor.visit_i16x8_max_s(),
1271
0
            0x99 => visitor.visit_i16x8_max_u(),
1272
1
            0x9b => visitor.visit_i16x8_avgr_u(),
1273
1
            0x9c => visitor.visit_i16x8_extmul_low_i8x16_s(),
1274
1
            0x9d => visitor.visit_i16x8_extmul_high_i8x16_s(),
1275
0
            0x9e => visitor.visit_i16x8_extmul_low_i8x16_u(),
1276
0
            0x9f => visitor.visit_i16x8_extmul_high_i8x16_u(),
1277
0
            0xa0 => visitor.visit_i32x4_abs(),
1278
4
            0xa1 => visitor.visit_i32x4_neg(),
1279
1
            0xa3 => visitor.visit_i32x4_all_true(),
1280
0
            0xa4 => visitor.visit_i32x4_bitmask(),
1281
1
            0xa7 => visitor.visit_i32x4_extend_low_i16x8_s(),
1282
1
            0xa8 => visitor.visit_i32x4_extend_high_i16x8_s(),
1283
2
            0xa9 => visitor.visit_i32x4_extend_low_i16x8_u(),
1284
2
            0xaa => visitor.visit_i32x4_extend_high_i16x8_u(),
1285
0
            0xab => visitor.visit_i32x4_shl(),
1286
0
            0xac => visitor.visit_i32x4_shr_s(),
1287
1
            0xad => visitor.visit_i32x4_shr_u(),
1288
0
            0xae => visitor.visit_i32x4_add(),
1289
0
            0xb1 => visitor.visit_i32x4_sub(),
1290
0
            0xb5 => visitor.visit_i32x4_mul(),
1291
2
            0xb6 => visitor.visit_i32x4_min_s(),
1292
1
            0xb7 => visitor.visit_i32x4_min_u(),
1293
1
            0xb8 => visitor.visit_i32x4_max_s(),
1294
1
            0xb9 => visitor.visit_i32x4_max_u(),
1295
0
            0xba => visitor.visit_i32x4_dot_i16x8_s(),
1296
1
            0xbc => visitor.visit_i32x4_extmul_low_i16x8_s(),
1297
0
            0xbd => visitor.visit_i32x4_extmul_high_i16x8_s(),
1298
1
            0xbe => visitor.visit_i32x4_extmul_low_i16x8_u(),
1299
2
            0xbf => visitor.visit_i32x4_extmul_high_i16x8_u(),
1300
0
            0xc0 => visitor.visit_i64x2_abs(),
1301
2
            0xc1 => visitor.visit_i64x2_neg(),
1302
1
            0xc3 => visitor.visit_i64x2_all_true(),
1303
0
            0xc4 => visitor.visit_i64x2_bitmask(),
1304
0
            0xc7 => visitor.visit_i64x2_extend_low_i32x4_s(),
1305
3
            0xc8 => visitor.visit_i64x2_extend_high_i32x4_s(),
1306
1
            0xc9 => visitor.visit_i64x2_extend_low_i32x4_u(),
1307
1
            0xca => visitor.visit_i64x2_extend_high_i32x4_u(),
1308
3
            0xcb => visitor.visit_i64x2_shl(),
1309
3
            0xcc => visitor.visit_i64x2_shr_s(),
1310
1
            0xcd => visitor.visit_i64x2_shr_u(),
1311
2
            0xce => visitor.visit_i64x2_add(),
1312
2
            0xd1 => visitor.visit_i64x2_sub(),
1313
0
            0xd5 => visitor.visit_i64x2_mul(),
1314
1
            0xd6 => visitor.visit_i64x2_eq(),
1315
0
            0xd7 => visitor.visit_i64x2_ne(),
1316
0
            0xd8 => visitor.visit_i64x2_lt_s(),
1317
1
            0xd9 => visitor.visit_i64x2_gt_s(),
1318
0
            0xda => visitor.visit_i64x2_le_s(),
1319
1
            0xdb => visitor.visit_i64x2_ge_s(),
1320
3
            0xdc => visitor.visit_i64x2_extmul_low_i32x4_s(),
1321
2
            0xdd => visitor.visit_i64x2_extmul_high_i32x4_s(),
1322
1
            0xde => visitor.visit_i64x2_extmul_low_i32x4_u(),
1323
1
            0xdf => visitor.visit_i64x2_extmul_high_i32x4_u(),
1324
2
            0xe0 => visitor.visit_f32x4_abs(),
1325
1
            0xe1 => visitor.visit_f32x4_neg(),
1326
1
            0xe3 => visitor.visit_f32x4_sqrt(),
1327
1
            0xe4 => visitor.visit_f32x4_add(),
1328
1
            0xe5 => visitor.visit_f32x4_sub(),
1329
2
            0xe6 => visitor.visit_f32x4_mul(),
1330
1
            0xe7 => visitor.visit_f32x4_div(),
1331
0
            0xe8 => visitor.visit_f32x4_min(),
1332
3
            0xe9 => visitor.visit_f32x4_max(),
1333
1
            0xea => visitor.visit_f32x4_pmin(),
1334
2
            0xeb => visitor.visit_f32x4_pmax(),
1335
1
            0xec => visitor.visit_f64x2_abs(),
1336
2
            0xed => visitor.visit_f64x2_neg(),
1337
1
            0xef => visitor.visit_f64x2_sqrt(),
1338
1
            0xf0 => visitor.visit_f64x2_add(),
1339
1
            0xf1 => visitor.visit_f64x2_sub(),
1340
2
            0xf2 => visitor.visit_f64x2_mul(),
1341
1
            0xf3 => visitor.visit_f64x2_div(),
1342
0
            0xf4 => visitor.visit_f64x2_min(),
1343
0
            0xf5 => visitor.visit_f64x2_max(),
1344
1
            0xf6 => visitor.visit_f64x2_pmin(),
1345
1
            0xf7 => visitor.visit_f64x2_pmax(),
1346
1
            0xf8 => visitor.visit_i32x4_trunc_sat_f32x4_s(),
1347
0
            0xf9 => visitor.visit_i32x4_trunc_sat_f32x4_u(),
1348
0
            0xfa => visitor.visit_f32x4_convert_i32x4_s(),
1349
0
            0xfb => visitor.visit_f32x4_convert_i32x4_u(),
1350
1
            0xfc => visitor.visit_i32x4_trunc_sat_f64x2_s_zero(),
1351
0
            0xfd => visitor.visit_i32x4_trunc_sat_f64x2_u_zero(),
1352
1
            0xfe => visitor.visit_f64x2_convert_low_i32x4_s(),
1353
1
            0xff => visitor.visit_f64x2_convert_low_i32x4_u(),
1354
1
            0x100 => visitor.visit_i8x16_relaxed_swizzle(),
1355
2
            0x101 => visitor.visit_i32x4_relaxed_trunc_f32x4_s(),
1356
2
            0x102 => visitor.visit_i32x4_relaxed_trunc_f32x4_u(),
1357
0
            0x103 => visitor.visit_i32x4_relaxed_trunc_f64x2_s_zero(),
1358
0
            0x104 => visitor.visit_i32x4_relaxed_trunc_f64x2_u_zero(),
1359
3
            0x105 => visitor.visit_f32x4_relaxed_madd(),
1360
2
            0x106 => visitor.visit_f32x4_relaxed_nmadd(),
1361
0
            0x107 => visitor.visit_f64x2_relaxed_madd(),
1362
1
            0x108 => visitor.visit_f64x2_relaxed_nmadd(),
1363
2
            0x109 => visitor.visit_i8x16_relaxed_laneselect(),
1364
2
            0x10a => visitor.visit_i16x8_relaxed_laneselect(),
1365
1
            0x10b => visitor.visit_i32x4_relaxed_laneselect(),
1366
0
            0x10c => visitor.visit_i64x2_relaxed_laneselect(),
1367
1
            0x10d => visitor.visit_f32x4_relaxed_min(),
1368
0
            0x10e => visitor.visit_f32x4_relaxed_max(),
1369
1
            0x10f => visitor.visit_f64x2_relaxed_min(),
1370
3
            0x110 => visitor.visit_f64x2_relaxed_max(),
1371
0
            0x111 => visitor.visit_i16x8_relaxed_q15mulr_s(),
1372
1
            0x112 => visitor.visit_i16x8_relaxed_dot_i8x16_i7x16_s(),
1373
1
            0x113 => visitor.visit_i32x4_relaxed_dot_i8x16_i7x16_add_s(),
1374
1375
0
            _ => bail!(pos, "unknown 0xfd subopcode: 0x{code:x}"),
1376
        })
1377
23.6k
    }
<wasmparser::binary_reader::BinaryReader>::visit_0xfd_operator::<wasmparser::binary_reader::OperatorFactory>
Line
Count
Source
1063
2.69M
    fn visit_0xfd_operator<T>(
1064
2.69M
        &mut self,
1065
2.69M
        pos: usize,
1066
2.69M
        visitor: &mut T,
1067
2.69M
    ) -> Result<<T as VisitOperator<'a>>::Output>
1068
2.69M
    where
1069
2.69M
        T: VisitOperator<'a>,
1070
2.69M
    {
1071
2.69M
        let code = self.read_var_u32()?;
1072
2.69M
        Ok(match code {
1073
33.8k
            0x00 => visitor.visit_v128_load(self.read_memarg(4)?),
1074
8.86k
            0x01 => visitor.visit_v128_load8x8_s(self.read_memarg(3)?),
1075
16.8k
            0x02 => visitor.visit_v128_load8x8_u(self.read_memarg(3)?),
1076
3.35k
            0x03 => visitor.visit_v128_load16x4_s(self.read_memarg(3)?),
1077
4.43k
            0x04 => visitor.visit_v128_load16x4_u(self.read_memarg(3)?),
1078
3.77k
            0x05 => visitor.visit_v128_load32x2_s(self.read_memarg(3)?),
1079
7.66k
            0x06 => visitor.visit_v128_load32x2_u(self.read_memarg(3)?),
1080
4.87k
            0x07 => visitor.visit_v128_load8_splat(self.read_memarg(0)?),
1081
2.76k
            0x08 => visitor.visit_v128_load16_splat(self.read_memarg(1)?),
1082
6.27k
            0x09 => visitor.visit_v128_load32_splat(self.read_memarg(2)?),
1083
2.16k
            0x0a => visitor.visit_v128_load64_splat(self.read_memarg(3)?),
1084
1085
8.11k
            0x0b => visitor.visit_v128_store(self.read_memarg(4)?),
1086
486k
            0x0c => visitor.visit_v128_const(self.read_v128()?),
1087
            0x0d => {
1088
1.68k
                let mut lanes: [u8; 16] = [0; 16];
1089
27.2k
                for lane in &mut lanes {
1090
25.7k
                    *lane = self.read_lane_index(32)?
1091
                }
1092
1.54k
                visitor.visit_i8x16_shuffle(lanes)
1093
            }
1094
1095
3.02k
            0x0e => visitor.visit_i8x16_swizzle(),
1096
7.06k
            0x0f => visitor.visit_i8x16_splat(),
1097
7.02k
            0x10 => visitor.visit_i16x8_splat(),
1098
9.23k
            0x11 => visitor.visit_i32x4_splat(),
1099
8.55k
            0x12 => visitor.visit_i64x2_splat(),
1100
9.12k
            0x13 => visitor.visit_f32x4_splat(),
1101
6.48k
            0x14 => visitor.visit_f64x2_splat(),
1102
1103
25.2k
            0x15 => visitor.visit_i8x16_extract_lane_s(self.read_lane_index(16)?),
1104
8.90k
            0x16 => visitor.visit_i8x16_extract_lane_u(self.read_lane_index(16)?),
1105
5.61k
            0x17 => visitor.visit_i8x16_replace_lane(self.read_lane_index(16)?),
1106
9.86k
            0x18 => visitor.visit_i16x8_extract_lane_s(self.read_lane_index(8)?),
1107
12.1k
            0x19 => visitor.visit_i16x8_extract_lane_u(self.read_lane_index(8)?),
1108
7.22k
            0x1a => visitor.visit_i16x8_replace_lane(self.read_lane_index(8)?),
1109
7.06k
            0x1b => visitor.visit_i32x4_extract_lane(self.read_lane_index(4)?),
1110
1111
7.58k
            0x1c => visitor.visit_i32x4_replace_lane(self.read_lane_index(4)?),
1112
8.07k
            0x1d => visitor.visit_i64x2_extract_lane(self.read_lane_index(2)?),
1113
3.11k
            0x1e => visitor.visit_i64x2_replace_lane(self.read_lane_index(2)?),
1114
11.1k
            0x1f => visitor.visit_f32x4_extract_lane(self.read_lane_index(4)?),
1115
37.6k
            0x20 => visitor.visit_f32x4_replace_lane(self.read_lane_index(4)?),
1116
7.71k
            0x21 => visitor.visit_f64x2_extract_lane(self.read_lane_index(2)?),
1117
1.69k
            0x22 => visitor.visit_f64x2_replace_lane(self.read_lane_index(2)?),
1118
1119
7.04k
            0x23 => visitor.visit_i8x16_eq(),
1120
4.61k
            0x24 => visitor.visit_i8x16_ne(),
1121
1.49k
            0x25 => visitor.visit_i8x16_lt_s(),
1122
2.71k
            0x26 => visitor.visit_i8x16_lt_u(),
1123
9.27k
            0x27 => visitor.visit_i8x16_gt_s(),
1124
25.1k
            0x28 => visitor.visit_i8x16_gt_u(),
1125
7.12k
            0x29 => visitor.visit_i8x16_le_s(),
1126
9.08k
            0x2a => visitor.visit_i8x16_le_u(),
1127
2.05k
            0x2b => visitor.visit_i8x16_ge_s(),
1128
8.14k
            0x2c => visitor.visit_i8x16_ge_u(),
1129
1.70k
            0x2d => visitor.visit_i16x8_eq(),
1130
4.30k
            0x2e => visitor.visit_i16x8_ne(),
1131
2.22k
            0x2f => visitor.visit_i16x8_lt_s(),
1132
71.6k
            0x30 => visitor.visit_i16x8_lt_u(),
1133
17.1k
            0x31 => visitor.visit_i16x8_gt_s(),
1134
4.28k
            0x32 => visitor.visit_i16x8_gt_u(),
1135
11.4k
            0x33 => visitor.visit_i16x8_le_s(),
1136
39.2k
            0x34 => visitor.visit_i16x8_le_u(),
1137
4.21k
            0x35 => visitor.visit_i16x8_ge_s(),
1138
3.68k
            0x36 => visitor.visit_i16x8_ge_u(),
1139
1.55k
            0x37 => visitor.visit_i32x4_eq(),
1140
3.60k
            0x38 => visitor.visit_i32x4_ne(),
1141
2.18k
            0x39 => visitor.visit_i32x4_lt_s(),
1142
6.17k
            0x3a => visitor.visit_i32x4_lt_u(),
1143
4.65k
            0x3b => visitor.visit_i32x4_gt_s(),
1144
1.22k
            0x3c => visitor.visit_i32x4_gt_u(),
1145
1.97k
            0x3d => visitor.visit_i32x4_le_s(),
1146
1.58k
            0x3e => visitor.visit_i32x4_le_u(),
1147
3.42k
            0x3f => visitor.visit_i32x4_ge_s(),
1148
3.91k
            0x40 => visitor.visit_i32x4_ge_u(),
1149
66.6k
            0x41 => visitor.visit_f32x4_eq(),
1150
1.85k
            0x42 => visitor.visit_f32x4_ne(),
1151
2.38k
            0x43 => visitor.visit_f32x4_lt(),
1152
7.81k
            0x44 => visitor.visit_f32x4_gt(),
1153
8.38k
            0x45 => visitor.visit_f32x4_le(),
1154
848
            0x46 => visitor.visit_f32x4_ge(),
1155
50.5k
            0x47 => visitor.visit_f64x2_eq(),
1156
3.80k
            0x48 => visitor.visit_f64x2_ne(),
1157
1.88k
            0x49 => visitor.visit_f64x2_lt(),
1158
5.61k
            0x4a => visitor.visit_f64x2_gt(),
1159
1.34k
            0x4b => visitor.visit_f64x2_le(),
1160
16.5k
            0x4c => visitor.visit_f64x2_ge(),
1161
7.59k
            0x4d => visitor.visit_v128_not(),
1162
6.84k
            0x4e => visitor.visit_v128_and(),
1163
1.59k
            0x4f => visitor.visit_v128_andnot(),
1164
2.41k
            0x50 => visitor.visit_v128_or(),
1165
3.74k
            0x51 => visitor.visit_v128_xor(),
1166
99.6k
            0x52 => visitor.visit_v128_bitselect(),
1167
1.19k
            0x53 => visitor.visit_v128_any_true(),
1168
1169
            0x54 => {
1170
2.02k
                let memarg = self.read_memarg(0)?;
1171
2.02k
                let lane = self.read_lane_index(16)?;
1172
2.00k
                visitor.visit_v128_load8_lane(memarg, lane)
1173
            }
1174
            0x55 => {
1175
4.37k
                let memarg = self.read_memarg(1)?;
1176
4.36k
                let lane = self.read_lane_index(8)?;
1177
4.35k
                visitor.visit_v128_load16_lane(memarg, lane)
1178
            }
1179
            0x56 => {
1180
3.60k
                let memarg = self.read_memarg(2)?;
1181
3.60k
                let lane = self.read_lane_index(4)?;
1182
3.58k
                visitor.visit_v128_load32_lane(memarg, lane)
1183
            }
1184
            0x57 => {
1185
4.29k
                let memarg = self.read_memarg(3)?;
1186
4.28k
                let lane = self.read_lane_index(2)?;
1187
4.28k
                visitor.visit_v128_load64_lane(memarg, lane)
1188
            }
1189
            0x58 => {
1190
2.83k
                let memarg = self.read_memarg(0)?;
1191
2.83k
                let lane = self.read_lane_index(16)?;
1192
2.83k
                visitor.visit_v128_store8_lane(memarg, lane)
1193
            }
1194
            0x59 => {
1195
3.34k
                let memarg = self.read_memarg(1)?;
1196
3.34k
                let lane = self.read_lane_index(8)?;
1197
3.33k
                visitor.visit_v128_store16_lane(memarg, lane)
1198
            }
1199
            0x5a => {
1200
3.59k
                let memarg = self.read_memarg(2)?;
1201
3.59k
                let lane = self.read_lane_index(4)?;
1202
3.58k
                visitor.visit_v128_store32_lane(memarg, lane)
1203
            }
1204
            0x5b => {
1205
4.32k
                let memarg = self.read_memarg(3)?;
1206
4.31k
                let lane = self.read_lane_index(2)?;
1207
4.30k
                visitor.visit_v128_store64_lane(memarg, lane)
1208
            }
1209
1210
3.16k
            0x5c => visitor.visit_v128_load32_zero(self.read_memarg(2)?),
1211
3.76k
            0x5d => visitor.visit_v128_load64_zero(self.read_memarg(3)?),
1212
14.5k
            0x5e => visitor.visit_f32x4_demote_f64x2_zero(),
1213
13.8k
            0x5f => visitor.visit_f64x2_promote_low_f32x4(),
1214
38.4k
            0x60 => visitor.visit_i8x16_abs(),
1215
14.1k
            0x61 => visitor.visit_i8x16_neg(),
1216
16.9k
            0x62 => visitor.visit_i8x16_popcnt(),
1217
4.19k
            0x63 => visitor.visit_i8x16_all_true(),
1218
5.76k
            0x64 => visitor.visit_i8x16_bitmask(),
1219
37.0k
            0x65 => visitor.visit_i8x16_narrow_i16x8_s(),
1220
1.90k
            0x66 => visitor.visit_i8x16_narrow_i16x8_u(),
1221
33.6k
            0x67 => visitor.visit_f32x4_ceil(),
1222
21.9k
            0x68 => visitor.visit_f32x4_floor(),
1223
8.40k
            0x69 => visitor.visit_f32x4_trunc(),
1224
5.50k
            0x6a => visitor.visit_f32x4_nearest(),
1225
2.04k
            0x6b => visitor.visit_i8x16_shl(),
1226
10.1k
            0x6c => visitor.visit_i8x16_shr_s(),
1227
3.67k
            0x6d => visitor.visit_i8x16_shr_u(),
1228
5.15k
            0x6e => visitor.visit_i8x16_add(),
1229
41.5k
            0x6f => visitor.visit_i8x16_add_sat_s(),
1230
2.84k
            0x70 => visitor.visit_i8x16_add_sat_u(),
1231
5.59k
            0x71 => visitor.visit_i8x16_sub(),
1232
2.06k
            0x72 => visitor.visit_i8x16_sub_sat_s(),
1233
4.34k
            0x73 => visitor.visit_i8x16_sub_sat_u(),
1234
10.6k
            0x74 => visitor.visit_f64x2_ceil(),
1235
54.2k
            0x75 => visitor.visit_f64x2_floor(),
1236
2.03k
            0x76 => visitor.visit_i8x16_min_s(),
1237
3.21k
            0x77 => visitor.visit_i8x16_min_u(),
1238
6.04k
            0x78 => visitor.visit_i8x16_max_s(),
1239
1.56k
            0x79 => visitor.visit_i8x16_max_u(),
1240
15.5k
            0x7a => visitor.visit_f64x2_trunc(),
1241
3.40k
            0x7b => visitor.visit_i8x16_avgr_u(),
1242
8.02k
            0x7c => visitor.visit_i16x8_extadd_pairwise_i8x16_s(),
1243
13.0k
            0x7d => visitor.visit_i16x8_extadd_pairwise_i8x16_u(),
1244
87.1k
            0x7e => visitor.visit_i32x4_extadd_pairwise_i16x8_s(),
1245
19.7k
            0x7f => visitor.visit_i32x4_extadd_pairwise_i16x8_u(),
1246
10.3k
            0x80 => visitor.visit_i16x8_abs(),
1247
7.61k
            0x81 => visitor.visit_i16x8_neg(),
1248
2.89k
            0x82 => visitor.visit_i16x8_q15mulr_sat_s(),
1249
6.78k
            0x83 => visitor.visit_i16x8_all_true(),
1250
6.45k
            0x84 => visitor.visit_i16x8_bitmask(),
1251
2.87k
            0x85 => visitor.visit_i16x8_narrow_i32x4_s(),
1252
1.53k
            0x86 => visitor.visit_i16x8_narrow_i32x4_u(),
1253
17.7k
            0x87 => visitor.visit_i16x8_extend_low_i8x16_s(),
1254
11.6k
            0x88 => visitor.visit_i16x8_extend_high_i8x16_s(),
1255
11.9k
            0x89 => visitor.visit_i16x8_extend_low_i8x16_u(),
1256
12.3k
            0x8a => visitor.visit_i16x8_extend_high_i8x16_u(),
1257
1.03k
            0x8b => visitor.visit_i16x8_shl(),
1258
4.58k
            0x8c => visitor.visit_i16x8_shr_s(),
1259
2.96k
            0x8d => visitor.visit_i16x8_shr_u(),
1260
19.0k
            0x8e => visitor.visit_i16x8_add(),
1261
19.0k
            0x8f => visitor.visit_i16x8_add_sat_s(),
1262
1.33k
            0x90 => visitor.visit_i16x8_add_sat_u(),
1263
1.31k
            0x91 => visitor.visit_i16x8_sub(),
1264
3.79k
            0x92 => visitor.visit_i16x8_sub_sat_s(),
1265
2.35k
            0x93 => visitor.visit_i16x8_sub_sat_u(),
1266
10.0k
            0x94 => visitor.visit_f64x2_nearest(),
1267
1.58k
            0x95 => visitor.visit_i16x8_mul(),
1268
3.39k
            0x96 => visitor.visit_i16x8_min_s(),
1269
2.21k
            0x97 => visitor.visit_i16x8_min_u(),
1270
1.11k
            0x98 => visitor.visit_i16x8_max_s(),
1271
1.39k
            0x99 => visitor.visit_i16x8_max_u(),
1272
2.05k
            0x9b => visitor.visit_i16x8_avgr_u(),
1273
3.33k
            0x9c => visitor.visit_i16x8_extmul_low_i8x16_s(),
1274
1.32k
            0x9d => visitor.visit_i16x8_extmul_high_i8x16_s(),
1275
1.35k
            0x9e => visitor.visit_i16x8_extmul_low_i8x16_u(),
1276
865
            0x9f => visitor.visit_i16x8_extmul_high_i8x16_u(),
1277
8.66k
            0xa0 => visitor.visit_i32x4_abs(),
1278
24.1k
            0xa1 => visitor.visit_i32x4_neg(),
1279
6.60k
            0xa3 => visitor.visit_i32x4_all_true(),
1280
5.14k
            0xa4 => visitor.visit_i32x4_bitmask(),
1281
10.6k
            0xa7 => visitor.visit_i32x4_extend_low_i16x8_s(),
1282
15.9k
            0xa8 => visitor.visit_i32x4_extend_high_i16x8_s(),
1283
9.13k
            0xa9 => visitor.visit_i32x4_extend_low_i16x8_u(),
1284
14.1k
            0xaa => visitor.visit_i32x4_extend_high_i16x8_u(),
1285
1.08k
            0xab => visitor.visit_i32x4_shl(),
1286
7.25k
            0xac => visitor.visit_i32x4_shr_s(),
1287
1.19k
            0xad => visitor.visit_i32x4_shr_u(),
1288
4.33k
            0xae => visitor.visit_i32x4_add(),
1289
5.87k
            0xb1 => visitor.visit_i32x4_sub(),
1290
1.88k
            0xb5 => visitor.visit_i32x4_mul(),
1291
3.01k
            0xb6 => visitor.visit_i32x4_min_s(),
1292
9.27k
            0xb7 => visitor.visit_i32x4_min_u(),
1293
1.45k
            0xb8 => visitor.visit_i32x4_max_s(),
1294
866
            0xb9 => visitor.visit_i32x4_max_u(),
1295
1.30k
            0xba => visitor.visit_i32x4_dot_i16x8_s(),
1296
1.59k
            0xbc => visitor.visit_i32x4_extmul_low_i16x8_s(),
1297
1.70k
            0xbd => visitor.visit_i32x4_extmul_high_i16x8_s(),
1298
1.22k
            0xbe => visitor.visit_i32x4_extmul_low_i16x8_u(),
1299
1.34k
            0xbf => visitor.visit_i32x4_extmul_high_i16x8_u(),
1300
24.9k
            0xc0 => visitor.visit_i64x2_abs(),
1301
25.5k
            0xc1 => visitor.visit_i64x2_neg(),
1302
5.01k
            0xc3 => visitor.visit_i64x2_all_true(),
1303
5.13k
            0xc4 => visitor.visit_i64x2_bitmask(),
1304
11.9k
            0xc7 => visitor.visit_i64x2_extend_low_i32x4_s(),
1305
7.79k
            0xc8 => visitor.visit_i64x2_extend_high_i32x4_s(),
1306
20.8k
            0xc9 => visitor.visit_i64x2_extend_low_i32x4_u(),
1307
12.2k
            0xca => visitor.visit_i64x2_extend_high_i32x4_u(),
1308
1.58k
            0xcb => visitor.visit_i64x2_shl(),
1309
1.66k
            0xcc => visitor.visit_i64x2_shr_s(),
1310
1.79k
            0xcd => visitor.visit_i64x2_shr_u(),
1311
2.60k
            0xce => visitor.visit_i64x2_add(),
1312
1.91k
            0xd1 => visitor.visit_i64x2_sub(),
1313
1.84k
            0xd5 => visitor.visit_i64x2_mul(),
1314
1.20k
            0xd6 => visitor.visit_i64x2_eq(),
1315
2.55k
            0xd7 => visitor.visit_i64x2_ne(),
1316
1.15k
            0xd8 => visitor.visit_i64x2_lt_s(),
1317
2.54k
            0xd9 => visitor.visit_i64x2_gt_s(),
1318
5.61k
            0xda => visitor.visit_i64x2_le_s(),
1319
3.20k
            0xdb => visitor.visit_i64x2_ge_s(),
1320
8.42k
            0xdc => visitor.visit_i64x2_extmul_low_i32x4_s(),
1321
4.54k
            0xdd => visitor.visit_i64x2_extmul_high_i32x4_s(),
1322
1.69k
            0xde => visitor.visit_i64x2_extmul_low_i32x4_u(),
1323
15.3k
            0xdf => visitor.visit_i64x2_extmul_high_i32x4_u(),
1324
9.69k
            0xe0 => visitor.visit_f32x4_abs(),
1325
7.27k
            0xe1 => visitor.visit_f32x4_neg(),
1326
14.6k
            0xe3 => visitor.visit_f32x4_sqrt(),
1327
1.10k
            0xe4 => visitor.visit_f32x4_add(),
1328
1.13k
            0xe5 => visitor.visit_f32x4_sub(),
1329
2.11k
            0xe6 => visitor.visit_f32x4_mul(),
1330
1.67k
            0xe7 => visitor.visit_f32x4_div(),
1331
3.30k
            0xe8 => visitor.visit_f32x4_min(),
1332
1.37k
            0xe9 => visitor.visit_f32x4_max(),
1333
5.67k
            0xea => visitor.visit_f32x4_pmin(),
1334
2.75k
            0xeb => visitor.visit_f32x4_pmax(),
1335
33.1k
            0xec => visitor.visit_f64x2_abs(),
1336
7.03k
            0xed => visitor.visit_f64x2_neg(),
1337
11.4k
            0xef => visitor.visit_f64x2_sqrt(),
1338
1.01k
            0xf0 => visitor.visit_f64x2_add(),
1339
3.26k
            0xf1 => visitor.visit_f64x2_sub(),
1340
1.99k
            0xf2 => visitor.visit_f64x2_mul(),
1341
1.20k
            0xf3 => visitor.visit_f64x2_div(),
1342
1.89k
            0xf4 => visitor.visit_f64x2_min(),
1343
2.57k
            0xf5 => visitor.visit_f64x2_max(),
1344
2.48k
            0xf6 => visitor.visit_f64x2_pmin(),
1345
2.62k
            0xf7 => visitor.visit_f64x2_pmax(),
1346
19.2k
            0xf8 => visitor.visit_i32x4_trunc_sat_f32x4_s(),
1347
8.31k
            0xf9 => visitor.visit_i32x4_trunc_sat_f32x4_u(),
1348
15.5k
            0xfa => visitor.visit_f32x4_convert_i32x4_s(),
1349
9.89k
            0xfb => visitor.visit_f32x4_convert_i32x4_u(),
1350
17.6k
            0xfc => visitor.visit_i32x4_trunc_sat_f64x2_s_zero(),
1351
5.58k
            0xfd => visitor.visit_i32x4_trunc_sat_f64x2_u_zero(),
1352
31.8k
            0xfe => visitor.visit_f64x2_convert_low_i32x4_s(),
1353
13.7k
            0xff => visitor.visit_f64x2_convert_low_i32x4_u(),
1354
1.10k
            0x100 => visitor.visit_i8x16_relaxed_swizzle(),
1355
12.0k
            0x101 => visitor.visit_i32x4_relaxed_trunc_f32x4_s(),
1356
6.67k
            0x102 => visitor.visit_i32x4_relaxed_trunc_f32x4_u(),
1357
10.6k
            0x103 => visitor.visit_i32x4_relaxed_trunc_f64x2_s_zero(),
1358
6.85k
            0x104 => visitor.visit_i32x4_relaxed_trunc_f64x2_u_zero(),
1359
2.41k
            0x105 => visitor.visit_f32x4_relaxed_madd(),
1360
2.71k
            0x106 => visitor.visit_f32x4_relaxed_nmadd(),
1361
499
            0x107 => visitor.visit_f64x2_relaxed_madd(),
1362
1.62k
            0x108 => visitor.visit_f64x2_relaxed_nmadd(),
1363
1.22k
            0x109 => visitor.visit_i8x16_relaxed_laneselect(),
1364
791
            0x10a => visitor.visit_i16x8_relaxed_laneselect(),
1365
2.60k
            0x10b => visitor.visit_i32x4_relaxed_laneselect(),
1366
935
            0x10c => visitor.visit_i64x2_relaxed_laneselect(),
1367
3.43k
            0x10d => visitor.visit_f32x4_relaxed_min(),
1368
3.39k
            0x10e => visitor.visit_f32x4_relaxed_max(),
1369
950
            0x10f => visitor.visit_f64x2_relaxed_min(),
1370
2.83k
            0x110 => visitor.visit_f64x2_relaxed_max(),
1371
2.40k
            0x111 => visitor.visit_i16x8_relaxed_q15mulr_s(),
1372
1.60k
            0x112 => visitor.visit_i16x8_relaxed_dot_i8x16_i7x16_s(),
1373
620
            0x113 => visitor.visit_i32x4_relaxed_dot_i8x16_i7x16_add_s(),
1374
1375
186
            _ => bail!(pos, "unknown 0xfd subopcode: 0x{code:x}"),
1376
        })
1377
2.69M
    }
<wasmparser::binary_reader::BinaryReader>::visit_0xfd_operator::<wasmparser::validator::operators::WasmProposalValidator<wasmparser::validator::core::ValidatorResources>>
Line
Count
Source
1063
15.9M
    fn visit_0xfd_operator<T>(
1064
15.9M
        &mut self,
1065
15.9M
        pos: usize,
1066
15.9M
        visitor: &mut T,
1067
15.9M
    ) -> Result<<T as VisitOperator<'a>>::Output>
1068
15.9M
    where
1069
15.9M
        T: VisitOperator<'a>,
1070
15.9M
    {
1071
15.9M
        let code = self.read_var_u32()?;
1072
15.9M
        Ok(match code {
1073
107k
            0x00 => visitor.visit_v128_load(self.read_memarg(4)?),
1074
21.8k
            0x01 => visitor.visit_v128_load8x8_s(self.read_memarg(3)?),
1075
34.4k
            0x02 => visitor.visit_v128_load8x8_u(self.read_memarg(3)?),
1076
14.9k
            0x03 => visitor.visit_v128_load16x4_s(self.read_memarg(3)?),
1077
18.6k
            0x04 => visitor.visit_v128_load16x4_u(self.read_memarg(3)?),
1078
15.7k
            0x05 => visitor.visit_v128_load32x2_s(self.read_memarg(3)?),
1079
13.9k
            0x06 => visitor.visit_v128_load32x2_u(self.read_memarg(3)?),
1080
18.4k
            0x07 => visitor.visit_v128_load8_splat(self.read_memarg(0)?),
1081
13.5k
            0x08 => visitor.visit_v128_load16_splat(self.read_memarg(1)?),
1082
14.2k
            0x09 => visitor.visit_v128_load32_splat(self.read_memarg(2)?),
1083
14.6k
            0x0a => visitor.visit_v128_load64_splat(self.read_memarg(3)?),
1084
1085
17.5k
            0x0b => visitor.visit_v128_store(self.read_memarg(4)?),
1086
4.14M
            0x0c => visitor.visit_v128_const(self.read_v128()?),
1087
            0x0d => {
1088
5.34k
                let mut lanes: [u8; 16] = [0; 16];
1089
90.0k
                for lane in &mut lanes {
1090
84.7k
                    *lane = self.read_lane_index(32)?
1091
                }
1092
5.26k
                visitor.visit_i8x16_shuffle(lanes)
1093
            }
1094
1095
12.5k
            0x0e => visitor.visit_i8x16_swizzle(),
1096
72.9k
            0x0f => visitor.visit_i8x16_splat(),
1097
54.7k
            0x10 => visitor.visit_i16x8_splat(),
1098
47.0k
            0x11 => visitor.visit_i32x4_splat(),
1099
32.7k
            0x12 => visitor.visit_i64x2_splat(),
1100
31.4k
            0x13 => visitor.visit_f32x4_splat(),
1101
28.8k
            0x14 => visitor.visit_f64x2_splat(),
1102
1103
41.8k
            0x15 => visitor.visit_i8x16_extract_lane_s(self.read_lane_index(16)?),
1104
39.5k
            0x16 => visitor.visit_i8x16_extract_lane_u(self.read_lane_index(16)?),
1105
14.9k
            0x17 => visitor.visit_i8x16_replace_lane(self.read_lane_index(16)?),
1106
39.3k
            0x18 => visitor.visit_i16x8_extract_lane_s(self.read_lane_index(8)?),
1107
47.9k
            0x19 => visitor.visit_i16x8_extract_lane_u(self.read_lane_index(8)?),
1108
7.77k
            0x1a => visitor.visit_i16x8_replace_lane(self.read_lane_index(8)?),
1109
40.5k
            0x1b => visitor.visit_i32x4_extract_lane(self.read_lane_index(4)?),
1110
1111
106k
            0x1c => visitor.visit_i32x4_replace_lane(self.read_lane_index(4)?),
1112
43.7k
            0x1d => visitor.visit_i64x2_extract_lane(self.read_lane_index(2)?),
1113
5.27k
            0x1e => visitor.visit_i64x2_replace_lane(self.read_lane_index(2)?),
1114
58.9k
            0x1f => visitor.visit_f32x4_extract_lane(self.read_lane_index(4)?),
1115
5.59k
            0x20 => visitor.visit_f32x4_replace_lane(self.read_lane_index(4)?),
1116
42.1k
            0x21 => visitor.visit_f64x2_extract_lane(self.read_lane_index(2)?),
1117
12.2k
            0x22 => visitor.visit_f64x2_replace_lane(self.read_lane_index(2)?),
1118
1119
10.0k
            0x23 => visitor.visit_i8x16_eq(),
1120
247k
            0x24 => visitor.visit_i8x16_ne(),
1121
5.63k
            0x25 => visitor.visit_i8x16_lt_s(),
1122
9.75k
            0x26 => visitor.visit_i8x16_lt_u(),
1123
9.27k
            0x27 => visitor.visit_i8x16_gt_s(),
1124
21.5k
            0x28 => visitor.visit_i8x16_gt_u(),
1125
9.33k
            0x29 => visitor.visit_i8x16_le_s(),
1126
9.25k
            0x2a => visitor.visit_i8x16_le_u(),
1127
6.11k
            0x2b => visitor.visit_i8x16_ge_s(),
1128
6.14k
            0x2c => visitor.visit_i8x16_ge_u(),
1129
8.80k
            0x2d => visitor.visit_i16x8_eq(),
1130
11.7k
            0x2e => visitor.visit_i16x8_ne(),
1131
5.93k
            0x2f => visitor.visit_i16x8_lt_s(),
1132
42.9k
            0x30 => visitor.visit_i16x8_lt_u(),
1133
8.85k
            0x31 => visitor.visit_i16x8_gt_s(),
1134
12.8k
            0x32 => visitor.visit_i16x8_gt_u(),
1135
16.7k
            0x33 => visitor.visit_i16x8_le_s(),
1136
105k
            0x34 => visitor.visit_i16x8_le_u(),
1137
10.8k
            0x35 => visitor.visit_i16x8_ge_s(),
1138
8.80k
            0x36 => visitor.visit_i16x8_ge_u(),
1139
11.5k
            0x37 => visitor.visit_i32x4_eq(),
1140
5.98k
            0x38 => visitor.visit_i32x4_ne(),
1141
8.96k
            0x39 => visitor.visit_i32x4_lt_s(),
1142
10.7k
            0x3a => visitor.visit_i32x4_lt_u(),
1143
6.01k
            0x3b => visitor.visit_i32x4_gt_s(),
1144
36.0k
            0x3c => visitor.visit_i32x4_gt_u(),
1145
6.46k
            0x3d => visitor.visit_i32x4_le_s(),
1146
6.10k
            0x3e => visitor.visit_i32x4_le_u(),
1147
11.8k
            0x3f => visitor.visit_i32x4_ge_s(),
1148
6.97k
            0x40 => visitor.visit_i32x4_ge_u(),
1149
351k
            0x41 => visitor.visit_f32x4_eq(),
1150
11.0k
            0x42 => visitor.visit_f32x4_ne(),
1151
8.30k
            0x43 => visitor.visit_f32x4_lt(),
1152
8.76k
            0x44 => visitor.visit_f32x4_gt(),
1153
29.5k
            0x45 => visitor.visit_f32x4_le(),
1154
12.5k
            0x46 => visitor.visit_f32x4_ge(),
1155
407k
            0x47 => visitor.visit_f64x2_eq(),
1156
6.33k
            0x48 => visitor.visit_f64x2_ne(),
1157
9.97k
            0x49 => visitor.visit_f64x2_lt(),
1158
10.3k
            0x4a => visitor.visit_f64x2_gt(),
1159
8.04k
            0x4b => visitor.visit_f64x2_le(),
1160
16.6k
            0x4c => visitor.visit_f64x2_ge(),
1161
199k
            0x4d => visitor.visit_v128_not(),
1162
9.09k
            0x4e => visitor.visit_v128_and(),
1163
5.80k
            0x4f => visitor.visit_v128_andnot(),
1164
12.6k
            0x50 => visitor.visit_v128_or(),
1165
9.59k
            0x51 => visitor.visit_v128_xor(),
1166
765k
            0x52 => visitor.visit_v128_bitselect(),
1167
12.9k
            0x53 => visitor.visit_v128_any_true(),
1168
1169
            0x54 => {
1170
7.04k
                let memarg = self.read_memarg(0)?;
1171
7.04k
                let lane = self.read_lane_index(16)?;
1172
7.04k
                visitor.visit_v128_load8_lane(memarg, lane)
1173
            }
1174
            0x55 => {
1175
7.15k
                let memarg = self.read_memarg(1)?;
1176
7.15k
                let lane = self.read_lane_index(8)?;
1177
7.15k
                visitor.visit_v128_load16_lane(memarg, lane)
1178
            }
1179
            0x56 => {
1180
7.44k
                let memarg = self.read_memarg(2)?;
1181
7.43k
                let lane = self.read_lane_index(4)?;
1182
7.43k
                visitor.visit_v128_load32_lane(memarg, lane)
1183
            }
1184
            0x57 => {
1185
13.7k
                let memarg = self.read_memarg(3)?;
1186
13.7k
                let lane = self.read_lane_index(2)?;
1187
13.7k
                visitor.visit_v128_load64_lane(memarg, lane)
1188
            }
1189
            0x58 => {
1190
8.73k
                let memarg = self.read_memarg(0)?;
1191
8.73k
                let lane = self.read_lane_index(16)?;
1192
8.73k
                visitor.visit_v128_store8_lane(memarg, lane)
1193
            }
1194
            0x59 => {
1195
6.18k
                let memarg = self.read_memarg(1)?;
1196
6.18k
                let lane = self.read_lane_index(8)?;
1197
6.17k
                visitor.visit_v128_store16_lane(memarg, lane)
1198
            }
1199
            0x5a => {
1200
6.18k
                let memarg = self.read_memarg(2)?;
1201
6.18k
                let lane = self.read_lane_index(4)?;
1202
6.17k
                visitor.visit_v128_store32_lane(memarg, lane)
1203
            }
1204
            0x5b => {
1205
7.06k
                let memarg = self.read_memarg(3)?;
1206
7.06k
                let lane = self.read_lane_index(2)?;
1207
7.05k
                visitor.visit_v128_store64_lane(memarg, lane)
1208
            }
1209
1210
33.9k
            0x5c => visitor.visit_v128_load32_zero(self.read_memarg(2)?),
1211
23.3k
            0x5d => visitor.visit_v128_load64_zero(self.read_memarg(3)?),
1212
154k
            0x5e => visitor.visit_f32x4_demote_f64x2_zero(),
1213
94.2k
            0x5f => visitor.visit_f64x2_promote_low_f32x4(),
1214
126k
            0x60 => visitor.visit_i8x16_abs(),
1215
61.0k
            0x61 => visitor.visit_i8x16_neg(),
1216
75.7k
            0x62 => visitor.visit_i8x16_popcnt(),
1217
37.6k
            0x63 => visitor.visit_i8x16_all_true(),
1218
59.6k
            0x64 => visitor.visit_i8x16_bitmask(),
1219
3.48k
            0x65 => visitor.visit_i8x16_narrow_i16x8_s(),
1220
8.21k
            0x66 => visitor.visit_i8x16_narrow_i16x8_u(),
1221
50.8k
            0x67 => visitor.visit_f32x4_ceil(),
1222
91.2k
            0x68 => visitor.visit_f32x4_floor(),
1223
59.7k
            0x69 => visitor.visit_f32x4_trunc(),
1224
74.0k
            0x6a => visitor.visit_f32x4_nearest(),
1225
5.70k
            0x6b => visitor.visit_i8x16_shl(),
1226
4.45k
            0x6c => visitor.visit_i8x16_shr_s(),
1227
6.52k
            0x6d => visitor.visit_i8x16_shr_u(),
1228
11.4k
            0x6e => visitor.visit_i8x16_add(),
1229
4.99k
            0x6f => visitor.visit_i8x16_add_sat_s(),
1230
8.75k
            0x70 => visitor.visit_i8x16_add_sat_u(),
1231
9.89k
            0x71 => visitor.visit_i8x16_sub(),
1232
5.62k
            0x72 => visitor.visit_i8x16_sub_sat_s(),
1233
7.08k
            0x73 => visitor.visit_i8x16_sub_sat_u(),
1234
80.8k
            0x74 => visitor.visit_f64x2_ceil(),
1235
52.0k
            0x75 => visitor.visit_f64x2_floor(),
1236
10.0k
            0x76 => visitor.visit_i8x16_min_s(),
1237
7.70k
            0x77 => visitor.visit_i8x16_min_u(),
1238
27.6k
            0x78 => visitor.visit_i8x16_max_s(),
1239
7.56k
            0x79 => visitor.visit_i8x16_max_u(),
1240
97.3k
            0x7a => visitor.visit_f64x2_trunc(),
1241
11.0k
            0x7b => visitor.visit_i8x16_avgr_u(),
1242
58.4k
            0x7c => visitor.visit_i16x8_extadd_pairwise_i8x16_s(),
1243
162k
            0x7d => visitor.visit_i16x8_extadd_pairwise_i8x16_u(),
1244
285k
            0x7e => visitor.visit_i32x4_extadd_pairwise_i16x8_s(),
1245
227k
            0x7f => visitor.visit_i32x4_extadd_pairwise_i16x8_u(),
1246
164k
            0x80 => visitor.visit_i16x8_abs(),
1247
106k
            0x81 => visitor.visit_i16x8_neg(),
1248
5.54k
            0x82 => visitor.visit_i16x8_q15mulr_sat_s(),
1249
36.8k
            0x83 => visitor.visit_i16x8_all_true(),
1250
69.3k
            0x84 => visitor.visit_i16x8_bitmask(),
1251
7.77k
            0x85 => visitor.visit_i16x8_narrow_i32x4_s(),
1252
5.75k
            0x86 => visitor.visit_i16x8_narrow_i32x4_u(),
1253
91.5k
            0x87 => visitor.visit_i16x8_extend_low_i8x16_s(),
1254
84.9k
            0x88 => visitor.visit_i16x8_extend_high_i8x16_s(),
1255
114k
            0x89 => visitor.visit_i16x8_extend_low_i8x16_u(),
1256
71.4k
            0x8a => visitor.visit_i16x8_extend_high_i8x16_u(),
1257
5.95k
            0x8b => visitor.visit_i16x8_shl(),
1258
1.89k
            0x8c => visitor.visit_i16x8_shr_s(),
1259
4.30k
            0x8d => visitor.visit_i16x8_shr_u(),
1260
19.9k
            0x8e => visitor.visit_i16x8_add(),
1261
4.83k
            0x8f => visitor.visit_i16x8_add_sat_s(),
1262
7.98k
            0x90 => visitor.visit_i16x8_add_sat_u(),
1263
6.36k
            0x91 => visitor.visit_i16x8_sub(),
1264
8.90k
            0x92 => visitor.visit_i16x8_sub_sat_s(),
1265
11.5k
            0x93 => visitor.visit_i16x8_sub_sat_u(),
1266
103k
            0x94 => visitor.visit_f64x2_nearest(),
1267
13.1k
            0x95 => visitor.visit_i16x8_mul(),
1268
8.20k
            0x96 => visitor.visit_i16x8_min_s(),
1269
3.80k
            0x97 => visitor.visit_i16x8_min_u(),
1270
6.25k
            0x98 => visitor.visit_i16x8_max_s(),
1271
4.60k
            0x99 => visitor.visit_i16x8_max_u(),
1272
6.62k
            0x9b => visitor.visit_i16x8_avgr_u(),
1273
11.9k
            0x9c => visitor.visit_i16x8_extmul_low_i8x16_s(),
1274
13.2k
            0x9d => visitor.visit_i16x8_extmul_high_i8x16_s(),
1275
4.72k
            0x9e => visitor.visit_i16x8_extmul_low_i8x16_u(),
1276
5.53k
            0x9f => visitor.visit_i16x8_extmul_high_i8x16_u(),
1277
148k
            0xa0 => visitor.visit_i32x4_abs(),
1278
113k
            0xa1 => visitor.visit_i32x4_neg(),
1279
35.7k
            0xa3 => visitor.visit_i32x4_all_true(),
1280
33.0k
            0xa4 => visitor.visit_i32x4_bitmask(),
1281
74.1k
            0xa7 => visitor.visit_i32x4_extend_low_i16x8_s(),
1282
93.6k
            0xa8 => visitor.visit_i32x4_extend_high_i16x8_s(),
1283
86.6k
            0xa9 => visitor.visit_i32x4_extend_low_i16x8_u(),
1284
99.6k
            0xaa => visitor.visit_i32x4_extend_high_i16x8_u(),
1285
4.45k
            0xab => visitor.visit_i32x4_shl(),
1286
9.10k
            0xac => visitor.visit_i32x4_shr_s(),
1287
3.72k
            0xad => visitor.visit_i32x4_shr_u(),
1288
4.15k
            0xae => visitor.visit_i32x4_add(),
1289
14.6k
            0xb1 => visitor.visit_i32x4_sub(),
1290
5.45k
            0xb5 => visitor.visit_i32x4_mul(),
1291
4.91k
            0xb6 => visitor.visit_i32x4_min_s(),
1292
5.69k
            0xb7 => visitor.visit_i32x4_min_u(),
1293
5.99k
            0xb8 => visitor.visit_i32x4_max_s(),
1294
4.52k
            0xb9 => visitor.visit_i32x4_max_u(),
1295
4.94k
            0xba => visitor.visit_i32x4_dot_i16x8_s(),
1296
5.44k
            0xbc => visitor.visit_i32x4_extmul_low_i16x8_s(),
1297
7.42k
            0xbd => visitor.visit_i32x4_extmul_high_i16x8_s(),
1298
20.1k
            0xbe => visitor.visit_i32x4_extmul_low_i16x8_u(),
1299
2.89k
            0xbf => visitor.visit_i32x4_extmul_high_i16x8_u(),
1300
399k
            0xc0 => visitor.visit_i64x2_abs(),
1301
250k
            0xc1 => visitor.visit_i64x2_neg(),
1302
76.1k
            0xc3 => visitor.visit_i64x2_all_true(),
1303
31.8k
            0xc4 => visitor.visit_i64x2_bitmask(),
1304
273k
            0xc7 => visitor.visit_i64x2_extend_low_i32x4_s(),
1305
223k
            0xc8 => visitor.visit_i64x2_extend_high_i32x4_s(),
1306
159k
            0xc9 => visitor.visit_i64x2_extend_low_i32x4_u(),
1307
202k
            0xca => visitor.visit_i64x2_extend_high_i32x4_u(),
1308
5.72k
            0xcb => visitor.visit_i64x2_shl(),
1309
5.01k
            0xcc => visitor.visit_i64x2_shr_s(),
1310
3.98k
            0xcd => visitor.visit_i64x2_shr_u(),
1311
10.1k
            0xce => visitor.visit_i64x2_add(),
1312
9.21k
            0xd1 => visitor.visit_i64x2_sub(),
1313
8.03k
            0xd5 => visitor.visit_i64x2_mul(),
1314
8.67k
            0xd6 => visitor.visit_i64x2_eq(),
1315
23.9k
            0xd7 => visitor.visit_i64x2_ne(),
1316
8.24k
            0xd8 => visitor.visit_i64x2_lt_s(),
1317
18.2k
            0xd9 => visitor.visit_i64x2_gt_s(),
1318
6.96k
            0xda => visitor.visit_i64x2_le_s(),
1319
4.05k
            0xdb => visitor.visit_i64x2_ge_s(),
1320
13.3k
            0xdc => visitor.visit_i64x2_extmul_low_i32x4_s(),
1321
7.90k
            0xdd => visitor.visit_i64x2_extmul_high_i32x4_s(),
1322
4.35k
            0xde => visitor.visit_i64x2_extmul_low_i32x4_u(),
1323
12.3k
            0xdf => visitor.visit_i64x2_extmul_high_i32x4_u(),
1324
114k
            0xe0 => visitor.visit_f32x4_abs(),
1325
64.1k
            0xe1 => visitor.visit_f32x4_neg(),
1326
79.5k
            0xe3 => visitor.visit_f32x4_sqrt(),
1327
7.23k
            0xe4 => visitor.visit_f32x4_add(),
1328
12.9k
            0xe5 => visitor.visit_f32x4_sub(),
1329
14.2k
            0xe6 => visitor.visit_f32x4_mul(),
1330
6.16k
            0xe7 => visitor.visit_f32x4_div(),
1331
9.54k
            0xe8 => visitor.visit_f32x4_min(),
1332
12.9k
            0xe9 => visitor.visit_f32x4_max(),
1333
14.5k
            0xea => visitor.visit_f32x4_pmin(),
1334
4.63k
            0xeb => visitor.visit_f32x4_pmax(),
1335
125k
            0xec => visitor.visit_f64x2_abs(),
1336
114k
            0xed => visitor.visit_f64x2_neg(),
1337
82.6k
            0xef => visitor.visit_f64x2_sqrt(),
1338
7.52k
            0xf0 => visitor.visit_f64x2_add(),
1339
6.40k
            0xf1 => visitor.visit_f64x2_sub(),
1340
13.5k
            0xf2 => visitor.visit_f64x2_mul(),
1341
8.31k
            0xf3 => visitor.visit_f64x2_div(),
1342
7.65k
            0xf4 => visitor.visit_f64x2_min(),
1343
6.42k
            0xf5 => visitor.visit_f64x2_max(),
1344
5.05k
            0xf6 => visitor.visit_f64x2_pmin(),
1345
8.19k
            0xf7 => visitor.visit_f64x2_pmax(),
1346
111k
            0xf8 => visitor.visit_i32x4_trunc_sat_f32x4_s(),
1347
211k
            0xf9 => visitor.visit_i32x4_trunc_sat_f32x4_u(),
1348
106k
            0xfa => visitor.visit_f32x4_convert_i32x4_s(),
1349
238k
            0xfb => visitor.visit_f32x4_convert_i32x4_u(),
1350
185k
            0xfc => visitor.visit_i32x4_trunc_sat_f64x2_s_zero(),
1351
106k
            0xfd => visitor.visit_i32x4_trunc_sat_f64x2_u_zero(),
1352
93.4k
            0xfe => visitor.visit_f64x2_convert_low_i32x4_s(),
1353
100k
            0xff => visitor.visit_f64x2_convert_low_i32x4_u(),
1354
5.20k
            0x100 => visitor.visit_i8x16_relaxed_swizzle(),
1355
72.6k
            0x101 => visitor.visit_i32x4_relaxed_trunc_f32x4_s(),
1356
218k
            0x102 => visitor.visit_i32x4_relaxed_trunc_f32x4_u(),
1357
90.6k
            0x103 => visitor.visit_i32x4_relaxed_trunc_f64x2_s_zero(),
1358
59.2k
            0x104 => visitor.visit_i32x4_relaxed_trunc_f64x2_u_zero(),
1359
4.31k
            0x105 => visitor.visit_f32x4_relaxed_madd(),
1360
3.63k
            0x106 => visitor.visit_f32x4_relaxed_nmadd(),
1361
3.22k
            0x107 => visitor.visit_f64x2_relaxed_madd(),
1362
4.26k
            0x108 => visitor.visit_f64x2_relaxed_nmadd(),
1363
4.12k
            0x109 => visitor.visit_i8x16_relaxed_laneselect(),
1364
8.93k
            0x10a => visitor.visit_i16x8_relaxed_laneselect(),
1365
5.99k
            0x10b => visitor.visit_i32x4_relaxed_laneselect(),
1366
7.43k
            0x10c => visitor.visit_i64x2_relaxed_laneselect(),
1367
11.6k
            0x10d => visitor.visit_f32x4_relaxed_min(),
1368
7.99k
            0x10e => visitor.visit_f32x4_relaxed_max(),
1369
4.71k
            0x10f => visitor.visit_f64x2_relaxed_min(),
1370
7.17k
            0x110 => visitor.visit_f64x2_relaxed_max(),
1371
19.0k
            0x111 => visitor.visit_i16x8_relaxed_q15mulr_s(),
1372
3.77k
            0x112 => visitor.visit_i16x8_relaxed_dot_i8x16_i7x16_s(),
1373
5.09k
            0x113 => visitor.visit_i32x4_relaxed_dot_i8x16_i7x16_add_s(),
1374
1375
88
            _ => bail!(pos, "unknown 0xfd subopcode: 0x{code:x}"),
1376
        })
1377
15.9M
    }
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReader>::visit_0xfd_operator::<wit_component::gc::Encoder>
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReader>::visit_0xfd_operator::<wit_component::gc::Module>
1378
1379
461k
    fn visit_0xfe_operator<T>(
1380
461k
        &mut self,
1381
461k
        pos: usize,
1382
461k
        visitor: &mut T,
1383
461k
    ) -> Result<<T as VisitOperator<'a>>::Output>
1384
461k
    where
1385
461k
        T: VisitOperator<'a>,
1386
461k
    {
1387
461k
        let code = self.read_var_u32()?;
1388
461k
        Ok(match code {
1389
15.6k
            0x00 => visitor.visit_memory_atomic_notify(self.read_memarg(2)?),
1390
133k
            0x01 => visitor.visit_memory_atomic_wait32(self.read_memarg(2)?),
1391
8.25k
            0x02 => visitor.visit_memory_atomic_wait64(self.read_memarg(3)?),
1392
            0x03 => {
1393
2.53k
                if self.read_u8()? != 0 {
1394
4
                    bail!(pos, "nonzero byte after `atomic.fence`");
1395
2.52k
                }
1396
2.52k
                visitor.visit_atomic_fence()
1397
            }
1398
1.20k
            0x10 => visitor.visit_i32_atomic_load(self.read_memarg(2)?),
1399
691
            0x11 => visitor.visit_i64_atomic_load(self.read_memarg(3)?),
1400
7.38k
            0x12 => visitor.visit_i32_atomic_load8_u(self.read_memarg(0)?),
1401
2.67k
            0x13 => visitor.visit_i32_atomic_load16_u(self.read_memarg(1)?),
1402
3.31k
            0x14 => visitor.visit_i64_atomic_load8_u(self.read_memarg(0)?),
1403
1.41k
            0x15 => visitor.visit_i64_atomic_load16_u(self.read_memarg(1)?),
1404
4.31k
            0x16 => visitor.visit_i64_atomic_load32_u(self.read_memarg(2)?),
1405
6.10k
            0x17 => visitor.visit_i32_atomic_store(self.read_memarg(2)?),
1406
5.62k
            0x18 => visitor.visit_i64_atomic_store(self.read_memarg(3)?),
1407
1.75k
            0x19 => visitor.visit_i32_atomic_store8(self.read_memarg(0)?),
1408
1.76k
            0x1a => visitor.visit_i32_atomic_store16(self.read_memarg(1)?),
1409
4.13k
            0x1b => visitor.visit_i64_atomic_store8(self.read_memarg(0)?),
1410
3.26k
            0x1c => visitor.visit_i64_atomic_store16(self.read_memarg(1)?),
1411
1.10k
            0x1d => visitor.visit_i64_atomic_store32(self.read_memarg(2)?),
1412
720
            0x1e => visitor.visit_i32_atomic_rmw_add(self.read_memarg(2)?),
1413
58.6k
            0x1f => visitor.visit_i64_atomic_rmw_add(self.read_memarg(3)?),
1414
1.44k
            0x20 => visitor.visit_i32_atomic_rmw8_add_u(self.read_memarg(0)?),
1415
1.98k
            0x21 => visitor.visit_i32_atomic_rmw16_add_u(self.read_memarg(1)?),
1416
4.23k
            0x22 => visitor.visit_i64_atomic_rmw8_add_u(self.read_memarg(0)?),
1417
8.50k
            0x23 => visitor.visit_i64_atomic_rmw16_add_u(self.read_memarg(1)?),
1418
1.99k
            0x24 => visitor.visit_i64_atomic_rmw32_add_u(self.read_memarg(2)?),
1419
2.74k
            0x25 => visitor.visit_i32_atomic_rmw_sub(self.read_memarg(2)?),
1420
649
            0x26 => visitor.visit_i64_atomic_rmw_sub(self.read_memarg(3)?),
1421
8.93k
            0x27 => visitor.visit_i32_atomic_rmw8_sub_u(self.read_memarg(0)?),
1422
850
            0x28 => visitor.visit_i32_atomic_rmw16_sub_u(self.read_memarg(1)?),
1423
2.70k
            0x29 => visitor.visit_i64_atomic_rmw8_sub_u(self.read_memarg(0)?),
1424
10.4k
            0x2a => visitor.visit_i64_atomic_rmw16_sub_u(self.read_memarg(1)?),
1425
2.15k
            0x2b => visitor.visit_i64_atomic_rmw32_sub_u(self.read_memarg(2)?),
1426
904
            0x2c => visitor.visit_i32_atomic_rmw_and(self.read_memarg(2)?),
1427
4.98k
            0x2d => visitor.visit_i64_atomic_rmw_and(self.read_memarg(3)?),
1428
2.06k
            0x2e => visitor.visit_i32_atomic_rmw8_and_u(self.read_memarg(0)?),
1429
2.37k
            0x2f => visitor.visit_i32_atomic_rmw16_and_u(self.read_memarg(1)?),
1430
6.29k
            0x30 => visitor.visit_i64_atomic_rmw8_and_u(self.read_memarg(0)?),
1431
1.98k
            0x31 => visitor.visit_i64_atomic_rmw16_and_u(self.read_memarg(1)?),
1432
2.00k
            0x32 => visitor.visit_i64_atomic_rmw32_and_u(self.read_memarg(2)?),
1433
5.88k
            0x33 => visitor.visit_i32_atomic_rmw_or(self.read_memarg(2)?),
1434
2.75k
            0x34 => visitor.visit_i64_atomic_rmw_or(self.read_memarg(3)?),
1435
4.10k
            0x35 => visitor.visit_i32_atomic_rmw8_or_u(self.read_memarg(0)?),
1436
3.68k
            0x36 => visitor.visit_i32_atomic_rmw16_or_u(self.read_memarg(1)?),
1437
2.41k
            0x37 => visitor.visit_i64_atomic_rmw8_or_u(self.read_memarg(0)?),
1438
12.0k
            0x38 => visitor.visit_i64_atomic_rmw16_or_u(self.read_memarg(1)?),
1439
15.3k
            0x39 => visitor.visit_i64_atomic_rmw32_or_u(self.read_memarg(2)?),
1440
4.62k
            0x3a => visitor.visit_i32_atomic_rmw_xor(self.read_memarg(2)?),
1441
1.88k
            0x3b => visitor.visit_i64_atomic_rmw_xor(self.read_memarg(3)?),
1442
2.36k
            0x3c => visitor.visit_i32_atomic_rmw8_xor_u(self.read_memarg(0)?),
1443
6.81k
            0x3d => visitor.visit_i32_atomic_rmw16_xor_u(self.read_memarg(1)?),
1444
8.17k
            0x3e => visitor.visit_i64_atomic_rmw8_xor_u(self.read_memarg(0)?),
1445
22.3k
            0x3f => visitor.visit_i64_atomic_rmw16_xor_u(self.read_memarg(1)?),
1446
2.10k
            0x40 => visitor.visit_i64_atomic_rmw32_xor_u(self.read_memarg(2)?),
1447
4.33k
            0x41 => visitor.visit_i32_atomic_rmw_xchg(self.read_memarg(2)?),
1448
3.32k
            0x42 => visitor.visit_i64_atomic_rmw_xchg(self.read_memarg(3)?),
1449
1.58k
            0x43 => visitor.visit_i32_atomic_rmw8_xchg_u(self.read_memarg(0)?),
1450
1.58k
            0x44 => visitor.visit_i32_atomic_rmw16_xchg_u(self.read_memarg(1)?),
1451
1.32k
            0x45 => visitor.visit_i64_atomic_rmw8_xchg_u(self.read_memarg(0)?),
1452
6.90k
            0x46 => visitor.visit_i64_atomic_rmw16_xchg_u(self.read_memarg(1)?),
1453
2.17k
            0x47 => visitor.visit_i64_atomic_rmw32_xchg_u(self.read_memarg(2)?),
1454
4.43k
            0x48 => visitor.visit_i32_atomic_rmw_cmpxchg(self.read_memarg(2)?),
1455
542
            0x49 => visitor.visit_i64_atomic_rmw_cmpxchg(self.read_memarg(3)?),
1456
1.69k
            0x4a => visitor.visit_i32_atomic_rmw8_cmpxchg_u(self.read_memarg(0)?),
1457
1.42k
            0x4b => visitor.visit_i32_atomic_rmw16_cmpxchg_u(self.read_memarg(1)?),
1458
882
            0x4c => visitor.visit_i64_atomic_rmw8_cmpxchg_u(self.read_memarg(0)?),
1459
1.51k
            0x4d => visitor.visit_i64_atomic_rmw16_cmpxchg_u(self.read_memarg(1)?),
1460
3.23k
            0x4e => visitor.visit_i64_atomic_rmw32_cmpxchg_u(self.read_memarg(2)?),
1461
1462
74
            _ => bail!(pos, "unknown 0xfe subopcode: 0x{code:x}"),
1463
        })
1464
461k
    }
<wasmparser::binary_reader::BinaryReader>::visit_0xfe_operator::<wasmprinter::operator::PrintOperator>
Line
Count
Source
1379
155k
    fn visit_0xfe_operator<T>(
1380
155k
        &mut self,
1381
155k
        pos: usize,
1382
155k
        visitor: &mut T,
1383
155k
    ) -> Result<<T as VisitOperator<'a>>::Output>
1384
155k
    where
1385
155k
        T: VisitOperator<'a>,
1386
155k
    {
1387
155k
        let code = self.read_var_u32()?;
1388
155k
        Ok(match code {
1389
5.75k
            0x00 => visitor.visit_memory_atomic_notify(self.read_memarg(2)?),
1390
50.2k
            0x01 => visitor.visit_memory_atomic_wait32(self.read_memarg(2)?),
1391
1.90k
            0x02 => visitor.visit_memory_atomic_wait64(self.read_memarg(3)?),
1392
            0x03 => {
1393
859
                if self.read_u8()? != 0 {
1394
1
                    bail!(pos, "nonzero byte after `atomic.fence`");
1395
858
                }
1396
858
                visitor.visit_atomic_fence()
1397
            }
1398
419
            0x10 => visitor.visit_i32_atomic_load(self.read_memarg(2)?),
1399
262
            0x11 => visitor.visit_i64_atomic_load(self.read_memarg(3)?),
1400
411
            0x12 => visitor.visit_i32_atomic_load8_u(self.read_memarg(0)?),
1401
1.04k
            0x13 => visitor.visit_i32_atomic_load16_u(self.read_memarg(1)?),
1402
1.05k
            0x14 => visitor.visit_i64_atomic_load8_u(self.read_memarg(0)?),
1403
247
            0x15 => visitor.visit_i64_atomic_load16_u(self.read_memarg(1)?),
1404
1.52k
            0x16 => visitor.visit_i64_atomic_load32_u(self.read_memarg(2)?),
1405
1.91k
            0x17 => visitor.visit_i32_atomic_store(self.read_memarg(2)?),
1406
1.20k
            0x18 => visitor.visit_i64_atomic_store(self.read_memarg(3)?),
1407
663
            0x19 => visitor.visit_i32_atomic_store8(self.read_memarg(0)?),
1408
735
            0x1a => visitor.visit_i32_atomic_store16(self.read_memarg(1)?),
1409
632
            0x1b => visitor.visit_i64_atomic_store8(self.read_memarg(0)?),
1410
1.37k
            0x1c => visitor.visit_i64_atomic_store16(self.read_memarg(1)?),
1411
399
            0x1d => visitor.visit_i64_atomic_store32(self.read_memarg(2)?),
1412
238
            0x1e => visitor.visit_i32_atomic_rmw_add(self.read_memarg(2)?),
1413
19.7k
            0x1f => visitor.visit_i64_atomic_rmw_add(self.read_memarg(3)?),
1414
368
            0x20 => visitor.visit_i32_atomic_rmw8_add_u(self.read_memarg(0)?),
1415
734
            0x21 => visitor.visit_i32_atomic_rmw16_add_u(self.read_memarg(1)?),
1416
383
            0x22 => visitor.visit_i64_atomic_rmw8_add_u(self.read_memarg(0)?),
1417
2.94k
            0x23 => visitor.visit_i64_atomic_rmw16_add_u(self.read_memarg(1)?),
1418
743
            0x24 => visitor.visit_i64_atomic_rmw32_add_u(self.read_memarg(2)?),
1419
643
            0x25 => visitor.visit_i32_atomic_rmw_sub(self.read_memarg(2)?),
1420
193
            0x26 => visitor.visit_i64_atomic_rmw_sub(self.read_memarg(3)?),
1421
3.23k
            0x27 => visitor.visit_i32_atomic_rmw8_sub_u(self.read_memarg(0)?),
1422
237
            0x28 => visitor.visit_i32_atomic_rmw16_sub_u(self.read_memarg(1)?),
1423
719
            0x29 => visitor.visit_i64_atomic_rmw8_sub_u(self.read_memarg(0)?),
1424
3.98k
            0x2a => visitor.visit_i64_atomic_rmw16_sub_u(self.read_memarg(1)?),
1425
854
            0x2b => visitor.visit_i64_atomic_rmw32_sub_u(self.read_memarg(2)?),
1426
249
            0x2c => visitor.visit_i32_atomic_rmw_and(self.read_memarg(2)?),
1427
1.47k
            0x2d => visitor.visit_i64_atomic_rmw_and(self.read_memarg(3)?),
1428
605
            0x2e => visitor.visit_i32_atomic_rmw8_and_u(self.read_memarg(0)?),
1429
870
            0x2f => visitor.visit_i32_atomic_rmw16_and_u(self.read_memarg(1)?),
1430
1.23k
            0x30 => visitor.visit_i64_atomic_rmw8_and_u(self.read_memarg(0)?),
1431
738
            0x31 => visitor.visit_i64_atomic_rmw16_and_u(self.read_memarg(1)?),
1432
756
            0x32 => visitor.visit_i64_atomic_rmw32_and_u(self.read_memarg(2)?),
1433
2.22k
            0x33 => visitor.visit_i32_atomic_rmw_or(self.read_memarg(2)?),
1434
1.15k
            0x34 => visitor.visit_i64_atomic_rmw_or(self.read_memarg(3)?),
1435
868
            0x35 => visitor.visit_i32_atomic_rmw8_or_u(self.read_memarg(0)?),
1436
1.55k
            0x36 => visitor.visit_i32_atomic_rmw16_or_u(self.read_memarg(1)?),
1437
945
            0x37 => visitor.visit_i64_atomic_rmw8_or_u(self.read_memarg(0)?),
1438
4.59k
            0x38 => visitor.visit_i64_atomic_rmw16_or_u(self.read_memarg(1)?),
1439
5.22k
            0x39 => visitor.visit_i64_atomic_rmw32_or_u(self.read_memarg(2)?),
1440
1.25k
            0x3a => visitor.visit_i32_atomic_rmw_xor(self.read_memarg(2)?),
1441
672
            0x3b => visitor.visit_i64_atomic_rmw_xor(self.read_memarg(3)?),
1442
623
            0x3c => visitor.visit_i32_atomic_rmw8_xor_u(self.read_memarg(0)?),
1443
2.02k
            0x3d => visitor.visit_i32_atomic_rmw16_xor_u(self.read_memarg(1)?),
1444
2.93k
            0x3e => visitor.visit_i64_atomic_rmw8_xor_u(self.read_memarg(0)?),
1445
7.62k
            0x3f => visitor.visit_i64_atomic_rmw16_xor_u(self.read_memarg(1)?),
1446
330
            0x40 => visitor.visit_i64_atomic_rmw32_xor_u(self.read_memarg(2)?),
1447
1.90k
            0x41 => visitor.visit_i32_atomic_rmw_xchg(self.read_memarg(2)?),
1448
989
            0x42 => visitor.visit_i64_atomic_rmw_xchg(self.read_memarg(3)?),
1449
615
            0x43 => visitor.visit_i32_atomic_rmw8_xchg_u(self.read_memarg(0)?),
1450
627
            0x44 => visitor.visit_i32_atomic_rmw16_xchg_u(self.read_memarg(1)?),
1451
550
            0x45 => visitor.visit_i64_atomic_rmw8_xchg_u(self.read_memarg(0)?),
1452
2.36k
            0x46 => visitor.visit_i64_atomic_rmw16_xchg_u(self.read_memarg(1)?),
1453
370
            0x47 => visitor.visit_i64_atomic_rmw32_xchg_u(self.read_memarg(2)?),
1454
1.86k
            0x48 => visitor.visit_i32_atomic_rmw_cmpxchg(self.read_memarg(2)?),
1455
177
            0x49 => visitor.visit_i64_atomic_rmw_cmpxchg(self.read_memarg(3)?),
1456
469
            0x4a => visitor.visit_i32_atomic_rmw8_cmpxchg_u(self.read_memarg(0)?),
1457
474
            0x4b => visitor.visit_i32_atomic_rmw16_cmpxchg_u(self.read_memarg(1)?),
1458
199
            0x4c => visitor.visit_i64_atomic_rmw8_cmpxchg_u(self.read_memarg(0)?),
1459
411
            0x4d => visitor.visit_i64_atomic_rmw16_cmpxchg_u(self.read_memarg(1)?),
1460
1.12k
            0x4e => visitor.visit_i64_atomic_rmw32_cmpxchg_u(self.read_memarg(2)?),
1461
1462
5
            _ => bail!(pos, "unknown 0xfe subopcode: 0x{code:x}"),
1463
        })
1464
155k
    }
<wasmparser::binary_reader::BinaryReader>::visit_0xfe_operator::<wasmparser::validator::operators::WasmProposalValidator<wasmparser::validator::core::ValidatorResources>>
Line
Count
Source
1379
21.9k
    fn visit_0xfe_operator<T>(
1380
21.9k
        &mut self,
1381
21.9k
        pos: usize,
1382
21.9k
        visitor: &mut T,
1383
21.9k
    ) -> Result<<T as VisitOperator<'a>>::Output>
1384
21.9k
    where
1385
21.9k
        T: VisitOperator<'a>,
1386
21.9k
    {
1387
21.9k
        let code = self.read_var_u32()?;
1388
21.9k
        Ok(match code {
1389
22
            0x00 => visitor.visit_memory_atomic_notify(self.read_memarg(2)?),
1390
1.02k
            0x01 => visitor.visit_memory_atomic_wait32(self.read_memarg(2)?),
1391
2.68k
            0x02 => visitor.visit_memory_atomic_wait64(self.read_memarg(3)?),
1392
            0x03 => {
1393
343
                if self.read_u8()? != 0 {
1394
2
                    bail!(pos, "nonzero byte after `atomic.fence`");
1395
340
                }
1396
340
                visitor.visit_atomic_fence()
1397
            }
1398
6
            0x10 => visitor.visit_i32_atomic_load(self.read_memarg(2)?),
1399
4
            0x11 => visitor.visit_i64_atomic_load(self.read_memarg(3)?),
1400
5.97k
            0x12 => visitor.visit_i32_atomic_load8_u(self.read_memarg(0)?),
1401
9
            0x13 => visitor.visit_i32_atomic_load16_u(self.read_memarg(1)?),
1402
45
            0x14 => visitor.visit_i64_atomic_load8_u(self.read_memarg(0)?),
1403
7
            0x15 => visitor.visit_i64_atomic_load16_u(self.read_memarg(1)?),
1404
165
            0x16 => visitor.visit_i64_atomic_load32_u(self.read_memarg(2)?),
1405
5
            0x17 => visitor.visit_i32_atomic_store(self.read_memarg(2)?),
1406
11
            0x18 => visitor.visit_i64_atomic_store(self.read_memarg(3)?),
1407
19
            0x19 => visitor.visit_i32_atomic_store8(self.read_memarg(0)?),
1408
4
            0x1a => visitor.visit_i32_atomic_store16(self.read_memarg(1)?),
1409
1.95k
            0x1b => visitor.visit_i64_atomic_store8(self.read_memarg(0)?),
1410
6
            0x1c => visitor.visit_i64_atomic_store16(self.read_memarg(1)?),
1411
4
            0x1d => visitor.visit_i64_atomic_store32(self.read_memarg(2)?),
1412
1
            0x1e => visitor.visit_i32_atomic_rmw_add(self.read_memarg(2)?),
1413
4
            0x1f => visitor.visit_i64_atomic_rmw_add(self.read_memarg(3)?),
1414
294
            0x20 => visitor.visit_i32_atomic_rmw8_add_u(self.read_memarg(0)?),
1415
8
            0x21 => visitor.visit_i32_atomic_rmw16_add_u(self.read_memarg(1)?),
1416
2.87k
            0x22 => visitor.visit_i64_atomic_rmw8_add_u(self.read_memarg(0)?),
1417
3
            0x23 => visitor.visit_i64_atomic_rmw16_add_u(self.read_memarg(1)?),
1418
11
            0x24 => visitor.visit_i64_atomic_rmw32_add_u(self.read_memarg(2)?),
1419
7
            0x25 => visitor.visit_i32_atomic_rmw_sub(self.read_memarg(2)?),
1420
4
            0x26 => visitor.visit_i64_atomic_rmw_sub(self.read_memarg(3)?),
1421
52
            0x27 => visitor.visit_i32_atomic_rmw8_sub_u(self.read_memarg(0)?),
1422
4
            0x28 => visitor.visit_i32_atomic_rmw16_sub_u(self.read_memarg(1)?),
1423
369
            0x29 => visitor.visit_i64_atomic_rmw8_sub_u(self.read_memarg(0)?),
1424
4
            0x2a => visitor.visit_i64_atomic_rmw16_sub_u(self.read_memarg(1)?),
1425
7
            0x2b => visitor.visit_i64_atomic_rmw32_sub_u(self.read_memarg(2)?),
1426
3
            0x2c => visitor.visit_i32_atomic_rmw_and(self.read_memarg(2)?),
1427
23
            0x2d => visitor.visit_i64_atomic_rmw_and(self.read_memarg(3)?),
1428
192
            0x2e => visitor.visit_i32_atomic_rmw8_and_u(self.read_memarg(0)?),
1429
5
            0x2f => visitor.visit_i32_atomic_rmw16_and_u(self.read_memarg(1)?),
1430
2.53k
            0x30 => visitor.visit_i64_atomic_rmw8_and_u(self.read_memarg(0)?),
1431
6
            0x31 => visitor.visit_i64_atomic_rmw16_and_u(self.read_memarg(1)?),
1432
4
            0x32 => visitor.visit_i64_atomic_rmw32_and_u(self.read_memarg(2)?),
1433
7
            0x33 => visitor.visit_i32_atomic_rmw_or(self.read_memarg(2)?),
1434
4
            0x34 => visitor.visit_i64_atomic_rmw_or(self.read_memarg(3)?),
1435
1.50k
            0x35 => visitor.visit_i32_atomic_rmw8_or_u(self.read_memarg(0)?),
1436
6
            0x36 => visitor.visit_i32_atomic_rmw16_or_u(self.read_memarg(1)?),
1437
7
            0x37 => visitor.visit_i64_atomic_rmw8_or_u(self.read_memarg(0)?),
1438
4
            0x38 => visitor.visit_i64_atomic_rmw16_or_u(self.read_memarg(1)?),
1439
4
            0x39 => visitor.visit_i64_atomic_rmw32_or_u(self.read_memarg(2)?),
1440
117
            0x3a => visitor.visit_i32_atomic_rmw_xor(self.read_memarg(2)?),
1441
8
            0x3b => visitor.visit_i64_atomic_rmw_xor(self.read_memarg(3)?),
1442
488
            0x3c => visitor.visit_i32_atomic_rmw8_xor_u(self.read_memarg(0)?),
1443
4
            0x3d => visitor.visit_i32_atomic_rmw16_xor_u(self.read_memarg(1)?),
1444
121
            0x3e => visitor.visit_i64_atomic_rmw8_xor_u(self.read_memarg(0)?),
1445
16
            0x3f => visitor.visit_i64_atomic_rmw16_xor_u(self.read_memarg(1)?),
1446
4
            0x40 => visitor.visit_i64_atomic_rmw32_xor_u(self.read_memarg(2)?),
1447
5
            0x41 => visitor.visit_i32_atomic_rmw_xchg(self.read_memarg(2)?),
1448
15
            0x42 => visitor.visit_i64_atomic_rmw_xchg(self.read_memarg(3)?),
1449
8
            0x43 => visitor.visit_i32_atomic_rmw8_xchg_u(self.read_memarg(0)?),
1450
5
            0x44 => visitor.visit_i32_atomic_rmw16_xchg_u(self.read_memarg(1)?),
1451
2
            0x45 => visitor.visit_i64_atomic_rmw8_xchg_u(self.read_memarg(0)?),
1452
2
            0x46 => visitor.visit_i64_atomic_rmw16_xchg_u(self.read_memarg(1)?),
1453
10
            0x47 => visitor.visit_i64_atomic_rmw32_xchg_u(self.read_memarg(2)?),
1454
10
            0x48 => visitor.visit_i32_atomic_rmw_cmpxchg(self.read_memarg(2)?),
1455
8
            0x49 => visitor.visit_i64_atomic_rmw_cmpxchg(self.read_memarg(3)?),
1456
453
            0x4a => visitor.visit_i32_atomic_rmw8_cmpxchg_u(self.read_memarg(0)?),
1457
3
            0x4b => visitor.visit_i32_atomic_rmw16_cmpxchg_u(self.read_memarg(1)?),
1458
14
            0x4c => visitor.visit_i64_atomic_rmw8_cmpxchg_u(self.read_memarg(0)?),
1459
412
            0x4d => visitor.visit_i64_atomic_rmw16_cmpxchg_u(self.read_memarg(1)?),
1460
1
            0x4e => visitor.visit_i64_atomic_rmw32_cmpxchg_u(self.read_memarg(2)?),
1461
1462
9
            _ => bail!(pos, "unknown 0xfe subopcode: 0x{code:x}"),
1463
        })
1464
21.9k
    }
<wasmparser::binary_reader::BinaryReader>::visit_0xfe_operator::<wasmparser::binary_reader::OperatorFactory>
Line
Count
Source
1379
283k
    fn visit_0xfe_operator<T>(
1380
283k
        &mut self,
1381
283k
        pos: usize,
1382
283k
        visitor: &mut T,
1383
283k
    ) -> Result<<T as VisitOperator<'a>>::Output>
1384
283k
    where
1385
283k
        T: VisitOperator<'a>,
1386
283k
    {
1387
283k
        let code = self.read_var_u32()?;
1388
283k
        Ok(match code {
1389
9.86k
            0x00 => visitor.visit_memory_atomic_notify(self.read_memarg(2)?),
1390
82.5k
            0x01 => visitor.visit_memory_atomic_wait32(self.read_memarg(2)?),
1391
3.66k
            0x02 => visitor.visit_memory_atomic_wait64(self.read_memarg(3)?),
1392
            0x03 => {
1393
1.33k
                if self.read_u8()? != 0 {
1394
1
                    bail!(pos, "nonzero byte after `atomic.fence`");
1395
1.32k
                }
1396
1.32k
                visitor.visit_atomic_fence()
1397
            }
1398
780
            0x10 => visitor.visit_i32_atomic_load(self.read_memarg(2)?),
1399
424
            0x11 => visitor.visit_i64_atomic_load(self.read_memarg(3)?),
1400
1.00k
            0x12 => visitor.visit_i32_atomic_load8_u(self.read_memarg(0)?),
1401
1.61k
            0x13 => visitor.visit_i32_atomic_load16_u(self.read_memarg(1)?),
1402
2.21k
            0x14 => visitor.visit_i64_atomic_load8_u(self.read_memarg(0)?),
1403
1.16k
            0x15 => visitor.visit_i64_atomic_load16_u(self.read_memarg(1)?),
1404
2.62k
            0x16 => visitor.visit_i64_atomic_load32_u(self.read_memarg(2)?),
1405
4.17k
            0x17 => visitor.visit_i32_atomic_store(self.read_memarg(2)?),
1406
4.40k
            0x18 => visitor.visit_i64_atomic_store(self.read_memarg(3)?),
1407
1.07k
            0x19 => visitor.visit_i32_atomic_store8(self.read_memarg(0)?),
1408
1.02k
            0x1a => visitor.visit_i32_atomic_store16(self.read_memarg(1)?),
1409
1.54k
            0x1b => visitor.visit_i64_atomic_store8(self.read_memarg(0)?),
1410
1.87k
            0x1c => visitor.visit_i64_atomic_store16(self.read_memarg(1)?),
1411
705
            0x1d => visitor.visit_i64_atomic_store32(self.read_memarg(2)?),
1412
481
            0x1e => visitor.visit_i32_atomic_rmw_add(self.read_memarg(2)?),
1413
38.8k
            0x1f => visitor.visit_i64_atomic_rmw_add(self.read_memarg(3)?),
1414
777
            0x20 => visitor.visit_i32_atomic_rmw8_add_u(self.read_memarg(0)?),
1415
1.24k
            0x21 => visitor.visit_i32_atomic_rmw16_add_u(self.read_memarg(1)?),
1416
967
            0x22 => visitor.visit_i64_atomic_rmw8_add_u(self.read_memarg(0)?),
1417
5.54k
            0x23 => visitor.visit_i64_atomic_rmw16_add_u(self.read_memarg(1)?),
1418
1.24k
            0x24 => visitor.visit_i64_atomic_rmw32_add_u(self.read_memarg(2)?),
1419
2.09k
            0x25 => visitor.visit_i32_atomic_rmw_sub(self.read_memarg(2)?),
1420
451
            0x26 => visitor.visit_i64_atomic_rmw_sub(self.read_memarg(3)?),
1421
5.64k
            0x27 => visitor.visit_i32_atomic_rmw8_sub_u(self.read_memarg(0)?),
1422
609
            0x28 => visitor.visit_i32_atomic_rmw16_sub_u(self.read_memarg(1)?),
1423
1.61k
            0x29 => visitor.visit_i64_atomic_rmw8_sub_u(self.read_memarg(0)?),
1424
6.44k
            0x2a => visitor.visit_i64_atomic_rmw16_sub_u(self.read_memarg(1)?),
1425
1.29k
            0x2b => visitor.visit_i64_atomic_rmw32_sub_u(self.read_memarg(2)?),
1426
650
            0x2c => visitor.visit_i32_atomic_rmw_and(self.read_memarg(2)?),
1427
3.48k
            0x2d => visitor.visit_i64_atomic_rmw_and(self.read_memarg(3)?),
1428
1.27k
            0x2e => visitor.visit_i32_atomic_rmw8_and_u(self.read_memarg(0)?),
1429
1.50k
            0x2f => visitor.visit_i32_atomic_rmw16_and_u(self.read_memarg(1)?),
1430
2.51k
            0x30 => visitor.visit_i64_atomic_rmw8_and_u(self.read_memarg(0)?),
1431
1.22k
            0x31 => visitor.visit_i64_atomic_rmw16_and_u(self.read_memarg(1)?),
1432
1.24k
            0x32 => visitor.visit_i64_atomic_rmw32_and_u(self.read_memarg(2)?),
1433
3.64k
            0x33 => visitor.visit_i32_atomic_rmw_or(self.read_memarg(2)?),
1434
1.58k
            0x34 => visitor.visit_i64_atomic_rmw_or(self.read_memarg(3)?),
1435
1.72k
            0x35 => visitor.visit_i32_atomic_rmw8_or_u(self.read_memarg(0)?),
1436
2.12k
            0x36 => visitor.visit_i32_atomic_rmw16_or_u(self.read_memarg(1)?),
1437
1.45k
            0x37 => visitor.visit_i64_atomic_rmw8_or_u(self.read_memarg(0)?),
1438
7.50k
            0x38 => visitor.visit_i64_atomic_rmw16_or_u(self.read_memarg(1)?),
1439
10.0k
            0x39 => visitor.visit_i64_atomic_rmw32_or_u(self.read_memarg(2)?),
1440
3.25k
            0x3a => visitor.visit_i32_atomic_rmw_xor(self.read_memarg(2)?),
1441
1.20k
            0x3b => visitor.visit_i64_atomic_rmw_xor(self.read_memarg(3)?),
1442
1.25k
            0x3c => visitor.visit_i32_atomic_rmw8_xor_u(self.read_memarg(0)?),
1443
4.78k
            0x3d => visitor.visit_i32_atomic_rmw16_xor_u(self.read_memarg(1)?),
1444
5.11k
            0x3e => visitor.visit_i64_atomic_rmw8_xor_u(self.read_memarg(0)?),
1445
14.7k
            0x3f => visitor.visit_i64_atomic_rmw16_xor_u(self.read_memarg(1)?),
1446
1.77k
            0x40 => visitor.visit_i64_atomic_rmw32_xor_u(self.read_memarg(2)?),
1447
2.41k
            0x41 => visitor.visit_i32_atomic_rmw_xchg(self.read_memarg(2)?),
1448
2.31k
            0x42 => visitor.visit_i64_atomic_rmw_xchg(self.read_memarg(3)?),
1449
963
            0x43 => visitor.visit_i32_atomic_rmw8_xchg_u(self.read_memarg(0)?),
1450
957
            0x44 => visitor.visit_i32_atomic_rmw16_xchg_u(self.read_memarg(1)?),
1451
773
            0x45 => visitor.visit_i64_atomic_rmw8_xchg_u(self.read_memarg(0)?),
1452
4.53k
            0x46 => visitor.visit_i64_atomic_rmw16_xchg_u(self.read_memarg(1)?),
1453
1.79k
            0x47 => visitor.visit_i64_atomic_rmw32_xchg_u(self.read_memarg(2)?),
1454
2.56k
            0x48 => visitor.visit_i32_atomic_rmw_cmpxchg(self.read_memarg(2)?),
1455
357
            0x49 => visitor.visit_i64_atomic_rmw_cmpxchg(self.read_memarg(3)?),
1456
773
            0x4a => visitor.visit_i32_atomic_rmw8_cmpxchg_u(self.read_memarg(0)?),
1457
952
            0x4b => visitor.visit_i32_atomic_rmw16_cmpxchg_u(self.read_memarg(1)?),
1458
668
            0x4c => visitor.visit_i64_atomic_rmw8_cmpxchg_u(self.read_memarg(0)?),
1459
694
            0x4d => visitor.visit_i64_atomic_rmw16_cmpxchg_u(self.read_memarg(1)?),
1460
2.10k
            0x4e => visitor.visit_i64_atomic_rmw32_cmpxchg_u(self.read_memarg(2)?),
1461
1462
60
            _ => bail!(pos, "unknown 0xfe subopcode: 0x{code:x}"),
1463
        })
1464
283k
    }
<wasmparser::binary_reader::BinaryReader>::visit_0xfe_operator::<<wasmparser::validator::core::ModuleState>::check_const_expr::VisitConstOperator>
Line
Count
Source
1379
84
    fn visit_0xfe_operator<T>(
1380
84
        &mut self,
1381
84
        pos: usize,
1382
84
        visitor: &mut T,
1383
84
    ) -> Result<<T as VisitOperator<'a>>::Output>
1384
84
    where
1385
84
        T: VisitOperator<'a>,
1386
84
    {
1387
84
        let code = self.read_var_u32()?;
1388
84
        Ok(match code {
1389
2
            0x00 => visitor.visit_memory_atomic_notify(self.read_memarg(2)?),
1390
3
            0x01 => visitor.visit_memory_atomic_wait32(self.read_memarg(2)?),
1391
0
            0x02 => visitor.visit_memory_atomic_wait64(self.read_memarg(3)?),
1392
            0x03 => {
1393
2
                if self.read_u8()? != 0 {
1394
0
                    bail!(pos, "nonzero byte after `atomic.fence`");
1395
2
                }
1396
2
                visitor.visit_atomic_fence()
1397
            }
1398
1
            0x10 => visitor.visit_i32_atomic_load(self.read_memarg(2)?),
1399
1
            0x11 => visitor.visit_i64_atomic_load(self.read_memarg(3)?),
1400
1
            0x12 => visitor.visit_i32_atomic_load8_u(self.read_memarg(0)?),
1401
0
            0x13 => visitor.visit_i32_atomic_load16_u(self.read_memarg(1)?),
1402
1
            0x14 => visitor.visit_i64_atomic_load8_u(self.read_memarg(0)?),
1403
1
            0x15 => visitor.visit_i64_atomic_load16_u(self.read_memarg(1)?),
1404
0
            0x16 => visitor.visit_i64_atomic_load32_u(self.read_memarg(2)?),
1405
1
            0x17 => visitor.visit_i32_atomic_store(self.read_memarg(2)?),
1406
0
            0x18 => visitor.visit_i64_atomic_store(self.read_memarg(3)?),
1407
1
            0x19 => visitor.visit_i32_atomic_store8(self.read_memarg(0)?),
1408
1
            0x1a => visitor.visit_i32_atomic_store16(self.read_memarg(1)?),
1409
1
            0x1b => visitor.visit_i64_atomic_store8(self.read_memarg(0)?),
1410
1
            0x1c => visitor.visit_i64_atomic_store16(self.read_memarg(1)?),
1411
1
            0x1d => visitor.visit_i64_atomic_store32(self.read_memarg(2)?),
1412
0
            0x1e => visitor.visit_i32_atomic_rmw_add(self.read_memarg(2)?),
1413
0
            0x1f => visitor.visit_i64_atomic_rmw_add(self.read_memarg(3)?),
1414
2
            0x20 => visitor.visit_i32_atomic_rmw8_add_u(self.read_memarg(0)?),
1415
0
            0x21 => visitor.visit_i32_atomic_rmw16_add_u(self.read_memarg(1)?),
1416
2
            0x22 => visitor.visit_i64_atomic_rmw8_add_u(self.read_memarg(0)?),
1417
2
            0x23 => visitor.visit_i64_atomic_rmw16_add_u(self.read_memarg(1)?),
1418
0
            0x24 => visitor.visit_i64_atomic_rmw32_add_u(self.read_memarg(2)?),
1419
2
            0x25 => visitor.visit_i32_atomic_rmw_sub(self.read_memarg(2)?),
1420
1
            0x26 => visitor.visit_i64_atomic_rmw_sub(self.read_memarg(3)?),
1421
2
            0x27 => visitor.visit_i32_atomic_rmw8_sub_u(self.read_memarg(0)?),
1422
0
            0x28 => visitor.visit_i32_atomic_rmw16_sub_u(self.read_memarg(1)?),
1423
1
            0x29 => visitor.visit_i64_atomic_rmw8_sub_u(self.read_memarg(0)?),
1424
0
            0x2a => visitor.visit_i64_atomic_rmw16_sub_u(self.read_memarg(1)?),
1425
0
            0x2b => visitor.visit_i64_atomic_rmw32_sub_u(self.read_memarg(2)?),
1426
2
            0x2c => visitor.visit_i32_atomic_rmw_and(self.read_memarg(2)?),
1427
0
            0x2d => visitor.visit_i64_atomic_rmw_and(self.read_memarg(3)?),
1428
0
            0x2e => visitor.visit_i32_atomic_rmw8_and_u(self.read_memarg(0)?),
1429
2
            0x2f => visitor.visit_i32_atomic_rmw16_and_u(self.read_memarg(1)?),
1430
0
            0x30 => visitor.visit_i64_atomic_rmw8_and_u(self.read_memarg(0)?),
1431
10
            0x31 => visitor.visit_i64_atomic_rmw16_and_u(self.read_memarg(1)?),
1432
2
            0x32 => visitor.visit_i64_atomic_rmw32_and_u(self.read_memarg(2)?),
1433
2
            0x33 => visitor.visit_i32_atomic_rmw_or(self.read_memarg(2)?),
1434
7
            0x34 => visitor.visit_i64_atomic_rmw_or(self.read_memarg(3)?),
1435
1
            0x35 => visitor.visit_i32_atomic_rmw8_or_u(self.read_memarg(0)?),
1436
1
            0x36 => visitor.visit_i32_atomic_rmw16_or_u(self.read_memarg(1)?),
1437
1
            0x37 => visitor.visit_i64_atomic_rmw8_or_u(self.read_memarg(0)?),
1438
1
            0x38 => visitor.visit_i64_atomic_rmw16_or_u(self.read_memarg(1)?),
1439
2
            0x39 => visitor.visit_i64_atomic_rmw32_or_u(self.read_memarg(2)?),
1440
1
            0x3a => visitor.visit_i32_atomic_rmw_xor(self.read_memarg(2)?),
1441
0
            0x3b => visitor.visit_i64_atomic_rmw_xor(self.read_memarg(3)?),
1442
3
            0x3c => visitor.visit_i32_atomic_rmw8_xor_u(self.read_memarg(0)?),
1443
0
            0x3d => visitor.visit_i32_atomic_rmw16_xor_u(self.read_memarg(1)?),
1444
3
            0x3e => visitor.visit_i64_atomic_rmw8_xor_u(self.read_memarg(0)?),
1445
1
            0x3f => visitor.visit_i64_atomic_rmw16_xor_u(self.read_memarg(1)?),
1446
1
            0x40 => visitor.visit_i64_atomic_rmw32_xor_u(self.read_memarg(2)?),
1447
1
            0x41 => visitor.visit_i32_atomic_rmw_xchg(self.read_memarg(2)?),
1448
1
            0x42 => visitor.visit_i64_atomic_rmw_xchg(self.read_memarg(3)?),
1449
0
            0x43 => visitor.visit_i32_atomic_rmw8_xchg_u(self.read_memarg(0)?),
1450
0
            0x44 => visitor.visit_i32_atomic_rmw16_xchg_u(self.read_memarg(1)?),
1451
2
            0x45 => visitor.visit_i64_atomic_rmw8_xchg_u(self.read_memarg(0)?),
1452
1
            0x46 => visitor.visit_i64_atomic_rmw16_xchg_u(self.read_memarg(1)?),
1453
1
            0x47 => visitor.visit_i64_atomic_rmw32_xchg_u(self.read_memarg(2)?),
1454
2
            0x48 => visitor.visit_i32_atomic_rmw_cmpxchg(self.read_memarg(2)?),
1455
0
            0x49 => visitor.visit_i64_atomic_rmw_cmpxchg(self.read_memarg(3)?),
1456
2
            0x4a => visitor.visit_i32_atomic_rmw8_cmpxchg_u(self.read_memarg(0)?),
1457
0
            0x4b => visitor.visit_i32_atomic_rmw16_cmpxchg_u(self.read_memarg(1)?),
1458
1
            0x4c => visitor.visit_i64_atomic_rmw8_cmpxchg_u(self.read_memarg(0)?),
1459
2
            0x4d => visitor.visit_i64_atomic_rmw16_cmpxchg_u(self.read_memarg(1)?),
1460
1
            0x4e => visitor.visit_i64_atomic_rmw32_cmpxchg_u(self.read_memarg(2)?),
1461
1462
0
            _ => bail!(pos, "unknown 0xfe subopcode: 0x{code:x}"),
1463
        })
1464
84
    }
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReader>::visit_0xfe_operator::<wit_component::gc::Encoder>
Unexecuted instantiation: <wasmparser::binary_reader::BinaryReader>::visit_0xfe_operator::<wit_component::gc::Module>
1465
1466
    /// Reads the next available `Operator`.
1467
    ///
1468
    /// # Errors
1469
    ///
1470
    /// If `BinaryReader` has less bytes remaining than required to parse
1471
    /// the `Operator`.
1472
89.7M
    pub fn read_operator(&mut self) -> Result<Operator<'a>> {
1473
89.7M
        self.visit_operator(&mut OperatorFactory::new())
1474
89.7M
    }
1475
1476
1.47M
    fn read_lane_index(&mut self, max: u8) -> Result<u8> {
1477
1.47M
        let index = self.read_u8()?;
1478
1.47M
        if index >= max {
1479
396
            return Err(BinaryReaderError::new(
1480
396
                "invalid lane index",
1481
396
                self.original_position() - 1,
1482
396
            ));
1483
1.47M
        }
1484
1.47M
        Ok(index)
1485
1.47M
    }
1486
1487
9.32M
    fn read_v128(&mut self) -> Result<V128> {
1488
9.32M
        let mut bytes = [0; 16];
1489
9.32M
        bytes.clone_from_slice(self.read_bytes(16)?);
1490
9.32M
        Ok(V128(bytes))
1491
9.32M
    }
1492
1493
578k
    pub(crate) fn read_header_version(&mut self) -> Result<u32> {
1494
578k
        let magic_number = self.read_bytes(4)?;
1495
555k
        if magic_number != WASM_MAGIC_NUMBER {
1496
432
            return Err(BinaryReaderError::new(
1497
432
                "magic header not detected: bad magic number",
1498
432
                self.original_position() - 4,
1499
432
            ));
1500
555k
        }
1501
555k
        self.read_u32()
1502
578k
    }
1503
1504
33.5M
    pub(crate) fn skip_const_expr(&mut self) -> Result<()> {
1505
        // TODO add skip_operator() method and/or validate ConstExpr operators.
1506
        loop {
1507
82.0M
            if let Operator::End = self.read_operator()? {
1508
33.5M
                return Ok(());
1509
48.4M
            }
1510
        }
1511
33.5M
    }
1512
}
1513
1514
impl<'a> BrTable<'a> {
1515
    /// Returns the number of `br_table` entries, not including the default
1516
    /// label
1517
0
    pub fn len(&self) -> u32 {
1518
0
        self.cnt
1519
0
    }
1520
1521
    /// Returns whether `BrTable` doesn't have any labels apart from the default one.
1522
0
    pub fn is_empty(&self) -> bool {
1523
0
        self.len() == 0
1524
0
    }
1525
1526
    /// Returns the default target of this `br_table` instruction.
1527
130k
    pub fn default(&self) -> u32 {
1528
130k
        self.default
1529
130k
    }
1530
1531
    /// Returns the list of targets that this `br_table` instruction will be
1532
    /// jumping to.
1533
    ///
1534
    /// This method will return an iterator which parses each target of this
1535
    /// `br_table` except the default target. The returned iterator will
1536
    /// yield `self.len()` elements.
1537
    ///
1538
    /// # Examples
1539
    ///
1540
    /// ```rust
1541
    /// let buf = [0x0e, 0x02, 0x01, 0x02, 0x00];
1542
    /// let mut reader = wasmparser::BinaryReader::new(&buf);
1543
    /// let op = reader.read_operator().unwrap();
1544
    /// if let wasmparser::Operator::BrTable { targets } = op {
1545
    ///     let targets = targets.targets().collect::<Result<Vec<_>, _>>().unwrap();
1546
    ///     assert_eq!(targets, [1, 2]);
1547
    /// }
1548
    /// ```
1549
130k
    pub fn targets(&self) -> BrTableTargets {
1550
130k
        BrTableTargets {
1551
130k
            reader: self.reader.clone(),
1552
130k
            remaining: self.cnt,
1553
130k
        }
1554
130k
    }
1555
}
1556
1557
/// An iterator over the targets of a [`BrTable`].
1558
///
1559
/// # Note
1560
///
1561
/// This iterator parses each target of the underlying `br_table`
1562
/// except for the default target.
1563
/// The iterator will yield exactly as many targets as the `br_table` has.
1564
pub struct BrTableTargets<'a> {
1565
    reader: crate::BinaryReader<'a>,
1566
    remaining: u32,
1567
}
1568
1569
impl<'a> Iterator for BrTableTargets<'a> {
1570
    type Item = Result<u32>;
1571
1572
6.82k
    fn size_hint(&self) -> (usize, Option<usize>) {
1573
6.82k
        let remaining = usize::try_from(self.remaining).unwrap_or_else(|error| {
1574
0
            panic!("could not convert remaining `u32` into `usize`: {}", error)
1575
6.82k
        });
1576
6.82k
        (remaining, Some(remaining))
1577
6.82k
    }
1578
1579
3.00M
    fn next(&mut self) -> Option<Self::Item> {
1580
3.00M
        if self.remaining == 0 {
1581
130k
            if !self.reader.eof() {
1582
0
                return Some(Err(BinaryReaderError::new(
1583
0
                    "trailing data in br_table",
1584
0
                    self.reader.original_position(),
1585
0
                )));
1586
130k
            }
1587
130k
            return None;
1588
2.87M
        }
1589
2.87M
        self.remaining -= 1;
1590
2.87M
        Some(self.reader.read_var_u32())
1591
3.00M
    }
1592
}
1593
1594
impl fmt::Debug for BrTable<'_> {
1595
0
    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
1596
0
        let mut f = f.debug_struct("BrTable");
1597
0
        f.field("count", &self.cnt);
1598
0
        f.field("default", &self.default);
1599
0
        match self.targets().collect::<Result<Vec<_>>>() {
1600
0
            Ok(targets) => {
1601
0
                f.field("targets", &targets);
1602
0
            }
1603
0
            Err(_) => {
1604
0
                f.field("reader", &self.reader);
1605
0
            }
1606
        }
1607
0
        f.finish()
1608
0
    }
1609
}
1610
1611
/// A factory to construct [`Operator`] instances via the [`VisitOperator`] trait.
1612
struct OperatorFactory<'a> {
1613
    marker: core::marker::PhantomData<fn() -> &'a ()>,
1614
}
1615
1616
impl<'a> OperatorFactory<'a> {
1617
    /// Creates a new [`OperatorFactory`].
1618
89.7M
    fn new() -> Self {
1619
89.7M
        Self {
1620
89.7M
            marker: core::marker::PhantomData,
1621
89.7M
        }
1622
89.7M
    }
1623
}
1624
1625
macro_rules! define_visit_operator {
1626
    ($(@$proposal:ident $op:ident $({ $($arg:ident: $argty:ty),* })? => $visit:ident)*) => {
1627
        $(
1628
89.7M
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
89.7M
                Operator::$op $({ $($arg),* })?
1630
89.7M
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i8x16_relaxed_swizzle
Line
Count
Source
1628
1.10k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
1.10k
                Operator::$op $({ $($arg),* })?
1630
1.10k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f64_convert_i32_u
Line
Count
Source
1628
23.9k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
23.9k
                Operator::$op $({ $($arg),* })?
1630
23.9k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f32_reinterpret_i32
Line
Count
Source
1628
55.1k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
55.1k
                Operator::$op $({ $($arg),* })?
1630
55.1k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32_mul
Line
Count
Source
1628
23.8k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
23.8k
                Operator::$op $({ $($arg),* })?
1630
23.8k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_br_on_non_null
Line
Count
Source
1628
1.62k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
1.62k
                Operator::$op $({ $($arg),* })?
1630
1.62k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64x2_abs
Line
Count
Source
1628
24.9k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
24.9k
                Operator::$op $({ $($arg),* })?
1630
24.9k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64x2_extend_low_i32x4_u
Line
Count
Source
1628
20.8k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
20.8k
                Operator::$op $({ $($arg),* })?
1630
20.8k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64_or
Line
Count
Source
1628
20.5k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
20.5k
                Operator::$op $({ $($arg),* })?
1630
20.5k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_eq
Line
Count
Source
1628
1.70k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
1.70k
                Operator::$op $({ $($arg),* })?
1630
1.70k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32_atomic_rmw8_or_u
Line
Count
Source
1628
1.72k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
1.72k
                Operator::$op $({ $($arg),* })?
1630
1.72k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64_atomic_rmw_xor
Line
Count
Source
1628
1.20k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
1.20k
                Operator::$op $({ $($arg),* })?
1630
1.20k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64_atomic_rmw16_cmpxchg_u
Line
Count
Source
1628
691
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
691
                Operator::$op $({ $($arg),* })?
1630
691
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_v128_load16x4_u
Line
Count
Source
1628
4.43k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
4.43k
                Operator::$op $({ $($arg),* })?
1630
4.43k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_memory_copy
Line
Count
Source
1628
6.19k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
6.19k
                Operator::$op $({ $($arg),* })?
1630
6.19k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64_shr_u
Line
Count
Source
1628
8.39k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
8.39k
                Operator::$op $({ $($arg),* })?
1630
8.39k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f32_floor
Line
Count
Source
1628
14.7k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
14.7k
                Operator::$op $({ $($arg),* })?
1630
14.7k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_memory_size
Line
Count
Source
1628
45.9k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
45.9k
                Operator::$op $({ $($arg),* })?
1630
45.9k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f64x2_floor
Line
Count
Source
1628
54.2k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
54.2k
                Operator::$op $({ $($arg),* })?
1630
54.2k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_extend_low_i8x16_s
Line
Count
Source
1628
17.7k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
17.7k
                Operator::$op $({ $($arg),* })?
1630
17.7k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64_lt_u
Line
Count
Source
1628
29.6k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
29.6k
                Operator::$op $({ $($arg),* })?
1630
29.6k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_extadd_pairwise_i16x8_u
Line
Count
Source
1628
19.7k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
19.7k
                Operator::$op $({ $($arg),* })?
1630
19.7k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64x2_gt_s
Line
Count
Source
1628
2.54k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
2.54k
                Operator::$op $({ $($arg),* })?
1630
2.54k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_v128_load16_splat
Line
Count
Source
1628
2.76k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
2.76k
                Operator::$op $({ $($arg),* })?
1630
2.76k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_table_copy
Line
Count
Source
1628
9.95k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
9.95k
                Operator::$op $({ $($arg),* })?
1630
9.95k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64x2_shr_s
Line
Count
Source
1628
1.66k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
1.66k
                Operator::$op $({ $($arg),* })?
1630
1.66k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64_atomic_store32
Line
Count
Source
1628
704
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
704
                Operator::$op $({ $($arg),* })?
1630
704
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64_atomic_rmw16_add_u
Line
Count
Source
1628
5.54k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
5.54k
                Operator::$op $({ $($arg),* })?
1630
5.54k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f64_sqrt
Line
Count
Source
1628
26.7k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
26.7k
                Operator::$op $({ $($arg),* })?
1630
26.7k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f32x4_convert_i32x4_u
Line
Count
Source
1628
9.89k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
9.89k
                Operator::$op $({ $($arg),* })?
1630
9.89k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_shr_s
Line
Count
Source
1628
7.25k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
7.25k
                Operator::$op $({ $($arg),* })?
1630
7.25k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f32x4_ne
Line
Count
Source
1628
1.85k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
1.85k
                Operator::$op $({ $($arg),* })?
1630
1.85k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_global_set
Line
Count
Source
1628
16.2k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
16.2k
                Operator::$op $({ $($arg),* })?
1630
16.2k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_add_sat_u
Line
Count
Source
1628
1.33k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
1.33k
                Operator::$op $({ $($arg),* })?
1630
1.33k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_relaxed_trunc_f64x2_s_zero
Line
Count
Source
1628
10.6k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
10.6k
                Operator::$op $({ $($arg),* })?
1630
10.6k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f64_promote_f32
Line
Count
Source
1628
11.7k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
11.7k
                Operator::$op $({ $($arg),* })?
1630
11.7k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f32x4_eq
Line
Count
Source
1628
66.6k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
66.6k
                Operator::$op $({ $($arg),* })?
1630
66.6k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64x2_bitmask
Line
Count
Source
1628
5.13k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
5.13k
                Operator::$op $({ $($arg),* })?
1630
5.13k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f64x2_nearest
Line
Count
Source
1628
10.0k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
10.0k
                Operator::$op $({ $($arg),* })?
1630
10.0k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_relaxed_trunc_f32x4_u
Line
Count
Source
1628
6.67k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
6.67k
                Operator::$op $({ $($arg),* })?
1630
6.67k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_return
Line
Count
Source
1628
12.8k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
12.8k
                Operator::$op $({ $($arg),* })?
1630
12.8k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64x2_replace_lane
Line
Count
Source
1628
3.10k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
3.10k
                Operator::$op $({ $($arg),* })?
1630
3.10k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64_extend_i32_u
Line
Count
Source
1628
16.6k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
16.6k
                Operator::$op $({ $($arg),* })?
1630
16.6k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f32_eq
Line
Count
Source
1628
74.3k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
74.3k
                Operator::$op $({ $($arg),* })?
1630
74.3k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f64_eq
Line
Count
Source
1628
117k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
117k
                Operator::$op $({ $($arg),* })?
1630
117k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64x2_sub
Line
Count
Source
1628
1.91k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
1.91k
                Operator::$op $({ $($arg),* })?
1630
1.91k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_v128_store64_lane
Line
Count
Source
1628
4.30k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
4.30k
                Operator::$op $({ $($arg),* })?
1630
4.30k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f64x2_splat
Line
Count
Source
1628
6.48k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
6.48k
                Operator::$op $({ $($arg),* })?
1630
6.48k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64_atomic_rmw16_sub_u
Line
Count
Source
1628
6.44k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
6.44k
                Operator::$op $({ $($arg),* })?
1630
6.44k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64_atomic_rmw8_and_u
Line
Count
Source
1628
2.51k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
2.51k
                Operator::$op $({ $($arg),* })?
1630
2.51k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32_atomic_rmw_xchg
Line
Count
Source
1628
2.41k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
2.41k
                Operator::$op $({ $($arg),* })?
1630
2.41k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64_sub
Line
Count
Source
1628
7.47k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
7.47k
                Operator::$op $({ $($arg),* })?
1630
7.47k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32_load16_s
Line
Count
Source
1628
28.9k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
28.9k
                Operator::$op $({ $($arg),* })?
1630
28.9k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64_load32_s
Line
Count
Source
1628
31.4k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
31.4k
                Operator::$op $({ $($arg),* })?
1630
31.4k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i8x16_max_u
Line
Count
Source
1628
1.56k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
1.56k
                Operator::$op $({ $($arg),* })?
1630
1.56k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f64x2_pmin
Line
Count
Source
1628
2.48k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
2.48k
                Operator::$op $({ $($arg),* })?
1630
2.48k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_sub_sat_u
Line
Count
Source
1628
2.35k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
2.35k
                Operator::$op $({ $($arg),* })?
1630
2.35k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64_atomic_rmw_or
Line
Count
Source
1628
1.58k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
1.58k
                Operator::$op $({ $($arg),* })?
1630
1.58k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64_atomic_rmw8_cmpxchg_u
Line
Count
Source
1628
666
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
666
                Operator::$op $({ $($arg),* })?
1630
666
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32_trunc_sat_f64_u
Line
Count
Source
1628
15.2k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
15.2k
                Operator::$op $({ $($arg),* })?
1630
15.2k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_extmul_low_i16x8_u
Line
Count
Source
1628
1.22k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
1.22k
                Operator::$op $({ $($arg),* })?
1630
1.22k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f64x2_sqrt
Line
Count
Source
1628
11.4k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
11.4k
                Operator::$op $({ $($arg),* })?
1630
11.4k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32_le_u
Line
Count
Source
1628
33.2k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
33.2k
                Operator::$op $({ $($arg),* })?
1630
33.2k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_le_s
Line
Count
Source
1628
1.97k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
1.97k
                Operator::$op $({ $($arg),* })?
1630
1.97k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_br
Line
Count
Source
1628
311k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
311k
                Operator::$op $({ $($arg),* })?
1630
311k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_return_call
Line
Count
Source
1628
18.1k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
18.1k
                Operator::$op $({ $($arg),* })?
1630
18.1k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f64x2_relaxed_min
Line
Count
Source
1628
950
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
950
                Operator::$op $({ $($arg),* })?
1630
950
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64_atomic_store16
Line
Count
Source
1628
1.87k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
1.87k
                Operator::$op $({ $($arg),* })?
1630
1.87k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f32_copysign
Line
Count
Source
1628
29.2k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
29.2k
                Operator::$op $({ $($arg),* })?
1630
29.2k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_narrow_i32x4_s
Line
Count
Source
1628
2.87k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
2.87k
                Operator::$op $({ $($arg),* })?
1630
2.87k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f32x4_convert_i32x4_s
Line
Count
Source
1628
15.5k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
15.5k
                Operator::$op $({ $($arg),* })?
1630
15.5k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64_trunc_f64_s
Line
Count
Source
1628
11.1k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
11.1k
                Operator::$op $({ $($arg),* })?
1630
11.1k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f32_demote_f64
Line
Count
Source
1628
15.2k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
15.2k
                Operator::$op $({ $($arg),* })?
1630
15.2k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_drop
Line
Count
Source
1628
1.27M
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
1.27M
                Operator::$op $({ $($arg),* })?
1630
1.27M
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_table_init
Line
Count
Source
1628
6.56k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
6.56k
                Operator::$op $({ $($arg),* })?
1630
6.56k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f32x4_add
Line
Count
Source
1628
1.10k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
1.10k
                Operator::$op $({ $($arg),* })?
1630
1.10k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f32_max
Line
Count
Source
1628
15.1k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
15.1k
                Operator::$op $({ $($arg),* })?
1630
15.1k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64_atomic_rmw_and
Line
Count
Source
1628
3.48k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
3.48k
                Operator::$op $({ $($arg),* })?
1630
3.48k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f64_convert_i64_u
Line
Count
Source
1628
336k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
336k
                Operator::$op $({ $($arg),* })?
1630
336k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32_ctz
Line
Count
Source
1628
43.3k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
43.3k
                Operator::$op $({ $($arg),* })?
1630
43.3k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64x2_ge_s
Line
Count
Source
1628
3.20k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
3.20k
                Operator::$op $({ $($arg),* })?
1630
3.20k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64_div_u
Line
Count
Source
1628
16.8k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
16.8k
                Operator::$op $({ $($arg),* })?
1630
16.8k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i8x16_shuffle
Line
Count
Source
1628
1.54k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
1.54k
                Operator::$op $({ $($arg),* })?
1630
1.54k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f64_sub
Line
Count
Source
1628
10.1k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
10.1k
                Operator::$op $({ $($arg),* })?
1630
10.1k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_trunc_sat_f64x2_u_zero
Line
Count
Source
1628
5.58k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
5.58k
                Operator::$op $({ $($arg),* })?
1630
5.58k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_extmul_low_i8x16_s
Line
Count
Source
1628
3.33k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
3.33k
                Operator::$op $({ $($arg),* })?
1630
3.33k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_abs
Line
Count
Source
1628
8.66k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
8.66k
                Operator::$op $({ $($arg),* })?
1630
8.66k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32_clz
Line
Count
Source
1628
67.5k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
67.5k
                Operator::$op $({ $($arg),* })?
1630
67.5k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64_trunc_sat_f64_s
Line
Count
Source
1628
22.2k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
22.2k
                Operator::$op $({ $($arg),* })?
1630
22.2k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64x2_neg
Line
Count
Source
1628
25.5k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
25.5k
                Operator::$op $({ $($arg),* })?
1630
25.5k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_v128_xor
Line
Count
Source
1628
3.74k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
3.74k
                Operator::$op $({ $($arg),* })?
1630
3.74k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i8x16_replace_lane
Line
Count
Source
1628
5.60k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
5.60k
                Operator::$op $({ $($arg),* })?
1630
5.60k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64x2_extract_lane
Line
Count
Source
1628
8.06k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
8.06k
                Operator::$op $({ $($arg),* })?
1630
8.06k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32_atomic_rmw_add
Line
Count
Source
1628
480
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
480
                Operator::$op $({ $($arg),* })?
1630
480
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32_atomic_rmw16_or_u
Line
Count
Source
1628
2.12k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
2.12k
                Operator::$op $({ $($arg),* })?
1630
2.12k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_relaxed_dot_i8x16_i7x16_s
Line
Count
Source
1628
1.60k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
1.60k
                Operator::$op $({ $($arg),* })?
1630
1.60k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64x2_extend_high_i32x4_s
Line
Count
Source
1628
7.79k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
7.79k
                Operator::$op $({ $($arg),* })?
1630
7.79k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i8x16_neg
Line
Count
Source
1628
14.1k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
14.1k
                Operator::$op $({ $($arg),* })?
1630
14.1k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i8x16_shl
Line
Count
Source
1628
2.04k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
2.04k
                Operator::$op $({ $($arg),* })?
1630
2.04k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32_store8
Line
Count
Source
1628
9.04k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
9.04k
                Operator::$op $({ $($arg),* })?
1630
9.04k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_q15mulr_sat_s
Line
Count
Source
1628
2.89k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
2.89k
                Operator::$op $({ $($arg),* })?
1630
2.89k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_extend_high_i8x16_s
Line
Count
Source
1628
11.6k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
11.6k
                Operator::$op $({ $($arg),* })?
1630
11.6k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i8x16_gt_s
Line
Count
Source
1628
9.27k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
9.27k
                Operator::$op $({ $($arg),* })?
1630
9.27k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_ref_as_non_null
Line
Count
Source
1628
1.31k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
1.31k
                Operator::$op $({ $($arg),* })?
1630
1.31k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_v128_load32_splat
Line
Count
Source
1628
6.26k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
6.26k
                Operator::$op $({ $($arg),* })?
1630
6.26k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_table_fill
Line
Count
Source
1628
1.72k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
1.72k
                Operator::$op $({ $($arg),* })?
1630
1.72k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f32x4_div
Line
Count
Source
1628
1.67k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
1.67k
                Operator::$op $({ $($arg),* })?
1630
1.67k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_ref_null
Line
Count
Source
1628
32.1M
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
32.1M
                Operator::$op $({ $($arg),* })?
1630
32.1M
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64_ge_s
Line
Count
Source
1628
35.5k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
35.5k
                Operator::$op $({ $($arg),* })?
1630
35.5k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64x2_lt_s
Line
Count
Source
1628
1.15k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
1.15k
                Operator::$op $({ $($arg),* })?
1630
1.15k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f32x4_lt
Line
Count
Source
1628
2.38k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
2.38k
                Operator::$op $({ $($arg),* })?
1630
2.38k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_v128_load8x8_u
Line
Count
Source
1628
16.8k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
16.8k
                Operator::$op $({ $($arg),* })?
1630
16.8k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i8x16_extract_lane_u
Line
Count
Source
1628
8.90k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
8.90k
                Operator::$op $({ $($arg),* })?
1630
8.90k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f32_ceil
Line
Count
Source
1628
14.8k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
14.8k
                Operator::$op $({ $($arg),* })?
1630
14.8k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32_atomic_rmw16_sub_u
Line
Count
Source
1628
608
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
608
                Operator::$op $({ $($arg),* })?
1630
608
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f64_min
Line
Count
Source
1628
6.61k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
6.61k
                Operator::$op $({ $($arg),* })?
1630
6.61k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f32x4_demote_f64x2_zero
Line
Count
Source
1628
14.5k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
14.5k
                Operator::$op $({ $($arg),* })?
1630
14.5k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_relaxed_trunc_f64x2_u_zero
Line
Count
Source
1628
6.85k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
6.85k
                Operator::$op $({ $($arg),* })?
1630
6.85k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_end
Line
Count
Source
1628
34.0M
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
34.0M
                Operator::$op $({ $($arg),* })?
1630
34.0M
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_v128_store
Line
Count
Source
1628
8.09k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
8.09k
                Operator::$op $({ $($arg),* })?
1630
8.09k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_replace_lane
Line
Count
Source
1628
7.21k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
7.21k
                Operator::$op $({ $($arg),* })?
1630
7.21k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f32x4_replace_lane
Line
Count
Source
1628
37.6k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
37.6k
                Operator::$op $({ $($arg),* })?
1630
37.6k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f32x4_pmin
Line
Count
Source
1628
5.67k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
5.67k
                Operator::$op $({ $($arg),* })?
1630
5.67k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f32_lt
Line
Count
Source
1628
36.5k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
36.5k
                Operator::$op $({ $($arg),* })?
1630
36.5k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64x2_shl
Line
Count
Source
1628
1.58k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
1.58k
                Operator::$op $({ $($arg),* })?
1630
1.58k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f32_min
Line
Count
Source
1628
3.76k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
3.76k
                Operator::$op $({ $($arg),* })?
1630
3.76k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f64x2_mul
Line
Count
Source
1628
1.99k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
1.99k
                Operator::$op $({ $($arg),* })?
1630
1.99k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_min_s
Line
Count
Source
1628
3.39k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
3.39k
                Operator::$op $({ $($arg),* })?
1630
3.39k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_extend_low_i16x8_u
Line
Count
Source
1628
9.13k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
9.13k
                Operator::$op $({ $($arg),* })?
1630
9.13k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_v128_load32_lane
Line
Count
Source
1628
3.58k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
3.58k
                Operator::$op $({ $($arg),* })?
1630
3.58k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32_eqz
Line
Count
Source
1628
163k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
163k
                Operator::$op $({ $($arg),* })?
1630
163k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f32_ge
Line
Count
Source
1628
21.6k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
21.6k
                Operator::$op $({ $($arg),* })?
1630
21.6k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f64_ge
Line
Count
Source
1628
12.2k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
12.2k
                Operator::$op $({ $($arg),* })?
1630
12.2k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_max_u
Line
Count
Source
1628
866
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
866
                Operator::$op $({ $($arg),* })?
1630
866
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f64x2_gt
Line
Count
Source
1628
5.61k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
5.61k
                Operator::$op $({ $($arg),* })?
1630
5.61k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_v128_or
Line
Count
Source
1628
2.41k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
2.41k
                Operator::$op $({ $($arg),* })?
1630
2.41k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32_load16_u
Line
Count
Source
1628
14.4k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
14.4k
                Operator::$op $({ $($arg),* })?
1630
14.4k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32_atomic_rmw16_and_u
Line
Count
Source
1628
1.49k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
1.49k
                Operator::$op $({ $($arg),* })?
1630
1.49k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64_trunc_f64_u
Line
Count
Source
1628
20.7k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
20.7k
                Operator::$op $({ $($arg),* })?
1630
20.7k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_relaxed_laneselect
Line
Count
Source
1628
2.60k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
2.60k
                Operator::$op $({ $($arg),* })?
1630
2.60k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64_extend16_s
Line
Count
Source
1628
20.9k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
20.9k
                Operator::$op $({ $($arg),* })?
1630
20.9k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64_trunc_sat_f32_s
Line
Count
Source
1628
6.83k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
6.83k
                Operator::$op $({ $($arg),* })?
1630
6.83k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32_rotl
Line
Count
Source
1628
6.29k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
6.29k
                Operator::$op $({ $($arg),* })?
1630
6.29k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64_load16_u
Line
Count
Source
1628
19.8k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
19.8k
                Operator::$op $({ $($arg),* })?
1630
19.8k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f64_store
Line
Count
Source
1628
3.88k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
3.88k
                Operator::$op $({ $($arg),* })?
1630
3.88k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_neg
Line
Count
Source
1628
7.61k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
7.61k
                Operator::$op $({ $($arg),* })?
1630
7.61k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64x2_splat
Line
Count
Source
1628
8.55k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
8.55k
                Operator::$op $({ $($arg),* })?
1630
8.55k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32_ge_s
Line
Count
Source
1628
29.6k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
29.6k
                Operator::$op $({ $($arg),* })?
1630
29.6k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_ne
Line
Count
Source
1628
3.60k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
3.60k
                Operator::$op $({ $($arg),* })?
1630
3.60k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_le_u
Line
Count
Source
1628
1.58k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
1.58k
                Operator::$op $({ $($arg),* })?
1630
1.58k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64_atomic_rmw16_xchg_u
Line
Count
Source
1628
4.53k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
4.53k
                Operator::$op $({ $($arg),* })?
1630
4.53k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_memory_init
Line
Count
Source
1628
20.4k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
20.4k
                Operator::$op $({ $($arg),* })?
1630
20.4k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64_popcnt
Line
Count
Source
1628
46.8k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
46.8k
                Operator::$op $({ $($arg),* })?
1630
46.8k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f32x4_nearest
Line
Count
Source
1628
5.50k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
5.50k
                Operator::$op $({ $($arg),* })?
1630
5.50k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f32_sub
Line
Count
Source
1628
19.4k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
19.4k
                Operator::$op $({ $($arg),* })?
1630
19.4k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f64_abs
Line
Count
Source
1628
58.7k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
58.7k
                Operator::$op $({ $($arg),* })?
1630
58.7k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32_ne
Line
Count
Source
1628
16.4k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
16.4k
                Operator::$op $({ $($arg),* })?
1630
16.4k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f64x2_max
Line
Count
Source
1628
2.57k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
2.57k
                Operator::$op $({ $($arg),* })?
1630
2.57k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_sub_sat_s
Line
Count
Source
1628
3.79k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
3.79k
                Operator::$op $({ $($arg),* })?
1630
3.79k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64x2_ne
Line
Count
Source
1628
2.55k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
2.55k
                Operator::$op $({ $($arg),* })?
1630
2.55k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32_atomic_rmw8_cmpxchg_u
Line
Count
Source
1628
770
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
770
                Operator::$op $({ $($arg),* })?
1630
770
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_select
Line
Count
Source
1628
140k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
140k
                Operator::$op $({ $($arg),* })?
1630
140k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_v128_store16_lane
Line
Count
Source
1628
3.33k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
3.33k
                Operator::$op $({ $($arg),* })?
1630
3.33k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i8x16_extract_lane_s
Line
Count
Source
1628
25.2k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
25.2k
                Operator::$op $({ $($arg),* })?
1630
25.2k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f32x4_trunc
Line
Count
Source
1628
8.40k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
8.40k
                Operator::$op $({ $($arg),* })?
1630
8.40k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_extmul_low_i8x16_u
Line
Count
Source
1628
1.35k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
1.35k
                Operator::$op $({ $($arg),* })?
1630
1.35k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f64_lt
Line
Count
Source
1628
14.8k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
14.8k
                Operator::$op $({ $($arg),* })?
1630
14.8k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32_popcnt
Line
Count
Source
1628
40.4k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
40.4k
                Operator::$op $({ $($arg),* })?
1630
40.4k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64_atomic_rmw_cmpxchg
Line
Count
Source
1628
356
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
356
                Operator::$op $({ $($arg),* })?
1630
356
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_extmul_high_i16x8_s
Line
Count
Source
1628
1.70k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
1.70k
                Operator::$op $({ $($arg),* })?
1630
1.70k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_v128_not
Line
Count
Source
1628
7.59k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
7.59k
                Operator::$op $({ $($arg),* })?
1630
7.59k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64_load16_s
Line
Count
Source
1628
101k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
101k
                Operator::$op $({ $($arg),* })?
1630
101k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f32x4_max
Line
Count
Source
1628
1.37k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
1.37k
                Operator::$op $({ $($arg),* })?
1630
1.37k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64_atomic_rmw32_and_u
Line
Count
Source
1628
1.23k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
1.23k
                Operator::$op $({ $($arg),* })?
1630
1.23k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64_atomic_rmw16_or_u
Line
Count
Source
1628
7.49k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
7.49k
                Operator::$op $({ $($arg),* })?
1630
7.49k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_extmul_high_i8x16_s
Line
Count
Source
1628
1.32k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
1.32k
                Operator::$op $({ $($arg),* })?
1630
1.32k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f32x4_relaxed_max
Line
Count
Source
1628
3.39k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
3.39k
                Operator::$op $({ $($arg),* })?
1630
3.39k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64_xor
Line
Count
Source
1628
3.69k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
3.69k
                Operator::$op $({ $($arg),* })?
1630
3.69k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32_store
Line
Count
Source
1628
24.2k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
24.2k
                Operator::$op $({ $($arg),* })?
1630
24.2k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64_store8
Line
Count
Source
1628
3.62k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
3.62k
                Operator::$op $({ $($arg),* })?
1630
3.62k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32_atomic_store8
Line
Count
Source
1628
1.07k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
1.07k
                Operator::$op $({ $($arg),* })?
1630
1.07k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_bitmask
Line
Count
Source
1628
6.45k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
6.45k
                Operator::$op $({ $($arg),* })?
1630
6.45k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i8x16_eq
Line
Count
Source
1628
7.04k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
7.04k
                Operator::$op $({ $($arg),* })?
1630
7.04k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f64x2_pmax
Line
Count
Source
1628
2.62k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
2.62k
                Operator::$op $({ $($arg),* })?
1630
2.62k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_memory_fill
Line
Count
Source
1628
17.3k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
17.3k
                Operator::$op $({ $($arg),* })?
1630
17.3k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_table_set
Line
Count
Source
1628
10.1k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
10.1k
                Operator::$op $({ $($arg),* })?
1630
10.1k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i8x16_popcnt
Line
Count
Source
1628
16.9k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
16.9k
                Operator::$op $({ $($arg),* })?
1630
16.9k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64_atomic_rmw32_add_u
Line
Count
Source
1628
1.24k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
1.24k
                Operator::$op $({ $($arg),* })?
1630
1.24k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f64_copysign
Line
Count
Source
1628
13.4k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
13.4k
                Operator::$op $({ $($arg),* })?
1630
13.4k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f64_convert_i32_s
Line
Count
Source
1628
34.5k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
34.5k
                Operator::$op $({ $($arg),* })?
1630
34.5k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_relaxed_q15mulr_s
Line
Count
Source
1628
2.40k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
2.40k
                Operator::$op $({ $($arg),* })?
1630
2.40k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_br_on_null
Line
Count
Source
1628
669
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
669
                Operator::$op $({ $($arg),* })?
1630
669
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_extmul_high_i16x8_u
Line
Count
Source
1628
1.34k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
1.34k
                Operator::$op $({ $($arg),* })?
1630
1.34k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32_load
Line
Count
Source
1628
28.6k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
28.6k
                Operator::$op $({ $($arg),* })?
1630
28.6k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f32x4_neg
Line
Count
Source
1628
7.27k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
7.27k
                Operator::$op $({ $($arg),* })?
1630
7.27k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_replace_lane
Line
Count
Source
1628
7.57k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
7.57k
                Operator::$op $({ $($arg),* })?
1630
7.57k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_shr_u
Line
Count
Source
1628
2.96k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
2.96k
                Operator::$op $({ $($arg),* })?
1630
2.96k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i8x16_ge_u
Line
Count
Source
1628
8.14k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
8.14k
                Operator::$op $({ $($arg),* })?
1630
8.14k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64_extend8_s
Line
Count
Source
1628
31.7k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
31.7k
                Operator::$op $({ $($arg),* })?
1630
31.7k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64x2_shr_u
Line
Count
Source
1628
1.79k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
1.79k
                Operator::$op $({ $($arg),* })?
1630
1.79k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f32x4_mul
Line
Count
Source
1628
2.11k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
2.11k
                Operator::$op $({ $($arg),* })?
1630
2.11k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f64x2_ceil
Line
Count
Source
1628
10.6k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
10.6k
                Operator::$op $({ $($arg),* })?
1630
10.6k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_narrow_i32x4_u
Line
Count
Source
1628
1.53k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
1.53k
                Operator::$op $({ $($arg),* })?
1630
1.53k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_extadd_pairwise_i16x8_s
Line
Count
Source
1628
87.1k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
87.1k
                Operator::$op $({ $($arg),* })?
1630
87.1k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64_atomic_rmw16_xor_u
Line
Count
Source
1628
14.7k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
14.7k
                Operator::$op $({ $($arg),* })?
1630
14.7k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_extract_lane
Line
Count
Source
1628
7.05k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
7.05k
                Operator::$op $({ $($arg),* })?
1630
7.05k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f32_add
Line
Count
Source
1628
10.4k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
10.4k
                Operator::$op $({ $($arg),* })?
1630
10.4k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f32_const
Line
Count
Source
1628
448k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
448k
                Operator::$op $({ $($arg),* })?
1630
448k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_sub
Line
Count
Source
1628
1.31k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
1.31k
                Operator::$op $({ $($arg),* })?
1630
1.31k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64_le_u
Line
Count
Source
1628
41.6k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
41.6k
                Operator::$op $({ $($arg),* })?
1630
41.6k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f32_gt
Line
Count
Source
1628
42.5k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
42.5k
                Operator::$op $({ $($arg),* })?
1630
42.5k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32_rem_s
Line
Count
Source
1628
26.1k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
26.1k
                Operator::$op $({ $($arg),* })?
1630
26.1k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i8x16_narrow_i16x8_s
Line
Count
Source
1628
37.0k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
37.0k
                Operator::$op $({ $($arg),* })?
1630
37.0k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_atomic_fence
Line
Count
Source
1628
1.32k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
1.32k
                Operator::$op $({ $($arg),* })?
1630
1.32k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32_atomic_rmw8_sub_u
Line
Count
Source
1628
5.64k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
5.64k
                Operator::$op $({ $($arg),* })?
1630
5.64k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f64_div
Line
Count
Source
1628
4.06k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
4.06k
                Operator::$op $({ $($arg),* })?
1630
4.06k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64_atomic_rmw8_xor_u
Line
Count
Source
1628
5.11k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
5.11k
                Operator::$op $({ $($arg),* })?
1630
5.11k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f64_ne
Line
Count
Source
1628
14.0k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
14.0k
                Operator::$op $({ $($arg),* })?
1630
14.0k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_throw
Line
Count
Source
1628
1.86M
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
1.86M
                Operator::$op $({ $($arg),* })?
1630
1.86M
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64_ctz
Line
Count
Source
1628
48.5k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
48.5k
                Operator::$op $({ $($arg),* })?
1630
48.5k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f64_load
Line
Count
Source
1628
16.0k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
16.0k
                Operator::$op $({ $($arg),* })?
1630
16.0k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64_load8_u
Line
Count
Source
1628
58.2k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
58.2k
                Operator::$op $({ $($arg),* })?
1630
58.2k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_memory_atomic_wait64
Line
Count
Source
1628
3.66k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
3.66k
                Operator::$op $({ $($arg),* })?
1630
3.66k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i8x16_min_s
Line
Count
Source
1628
2.03k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
2.03k
                Operator::$op $({ $($arg),* })?
1630
2.03k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f32x4_extract_lane
Line
Count
Source
1628
11.1k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
11.1k
                Operator::$op $({ $($arg),* })?
1630
11.1k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_lt_s
Line
Count
Source
1628
2.22k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
2.22k
                Operator::$op $({ $($arg),* })?
1630
2.22k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32_trunc_sat_f32_s
Line
Count
Source
1628
33.6k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
33.6k
                Operator::$op $({ $($arg),* })?
1630
33.6k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32_xor
Line
Count
Source
1628
59.0k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
59.0k
                Operator::$op $({ $($arg),* })?
1630
59.0k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f64x2_le
Line
Count
Source
1628
1.34k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
1.34k
                Operator::$op $({ $($arg),* })?
1630
1.34k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_v128_load64_splat
Line
Count
Source
1628
2.16k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
2.16k
                Operator::$op $({ $($arg),* })?
1630
2.16k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32_gt_s
Line
Count
Source
1628
79.6k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
79.6k
                Operator::$op $({ $($arg),* })?
1630
79.6k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64_extend_i32_s
Line
Count
Source
1628
17.4k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
17.4k
                Operator::$op $({ $($arg),* })?
1630
17.4k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_lt_u
Line
Count
Source
1628
6.17k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
6.17k
                Operator::$op $({ $($arg),* })?
1630
6.17k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f32x4_relaxed_nmadd
Line
Count
Source
1628
2.71k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
2.71k
                Operator::$op $({ $($arg),* })?
1630
2.71k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64x2_relaxed_laneselect
Line
Count
Source
1628
935
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
935
                Operator::$op $({ $($arg),* })?
1630
935
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_add
Line
Count
Source
1628
4.33k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
4.33k
                Operator::$op $({ $($arg),* })?
1630
4.33k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f32_div
Line
Count
Source
1628
14.5k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
14.5k
                Operator::$op $({ $($arg),* })?
1630
14.5k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f64x2_replace_lane
Line
Count
Source
1628
1.68k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
1.68k
                Operator::$op $({ $($arg),* })?
1630
1.68k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f32x4_splat
Line
Count
Source
1628
9.12k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
9.12k
                Operator::$op $({ $($arg),* })?
1630
9.12k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64_atomic_rmw8_sub_u
Line
Count
Source
1628
1.61k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
1.61k
                Operator::$op $({ $($arg),* })?
1630
1.61k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_return_call_indirect
Line
Count
Source
1628
9.46k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
9.46k
                Operator::$op $({ $($arg),* })?
1630
9.46k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f64x2_relaxed_max
Line
Count
Source
1628
2.83k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
2.83k
                Operator::$op $({ $($arg),* })?
1630
2.83k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_data_drop
Line
Count
Source
1628
95.4k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
95.4k
                Operator::$op $({ $($arg),* })?
1630
95.4k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64_add
Line
Count
Source
1628
14.0k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
14.0k
                Operator::$op $({ $($arg),* })?
1630
14.0k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64x2_extmul_low_i32x4_u
Line
Count
Source
1628
1.69k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
1.69k
                Operator::$op $({ $($arg),* })?
1630
1.69k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f32x4_abs
Line
Count
Source
1628
9.69k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
9.69k
                Operator::$op $({ $($arg),* })?
1630
9.69k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i8x16_max_s
Line
Count
Source
1628
6.04k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
6.04k
                Operator::$op $({ $($arg),* })?
1630
6.04k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f64_le
Line
Count
Source
1628
128k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
128k
                Operator::$op $({ $($arg),* })?
1630
128k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64_atomic_rmw8_xchg_u
Line
Count
Source
1628
772
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
772
                Operator::$op $({ $($arg),* })?
1630
772
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32_atomic_rmw16_cmpxchg_u
Line
Count
Source
1628
948
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
948
                Operator::$op $({ $($arg),* })?
1630
948
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32_trunc_sat_f64_s
Line
Count
Source
1628
9.69k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
9.69k
                Operator::$op $({ $($arg),* })?
1630
9.69k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_v128_store32_lane
Line
Count
Source
1628
3.58k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
3.58k
                Operator::$op $({ $($arg),* })?
1630
3.58k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64_atomic_load
Line
Count
Source
1628
421
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
421
                Operator::$op $({ $($arg),* })?
1630
421
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f32_store
Line
Count
Source
1628
5.49k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
5.49k
                Operator::$op $({ $($arg),* })?
1630
5.49k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f64_nearest
Line
Count
Source
1628
44.7k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
44.7k
                Operator::$op $({ $($arg),* })?
1630
44.7k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32_le_s
Line
Count
Source
1628
13.7k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
13.7k
                Operator::$op $({ $($arg),* })?
1630
13.7k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_max_s
Line
Count
Source
1628
1.11k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
1.11k
                Operator::$op $({ $($arg),* })?
1630
1.11k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_extmul_high_i8x16_u
Line
Count
Source
1628
865
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
865
                Operator::$op $({ $($arg),* })?
1630
865
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f64_gt
Line
Count
Source
1628
4.85k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
4.85k
                Operator::$op $({ $($arg),* })?
1630
4.85k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_v128_and
Line
Count
Source
1628
6.84k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
6.84k
                Operator::$op $({ $($arg),* })?
1630
6.84k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_elem_drop
Line
Count
Source
1628
9.72k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
9.72k
                Operator::$op $({ $($arg),* })?
1630
9.72k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64_atomic_load16_u
Line
Count
Source
1628
1.15k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
1.15k
                Operator::$op $({ $($arg),* })?
1630
1.15k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64_atomic_store8
Line
Count
Source
1628
1.54k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
1.54k
                Operator::$op $({ $($arg),* })?
1630
1.54k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f64x2_div
Line
Count
Source
1628
1.20k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
1.20k
                Operator::$op $({ $($arg),* })?
1630
1.20k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32_atomic_rmw_or
Line
Count
Source
1628
3.64k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
3.64k
                Operator::$op $({ $($arg),* })?
1630
3.64k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64_trunc_f32_u
Line
Count
Source
1628
40.6k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
40.6k
                Operator::$op $({ $($arg),* })?
1630
40.6k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i8x16_relaxed_laneselect
Line
Count
Source
1628
1.22k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
1.22k
                Operator::$op $({ $($arg),* })?
1630
1.22k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64x2_all_true
Line
Count
Source
1628
5.01k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
5.01k
                Operator::$op $({ $($arg),* })?
1630
5.01k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_v128_bitselect
Line
Count
Source
1628
99.6k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
99.6k
                Operator::$op $({ $($arg),* })?
1630
99.6k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i8x16_bitmask
Line
Count
Source
1628
5.76k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
5.76k
                Operator::$op $({ $($arg),* })?
1630
5.76k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64_store
Line
Count
Source
1628
30.7k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
30.7k
                Operator::$op $({ $($arg),* })?
1630
30.7k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i8x16_ne
Line
Count
Source
1628
4.61k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
4.61k
                Operator::$op $({ $($arg),* })?
1630
4.61k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_relaxed_dot_i8x16_i7x16_add_s
Line
Count
Source
1628
620
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
620
                Operator::$op $({ $($arg),* })?
1630
620
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_dot_i16x8_s
Line
Count
Source
1628
1.30k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
1.30k
                Operator::$op $({ $($arg),* })?
1630
1.30k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64_div_s
Line
Count
Source
1628
43.6k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
43.6k
                Operator::$op $({ $($arg),* })?
1630
43.6k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f32x4_floor
Line
Count
Source
1628
21.9k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
21.9k
                Operator::$op $({ $($arg),* })?
1630
21.9k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_trunc_sat_f64x2_s_zero
Line
Count
Source
1628
17.6k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
17.6k
                Operator::$op $({ $($arg),* })?
1630
17.6k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64_atomic_rmw32_cmpxchg_u
Line
Count
Source
1628
2.10k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
2.10k
                Operator::$op $({ $($arg),* })?
1630
2.10k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64_rotr
Line
Count
Source
1628
4.65k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
4.65k
                Operator::$op $({ $($arg),* })?
1630
4.65k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f64_ceil
Line
Count
Source
1628
31.7k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
31.7k
                Operator::$op $({ $($arg),* })?
1630
31.7k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32_ge_u
Line
Count
Source
1628
18.2k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
18.2k
                Operator::$op $({ $($arg),* })?
1630
18.2k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32_sub
Line
Count
Source
1628
5.30k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
5.30k
                Operator::$op $({ $($arg),* })?
1630
5.30k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32_and
Line
Count
Source
1628
8.23k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
8.23k
                Operator::$op $({ $($arg),* })?
1630
8.23k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f64x2_extract_lane
Line
Count
Source
1628
7.70k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
7.70k
                Operator::$op $({ $($arg),* })?
1630
7.70k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64_ge_u
Line
Count
Source
1628
9.38k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
9.38k
                Operator::$op $({ $($arg),* })?
1630
9.38k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32_atomic_rmw_xor
Line
Count
Source
1628
3.24k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
3.24k
                Operator::$op $({ $($arg),* })?
1630
3.24k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64_atomic_rmw32_xor_u
Line
Count
Source
1628
1.76k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
1.76k
                Operator::$op $({ $($arg),* })?
1630
1.76k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32_reinterpret_f32
Line
Count
Source
1628
38.6k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
38.6k
                Operator::$op $({ $($arg),* })?
1630
38.6k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64_store32
Line
Count
Source
1628
3.41k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
3.41k
                Operator::$op $({ $($arg),* })?
1630
3.41k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f64_const
Line
Count
Source
1628
430k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
430k
                Operator::$op $({ $($arg),* })?
1630
430k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_shr_s
Line
Count
Source
1628
4.58k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
4.58k
                Operator::$op $({ $($arg),* })?
1630
4.58k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i8x16_ge_s
Line
Count
Source
1628
2.05k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
2.05k
                Operator::$op $({ $($arg),* })?
1630
2.05k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_bitmask
Line
Count
Source
1628
5.14k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
5.14k
                Operator::$op $({ $($arg),* })?
1630
5.14k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32_atomic_rmw16_xchg_u
Line
Count
Source
1628
955
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
955
                Operator::$op $({ $($arg),* })?
1630
955
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32_load8_u
Line
Count
Source
1628
17.4k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
17.4k
                Operator::$op $({ $($arg),* })?
1630
17.4k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_table_size
Line
Count
Source
1628
13.8k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
13.8k
                Operator::$op $({ $($arg),* })?
1630
13.8k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32_atomic_load
Line
Count
Source
1628
777
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
777
                Operator::$op $({ $($arg),* })?
1630
777
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f32x4_pmax
Line
Count
Source
1628
2.75k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
2.75k
                Operator::$op $({ $($arg),* })?
1630
2.75k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f64x2_convert_low_i32x4_u
Line
Count
Source
1628
13.7k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
13.7k
                Operator::$op $({ $($arg),* })?
1630
13.7k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_ge_s
Line
Count
Source
1628
4.21k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
4.21k
                Operator::$op $({ $($arg),* })?
1630
4.21k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_loop
Line
Count
Source
1628
77.0k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
77.0k
                Operator::$op $({ $($arg),* })?
1630
77.0k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_rethrow
Line
Count
Source
1628
65.6k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
65.6k
                Operator::$op $({ $($arg),* })?
1630
65.6k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f64x2_eq
Line
Count
Source
1628
50.5k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
50.5k
                Operator::$op $({ $($arg),* })?
1630
50.5k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_v128_load32x2_u
Line
Count
Source
1628
7.65k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
7.65k
                Operator::$op $({ $($arg),* })?
1630
7.65k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32_load8_s
Line
Count
Source
1628
27.7k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
27.7k
                Operator::$op $({ $($arg),* })?
1630
27.7k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32_atomic_rmw_and
Line
Count
Source
1628
648
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
648
                Operator::$op $({ $($arg),* })?
1630
648
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32_trunc_f32_s
Line
Count
Source
1628
17.9k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
17.9k
                Operator::$op $({ $($arg),* })?
1630
17.9k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64_trunc_f32_s
Line
Count
Source
1628
17.8k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
17.8k
                Operator::$op $({ $($arg),* })?
1630
17.8k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f64x2_relaxed_nmadd
Line
Count
Source
1628
1.62k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
1.62k
                Operator::$op $({ $($arg),* })?
1630
1.62k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_extend_high_i16x8_u
Line
Count
Source
1628
14.1k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
14.1k
                Operator::$op $({ $($arg),* })?
1630
14.1k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32_trunc_sat_f32_u
Line
Count
Source
1628
24.8k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
24.8k
                Operator::$op $({ $($arg),* })?
1630
24.8k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32_shl
Line
Count
Source
1628
20.8k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
20.8k
                Operator::$op $({ $($arg),* })?
1630
20.8k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64_load8_s
Line
Count
Source
1628
27.1k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
27.1k
                Operator::$op $({ $($arg),* })?
1630
27.1k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i8x16_splat
Line
Count
Source
1628
7.06k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
7.06k
                Operator::$op $({ $($arg),* })?
1630
7.06k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32_atomic_rmw_sub
Line
Count
Source
1628
2.09k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
2.09k
                Operator::$op $({ $($arg),* })?
1630
2.09k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f64x2_sub
Line
Count
Source
1628
3.26k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
3.26k
                Operator::$op $({ $($arg),* })?
1630
3.26k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32_atomic_rmw16_xor_u
Line
Count
Source
1628
4.78k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
4.78k
                Operator::$op $({ $($arg),* })?
1630
4.78k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32_atomic_rmw8_xchg_u
Line
Count
Source
1628
962
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
962
                Operator::$op $({ $($arg),* })?
1630
962
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64_trunc_sat_f32_u
Line
Count
Source
1628
4.85k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
4.85k
                Operator::$op $({ $($arg),* })?
1630
4.85k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32_rotr
Line
Count
Source
1628
328k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
328k
                Operator::$op $({ $($arg),* })?
1630
328k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64_mul
Line
Count
Source
1628
24.6k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
24.6k
                Operator::$op $({ $($arg),* })?
1630
24.6k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f32x4_ceil
Line
Count
Source
1628
33.6k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
33.6k
                Operator::$op $({ $($arg),* })?
1630
33.6k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f32_nearest
Line
Count
Source
1628
19.2k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
19.2k
                Operator::$op $({ $($arg),* })?
1630
19.2k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_ref_func
Line
Count
Source
1628
276k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
276k
                Operator::$op $({ $($arg),* })?
1630
276k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_add_sat_s
Line
Count
Source
1628
19.0k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
19.0k
                Operator::$op $({ $($arg),* })?
1630
19.0k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64_atomic_rmw32_xchg_u
Line
Count
Source
1628
1.79k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
1.79k
                Operator::$op $({ $($arg),* })?
1630
1.79k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_shr_u
Line
Count
Source
1628
1.19k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
1.19k
                Operator::$op $({ $($arg),* })?
1630
1.19k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_max_s
Line
Count
Source
1628
1.45k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
1.45k
                Operator::$op $({ $($arg),* })?
1630
1.45k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_memory_atomic_wait32
Line
Count
Source
1628
82.5k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
82.5k
                Operator::$op $({ $($arg),* })?
1630
82.5k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32_atomic_load16_u
Line
Count
Source
1628
1.61k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
1.61k
                Operator::$op $({ $($arg),* })?
1630
1.61k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i8x16_sub
Line
Count
Source
1628
5.59k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
5.59k
                Operator::$op $({ $($arg),* })?
1630
5.59k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i8x16_lt_u
Line
Count
Source
1628
2.71k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
2.71k
                Operator::$op $({ $($arg),* })?
1630
2.71k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32_atomic_rmw8_and_u
Line
Count
Source
1628
1.26k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
1.26k
                Operator::$op $({ $($arg),* })?
1630
1.26k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_avgr_u
Line
Count
Source
1628
2.05k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
2.05k
                Operator::$op $({ $($arg),* })?
1630
2.05k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_br_if
Line
Count
Source
1628
81.4k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
81.4k
                Operator::$op $({ $($arg),* })?
1630
81.4k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_relaxed_laneselect
Line
Count
Source
1628
791
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
791
                Operator::$op $({ $($arg),* })?
1630
791
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i8x16_min_u
Line
Count
Source
1628
3.21k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
3.21k
                Operator::$op $({ $($arg),* })?
1630
3.21k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_abs
Line
Count
Source
1628
10.3k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
10.3k
                Operator::$op $({ $($arg),* })?
1630
10.3k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32_trunc_f64_u
Line
Count
Source
1628
16.3k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
16.3k
                Operator::$op $({ $($arg),* })?
1630
16.3k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_max_u
Line
Count
Source
1628
1.39k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
1.39k
                Operator::$op $({ $($arg),* })?
1630
1.39k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_eq
Line
Count
Source
1628
1.55k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
1.55k
                Operator::$op $({ $($arg),* })?
1630
1.55k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64_atomic_load32_u
Line
Count
Source
1628
2.62k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
2.62k
                Operator::$op $({ $($arg),* })?
1630
2.62k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f64x2_min
Line
Count
Source
1628
1.89k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
1.89k
                Operator::$op $({ $($arg),* })?
1630
1.89k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i8x16_le_u
Line
Count
Source
1628
9.08k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
9.08k
                Operator::$op $({ $($arg),* })?
1630
9.08k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_call
Line
Count
Source
1628
104k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
104k
                Operator::$op $({ $($arg),* })?
1630
104k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_v128_any_true
Line
Count
Source
1628
1.19k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
1.19k
                Operator::$op $({ $($arg),* })?
1630
1.19k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_v128_store8_lane
Line
Count
Source
1628
2.83k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
2.83k
                Operator::$op $({ $($arg),* })?
1630
2.83k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_splat
Line
Count
Source
1628
9.23k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
9.23k
                Operator::$op $({ $($arg),* })?
1630
9.23k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f64_trunc
Line
Count
Source
1628
88.8k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
88.8k
                Operator::$op $({ $($arg),* })?
1630
88.8k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32_gt_u
Line
Count
Source
1628
18.2k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
18.2k
                Operator::$op $({ $($arg),* })?
1630
18.2k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f32_convert_i64_s
Line
Count
Source
1628
74.5k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
74.5k
                Operator::$op $({ $($arg),* })?
1630
74.5k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_block
Line
Count
Source
1628
138k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
138k
                Operator::$op $({ $($arg),* })?
1630
138k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_call_ref
Line
Count
Source
1628
3.30k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
3.30k
                Operator::$op $({ $($arg),* })?
1630
3.30k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_extmul_low_i16x8_s
Line
Count
Source
1628
1.59k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
1.59k
                Operator::$op $({ $($arg),* })?
1630
1.59k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_local_tee
Line
Count
Source
1628
261k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
261k
                Operator::$op $({ $($arg),* })?
1630
261k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_extract_lane_u
Line
Count
Source
1628
12.1k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
12.1k
                Operator::$op $({ $($arg),* })?
1630
12.1k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32_atomic_store16
Line
Count
Source
1628
1.02k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
1.02k
                Operator::$op $({ $($arg),* })?
1630
1.02k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i8x16_le_s
Line
Count
Source
1628
7.12k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
7.12k
                Operator::$op $({ $($arg),* })?
1630
7.12k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64_atomic_rmw16_and_u
Line
Count
Source
1628
1.22k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
1.22k
                Operator::$op $({ $($arg),* })?
1630
1.22k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32_div_s
Line
Count
Source
1628
73.7k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
73.7k
                Operator::$op $({ $($arg),* })?
1630
73.7k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_delegate
Line
Count
Source
1628
21.6k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
21.6k
                Operator::$op $({ $($arg),* })?
1630
21.6k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f32x4_sqrt
Line
Count
Source
1628
14.6k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
14.6k
                Operator::$op $({ $($arg),* })?
1630
14.6k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_all_true
Line
Count
Source
1628
6.78k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
6.78k
                Operator::$op $({ $($arg),* })?
1630
6.78k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32_atomic_rmw8_xor_u
Line
Count
Source
1628
1.24k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
1.24k
                Operator::$op $({ $($arg),* })?
1630
1.24k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_extend_high_i16x8_s
Line
Count
Source
1628
15.9k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
15.9k
                Operator::$op $({ $($arg),* })?
1630
15.9k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_memory_grow
Line
Count
Source
1628
214k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
214k
                Operator::$op $({ $($arg),* })?
1630
214k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64_gt_s
Line
Count
Source
1628
6.32k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
6.32k
                Operator::$op $({ $($arg),* })?
1630
6.32k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_nop
Line
Count
Source
1628
951k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
951k
                Operator::$op $({ $($arg),* })?
1630
951k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f64x2_promote_low_f32x4
Line
Count
Source
1628
13.8k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
13.8k
                Operator::$op $({ $($arg),* })?
1630
13.8k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32_shr_u
Line
Count
Source
1628
61.0k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
61.0k
                Operator::$op $({ $($arg),* })?
1630
61.0k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_memory_atomic_notify
Line
Count
Source
1628
9.86k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
9.86k
                Operator::$op $({ $($arg),* })?
1630
9.86k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i8x16_narrow_i16x8_u
Line
Count
Source
1628
1.90k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
1.90k
                Operator::$op $({ $($arg),* })?
1630
1.90k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i8x16_add_sat_u
Line
Count
Source
1628
2.84k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
2.84k
                Operator::$op $({ $($arg),* })?
1630
2.84k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f64_add
Line
Count
Source
1628
12.9k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
12.9k
                Operator::$op $({ $($arg),* })?
1630
12.9k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_else
Line
Count
Source
1628
104k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
104k
                Operator::$op $({ $($arg),* })?
1630
104k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32_extend16_s
Line
Count
Source
1628
28.6k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
28.6k
                Operator::$op $({ $($arg),* })?
1630
28.6k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_memory_discard
Line
Count
Source
1628
1.08k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
1.08k
                Operator::$op $({ $($arg),* })?
1630
1.08k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64_shr_s
Line
Count
Source
1628
2.59k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
2.59k
                Operator::$op $({ $($arg),* })?
1630
2.59k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32_eq
Line
Count
Source
1628
27.5k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
27.5k
                Operator::$op $({ $($arg),* })?
1630
27.5k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32_trunc_f64_s
Line
Count
Source
1628
15.5k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
15.5k
                Operator::$op $({ $($arg),* })?
1630
15.5k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_lt_u
Line
Count
Source
1628
71.6k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
71.6k
                Operator::$op $({ $($arg),* })?
1630
71.6k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_ge_u
Line
Count
Source
1628
3.68k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
3.68k
                Operator::$op $({ $($arg),* })?
1630
3.68k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_if
Line
Count
Source
1628
70.1k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
70.1k
                Operator::$op $({ $($arg),* })?
1630
70.1k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32_rem_u
Line
Count
Source
1628
46.6k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
46.6k
                Operator::$op $({ $($arg),* })?
1630
46.6k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f64x2_ne
Line
Count
Source
1628
3.80k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
3.80k
                Operator::$op $({ $($arg),* })?
1630
3.80k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_v128_load8_splat
Line
Count
Source
1628
4.86k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
4.86k
                Operator::$op $({ $($arg),* })?
1630
4.86k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f32_abs
Line
Count
Source
1628
82.8k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
82.8k
                Operator::$op $({ $($arg),* })?
1630
82.8k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f32_sqrt
Line
Count
Source
1628
28.3k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
28.3k
                Operator::$op $({ $($arg),* })?
1630
28.3k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f64x2_abs
Line
Count
Source
1628
33.1k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
33.1k
                Operator::$op $({ $($arg),* })?
1630
33.1k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_extend_high_i8x16_u
Line
Count
Source
1628
12.3k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
12.3k
                Operator::$op $({ $($arg),* })?
1630
12.3k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32_trunc_f32_u
Line
Count
Source
1628
9.99k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
9.99k
                Operator::$op $({ $($arg),* })?
1630
9.99k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64_le_s
Line
Count
Source
1628
5.65k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
5.65k
                Operator::$op $({ $($arg),* })?
1630
5.65k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_all_true
Line
Count
Source
1628
6.60k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
6.60k
                Operator::$op $({ $($arg),* })?
1630
6.60k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_shl
Line
Count
Source
1628
1.08k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
1.08k
                Operator::$op $({ $($arg),* })?
1630
1.08k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f64x2_ge
Line
Count
Source
1628
16.5k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
16.5k
                Operator::$op $({ $($arg),* })?
1630
16.5k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_v128_load32_zero
Line
Count
Source
1628
3.16k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
3.16k
                Operator::$op $({ $($arg),* })?
1630
3.16k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_v128_load64_lane
Line
Count
Source
1628
4.28k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
4.28k
                Operator::$op $({ $($arg),* })?
1630
4.28k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_splat
Line
Count
Source
1628
7.02k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
7.02k
                Operator::$op $({ $($arg),* })?
1630
7.02k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64_atomic_rmw_sub
Line
Count
Source
1628
449
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
449
                Operator::$op $({ $($arg),* })?
1630
449
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_sub
Line
Count
Source
1628
5.87k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
5.87k
                Operator::$op $({ $($arg),* })?
1630
5.87k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f32x4_le
Line
Count
Source
1628
8.38k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
8.38k
                Operator::$op $({ $($arg),* })?
1630
8.38k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64_clz
Line
Count
Source
1628
39.2k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
39.2k
                Operator::$op $({ $($arg),* })?
1630
39.2k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f32_load
Line
Count
Source
1628
17.3k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
17.3k
                Operator::$op $({ $($arg),* })?
1630
17.3k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64x2_mul
Line
Count
Source
1628
1.84k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
1.84k
                Operator::$op $({ $($arg),* })?
1630
1.84k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i8x16_shr_u
Line
Count
Source
1628
3.67k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
3.67k
                Operator::$op $({ $($arg),* })?
1630
3.67k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i8x16_sub_sat_u
Line
Count
Source
1628
4.34k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
4.34k
                Operator::$op $({ $($arg),* })?
1630
4.34k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64_const
Line
Count
Source
1628
393k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
393k
                Operator::$op $({ $($arg),* })?
1630
393k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64_atomic_rmw_xchg
Line
Count
Source
1628
2.31k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
2.31k
                Operator::$op $({ $($arg),* })?
1630
2.31k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32_atomic_rmw_cmpxchg
Line
Count
Source
1628
2.56k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
2.56k
                Operator::$op $({ $($arg),* })?
1630
2.56k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64_extend32_s
Line
Count
Source
1628
28.1k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
28.1k
                Operator::$op $({ $($arg),* })?
1630
28.1k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64_load32_u
Line
Count
Source
1628
22.9k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
22.9k
                Operator::$op $({ $($arg),* })?
1630
22.9k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_ref_is_null
Line
Count
Source
1628
9.18k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
9.18k
                Operator::$op $({ $($arg),* })?
1630
9.18k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32_lt_u
Line
Count
Source
1628
17.0k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
17.0k
                Operator::$op $({ $($arg),* })?
1630
17.0k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_mul
Line
Count
Source
1628
1.58k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
1.58k
                Operator::$op $({ $($arg),* })?
1630
1.58k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_le_s
Line
Count
Source
1628
11.4k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
11.4k
                Operator::$op $({ $($arg),* })?
1630
11.4k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_lt_s
Line
Count
Source
1628
2.18k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
2.18k
                Operator::$op $({ $($arg),* })?
1630
2.18k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_catch
Line
Count
Source
1628
17.2k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
17.2k
                Operator::$op $({ $($arg),* })?
1630
17.2k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f32x4_relaxed_madd
Line
Count
Source
1628
2.41k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
2.41k
                Operator::$op $({ $($arg),* })?
1630
2.41k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32_atomic_load8_u
Line
Count
Source
1628
995
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
995
                Operator::$op $({ $($arg),* })?
1630
995
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64_atomic_store
Line
Count
Source
1628
4.40k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
4.40k
                Operator::$op $({ $($arg),* })?
1630
4.40k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f32_mul
Line
Count
Source
1628
35.7k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
35.7k
                Operator::$op $({ $($arg),* })?
1630
35.7k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f64x2_add
Line
Count
Source
1628
1.01k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
1.01k
                Operator::$op $({ $($arg),* })?
1630
1.01k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_v128_andnot
Line
Count
Source
1628
1.59k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
1.59k
                Operator::$op $({ $($arg),* })?
1630
1.59k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_v128_load8_lane
Line
Count
Source
1628
2.00k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
2.00k
                Operator::$op $({ $($arg),* })?
1630
2.00k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64x2_extmul_high_i32x4_s
Line
Count
Source
1628
4.54k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
4.54k
                Operator::$op $({ $($arg),* })?
1630
4.54k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i8x16_lt_s
Line
Count
Source
1628
1.49k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
1.49k
                Operator::$op $({ $($arg),* })?
1630
1.49k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_gt_u
Line
Count
Source
1628
1.22k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
1.22k
                Operator::$op $({ $($arg),* })?
1630
1.22k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_min_u
Line
Count
Source
1628
9.27k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
9.27k
                Operator::$op $({ $($arg),* })?
1630
9.27k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64_shl
Line
Count
Source
1628
5.02k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
5.02k
                Operator::$op $({ $($arg),* })?
1630
5.02k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f32x4_sub
Line
Count
Source
1628
1.13k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
1.13k
                Operator::$op $({ $($arg),* })?
1630
1.13k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_extadd_pairwise_i8x16_u
Line
Count
Source
1628
13.0k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
13.0k
                Operator::$op $({ $($arg),* })?
1630
13.0k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_trunc_sat_f32x4_u
Line
Count
Source
1628
8.31k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
8.31k
                Operator::$op $({ $($arg),* })?
1630
8.31k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_min_u
Line
Count
Source
1628
2.21k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
2.21k
                Operator::$op $({ $($arg),* })?
1630
2.21k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_min_s
Line
Count
Source
1628
3.01k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
3.01k
                Operator::$op $({ $($arg),* })?
1630
3.01k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_v128_load
Line
Count
Source
1628
33.8k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
33.8k
                Operator::$op $({ $($arg),* })?
1630
33.8k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f64_mul
Line
Count
Source
1628
5.62k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
5.62k
                Operator::$op $({ $($arg),* })?
1630
5.62k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64_eqz
Line
Count
Source
1628
28.6k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
28.6k
                Operator::$op $({ $($arg),* })?
1630
28.6k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64_gt_u
Line
Count
Source
1628
12.8k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
12.8k
                Operator::$op $({ $($arg),* })?
1630
12.8k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_neg
Line
Count
Source
1628
24.1k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
24.1k
                Operator::$op $({ $($arg),* })?
1630
24.1k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_ge_u
Line
Count
Source
1628
3.91k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
3.91k
                Operator::$op $({ $($arg),* })?
1630
3.91k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32_div_u
Line
Count
Source
1628
22.4k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
22.4k
                Operator::$op $({ $($arg),* })?
1630
22.4k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_catch_all
Line
Count
Source
1628
52.0k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
52.0k
                Operator::$op $({ $($arg),* })?
1630
52.0k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_extadd_pairwise_i8x16_s
Line
Count
Source
1628
8.02k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
8.02k
                Operator::$op $({ $($arg),* })?
1630
8.02k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64_atomic_rmw_add
Line
Count
Source
1628
38.8k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
38.8k
                Operator::$op $({ $($arg),* })?
1630
38.8k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64_atomic_rmw8_or_u
Line
Count
Source
1628
1.45k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
1.45k
                Operator::$op $({ $($arg),* })?
1630
1.45k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f32_convert_i32_u
Line
Count
Source
1628
28.4k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
28.4k
                Operator::$op $({ $($arg),* })?
1630
28.4k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f64_convert_i64_s
Line
Count
Source
1628
10.2k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
10.2k
                Operator::$op $({ $($arg),* })?
1630
10.2k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32_or
Line
Count
Source
1628
20.6k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
20.6k
                Operator::$op $({ $($arg),* })?
1630
20.6k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_local_get
Line
Count
Source
1628
540k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
540k
                Operator::$op $({ $($arg),* })?
1630
540k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64_load
Line
Count
Source
1628
15.5k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
15.5k
                Operator::$op $({ $($arg),* })?
1630
15.5k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i8x16_shr_s
Line
Count
Source
1628
10.1k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
10.1k
                Operator::$op $({ $($arg),* })?
1630
10.1k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32_store16
Line
Count
Source
1628
6.26k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
6.26k
                Operator::$op $({ $($arg),* })?
1630
6.26k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32_const
Line
Count
Source
1628
946k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
946k
                Operator::$op $({ $($arg),* })?
1630
946k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_extend_low_i8x16_u
Line
Count
Source
1628
11.9k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
11.9k
                Operator::$op $({ $($arg),* })?
1630
11.9k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i8x16_gt_u
Line
Count
Source
1628
25.1k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
25.1k
                Operator::$op $({ $($arg),* })?
1630
25.1k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_ne
Line
Count
Source
1628
4.30k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
4.30k
                Operator::$op $({ $($arg),* })?
1630
4.30k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_ge_s
Line
Count
Source
1628
3.42k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
3.42k
                Operator::$op $({ $($arg),* })?
1630
3.42k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64_reinterpret_f64
Line
Count
Source
1628
27.4k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
27.4k
                Operator::$op $({ $($arg),* })?
1630
27.4k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_table_get
Line
Count
Source
1628
9.22k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
9.22k
                Operator::$op $({ $($arg),* })?
1630
9.22k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64_and
Line
Count
Source
1628
6.40k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
6.40k
                Operator::$op $({ $($arg),* })?
1630
6.40k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64_rotl
Line
Count
Source
1628
3.12k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
3.12k
                Operator::$op $({ $($arg),* })?
1630
3.12k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f32x4_min
Line
Count
Source
1628
3.30k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
3.30k
                Operator::$op $({ $($arg),* })?
1630
3.30k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_gt_u
Line
Count
Source
1628
4.28k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
4.28k
                Operator::$op $({ $($arg),* })?
1630
4.28k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_unreachable
Line
Count
Source
1628
5.96M
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
5.96M
                Operator::$op $({ $($arg),* })?
1630
5.96M
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_try
Line
Count
Source
1628
527k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
527k
                Operator::$op $({ $($arg),* })?
1630
527k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f32x4_gt
Line
Count
Source
1628
7.81k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
7.81k
                Operator::$op $({ $($arg),* })?
1630
7.81k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_v128_load16x4_s
Line
Count
Source
1628
3.35k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
3.35k
                Operator::$op $({ $($arg),* })?
1630
3.35k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64x2_extend_low_i32x4_s
Line
Count
Source
1628
11.9k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
11.9k
                Operator::$op $({ $($arg),* })?
1630
11.9k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f64_max
Line
Count
Source
1628
2.71k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
2.71k
                Operator::$op $({ $($arg),* })?
1630
2.71k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64_lt_s
Line
Count
Source
1628
16.9k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
16.9k
                Operator::$op $({ $($arg),* })?
1630
16.9k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_gt_s
Line
Count
Source
1628
17.1k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
17.1k
                Operator::$op $({ $($arg),* })?
1630
17.1k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64_atomic_rmw32_or_u
Line
Count
Source
1628
10.0k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
10.0k
                Operator::$op $({ $($arg),* })?
1630
10.0k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_extend_low_i16x8_s
Line
Count
Source
1628
10.6k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
10.6k
                Operator::$op $({ $($arg),* })?
1630
10.6k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_typed_select
Line
Count
Source
1628
3.80k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
3.80k
                Operator::$op $({ $($arg),* })?
1630
3.80k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_return_call_ref
Line
Count
Source
1628
4.44k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
4.44k
                Operator::$op $({ $($arg),* })?
1630
4.44k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64x2_extmul_low_i32x4_s
Line
Count
Source
1628
8.42k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
8.42k
                Operator::$op $({ $($arg),* })?
1630
8.42k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f32_neg
Line
Count
Source
1628
19.0k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
19.0k
                Operator::$op $({ $($arg),* })?
1630
19.0k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64_atomic_rmw8_add_u
Line
Count
Source
1628
965
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
965
                Operator::$op $({ $($arg),* })?
1630
965
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f64x2_neg
Line
Count
Source
1628
7.03k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
7.03k
                Operator::$op $({ $($arg),* })?
1630
7.03k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_shl
Line
Count
Source
1628
1.03k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
1.03k
                Operator::$op $({ $($arg),* })?
1630
1.03k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32_shr_s
Line
Count
Source
1628
31.0k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
31.0k
                Operator::$op $({ $($arg),* })?
1630
31.0k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_global_get
Line
Count
Source
1628
119k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
119k
                Operator::$op $({ $($arg),* })?
1630
119k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_v128_load64_zero
Line
Count
Source
1628
3.76k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
3.76k
                Operator::$op $({ $($arg),* })?
1630
3.76k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_table_grow
Line
Count
Source
1628
3.59k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
3.59k
                Operator::$op $({ $($arg),* })?
1630
3.59k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i8x16_add_sat_s
Line
Count
Source
1628
41.5k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
41.5k
                Operator::$op $({ $($arg),* })?
1630
41.5k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32_atomic_rmw16_add_u
Line
Count
Source
1628
1.24k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
1.24k
                Operator::$op $({ $($arg),* })?
1630
1.24k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f32_ne
Line
Count
Source
1628
8.89k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
8.89k
                Operator::$op $({ $($arg),* })?
1630
8.89k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32_extend8_s
Line
Count
Source
1628
36.1k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
36.1k
                Operator::$op $({ $($arg),* })?
1630
36.1k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_mul
Line
Count
Source
1628
1.88k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
1.88k
                Operator::$op $({ $($arg),* })?
1630
1.88k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f32x4_ge
Line
Count
Source
1628
848
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
848
                Operator::$op $({ $($arg),* })?
1630
848
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i8x16_add
Line
Count
Source
1628
5.15k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
5.15k
                Operator::$op $({ $($arg),* })?
1630
5.15k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64_atomic_load8_u
Line
Count
Source
1628
2.20k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
2.20k
                Operator::$op $({ $($arg),* })?
1630
2.20k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64_atomic_rmw32_sub_u
Line
Count
Source
1628
1.29k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
1.29k
                Operator::$op $({ $($arg),* })?
1630
1.29k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32_wrap_i64
Line
Count
Source
1628
28.7k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
28.7k
                Operator::$op $({ $($arg),* })?
1630
28.7k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_relaxed_trunc_f32x4_s
Line
Count
Source
1628
12.0k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
12.0k
                Operator::$op $({ $($arg),* })?
1630
12.0k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f64x2_relaxed_madd
Line
Count
Source
1628
499
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
499
                Operator::$op $({ $($arg),* })?
1630
499
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f64_reinterpret_i64
Line
Count
Source
1628
14.5k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
14.5k
                Operator::$op $({ $($arg),* })?
1630
14.5k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_br_table
Line
Count
Source
1628
13.1k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
13.1k
                Operator::$op $({ $($arg),* })?
1630
13.1k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64x2_extend_high_i32x4_u
Line
Count
Source
1628
12.2k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
12.2k
                Operator::$op $({ $($arg),* })?
1630
12.2k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i8x16_sub_sat_s
Line
Count
Source
1628
2.06k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
2.06k
                Operator::$op $({ $($arg),* })?
1630
2.06k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i8x16_avgr_u
Line
Count
Source
1628
3.40k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
3.40k
                Operator::$op $({ $($arg),* })?
1630
3.40k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i8x16_swizzle
Line
Count
Source
1628
3.02k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
3.02k
                Operator::$op $({ $($arg),* })?
1630
3.02k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_le_u
Line
Count
Source
1628
39.2k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
39.2k
                Operator::$op $({ $($arg),* })?
1630
39.2k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f32_convert_i32_s
Line
Count
Source
1628
30.8k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
30.8k
                Operator::$op $({ $($arg),* })?
1630
30.8k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64x2_add
Line
Count
Source
1628
2.60k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
2.60k
                Operator::$op $({ $($arg),* })?
1630
2.60k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64x2_extmul_high_i32x4_u
Line
Count
Source
1628
15.3k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
15.3k
                Operator::$op $({ $($arg),* })?
1630
15.3k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f32_trunc
Line
Count
Source
1628
13.5k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
13.5k
                Operator::$op $({ $($arg),* })?
1630
13.5k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f64x2_trunc
Line
Count
Source
1628
15.5k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
15.5k
                Operator::$op $({ $($arg),* })?
1630
15.5k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_add
Line
Count
Source
1628
19.0k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
19.0k
                Operator::$op $({ $($arg),* })?
1630
19.0k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_v128_load16_lane
Line
Count
Source
1628
4.35k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
4.35k
                Operator::$op $({ $($arg),* })?
1630
4.35k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64_rem_u
Line
Count
Source
1628
5.56k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
5.56k
                Operator::$op $({ $($arg),* })?
1630
5.56k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f64_neg
Line
Count
Source
1628
29.2k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
29.2k
                Operator::$op $({ $($arg),* })?
1630
29.2k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32_lt_s
Line
Count
Source
1628
25.1k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
25.1k
                Operator::$op $({ $($arg),* })?
1630
25.1k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f32_le
Line
Count
Source
1628
14.3k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
14.3k
                Operator::$op $({ $($arg),* })?
1630
14.3k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f64x2_lt
Line
Count
Source
1628
1.88k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
1.88k
                Operator::$op $({ $($arg),* })?
1630
1.88k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64_rem_s
Line
Count
Source
1628
32.2k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
32.2k
                Operator::$op $({ $($arg),* })?
1630
32.2k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32_atomic_store
Line
Count
Source
1628
4.17k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
4.17k
                Operator::$op $({ $($arg),* })?
1630
4.17k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64_ne
Line
Count
Source
1628
8.58k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
8.58k
                Operator::$op $({ $($arg),* })?
1630
8.58k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32_add
Line
Count
Source
1628
16.4k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
16.4k
                Operator::$op $({ $($arg),* })?
1630
16.4k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_call_indirect
Line
Count
Source
1628
14.9k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
14.9k
                Operator::$op $({ $($arg),* })?
1630
14.9k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_v128_load8x8_s
Line
Count
Source
1628
8.83k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
8.83k
                Operator::$op $({ $($arg),* })?
1630
8.83k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64_trunc_sat_f64_u
Line
Count
Source
1628
8.70k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
8.70k
                Operator::$op $({ $($arg),* })?
1630
8.70k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i8x16_abs
Line
Count
Source
1628
38.4k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
38.4k
                Operator::$op $({ $($arg),* })?
1630
38.4k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64_eq
Line
Count
Source
1628
6.53k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
6.53k
                Operator::$op $({ $($arg),* })?
1630
6.53k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f32_convert_i64_u
Line
Count
Source
1628
25.3k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
25.3k
                Operator::$op $({ $($arg),* })?
1630
25.3k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_gt_s
Line
Count
Source
1628
4.65k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
4.65k
                Operator::$op $({ $($arg),* })?
1630
4.65k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64x2_eq
Line
Count
Source
1628
1.20k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
1.20k
                Operator::$op $({ $($arg),* })?
1630
1.20k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_v128_load32x2_s
Line
Count
Source
1628
3.76k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
3.76k
                Operator::$op $({ $($arg),* })?
1630
3.76k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64_store16
Line
Count
Source
1628
9.43k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
9.43k
                Operator::$op $({ $($arg),* })?
1630
9.43k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32_atomic_rmw8_add_u
Line
Count
Source
1628
775
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
775
                Operator::$op $({ $($arg),* })?
1630
775
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f64_floor
Line
Count
Source
1628
21.2k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
21.2k
                Operator::$op $({ $($arg),* })?
1630
21.2k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_trunc_sat_f32x4_s
Line
Count
Source
1628
19.2k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
19.2k
                Operator::$op $({ $($arg),* })?
1630
19.2k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f64x2_convert_low_i32x4_s
Line
Count
Source
1628
31.8k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
31.8k
                Operator::$op $({ $($arg),* })?
1630
31.8k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_f32x4_relaxed_min
Line
Count
Source
1628
3.43k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
3.43k
                Operator::$op $({ $($arg),* })?
1630
3.43k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i64x2_le_s
Line
Count
Source
1628
5.61k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
5.61k
                Operator::$op $({ $($arg),* })?
1630
5.61k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_local_set
Line
Count
Source
1628
37.7k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
37.7k
                Operator::$op $({ $($arg),* })?
1630
37.7k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i8x16_all_true
Line
Count
Source
1628
4.19k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
4.19k
                Operator::$op $({ $($arg),* })?
1630
4.19k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_v128_const
Line
Count
Source
1628
486k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
486k
                Operator::$op $({ $($arg),* })?
1630
486k
            }
<wasmparser::binary_reader::OperatorFactory as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_extract_lane_s
Line
Count
Source
1628
9.86k
            fn $visit(&mut self $($(,$arg: $argty)*)?) -> Operator<'a> {
1629
9.86k
                Operator::$op $({ $($arg),* })?
1630
9.86k
            }
1631
        )*
1632
    }
1633
}
1634
1635
impl<'a> VisitOperator<'a> for OperatorFactory<'a> {
1636
    type Output = Operator<'a>;
1637
1638
    for_each_operator!(define_visit_operator);
1639
}
1640
1641
/// Iterator returned from [`BinaryReader::read_iter`].
1642
pub struct BinaryReaderIter<'a, 'me, T: FromReader<'a>> {
1643
    remaining: usize,
1644
    reader: &'me mut BinaryReader<'a>,
1645
    _marker: marker::PhantomData<T>,
1646
}
1647
1648
impl<'a, T> Iterator for BinaryReaderIter<'a, '_, T>
1649
where
1650
    T: FromReader<'a>,
1651
{
1652
    type Item = Result<T>;
1653
1654
112M
    fn next(&mut self) -> Option<Result<T>> {
1655
112M
        if self.remaining == 0 {
1656
30.4M
            None
1657
        } else {
1658
81.7M
            let ret = self.reader.read::<T>();
1659
81.7M
            if ret.is_err() {
1660
6.15k
                self.remaining = 0;
1661
81.7M
            } else {
1662
81.7M
                self.remaining -= 1;
1663
81.7M
            }
1664
81.7M
            Some(ret)
1665
        }
1666
112M
    }
<wasmparser::binary_reader::BinaryReaderIter<wasmparser::readers::core::types::ValType> as core::iter::traits::iterator::Iterator>::next
Line
Count
Source
1654
24.1M
    fn next(&mut self) -> Option<Result<T>> {
1655
24.1M
        if self.remaining == 0 {
1656
4.86M
            None
1657
        } else {
1658
19.2M
            let ret = self.reader.read::<T>();
1659
19.2M
            if ret.is_err() {
1660
63
                self.remaining = 0;
1661
19.2M
            } else {
1662
19.2M
                self.remaining -= 1;
1663
19.2M
            }
1664
19.2M
            Some(ret)
1665
        }
1666
24.1M
    }
<wasmparser::binary_reader::BinaryReaderIter<wasmparser::readers::core::exports::Export> as core::iter::traits::iterator::Iterator>::next
Line
Count
Source
1654
415k
    fn next(&mut self) -> Option<Result<T>> {
1655
415k
        if self.remaining == 0 {
1656
124k
            None
1657
        } else {
1658
290k
            let ret = self.reader.read::<T>();
1659
290k
            if ret.is_err() {
1660
39
                self.remaining = 0;
1661
290k
            } else {
1662
290k
                self.remaining -= 1;
1663
290k
            }
1664
290k
            Some(ret)
1665
        }
1666
415k
    }
<wasmparser::binary_reader::BinaryReaderIter<&str> as core::iter::traits::iterator::Iterator>::next
Line
Count
Source
1654
10.1M
    fn next(&mut self) -> Option<Result<T>> {
1655
10.1M
        if self.remaining == 0 {
1656
4.12M
            None
1657
        } else {
1658
6.06M
            let ret = self.reader.read::<T>();
1659
6.06M
            if ret.is_err() {
1660
19
                self.remaining = 0;
1661
6.06M
            } else {
1662
6.06M
                self.remaining -= 1;
1663
6.06M
            }
1664
6.06M
            Some(ret)
1665
        }
1666
10.1M
    }
<wasmparser::binary_reader::BinaryReaderIter<wasmparser::readers::component::types::InstanceTypeDeclaration> as core::iter::traits::iterator::Iterator>::next
Line
Count
Source
1654
27.4M
    fn next(&mut self) -> Option<Result<T>> {
1655
27.4M
        if self.remaining == 0 {
1656
3.04M
            None
1657
        } else {
1658
24.4M
            let ret = self.reader.read::<T>();
1659
24.4M
            if ret.is_err() {
1660
3.05k
                self.remaining = 0;
1661
24.4M
            } else {
1662
24.4M
                self.remaining -= 1;
1663
24.4M
            }
1664
24.4M
            Some(ret)
1665
        }
1666
27.4M
    }
<wasmparser::binary_reader::BinaryReaderIter<wasmparser::readers::component::types::ModuleTypeDeclaration> as core::iter::traits::iterator::Iterator>::next
Line
Count
Source
1654
1.77k
    fn next(&mut self) -> Option<Result<T>> {
1655
1.77k
        if self.remaining == 0 {
1656
1.26k
            None
1657
        } else {
1658
513
            let ret = self.reader.read::<T>();
1659
513
            if ret.is_err() {
1660
48
                self.remaining = 0;
1661
465
            } else {
1662
465
                self.remaining -= 1;
1663
465
            }
1664
513
            Some(ret)
1665
        }
1666
1.77k
    }
<wasmparser::binary_reader::BinaryReaderIter<(&str, wasmparser::readers::component::types::ComponentValType)> as core::iter::traits::iterator::Iterator>::next
Line
Count
Source
1654
26.7M
    fn next(&mut self) -> Option<Result<T>> {
1655
26.7M
        if self.remaining == 0 {
1656
10.6M
            None
1657
        } else {
1658
16.0M
            let ret = self.reader.read::<T>();
1659
16.0M
            if ret.is_err() {
1660
35
                self.remaining = 0;
1661
16.0M
            } else {
1662
16.0M
                self.remaining -= 1;
1663
16.0M
            }
1664
16.0M
            Some(ret)
1665
        }
1666
26.7M
    }
<wasmparser::binary_reader::BinaryReaderIter<wasmparser::readers::component::instances::ComponentInstantiationArg> as core::iter::traits::iterator::Iterator>::next
Line
Count
Source
1654
104k
    fn next(&mut self) -> Option<Result<T>> {
1655
104k
        if self.remaining == 0 {
1656
60.1k
            None
1657
        } else {
1658
44.4k
            let ret = self.reader.read::<T>();
1659
44.4k
            if ret.is_err() {
1660
46
                self.remaining = 0;
1661
44.3k
            } else {
1662
44.3k
                self.remaining -= 1;
1663
44.3k
            }
1664
44.4k
            Some(ret)
1665
        }
1666
104k
    }
<wasmparser::binary_reader::BinaryReaderIter<wasmparser::readers::component::instances::InstantiationArg> as core::iter::traits::iterator::Iterator>::next
Line
Count
Source
1654
300k
    fn next(&mut self) -> Option<Result<T>> {
1655
300k
        if self.remaining == 0 {
1656
238k
            None
1657
        } else {
1658
62.2k
            let ret = self.reader.read::<T>();
1659
62.2k
            if ret.is_err() {
1660
29
                self.remaining = 0;
1661
62.2k
            } else {
1662
62.2k
                self.remaining -= 1;
1663
62.2k
            }
1664
62.2k
            Some(ret)
1665
        }
1666
300k
    }
<wasmparser::binary_reader::BinaryReaderIter<wasmparser::readers::component::types::VariantCase> as core::iter::traits::iterator::Iterator>::next
Line
Count
Source
1654
3.47M
    fn next(&mut self) -> Option<Result<T>> {
1655
3.47M
        if self.remaining == 0 {
1656
1.33M
            None
1657
        } else {
1658
2.13M
            let ret = self.reader.read::<T>();
1659
2.13M
            if ret.is_err() {
1660
35
                self.remaining = 0;
1661
2.13M
            } else {
1662
2.13M
                self.remaining -= 1;
1663
2.13M
            }
1664
2.13M
            Some(ret)
1665
        }
1666
3.47M
    }
<wasmparser::binary_reader::BinaryReaderIter<wasmparser::readers::component::types::ComponentTypeDeclaration> as core::iter::traits::iterator::Iterator>::next
Line
Count
Source
1654
10.6M
    fn next(&mut self) -> Option<Result<T>> {
1655
10.6M
        if self.remaining == 0 {
1656
2.25M
            None
1657
        } else {
1658
8.35M
            let ret = self.reader.read::<T>();
1659
8.35M
            if ret.is_err() {
1660
2.50k
                self.remaining = 0;
1661
8.34M
            } else {
1662
8.34M
                self.remaining -= 1;
1663
8.34M
            }
1664
8.35M
            Some(ret)
1665
        }
1666
10.6M
    }
<wasmparser::binary_reader::BinaryReaderIter<u32> as core::iter::traits::iterator::Iterator>::next
Line
Count
Source
1654
30.3k
    fn next(&mut self) -> Option<Result<T>> {
1655
30.3k
        if self.remaining == 0 {
1656
8.28k
            None
1657
        } else {
1658
22.0k
            let ret = self.reader.read::<T>();
1659
22.0k
            if ret.is_err() {
1660
189
                self.remaining = 0;
1661
21.8k
            } else {
1662
21.8k
                self.remaining -= 1;
1663
21.8k
            }
1664
22.0k
            Some(ret)
1665
        }
1666
30.3k
    }
<wasmparser::binary_reader::BinaryReaderIter<wasmparser::readers::component::canonicals::CanonicalOption> as core::iter::traits::iterator::Iterator>::next
Line
Count
Source
1654
645k
    fn next(&mut self) -> Option<Result<T>> {
1655
645k
        if self.remaining == 0 {
1656
423k
            None
1657
        } else {
1658
221k
            let ret = self.reader.read::<T>();
1659
221k
            if ret.is_err() {
1660
57
                self.remaining = 0;
1661
221k
            } else {
1662
221k
                self.remaining -= 1;
1663
221k
            }
1664
221k
            Some(ret)
1665
        }
1666
645k
    }
<wasmparser::binary_reader::BinaryReaderIter<wasmparser::readers::component::types::ComponentValType> as core::iter::traits::iterator::Iterator>::next
Line
Count
Source
1654
7.98M
    fn next(&mut self) -> Option<Result<T>> {
1655
7.98M
        if self.remaining == 0 {
1656
3.25M
            None
1657
        } else {
1658
4.72M
            let ret = self.reader.read::<T>();
1659
4.72M
            if ret.is_err() {
1660
41
                self.remaining = 0;
1661
4.72M
            } else {
1662
4.72M
                self.remaining -= 1;
1663
4.72M
            }
1664
4.72M
            Some(ret)
1665
        }
1666
7.98M
    }
1667
1668
20.0M
    fn size_hint(&self) -> (usize, Option<usize>) {
1669
20.0M
        (self.remaining, Some(self.remaining))
1670
20.0M
    }
<wasmparser::binary_reader::BinaryReaderIter<wasmparser::readers::component::types::VariantCase> as core::iter::traits::iterator::Iterator>::size_hint
Line
Count
Source
1668
841k
    fn size_hint(&self) -> (usize, Option<usize>) {
1669
841k
        (self.remaining, Some(self.remaining))
1670
841k
    }
<wasmparser::binary_reader::BinaryReaderIter<wasmparser::readers::component::instances::InstantiationArg> as core::iter::traits::iterator::Iterator>::size_hint
Line
Count
Source
1668
53.2k
    fn size_hint(&self) -> (usize, Option<usize>) {
1669
53.2k
        (self.remaining, Some(self.remaining))
1670
53.2k
    }
<wasmparser::binary_reader::BinaryReaderIter<(&str, wasmparser::readers::component::types::ComponentValType)> as core::iter::traits::iterator::Iterator>::size_hint
Line
Count
Source
1668
5.86M
    fn size_hint(&self) -> (usize, Option<usize>) {
1669
5.86M
        (self.remaining, Some(self.remaining))
1670
5.86M
    }
<wasmparser::binary_reader::BinaryReaderIter<wasmparser::readers::core::types::ValType> as core::iter::traits::iterator::Iterator>::size_hint
Line
Count
Source
1668
3.68M
    fn size_hint(&self) -> (usize, Option<usize>) {
1669
3.68M
        (self.remaining, Some(self.remaining))
1670
3.68M
    }
<wasmparser::binary_reader::BinaryReaderIter<wasmparser::readers::component::types::InstanceTypeDeclaration> as core::iter::traits::iterator::Iterator>::size_hint
Line
Count
Source
1668
3.06M
    fn size_hint(&self) -> (usize, Option<usize>) {
1669
3.06M
        (self.remaining, Some(self.remaining))
1670
3.06M
    }
<wasmparser::binary_reader::BinaryReaderIter<u32> as core::iter::traits::iterator::Iterator>::size_hint
Line
Count
Source
1668
3.43k
    fn size_hint(&self) -> (usize, Option<usize>) {
1669
3.43k
        (self.remaining, Some(self.remaining))
1670
3.43k
    }
<wasmparser::binary_reader::BinaryReaderIter<wasmparser::readers::core::exports::Export> as core::iter::traits::iterator::Iterator>::size_hint
Line
Count
Source
1668
97.2k
    fn size_hint(&self) -> (usize, Option<usize>) {
1669
97.2k
        (self.remaining, Some(self.remaining))
1670
97.2k
    }
<wasmparser::binary_reader::BinaryReaderIter<&str> as core::iter::traits::iterator::Iterator>::size_hint
Line
Count
Source
1668
2.38M
    fn size_hint(&self) -> (usize, Option<usize>) {
1669
2.38M
        (self.remaining, Some(self.remaining))
1670
2.38M
    }
<wasmparser::binary_reader::BinaryReaderIter<wasmparser::readers::component::instances::ComponentInstantiationArg> as core::iter::traits::iterator::Iterator>::size_hint
Line
Count
Source
1668
13.9k
    fn size_hint(&self) -> (usize, Option<usize>) {
1669
13.9k
        (self.remaining, Some(self.remaining))
1670
13.9k
    }
<wasmparser::binary_reader::BinaryReaderIter<wasmparser::readers::component::types::ComponentValType> as core::iter::traits::iterator::Iterator>::size_hint
Line
Count
Source
1668
1.97M
    fn size_hint(&self) -> (usize, Option<usize>) {
1669
1.97M
        (self.remaining, Some(self.remaining))
1670
1.97M
    }
<wasmparser::binary_reader::BinaryReaderIter<wasmparser::readers::component::canonicals::CanonicalOption> as core::iter::traits::iterator::Iterator>::size_hint
Line
Count
Source
1668
149k
    fn size_hint(&self) -> (usize, Option<usize>) {
1669
149k
        (self.remaining, Some(self.remaining))
1670
149k
    }
<wasmparser::binary_reader::BinaryReaderIter<wasmparser::readers::component::types::ComponentTypeDeclaration> as core::iter::traits::iterator::Iterator>::size_hint
Line
Count
Source
1668
1.86M
    fn size_hint(&self) -> (usize, Option<usize>) {
1669
1.86M
        (self.remaining, Some(self.remaining))
1670
1.86M
    }
<wasmparser::binary_reader::BinaryReaderIter<wasmparser::readers::component::types::ModuleTypeDeclaration> as core::iter::traits::iterator::Iterator>::size_hint
Line
Count
Source
1668
173
    fn size_hint(&self) -> (usize, Option<usize>) {
1669
173
        (self.remaining, Some(self.remaining))
1670
173
    }
1671
}
1672
1673
impl<'a, T> Drop for BinaryReaderIter<'a, '_, T>
1674
where
1675
    T: FromReader<'a>,
1676
{
1677
15.2M
    fn drop(&mut self) {
1678
15.2M
        while self.next().is_some() {
1679
0
            // ...
1680
0
        }
1681
15.2M
    }
<wasmparser::binary_reader::BinaryReaderIter<wasmparser::readers::core::types::ValType> as core::ops::drop::Drop>::drop
Line
Count
Source
1677
2.43M
    fn drop(&mut self) {
1678
2.43M
        while self.next().is_some() {
1679
0
            // ...
1680
0
        }
1681
2.43M
    }
<wasmparser::binary_reader::BinaryReaderIter<wasmparser::readers::component::types::ModuleTypeDeclaration> as core::ops::drop::Drop>::drop
Line
Count
Source
1677
654
    fn drop(&mut self) {
1678
654
        while self.next().is_some() {
1679
0
            // ...
1680
0
        }
1681
654
    }
<wasmparser::binary_reader::BinaryReaderIter<wasmparser::readers::component::instances::ComponentInstantiationArg> as core::ops::drop::Drop>::drop
Line
Count
Source
1677
30.0k
    fn drop(&mut self) {
1678
30.0k
        while self.next().is_some() {
1679
0
            // ...
1680
0
        }
1681
30.0k
    }
<wasmparser::binary_reader::BinaryReaderIter<wasmparser::readers::component::types::ComponentTypeDeclaration> as core::ops::drop::Drop>::drop
Line
Count
Source
1677
1.12M
    fn drop(&mut self) {
1678
1.12M
        while self.next().is_some() {
1679
0
            // ...
1680
0
        }
1681
1.12M
    }
<wasmparser::binary_reader::BinaryReaderIter<wasmparser::readers::component::instances::InstantiationArg> as core::ops::drop::Drop>::drop
Line
Count
Source
1677
119k
    fn drop(&mut self) {
1678
119k
        while self.next().is_some() {
1679
0
            // ...
1680
0
        }
1681
119k
    }
<wasmparser::binary_reader::BinaryReaderIter<wasmparser::readers::component::canonicals::CanonicalOption> as core::ops::drop::Drop>::drop
Line
Count
Source
1677
211k
    fn drop(&mut self) {
1678
211k
        while self.next().is_some() {
1679
0
            // ...
1680
0
        }
1681
211k
    }
<wasmparser::binary_reader::BinaryReaderIter<(&str, wasmparser::readers::component::types::ComponentValType)> as core::ops::drop::Drop>::drop
Line
Count
Source
1677
5.33M
    fn drop(&mut self) {
1678
5.33M
        while self.next().is_some() {
1679
0
            // ...
1680
0
        }
1681
5.33M
    }
<wasmparser::binary_reader::BinaryReaderIter<wasmparser::readers::core::exports::Export> as core::ops::drop::Drop>::drop
Line
Count
Source
1677
62.2k
    fn drop(&mut self) {
1678
62.2k
        while self.next().is_some() {
1679
0
            // ...
1680
0
        }
1681
62.2k
    }
<wasmparser::binary_reader::BinaryReaderIter<wasmparser::readers::component::types::VariantCase> as core::ops::drop::Drop>::drop
Line
Count
Source
1677
669k
    fn drop(&mut self) {
1678
669k
        while self.next().is_some() {
1679
0
            // ...
1680
0
        }
1681
669k
    }
<wasmparser::binary_reader::BinaryReaderIter<wasmparser::readers::component::types::ComponentValType> as core::ops::drop::Drop>::drop
Line
Count
Source
1677
1.62M
    fn drop(&mut self) {
1678
1.62M
        while self.next().is_some() {
1679
0
            // ...
1680
0
        }
1681
1.62M
    }
<wasmparser::binary_reader::BinaryReaderIter<wasmparser::readers::component::types::InstanceTypeDeclaration> as core::ops::drop::Drop>::drop
Line
Count
Source
1677
1.52M
    fn drop(&mut self) {
1678
1.52M
        while self.next().is_some() {
1679
0
            // ...
1680
0
        }
1681
1.52M
    }
<wasmparser::binary_reader::BinaryReaderIter<&str> as core::ops::drop::Drop>::drop
Line
Count
Source
1677
2.06M
    fn drop(&mut self) {
1678
2.06M
        while self.next().is_some() {
1679
0
            // ...
1680
0
        }
1681
2.06M
    }
<wasmparser::binary_reader::BinaryReaderIter<u32> as core::ops::drop::Drop>::drop
Line
Count
Source
1677
4.23k
    fn drop(&mut self) {
1678
4.23k
        while self.next().is_some() {
1679
0
            // ...
1680
0
        }
1681
4.23k
    }
1682
}