Coverage Report

Created: 2025-01-06 07:43

/src/wasmtime/pulley/src/disas.rs
Line
Count
Source (jump to first uncovered line)
1
//! Disassembly support for pulley bytecode.
2
3
use crate::decode::*;
4
use crate::imms::*;
5
use crate::regs::*;
6
use alloc::string::String;
7
use core::fmt::Write;
8
9
/// A Pulley bytecode disassembler.
10
///
11
/// This is implemented as an `OpVisitor`, where you pass a `Disassembler` to a
12
/// `Decoder` in order to disassemble instructions from a bytecode stream.
13
///
14
/// Alternatively, you can use the `Disassembler::disassemble_all` method to
15
/// disassemble a complete bytecode stream.
16
pub struct Disassembler<'a> {
17
    raw_bytecode: &'a [u8],
18
    bytecode: SafeBytecodeStream<'a>,
19
    disas: String,
20
    start_offset: usize,
21
    start: usize,
22
    temp: String,
23
    offsets: bool,
24
    hexdump: bool,
25
}
26
27
impl<'a> Disassembler<'a> {
28
    /// Disassemble every instruction in the given bytecode stream.
29
0
    pub fn disassemble_all(bytecode: &'a [u8]) -> Result<String> {
30
0
        let mut disas = Self::new(bytecode);
31
0
        Decoder::decode_all(&mut disas)?;
32
0
        Ok(disas.disas)
33
0
    }
34
35
    /// Create a new `Disassembler` that can be used to incrementally
36
    /// disassemble instructions from the given bytecode stream.
37
0
    pub fn new(bytecode: &'a [u8]) -> Self {
38
0
        Self {
39
0
            raw_bytecode: bytecode,
40
0
            bytecode: SafeBytecodeStream::new(bytecode),
41
0
            disas: String::new(),
42
0
            start: 0,
43
0
            start_offset: 0,
44
0
            temp: String::new(),
45
0
            offsets: true,
46
0
            hexdump: true,
47
0
        }
48
0
    }
49
50
    /// Whether to prefix each instruction's disassembly with its offset.
51
    ///
52
    /// True by default.
53
0
    pub fn offsets(&mut self, offsets: bool) -> &mut Self {
54
0
        self.offsets = offsets;
55
0
        self
56
0
    }
57
58
    /// Whether to include a hexdump of the bytecode in the disassembly.
59
    ///
60
    /// True by default.
61
0
    pub fn hexdump(&mut self, hexdump: bool) -> &mut Self {
62
0
        self.hexdump = hexdump;
63
0
        self
64
0
    }
65
66
    /// Configures the offset that this function starts from, if it doesn't
67
    /// start from 0.
68
    ///
69
    /// This can possibly be useful when a single function at a time is being
70
    /// disassembled.
71
0
    pub fn start_offset(&mut self, offset: usize) -> &mut Self {
72
0
        self.start_offset = offset;
73
0
        self
74
0
    }
75
76
    /// Get the disassembly thus far.
77
0
    pub fn disas(&self) -> &str {
78
0
        &self.disas
79
0
    }
80
81
0
    fn disas_op(&mut self, mnemonic: &str, operands: &[&dyn Disas]) {
82
0
        write!(&mut self.temp, "{mnemonic}").unwrap();
83
0
        for (i, val) in operands.iter().enumerate() {
84
0
            if i > 0 {
85
0
                write!(&mut self.temp, ",").unwrap();
86
0
            }
87
0
            write!(&mut self.temp, " ").unwrap();
88
0
            val.disas(self.start + self.start_offset, &mut self.temp);
89
        }
90
0
    }
91
92
0
    fn disas_br_table32(&mut self, reg: XReg, amt: u32) {
93
0
        self.disas_op("br_table32", &[&reg, &amt]);
94
0
        for _ in 0..amt {
95
0
            self.after_visit();
96
0
            self.start = self.bytecode.position();
97
0
            if let Ok(offset) = PcRelOffset::decode(self.bytecode()) {
98
0
                offset.disas(self.start + self.start_offset, &mut self.temp);
99
0
            }
100
        }
101
0
    }
102
}
103
104
/// Anything inside an instruction that can be disassembled: registers,
105
/// immediates, etc...
106
trait Disas {
107
    fn disas(&self, position: usize, disas: &mut String);
108
}
109
110
impl Disas for XReg {
111
0
    fn disas(&self, _position: usize, disas: &mut String) {
112
0
        write!(disas, "{self}").unwrap();
113
0
    }
114
}
115
116
impl Disas for FReg {
117
0
    fn disas(&self, _position: usize, disas: &mut String) {
118
0
        write!(disas, "{self}").unwrap();
119
0
    }
120
}
121
122
impl Disas for VReg {
123
0
    fn disas(&self, _position: usize, disas: &mut String) {
124
0
        write!(disas, "{self}").unwrap();
125
0
    }
126
}
127
128
impl Disas for i8 {
129
0
    fn disas(&self, _position: usize, disas: &mut String) {
130
0
        write!(disas, "{self}").unwrap();
131
0
    }
132
}
133
134
impl Disas for i16 {
135
0
    fn disas(&self, _position: usize, disas: &mut String) {
136
0
        write!(disas, "{self}").unwrap();
137
0
    }
138
}
139
140
impl Disas for i32 {
141
0
    fn disas(&self, _position: usize, disas: &mut String) {
142
0
        write!(disas, "{self}").unwrap();
143
0
    }
144
}
145
146
impl Disas for i64 {
147
0
    fn disas(&self, _position: usize, disas: &mut String) {
148
0
        write!(disas, "{self}").unwrap();
149
0
    }
150
}
151
152
impl Disas for i128 {
153
0
    fn disas(&self, _position: usize, disas: &mut String) {
154
0
        write!(disas, "{self}").unwrap();
155
0
    }
156
}
157
158
impl Disas for u8 {
159
0
    fn disas(&self, _position: usize, disas: &mut String) {
160
0
        write!(disas, "{self}").unwrap();
161
0
    }
162
}
163
164
impl Disas for u16 {
165
0
    fn disas(&self, _position: usize, disas: &mut String) {
166
0
        write!(disas, "{self}").unwrap();
167
0
    }
168
}
169
170
impl Disas for u32 {
171
0
    fn disas(&self, _position: usize, disas: &mut String) {
172
0
        write!(disas, "{self}").unwrap();
173
0
    }
174
}
175
176
impl Disas for u64 {
177
0
    fn disas(&self, _position: usize, disas: &mut String) {
178
0
        write!(disas, "{self}").unwrap();
179
0
    }
180
}
181
182
impl Disas for u128 {
183
0
    fn disas(&self, _position: usize, disas: &mut String) {
184
0
        write!(disas, "{self}").unwrap();
185
0
    }
186
}
187
188
impl Disas for PcRelOffset {
189
0
    fn disas(&self, position: usize, disas: &mut String) {
190
0
        let offset = isize::try_from(i32::from(*self)).unwrap();
191
0
        let target = position.wrapping_add(offset as usize);
192
0
        write!(disas, "{offset:#x}    // target = {target:#x}").unwrap()
193
0
    }
194
}
195
196
impl Disas for U6 {
197
0
    fn disas(&self, _position: usize, disas: &mut String) {
198
0
        write!(disas, "{}", u8::from(*self)).unwrap();
199
0
    }
200
}
201
202
0
fn disas_list<T: Disas>(position: usize, disas: &mut String, iter: impl IntoIterator<Item = T>) {
203
0
    let mut iter = iter.into_iter();
204
0
    let Some(first) = iter.next() else { return };
205
0
    first.disas(position, disas);
206
207
0
    for item in iter {
208
0
        write!(disas, ", ").unwrap();
209
0
        item.disas(position, disas);
210
0
    }
211
0
}
212
213
impl<D, S1, S2> Disas for BinaryOperands<D, S1, S2>
214
where
215
    D: Reg + Disas,
216
    S1: Reg + Disas,
217
    S2: Reg + Disas,
218
{
219
0
    fn disas(&self, position: usize, disas: &mut String) {
220
0
        self.dst.disas(position, disas);
221
0
        write!(disas, ", ").unwrap();
222
0
        self.src1.disas(position, disas);
223
0
        write!(disas, ", ").unwrap();
224
0
        self.src2.disas(position, disas);
225
0
    }
Unexecuted instantiation: <pulley_interpreter::regs::BinaryOperands<pulley_interpreter::regs::FReg> as pulley_interpreter::disas::Disas>::disas
Unexecuted instantiation: <pulley_interpreter::regs::BinaryOperands<pulley_interpreter::regs::VReg, pulley_interpreter::regs::VReg, pulley_interpreter::regs::FReg> as pulley_interpreter::disas::Disas>::disas
Unexecuted instantiation: <pulley_interpreter::regs::BinaryOperands<pulley_interpreter::regs::VReg, pulley_interpreter::regs::VReg, pulley_interpreter::regs::XReg> as pulley_interpreter::disas::Disas>::disas
Unexecuted instantiation: <pulley_interpreter::regs::BinaryOperands<pulley_interpreter::regs::VReg> as pulley_interpreter::disas::Disas>::disas
Unexecuted instantiation: <pulley_interpreter::regs::BinaryOperands<pulley_interpreter::regs::XReg> as pulley_interpreter::disas::Disas>::disas
226
}
227
228
impl<D, S1> Disas for BinaryOperands<D, S1, U6>
229
where
230
    D: Reg + Disas,
231
    S1: Reg + Disas,
232
{
233
0
    fn disas(&self, position: usize, disas: &mut String) {
234
0
        self.dst.disas(position, disas);
235
0
        write!(disas, ", ").unwrap();
236
0
        self.src1.disas(position, disas);
237
0
        write!(disas, ", ").unwrap();
238
0
        self.src2.disas(position, disas);
239
0
    }
240
}
241
242
impl<R: Reg + Disas> Disas for RegSet<R> {
243
0
    fn disas(&self, position: usize, disas: &mut String) {
244
0
        disas_list(position, disas, *self)
245
0
    }
246
}
247
248
macro_rules! impl_disas {
249
    (
250
        $(
251
            $( #[$attr:meta] )*
252
                $snake_name:ident = $name:ident $( {
253
                $(
254
                    $( #[$field_attr:meta] )*
255
                    $field:ident : $field_ty:ty
256
                ),*
257
            } )? ;
258
        )*
259
    ) => {
260
        $(
261
            impl_disas!(@one $snake_name = $name $( { $($field: $field_ty),* } )?);
262
        )*
263
    };
264
265
    // Diassembling `br_table` is a bit special as it has trailing byte after
266
    // the opcode of the branch table itself.
267
    (
268
        @one br_table32 = BrTable32 $( {
269
            $(
270
                $field:ident : $field_ty:ty
271
            ),*
272
        } )?
273
    ) => {
274
0
        fn br_table32(&mut self $( $( , $field : $field_ty )* )? ) {
275
0
            self.disas_br_table32($($($field),*)?)
276
0
        }
277
    };
278
279
    // All other opcodes other than `br_table` are handled in the same manner.
280
    (
281
        @one $snake_name:ident = $name:ident $( {
282
            $(
283
                $field:ident : $field_ty:ty
284
            ),*
285
        } )?
286
    ) => {
287
0
        fn $snake_name(&mut self $( $( , $field : $field_ty )* )? ) {
288
0
            self.disas_op(stringify!($snake_name), &[$($(&$field),*)?])
289
0
        }
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::ret
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::call
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::call1
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::call2
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::call3
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::call4
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::call_indirect
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::jump
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::xjump
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::br_if32
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::br_if_not32
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::br_if_xeq32
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::br_if_xneq32
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::br_if_xslt32
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::br_if_xslteq32
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::br_if_xult32
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::br_if_xulteq32
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::br_if_xeq64
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::br_if_xneq64
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::br_if_xslt64
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::br_if_xslteq64
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::br_if_xult64
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::br_if_xulteq64
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::br_if_xeq32_i8
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::br_if_xeq32_i32
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::br_if_xneq32_i8
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::br_if_xneq32_i32
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::br_if_xslt32_i8
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::br_if_xslt32_i32
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::br_if_xsgt32_i8
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::br_if_xsgt32_i32
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::br_if_xslteq32_i8
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::br_if_xslteq32_i32
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::br_if_xsgteq32_i8
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::br_if_xsgteq32_i32
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::br_if_xult32_u8
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::br_if_xult32_u32
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::br_if_xulteq32_u8
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::br_if_xulteq32_u32
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::br_if_xugt32_u8
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::br_if_xugt32_u32
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::br_if_xugteq32_u8
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::br_if_xugteq32_u32
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::br_if_xeq64_i8
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::br_if_xeq64_i32
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::br_if_xneq64_i8
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::br_if_xneq64_i32
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::br_if_xslt64_i8
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::br_if_xslt64_i32
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::br_if_xsgt64_i8
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::br_if_xsgt64_i32
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::br_if_xslteq64_i8
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::br_if_xslteq64_i32
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::br_if_xsgteq64_i8
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::br_if_xsgteq64_i32
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::br_if_xult64_u8
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::br_if_xult64_u32
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::br_if_xulteq64_u8
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::br_if_xulteq64_u32
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::br_if_xugt64_u8
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::br_if_xugt64_u32
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::br_if_xugteq64_u8
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::br_if_xugteq64_u32
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::xmov
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::xconst8
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::xconst16
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::xconst32
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::xconst64
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::xadd32
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::xadd32_u8
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::xadd32_u32
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::xadd64
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::xadd64_u8
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::xadd64_u32
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::xsub32
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::xsub32_u8
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::xsub32_u32
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::xsub64
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::xsub64_u8
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::xsub64_u32
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::xmul32
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::xmul32_s8
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::xmul32_s32
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::xmul64
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::xmul64_s8
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::xmul64_s32
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::xctz32
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::xctz64
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::xclz32
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::xclz64
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::xpopcnt32
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::xpopcnt64
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::xrotl32
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::xrotl64
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::xrotr32
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::xrotr64
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::xshl32
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::xshr32_s
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::xshr32_u
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::xshl64
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::xshr64_s
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::xshr64_u
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::xshl32_u6
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::xshr32_s_u6
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::xshr32_u_u6
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::xshl64_u6
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::xshr64_s_u6
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::xshr64_u_u6
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::xneg32
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::xneg64
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::xeq64
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::xneq64
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::xslt64
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::xslteq64
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::xult64
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::xulteq64
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::xeq32
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::xneq32
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::xslt32
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::xslteq32
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::xult32
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::xulteq32
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::xload8_u32_offset32
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::xload8_s32_offset32
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::xload16le_u32_offset32
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::xload16le_s32_offset32
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::xload32le_offset32
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::xload8_u64_offset32
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::xload8_s64_offset32
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::xload16le_u64_offset32
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::xload16le_s64_offset32
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::xload32le_u64_offset32
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::xload32le_s64_offset32
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::xload64le_offset32
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::xstore8_offset32
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::xstore16le_offset32
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::xstore32le_offset32
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::xstore64le_offset32
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::xload8_u32_offset8
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::xload8_s32_offset8
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::xload16le_u32_offset8
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::xload16le_s32_offset8
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::xload32le_offset8
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::xload8_u64_offset8
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::xload8_s64_offset8
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::xload16le_u64_offset8
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::xload16le_s64_offset8
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::xload32le_u64_offset8
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::xload32le_s64_offset8
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::xload64le_offset8
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::xstore8_offset8
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::xstore16le_offset8
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::xstore32le_offset8
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::xstore64le_offset8
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::push_frame
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::pop_frame
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::push_frame_save
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::pop_frame_restore
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::stack_alloc32
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::stack_free32
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::zext8
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::zext16
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::zext32
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::sext8
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::sext16
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::sext32
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::xabs32
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::xabs64
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::xdiv32_s
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::xdiv64_s
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::xdiv32_u
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::xdiv64_u
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::xrem32_s
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::xrem64_s
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::xrem32_u
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::xrem64_u
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::xband32
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::xband32_s8
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::xband32_s32
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::xband64
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::xband64_s8
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::xband64_s32
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::xbor32
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::xbor32_s8
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::xbor32_s32
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::xbor64
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::xbor64_s8
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::xbor64_s32
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::xbxor32
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::xbxor32_s8
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::xbxor32_s32
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::xbxor64
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::xbxor64_s8
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::xbxor64_s32
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::xbnot32
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::xbnot64
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::xmin32_u
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::xmin32_s
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::xmax32_u
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::xmax32_s
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::xmin64_u
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::xmin64_s
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::xmax64_u
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::xmax64_s
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::xselect32
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::OpVisitor>::xselect64
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::trap
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::nop
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::call_indirect_host
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::xmov_fp
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::xmov_lr
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::bswap32
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::bswap64
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::xadd32_uoverflow_trap
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::xadd64_uoverflow_trap
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::xmulhi64_s
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::xmulhi64_u
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::xbmask32
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::xbmask64
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::xpush32
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::xpush32_many
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::xpush64
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::xpush64_many
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::xpop32
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::xpop32_many
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::xpop64
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::xpop64_many
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::xload16be_u64_offset32
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::xload16be_s64_offset32
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::xload32be_u64_offset32
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::xload32be_s64_offset32
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::xload64be_offset32
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::xstore16be_offset32
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::xstore32be_offset32
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::xstore64be_offset32
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::fload32be_offset32
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::fload64be_offset32
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::fstore32be_offset32
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::fstore64be_offset32
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::fload32le_offset32
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::fload64le_offset32
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::fstore32le_offset32
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::fstore64le_offset32
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::vload128le_offset32
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::vstore128le_offset32
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::fmov
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::vmov
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::bitcast_int_from_float_32
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::bitcast_int_from_float_64
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::bitcast_float_from_int_32
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::bitcast_float_from_int_64
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::fconst32
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::fconst64
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::feq32
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::fneq32
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::flt32
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::flteq32
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::feq64
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::fneq64
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::flt64
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::flteq64
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::fselect32
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::fselect64
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::f32_from_f64
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::f64_from_f32
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::f32_from_x32_s
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::f32_from_x32_u
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::f32_from_x64_s
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::f32_from_x64_u
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::f64_from_x32_s
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::f64_from_x32_u
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::f64_from_x64_s
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::f64_from_x64_u
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::x32_from_f32_s
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::x32_from_f32_u
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::x32_from_f64_s
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::x32_from_f64_u
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::x64_from_f32_s
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::x64_from_f32_u
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::x64_from_f64_s
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::x64_from_f64_u
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::x32_from_f32_s_sat
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::x32_from_f32_u_sat
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::x32_from_f64_s_sat
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::x32_from_f64_u_sat
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::x64_from_f32_s_sat
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::x64_from_f32_u_sat
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::x64_from_f64_s_sat
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::x64_from_f64_u_sat
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::fcopysign32
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::fcopysign64
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::fadd32
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::fsub32
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::fmul32
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::fdiv32
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::vdivf32x4
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::fmaximum32
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::fminimum32
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::ftrunc32
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::vtrunc32x4
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::vtrunc64x2
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::ffloor32
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::vfloor32x4
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::vfloor64x2
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::fceil32
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::vceil32x4
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::vceil64x2
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::fnearest32
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::fsqrt32
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::vsqrt32x4
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::vsqrt64x2
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::fneg32
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::fabs32
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::fadd64
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::fsub64
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::fmul64
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::fdiv64
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::vdivf64x2
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::fmaximum64
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::fminimum64
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::ftrunc64
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::ffloor64
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::fceil64
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::fnearest64
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::vnearest32x4
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::vnearest64x2
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::fsqrt64
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::fneg64
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::fabs64
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::vconst128
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::vaddi8x16
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::vaddi16x8
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::vaddi32x4
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::vaddi64x2
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::vaddf32x4
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::vaddf64x2
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::vaddi8x16_sat
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::vaddu8x16_sat
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::vaddi16x8_sat
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::vaddu16x8_sat
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::vaddpairwisei16x8_s
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::vaddpairwisei32x4_s
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::vshli8x16
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::vshli16x8
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::vshli32x4
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::vshli64x2
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::vshri8x16_s
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::vshri16x8_s
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::vshri32x4_s
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::vshri64x2_s
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::vshri8x16_u
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::vshri16x8_u
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::vshri32x4_u
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::vshri64x2_u
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::vsplatx8
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::vsplatx16
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::vsplatx32
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::vsplatx64
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::vsplatf32
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::vsplatf64
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::vload8x8_s_offset32
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::vload8x8_u_offset32
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::vload16x4le_s_offset32
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::vload16x4le_u_offset32
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::vload32x2le_s_offset32
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::vload32x2le_u_offset32
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::vband128
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::vbor128
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::vbxor128
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::vbnot128
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::vbitselect128
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::vbitmask8x16
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::vbitmask16x8
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::vbitmask32x4
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::vbitmask64x2
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::valltrue8x16
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::valltrue16x8
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::valltrue32x4
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::valltrue64x2
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::vanytrue8x16
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::vanytrue16x8
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::vanytrue32x4
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::vanytrue64x2
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::vf32x4_from_i32x4_s
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::vf32x4_from_i32x4_u
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::vf64x2_from_i64x2_s
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::vf64x2_from_i64x2_u
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::vwidenlow8x16_s
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::vwidenlow8x16_u
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::vwidenlow16x8_s
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::vwidenlow16x8_u
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::vwidenlow32x4_s
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::vwidenlow32x4_u
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::vwidenhigh8x16_s
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::vwidenhigh8x16_u
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::vwidenhigh16x8_s
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::vwidenhigh16x8_u
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::vwidenhigh32x4_s
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::vwidenhigh32x4_u
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::vnarrow16x8_s
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::vnarrow16x8_u
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::vnarrow32x4_s
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::vnarrow32x4_u
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::vfpromotelow
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::vfdemote
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::vsubi8x16
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::vsubi16x8
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::vsubi32x4
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::vsubi64x2
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::vsubf64x2
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::vsubi8x16_sat
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::vsubu8x16_sat
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::vsubi16x8_sat
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::vsubu16x8_sat
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::vmuli8x16
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::vmuli16x8
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::vmuli32x4
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::vmuli64x2
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::vmulf64x2
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::vqmulrsi16x8
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::vpopcnt8x16
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::xextractv8x16
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::xextractv16x8
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::xextractv32x4
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::xextractv64x2
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::fextractv32x4
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::fextractv64x2
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::vinsertx8
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::vinsertx16
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::vinsertx32
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::vinsertx64
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::vinsertf32
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::vinsertf64
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::veq8x16
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::vneq8x16
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::vslt8x16
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::vslteq8x16
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::vult8x16
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::vulteq8x16
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::veq16x8
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::vneq16x8
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::vslt16x8
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::vslteq16x8
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::vult16x8
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::vulteq16x8
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::veq32x4
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::vneq32x4
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::vslt32x4
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::vslteq32x4
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::vult32x4
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::vulteq32x4
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::veq64x2
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::vneq64x2
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::vslt64x2
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::vslteq64x2
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::vult64x2
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::vulteq64x2
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::vneg8x16
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::vneg16x8
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::vneg32x4
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::vneg64x2
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::vnegf64x2
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::vmin8x16_s
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::vmin8x16_u
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::vmin16x8_s
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::vmin16x8_u
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::vmax8x16_s
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::vmax8x16_u
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::vmax16x8_s
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::vmax16x8_u
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::vmin32x4_s
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::vmin32x4_u
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::vmax32x4_s
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::vmax32x4_u
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::vabs8x16
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::vabs16x8
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::vabs32x4
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::vabs64x2
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::vabsf32x4
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::vabsf64x2
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::vmaximumf32x4
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::vmaximumf64x2
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::vminimumf32x4
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::vminimumf64x2
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::vshuffle
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::vswizzlei8x16
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::vavground8x16
Unexecuted instantiation: <pulley_interpreter::disas::Disassembler as pulley_interpreter::decode::ExtendedOpVisitor>::vavground16x8
290
    };
291
}
292
293
impl<'a> OpVisitor for Disassembler<'a> {
294
    type BytecodeStream = SafeBytecodeStream<'a>;
295
296
0
    fn bytecode(&mut self) -> &mut Self::BytecodeStream {
297
0
        &mut self.bytecode
298
0
    }
299
300
    type Return = ();
301
302
0
    fn before_visit(&mut self) {
303
0
        self.start = self.bytecode.position();
304
0
    }
305
306
0
    fn after_visit(&mut self) {
307
0
        if self.offsets {
308
0
            write!(&mut self.disas, "{:8x}: ", self.start + self.start_offset).unwrap();
309
0
        }
310
0
        if self.hexdump {
311
0
            let size = self.bytecode.position() - self.start;
312
0
            let mut need_space = false;
313
0
            for byte in &self.raw_bytecode[self.start..][..size] {
314
0
                let space = if need_space { " " } else { "" };
315
0
                write!(&mut self.disas, "{space}{byte:02x}").unwrap();
316
0
                need_space = true;
317
            }
318
0
            for _ in 0..12_usize.saturating_sub(size) {
319
0
                write!(&mut self.disas, "   ").unwrap();
320
0
            }
321
0
        }
322
0
        self.disas.push_str(&self.temp);
323
0
        self.temp.clear();
324
0
325
0
        self.disas.push('\n');
326
0
    }
327
328
    for_each_op!(impl_disas);
329
}
330
331
impl ExtendedOpVisitor for Disassembler<'_> {
332
    for_each_extended_op!(impl_disas);
333
}