Coverage Report

Created: 2023-04-25 07:07

/src/wasm-tools/crates/wit-component/src/gc.rs
Line
Count
Source (jump to first uncovered line)
1
use self::bitvec::BitVec;
2
use anyhow::{bail, Result};
3
use indexmap::{IndexMap, IndexSet};
4
use std::{
5
    collections::{HashMap, HashSet},
6
    mem,
7
    ops::Deref,
8
};
9
use wasm_encoder::{Encode, EntityType, Instruction};
10
use wasmparser::*;
11
12
const PAGE_SIZE: i32 = 64 * 1024;
13
14
/// This function will reduce the input core `wasm` module to only the set of
15
/// exports `required`.
16
///
17
/// This internally performs a "gc" pass after removing exports to ensure that
18
/// the resulting module imports the minimal set of functions necessary.
19
0
pub fn run(
20
0
    wasm: &[u8],
21
0
    required: &IndexMap<String, FuncType>,
22
0
    main_module_realloc: Option<&str>,
23
0
) -> Result<Vec<u8>> {
24
0
    assert!(!required.is_empty());
25
26
0
    let mut module = Module::default();
27
0
    module.parse(wasm)?;
28
29
    // Make sure that all required names are present in the module, and then
30
    // remove all names that are not required.
31
0
    for (name, _ty) in required {
32
0
        if !module.exports.contains_key(name.as_str()) {
33
0
            bail!("adapter module does not have export `{name}`")
34
0
        }
35
    }
36
0
    let mut not_required = IndexSet::new();
37
0
    for name in module.exports.keys().copied() {
38
        // If we need `name` then we also need cabi_post_`name`:
39
0
        let name = if let Some(suffix) = name.strip_prefix("cabi_post_") {
40
0
            suffix
41
        } else {
42
0
            name
43
        };
44
45
0
        if !required.contains_key(name) && !always_keep(name) {
46
0
            not_required.insert(name);
47
0
        }
48
    }
49
0
    for name in not_required {
50
0
        module.exports.remove(name);
51
0
    }
52
0
    assert!(!module.exports.is_empty());
53
0
    module.liveness()?;
54
0
    module.encode(main_module_realloc)
55
0
}
56
57
0
fn always_keep(name: &str) -> bool {
58
0
    match name {
59
0
        // Explicitly keep `cabi_realloc` if it's there in case an interface
60
0
        // needs it for a lowering.
61
0
        "cabi_realloc" | "cabi_import_realloc" | "cabi_export_realloc" => true,
62
0
        _ => false,
63
    }
64
0
}
65
66
/// This function generates a Wasm function body which implements `cabi_realloc` in terms of `memory.grow`.  It
67
/// only accepts new, page-sized allocations.
68
0
fn realloc_via_memory_grow() -> wasm_encoder::Function {
69
0
    use wasm_encoder::Instruction::*;
70
0
71
0
    let mut func = wasm_encoder::Function::new([(1, wasm_encoder::ValType::I32)]);
72
0
73
0
    // Assert `old_ptr` is null.
74
0
    func.instruction(&I32Const(0));
75
0
    func.instruction(&LocalGet(0));
76
0
    func.instruction(&I32Ne);
77
0
    func.instruction(&If(wasm_encoder::BlockType::Empty));
78
0
    func.instruction(&Unreachable);
79
0
    func.instruction(&End);
80
0
81
0
    // Assert `old_len` is zero.
82
0
    func.instruction(&I32Const(0));
83
0
    func.instruction(&LocalGet(1));
84
0
    func.instruction(&I32Ne);
85
0
    func.instruction(&If(wasm_encoder::BlockType::Empty));
86
0
    func.instruction(&Unreachable);
87
0
    func.instruction(&End);
88
0
89
0
    // Assert `new_len` is equal to the page size (which is the only value we currently support)
90
0
    // Note: we could easily support arbitrary multiples of PAGE_SIZE here if the need arises.
91
0
    func.instruction(&I32Const(PAGE_SIZE));
92
0
    func.instruction(&LocalGet(3));
93
0
    func.instruction(&I32Ne);
94
0
    func.instruction(&If(wasm_encoder::BlockType::Empty));
95
0
    func.instruction(&Unreachable);
96
0
    func.instruction(&End);
97
0
98
0
    // Grow the memory by 1 page.
99
0
    func.instruction(&I32Const(1));
100
0
    func.instruction(&MemoryGrow(0));
101
0
    func.instruction(&LocalTee(4));
102
0
103
0
    // Test if the return value of the growth was -1 and, if so, trap due to a failed allocation.
104
0
    func.instruction(&I32Const(-1));
105
0
    func.instruction(&I32Eq);
106
0
    func.instruction(&If(wasm_encoder::BlockType::Empty));
107
0
    func.instruction(&Unreachable);
108
0
    func.instruction(&End);
109
0
110
0
    func.instruction(&LocalGet(4));
111
0
    func.instruction(&I32Const(16));
112
0
    func.instruction(&I32Shl);
113
0
    func.instruction(&End);
114
0
115
0
    func
116
0
}
117
118
#[repr(i32)]
119
#[non_exhaustive]
120
enum AllocationState {
121
    StackUnallocated,
122
    StackAllocating,
123
    StackAllocated,
124
}
125
126
0
fn allocate_stack_via_realloc(
127
0
    realloc_index: u32,
128
0
    sp: u32,
129
0
    allocation_state: Option<u32>,
130
0
) -> wasm_encoder::Function {
131
0
    use wasm_encoder::Instruction::*;
132
0
133
0
    let mut func = wasm_encoder::Function::new([]);
134
135
0
    if let Some(allocation_state) = allocation_state {
136
0
        // This means we're lazily allocating the stack, keeping track of state via `$allocation_state`
137
0
        func.instruction(&GlobalGet(allocation_state));
138
0
        func.instruction(&I32Const(AllocationState::StackUnallocated as _));
139
0
        func.instruction(&I32Eq);
140
0
        func.instruction(&If(wasm_encoder::BlockType::Empty));
141
0
        func.instruction(&I32Const(AllocationState::StackAllocating as _));
142
0
        func.instruction(&GlobalSet(allocation_state));
143
0
        // We could also set `sp` to zero here to ensure the yet-to-be-allocated stack is empty.  However, we
144
0
        // assume it defaults to zero anyway, in which case setting it would be redundant.
145
0
    }
146
147
0
    func.instruction(&I32Const(0));
148
0
    func.instruction(&I32Const(0));
149
0
    func.instruction(&I32Const(8));
150
0
    func.instruction(&I32Const(PAGE_SIZE));
151
0
    func.instruction(&Call(realloc_index));
152
0
    func.instruction(&I32Const(PAGE_SIZE));
153
0
    func.instruction(&I32Add);
154
0
    func.instruction(&GlobalSet(sp));
155
156
0
    if let Some(allocation_state) = allocation_state {
157
0
        func.instruction(&I32Const(AllocationState::StackAllocated as _));
158
0
        func.instruction(&GlobalSet(allocation_state));
159
0
        func.instruction(&End);
160
0
    }
161
162
0
    func.instruction(&End);
163
0
164
0
    func
165
0
}
166
167
// Represents a function called while processing a module work list.
168
type WorklistFunc<'a> = fn(&mut Module<'a>, u32) -> Result<()>;
169
170
// Representation of a wasm module which is used to GC a module to its minimal
171
// set of required items necessary to implement the `exports`
172
//
173
// Note that this is not a complete representation of a wasm module since it
174
// doesn't represent everything such as data and element segments. This is only
175
// used for adapter modules which otherwise have these restrictions and makes
176
// this gc pass a bit easier to write.
177
0
#[derive(Default)]
178
struct Module<'a> {
179
    // Definitions found when parsing a module
180
    types: Vec<wasmparser::Type>,
181
    tables: Vec<Table<'a>>,
182
    globals: Vec<Global<'a>>,
183
    memories: Vec<Memory<'a>>,
184
    funcs: Vec<Func<'a>>,
185
    exports: IndexMap<&'a str, Export<'a>>,
186
    func_names: HashMap<u32, &'a str>,
187
    global_names: HashMap<u32, &'a str>,
188
    producers: Option<wasm_metadata::Producers>,
189
190
    // Known-live sets of indices after the `liveness` pass has run.
191
    live_types: BitVec,
192
    live_tables: BitVec,
193
    live_globals: BitVec,
194
    live_memories: BitVec,
195
    live_funcs: BitVec,
196
197
    // Helper data structure used during the `liveness` path to avoid recursion.
198
    // When calculating the liveness of an item this `worklist` is pushed to and
199
    // then processed until it's empty. An item pushed onto this list represents
200
    // a new index that has been discovered to be live and the function is what
201
    // walks the item's definition to find other items that it references.
202
    worklist: Vec<(u32, WorklistFunc<'a>)>,
203
}
204
205
struct Table<'a> {
206
    def: Definition<'a, ()>,
207
    ty: TableType,
208
}
209
210
struct Memory<'a> {
211
    def: Definition<'a, ()>,
212
    ty: MemoryType,
213
}
214
215
struct Global<'a> {
216
    def: Definition<'a, ConstExpr<'a>>,
217
    ty: GlobalType,
218
}
219
220
0
#[derive(Clone)]
221
struct Func<'a> {
222
    def: Definition<'a, FunctionBody<'a>>,
223
    ty: u32,
224
}
225
226
0
#[derive(Clone)]
227
enum Definition<'a, T> {
228
    Import(&'a str, &'a str),
229
    Local(T),
230
}
231
232
impl<'a> Module<'a> {
233
0
    fn parse(&mut self, wasm: &'a [u8]) -> Result<()> {
234
0
        let mut next_code_index = 0;
235
0
        let mut validator = Validator::new();
236
0
        for payload in Parser::new(0).parse_all(wasm) {
237
0
            let payload = payload?;
238
0
            validator.payload(&payload)?;
239
0
            match payload {
240
0
                Payload::Version { encoding, .. } => {
241
0
                    if encoding != Encoding::Module {
242
0
                        bail!("adapter must be a core wasm module, not a component");
243
0
                    }
244
                }
245
0
                Payload::End(_) => {}
246
0
                Payload::TypeSection(s) => {
247
0
                    for ty in s {
248
0
                        self.types.push(ty?);
249
                    }
250
                }
251
0
                Payload::ImportSection(s) => {
252
0
                    for i in s {
253
0
                        let i = i?;
254
0
                        match i.ty {
255
0
                            TypeRef::Func(ty) => self.funcs.push(Func {
256
0
                                def: Definition::Import(i.module, i.name),
257
0
                                ty,
258
0
                            }),
259
0
                            TypeRef::Table(ty) => self.tables.push(Table {
260
0
                                def: Definition::Import(i.module, i.name),
261
0
                                ty,
262
0
                            }),
263
0
                            TypeRef::Global(ty) => self.globals.push(Global {
264
0
                                def: Definition::Import(i.module, i.name),
265
0
                                ty,
266
0
                            }),
267
0
                            TypeRef::Memory(ty) => self.memories.push(Memory {
268
0
                                def: Definition::Import(i.module, i.name),
269
0
                                ty,
270
0
                            }),
271
0
                            TypeRef::Tag(_) => bail!("unsupported `tag` type"),
272
                        }
273
                    }
274
                }
275
0
                Payload::TableSection(s) => {
276
0
                    for table in s {
277
0
                        let table = table?;
278
0
                        self.tables.push(Table {
279
0
                            def: Definition::Local(()),
280
0
                            ty: table.ty,
281
0
                        });
282
                    }
283
                }
284
0
                Payload::MemorySection(s) => {
285
0
                    for ty in s {
286
0
                        let ty = ty?;
287
0
                        self.memories.push(Memory {
288
0
                            def: Definition::Local(()),
289
0
                            ty,
290
0
                        });
291
                    }
292
                }
293
0
                Payload::GlobalSection(s) => {
294
0
                    for g in s {
295
0
                        let g = g?;
296
0
                        self.globals.push(Global {
297
0
                            def: Definition::Local(g.init_expr),
298
0
                            ty: g.ty,
299
0
                        });
300
                    }
301
                }
302
303
0
                Payload::ExportSection(s) => {
304
0
                    for e in s {
305
0
                        let e = e?;
306
0
                        self.exports.insert(e.name, e);
307
                    }
308
                }
309
310
0
                Payload::FunctionSection(s) => {
311
0
                    next_code_index = self.funcs.len();
312
0
                    for ty in s {
313
0
                        let ty = ty?;
314
0
                        self.funcs.push(Func {
315
0
                            // Specify a dummy definition to get filled in later
316
0
                            // when parsing the code section.
317
0
                            def: Definition::Local(FunctionBody::new(0, &[])),
318
0
                            ty,
319
0
                        });
320
                    }
321
                }
322
323
0
                Payload::CodeSectionStart { .. } => {}
324
0
                Payload::CodeSectionEntry(body) => {
325
0
                    self.funcs[next_code_index].def = Definition::Local(body);
326
0
                    next_code_index += 1;
327
0
                }
328
329
                // Ignore all custom sections except for the `name` and
330
                // `producers` sections which we parse, but ignore errors within.
331
0
                Payload::CustomSection(s) => {
332
0
                    if s.name() == "name" {
333
0
                        drop(self.parse_name_section(&s));
334
0
                    }
335
0
                    if s.name() == "producers" {
336
0
                        drop(self.parse_producers_section(&s));
337
0
                    }
338
                }
339
340
                // sections that shouldn't appear in the specially-crafted core wasm
341
                // adapter self we're processing
342
                Payload::DataCountSection { .. }
343
                | Payload::ElementSection(_)
344
                | Payload::DataSection(_)
345
                | Payload::StartSection { .. }
346
                | Payload::TagSection(_)
347
                | Payload::UnknownSection { .. } => {
348
0
                    bail!("unsupported section found in adapter module")
349
                }
350
351
                // component-model related things that shouldn't show up
352
                Payload::ModuleSection { .. }
353
                | Payload::ComponentSection { .. }
354
                | Payload::InstanceSection(_)
355
                | Payload::ComponentInstanceSection(_)
356
                | Payload::ComponentAliasSection(_)
357
                | Payload::ComponentCanonicalSection(_)
358
                | Payload::ComponentStartSection { .. }
359
                | Payload::ComponentImportSection(_)
360
                | Payload::CoreTypeSection(_)
361
                | Payload::ComponentExportSection(_)
362
                | Payload::ComponentTypeSection(_) => {
363
0
                    bail!("component section found in adapter module")
364
                }
365
            }
366
        }
367
368
0
        Ok(())
369
0
    }
370
371
0
    fn parse_name_section(&mut self, section: &CustomSectionReader<'a>) -> Result<()> {
372
0
        let section = NameSectionReader::new(section.data(), section.data_offset());
373
0
        for s in section {
374
0
            match s? {
375
0
                Name::Function(map) => {
376
0
                    for naming in map {
377
0
                        let naming = naming?;
378
0
                        self.func_names.insert(naming.index, naming.name);
379
                    }
380
                }
381
0
                Name::Global(map) => {
382
0
                    for naming in map {
383
0
                        let naming = naming?;
384
0
                        self.global_names.insert(naming.index, naming.name);
385
                    }
386
                }
387
0
                _ => {}
388
            }
389
        }
390
0
        Ok(())
391
0
    }
392
393
0
    fn parse_producers_section(&mut self, section: &CustomSectionReader<'a>) -> Result<()> {
394
0
        let section = ProducersSectionReader::new(section.data(), section.data_offset())?;
395
0
        let producers = wasm_metadata::Producers::from_reader(section)?;
396
0
        self.producers = Some(producers);
397
0
        Ok(())
398
0
    }
399
400
    /// Iteratively calculates the set of live items within this module
401
    /// considering all exports as the root of live functions.
402
0
    fn liveness(&mut self) -> Result<()> {
403
0
        let exports = mem::take(&mut self.exports);
404
0
        for (_, e) in exports.iter() {
405
0
            match e.kind {
406
0
                ExternalKind::Func => self.func(e.index),
407
0
                ExternalKind::Global => self.global(e.index),
408
0
                ExternalKind::Table => self.table(e.index),
409
0
                ExternalKind::Memory => self.memory(e.index),
410
0
                ExternalKind::Tag => bail!("unsupported exported tag"),
411
            }
412
        }
413
0
        self.exports = exports;
414
415
0
        while let Some((idx, func)) = self.worklist.pop() {
416
0
            func(self, idx)?;
417
        }
418
0
        Ok(())
419
0
    }
420
421
0
    fn func(&mut self, func: u32) {
422
0
        if !self.live_funcs.insert(func) {
423
0
            return;
424
0
        }
425
0
        self.worklist.push((func, |me, func| {
426
0
            let func = me.funcs[func as usize].clone();
427
0
            me.ty(func.ty);
428
0
            let mut body = match &func.def {
429
0
                Definition::Import(..) => return Ok(()),
430
0
                Definition::Local(e) => e.get_binary_reader(),
431
            };
432
0
            let local_count = body.read_var_u32()?;
433
0
            for _ in 0..local_count {
434
0
                body.read_var_u32()?;
435
0
                body.read::<ValType>()?;
436
            }
437
0
            me.operators(body)
438
0
        }));
439
0
    }
440
441
0
    fn global(&mut self, global: u32) {
442
0
        if !self.live_globals.insert(global) {
443
0
            return;
444
0
        }
445
0
        self.worklist.push((global, |me, global| {
446
0
            let init = match &me.globals[global as usize].def {
447
0
                Definition::Import(..) => return Ok(()),
448
0
                Definition::Local(e) => e,
449
0
            };
450
0
            me.operators(init.get_binary_reader())
451
0
        }));
452
0
    }
453
454
0
    fn table(&mut self, table: u32) {
455
0
        if !self.live_tables.insert(table) {
456
0
            return;
457
0
        }
458
0
        self.worklist.push((table, |me, table| {
459
0
            let ty = me.tables[table as usize].ty.element_type;
460
0
            me.valty(ty.into());
461
0
            Ok(())
462
0
        }));
463
0
    }
464
465
0
    fn memory(&mut self, memory: u32) {
466
0
        self.live_memories.insert(memory);
467
0
    }
468
469
    fn blockty(&mut self, ty: BlockType) {
470
0
        if let BlockType::FuncType(ty) = ty {
471
0
            self.ty(ty);
472
0
        }
473
0
    }
474
475
0
    fn valty(&mut self, ty: ValType) {
476
0
        match ty {
477
0
            ValType::Ref(r) => self.heapty(r.heap_type()),
478
0
            ValType::I32 | ValType::I64 | ValType::F32 | ValType::F64 | ValType::V128 => {}
479
        }
480
0
    }
481
482
0
    fn heapty(&mut self, ty: HeapType) {
483
0
        match ty {
484
0
            HeapType::Func | HeapType::Extern => {}
485
0
            HeapType::TypedFunc(i) => self.ty(i.into()),
486
        }
487
0
    }
488
489
0
    fn ty(&mut self, ty: u32) {
490
0
        if !self.live_types.insert(ty) {
491
0
            return;
492
0
        }
493
0
        self.worklist.push((ty, |me, ty| {
494
0
            let ty = match me.types[ty as usize].clone() {
495
0
                wasmparser::Type::Func(f) => f,
496
            };
497
0
            for param in ty.params().iter().chain(ty.results()) {
498
0
                me.valty(*param);
499
0
            }
500
0
            Ok(())
501
0
        }));
502
0
    }
503
504
0
    fn operators(&mut self, mut reader: BinaryReader<'a>) -> Result<()> {
505
0
        while !reader.eof() {
506
0
            reader.visit_operator(self)?;
507
        }
508
0
        Ok(())
509
0
    }
510
511
0
    fn live_types(&self) -> impl Iterator<Item = (u32, &wasmparser::Type)> + '_ {
512
0
        live_iter(&self.live_types, self.types.iter())
513
0
    }
514
515
0
    fn live_funcs(&self) -> impl Iterator<Item = (u32, &Func<'a>)> + '_ {
516
0
        live_iter(&self.live_funcs, self.funcs.iter())
517
0
    }
518
519
0
    fn live_memories(&self) -> impl Iterator<Item = (u32, &Memory<'a>)> + '_ {
520
0
        live_iter(&self.live_memories, self.memories.iter())
521
0
    }
522
523
0
    fn live_globals(&self) -> impl Iterator<Item = (u32, &Global<'a>)> + '_ {
524
0
        live_iter(&self.live_globals, self.globals.iter())
525
0
    }
526
527
0
    fn live_tables(&self) -> impl Iterator<Item = (u32, &Table<'a>)> + '_ {
528
0
        live_iter(&self.live_tables, self.tables.iter())
529
0
    }
530
531
    /// Encodes this `Module` to a new wasm module which is gc'd and only
532
    /// contains the items that are live as calculated by the `liveness` pass.
533
0
    fn encode(&mut self, main_module_realloc: Option<&str>) -> Result<Vec<u8>> {
534
0
        // Data structure used to track the mapping of old index to new index
535
0
        // for all live items.
536
0
        let mut map = Encoder::default();
537
0
538
0
        // Sections that will be assembled into the final module at the end of
539
0
        // this function.
540
0
        let mut types = wasm_encoder::TypeSection::new();
541
0
        let mut imports = wasm_encoder::ImportSection::new();
542
0
        let mut funcs = wasm_encoder::FunctionSection::new();
543
0
        let mut tables = wasm_encoder::TableSection::new();
544
0
        let mut memories = wasm_encoder::MemorySection::new();
545
0
        let mut globals = wasm_encoder::GlobalSection::new();
546
0
        let mut code = wasm_encoder::CodeSection::new();
547
0
548
0
        let mut empty_type = None;
549
0
        for (i, ty) in self.live_types() {
550
0
            map.types.push(i);
551
0
            match ty {
552
0
                Type::Func(ty) => {
553
0
                    types.function(
554
0
                        ty.params().iter().copied().map(|t| map.valty(t)),
555
0
                        ty.results().iter().copied().map(|t| map.valty(t)),
556
0
                    );
557
0
558
0
                    // Keep track of the "empty type" to see if we can reuse an
559
0
                    // existing one or one needs to be injected if a `start`
560
0
                    // function is calculated at the end.
561
0
                    if ty.params().is_empty() && ty.results().is_empty() {
562
0
                        empty_type = Some(map.types.remap(i));
563
0
                    }
564
                }
565
            }
566
        }
567
568
0
        let mut num_memories = 0;
569
0
        for (i, mem) in self.live_memories() {
570
0
            map.memories.push(i);
571
0
            let ty = wasm_encoder::MemoryType {
572
0
                minimum: mem.ty.initial,
573
0
                maximum: mem.ty.maximum,
574
0
                shared: mem.ty.shared,
575
0
                memory64: mem.ty.memory64,
576
0
            };
577
0
            match &mem.def {
578
0
                Definition::Import(m, n) => {
579
0
                    imports.import(m, n, ty);
580
0
                }
581
0
                Definition::Local(()) => {
582
0
                    memories.memory(ty);
583
0
                }
584
            }
585
0
            num_memories += 1;
586
        }
587
588
0
        for (i, table) in self.live_tables() {
589
0
            map.tables.push(i);
590
0
            let ty = wasm_encoder::TableType {
591
0
                minimum: table.ty.initial,
592
0
                maximum: table.ty.maximum,
593
0
                element_type: map.refty(table.ty.element_type),
594
0
            };
595
0
            match &table.def {
596
0
                Definition::Import(m, n) => {
597
0
                    imports.import(m, n, ty);
598
0
                }
599
0
                Definition::Local(()) => {
600
0
                    tables.table(ty);
601
0
                }
602
            }
603
        }
604
605
0
        for (i, global) in self.live_globals() {
606
0
            map.globals.push(i);
607
0
            let ty = wasm_encoder::GlobalType {
608
0
                mutable: global.ty.mutable,
609
0
                val_type: map.valty(global.ty.content_type),
610
0
            };
611
0
            match &global.def {
612
0
                Definition::Import(m, n) => {
613
0
                    imports.import(m, n, ty);
614
0
                }
615
0
                Definition::Local(init) => {
616
0
                    let mut bytes = map.operators(init.get_binary_reader())?;
617
0
                    assert_eq!(bytes.pop(), Some(0xb));
618
0
                    globals.global(ty, &wasm_encoder::ConstExpr::raw(bytes));
619
                }
620
            }
621
        }
622
623
0
        let mut realloc_index = None;
624
0
        let mut num_func_imports = 0;
625
0
626
0
        // For functions first assign a new index to all functions and then
627
0
        // afterwards actually map the body of all functions so the `map` of all
628
0
        // index mappings is fully populated before instructions are mapped.
629
0
630
0
        let is_realloc =
631
0
            |m, n| m == "__main_module__" && matches!(n, "canonical_abi_realloc" | "cabi_realloc");
632
633
0
        let (imported, local) =
634
0
            self.live_funcs()
635
0
                .partition::<Vec<_>, _>(|(_, func)| match &func.def {
636
0
                    Definition::Import(m, n) => {
637
0
                        !is_realloc(*m, *n) || main_module_realloc.is_some()
638
                    }
639
0
                    Definition::Local(_) => false,
640
0
                });
641
642
0
        for (i, func) in imported {
643
0
            map.funcs.push(i);
644
0
            let ty = map.types.remap(func.ty);
645
0
            match &func.def {
646
0
                Definition::Import(m, n) => {
647
0
                    let name = if is_realloc(*m, *n) {
648
                        // The adapter is importing `cabi_realloc` from the main module, and the main module
649
                        // exports that function, but possibly using a different name
650
                        // (e.g. `canonical_abi_realloc`).  Update the name to match if necessary.
651
0
                        realloc_index = Some(num_func_imports);
652
0
                        main_module_realloc.unwrap_or(n)
653
                    } else {
654
0
                        n
655
                    };
656
0
                    imports.import(m, name, EntityType::Function(ty));
657
0
                    num_func_imports += 1;
658
                }
659
0
                Definition::Local(_) => unreachable!(),
660
            }
661
        }
662
663
0
        let add_realloc_type = |types: &mut wasm_encoder::TypeSection| {
664
0
            let type_index = types.len();
665
0
            types.function(
666
0
                [
667
0
                    wasm_encoder::ValType::I32,
668
0
                    wasm_encoder::ValType::I32,
669
0
                    wasm_encoder::ValType::I32,
670
0
                    wasm_encoder::ValType::I32,
671
0
                ],
672
0
                [wasm_encoder::ValType::I32],
673
0
            );
674
0
            type_index
675
0
        };
676
677
0
        let add_empty_type = |types: &mut wasm_encoder::TypeSection| {
678
0
            let type_index = types.len();
679
0
            types.function([], []);
680
0
            type_index
681
0
        };
682
683
0
        let sp = self.find_mut_i32_global("__stack_pointer")?;
684
0
        let allocation_state = self.find_mut_i32_global("allocation_state")?;
685
686
0
        let mut func_names = Vec::new();
687
688
0
        if let (Some(realloc), Some(_), None) = (main_module_realloc, sp, realloc_index) {
689
0
            // The main module exports a realloc function, and although the adapter doesn't import it, we're going
690
0
            // to add a function which calls it to allocate some stack space, so let's add an import now.
691
0
692
0
            // Tell the function remapper we're reserving a slot for our extra import:
693
0
            map.funcs.next += 1;
694
0
695
0
            realloc_index = Some(num_func_imports);
696
0
            imports.import(
697
0
                "__main_module__",
698
0
                realloc,
699
0
                EntityType::Function(add_realloc_type(&mut types)),
700
0
            );
701
0
            func_names.push((num_func_imports, realloc));
702
0
            num_func_imports += 1;
703
0
        }
704
705
0
        for (i, func) in local {
706
0
            map.funcs.push(i);
707
0
            let ty = map.types.remap(func.ty);
708
0
            match &func.def {
709
0
                Definition::Import(_, _) => {
710
0
                    // The adapter is importing `cabi_realloc` from the main module, but the main module isn't
711
0
                    // exporting it.  In this case, we need to define a local function it can call instead.
712
0
                    realloc_index = Some(num_func_imports + funcs.len());
713
0
                    funcs.function(ty);
714
0
                    code.function(&realloc_via_memory_grow());
715
0
                }
716
0
                Definition::Local(_) => {
717
0
                    funcs.function(ty);
718
0
                }
719
            }
720
        }
721
722
0
        let lazy_stack_init_index =
723
0
            if sp.is_some() && allocation_state.is_some() && main_module_realloc.is_some() {
724
                // We have a stack pointer, a `cabi_realloc` function from the main module, and a global variable for
725
                // keeping track of (and short-circuiting) reentrance.  That means we can (and should) do lazy stack
726
                // allocation.
727
0
                let index = num_func_imports + funcs.len();
728
0
729
0
                // Tell the function remapper we're reserving a slot for our extra function:
730
0
                map.funcs.next += 1;
731
0
732
0
                funcs.function(add_empty_type(&mut types));
733
0
734
0
                Some(index)
735
            } else {
736
0
                None
737
            };
738
739
0
        let exported_funcs = self
740
0
            .exports
741
0
            .values()
742
0
            .filter_map(|export| match export.kind {
743
0
                ExternalKind::Func => Some(export.index),
744
0
                _ => None,
745
0
            })
746
0
            .collect::<HashSet<_>>();
747
748
0
        for (i, func) in self.live_funcs() {
749
0
            let mut body = match &func.def {
750
0
                Definition::Import(..) => continue,
751
0
                Definition::Local(body) => body.get_binary_reader(),
752
0
            };
753
0
            let mut locals = Vec::new();
754
0
            for _ in 0..body.read_var_u32()? {
755
0
                let cnt = body.read_var_u32()?;
756
0
                let ty = body.read()?;
757
0
                locals.push((cnt, map.valty(ty)));
758
            }
759
            // Prepend an `allocate_stack` call to all exports if we're lazily allocating the stack.
760
0
            if let (Some(lazy_stack_init_index), true) =
761
0
                (lazy_stack_init_index, exported_funcs.contains(&i))
762
0
            {
763
0
                Instruction::Call(lazy_stack_init_index).encode(&mut map.buf);
764
0
            }
765
0
            let bytes = map.operators(body)?;
766
0
            let mut func = wasm_encoder::Function::new(locals);
767
0
            func.raw(bytes);
768
0
            code.function(&func);
769
        }
770
771
0
        if lazy_stack_init_index.is_some() {
772
0
            code.function(&allocate_stack_via_realloc(
773
0
                realloc_index.unwrap(),
774
0
                sp.unwrap(),
775
0
                allocation_state,
776
0
            ));
777
0
        }
778
779
0
        if sp.is_some() && (realloc_index.is_none() || allocation_state.is_none()) {
780
0
            // Either the main module does _not_ export a realloc function, or it is not safe to use for stack
781
0
            // allocation because we have no way to short-circuit reentrance, so we'll use `memory.grow` instead.
782
0
            realloc_index = Some(num_func_imports + funcs.len());
783
0
            funcs.function(add_realloc_type(&mut types));
784
0
            code.function(&realloc_via_memory_grow());
785
0
        }
786
787
        // Inject a start function to initialize the stack pointer which will be local to this module. This only
788
        // happens if a memory is preserved, a stack pointer global is found, and we're not doing lazy stack
789
        // allocation.
790
0
        let mut start = None;
791
0
        if let (Some(sp), None) = (sp, lazy_stack_init_index) {
792
0
            if num_memories > 0 {
793
                // If there are any memories or any mutable globals there must be
794
                // precisely one of each as otherwise we don't know how to filter
795
                // down to the right one.
796
0
                if num_memories != 1 {
797
0
                    bail!("adapter modules don't support multi-memory");
798
0
                }
799
0
800
0
                let sp = map.globals.remap(sp);
801
0
802
0
                let function_index = num_func_imports + funcs.len();
803
0
804
0
                // Generate a function type for this start function, adding a new
805
0
                // function type to the module if necessary.
806
0
                let empty_type = empty_type.unwrap_or_else(|| {
807
0
                    types.function([], []);
808
0
                    types.len() - 1
809
0
                });
810
0
                funcs.function(empty_type);
811
0
                func_names.push((function_index, "allocate_stack"));
812
0
                code.function(&allocate_stack_via_realloc(
813
0
                    realloc_index.unwrap(),
814
0
                    sp,
815
0
                    allocation_state,
816
0
                ));
817
0
818
0
                start = Some(wasm_encoder::StartSection { function_index });
819
0
            }
820
0
        }
821
822
        // Sanity-check the shape of the module since some parts won't work if
823
        // this fails. Note that during parsing we've already validated there
824
        // are no data segments or element segments.
825
826
        // Shouldn't have any tables if there are no element segments since
827
        // otherwise there's no meaning to a defined or imported table.
828
0
        if self.live_tables().count() != 0 {
829
0
            bail!("tables should not be present in the final adapter module");
830
0
        }
831
0
832
0
        // multi-memory should not be enabled and if any memory it should be
833
0
        // imported.
834
0
        if self.live_memories().count() > 1 {
835
0
            bail!("the adapter module should not use multi-memory");
836
0
        }
837
0
        if !memories.is_empty() {
838
0
            bail!("locally-defined memories are not allowed define a local memory");
839
0
        }
840
0
841
0
        let mut ret = wasm_encoder::Module::default();
842
0
        if !types.is_empty() {
843
0
            ret.section(&types);
844
0
        }
845
0
        if !imports.is_empty() {
846
0
            ret.section(&imports);
847
0
        }
848
0
        if !funcs.is_empty() {
849
0
            ret.section(&funcs);
850
0
        }
851
0
        if !tables.is_empty() {
852
0
            ret.section(&tables);
853
0
        }
854
0
        if !memories.is_empty() {
855
0
            ret.section(&memories);
856
0
        }
857
0
        if !globals.is_empty() {
858
0
            ret.section(&globals);
859
0
        }
860
861
0
        if !self.exports.is_empty() {
862
0
            let mut exports = wasm_encoder::ExportSection::new();
863
0
            for (_, export) in self.exports.iter() {
864
0
                let (kind, index) = match export.kind {
865
0
                    ExternalKind::Func => (
866
0
                        wasm_encoder::ExportKind::Func,
867
0
                        map.funcs.remap(export.index),
868
0
                    ),
869
0
                    ExternalKind::Table => (
870
0
                        wasm_encoder::ExportKind::Table,
871
0
                        map.tables.remap(export.index),
872
0
                    ),
873
0
                    ExternalKind::Memory => (
874
0
                        wasm_encoder::ExportKind::Memory,
875
0
                        map.memories.remap(export.index),
876
0
                    ),
877
0
                    ExternalKind::Global => (
878
0
                        wasm_encoder::ExportKind::Global,
879
0
                        map.globals.remap(export.index),
880
0
                    ),
881
0
                    kind => bail!("unsupported export kind {kind:?}"),
882
                };
883
0
                exports.export(export.name, kind, index);
884
            }
885
0
            ret.section(&exports);
886
0
        }
887
888
0
        if let Some(start) = &start {
889
0
            ret.section(start);
890
0
        }
891
892
0
        if !code.is_empty() {
893
0
            ret.section(&code);
894
0
        }
895
896
        // Append a custom `name` section using the names of the functions that
897
        // were found prior to the GC pass in the original module.
898
0
        let mut global_names = Vec::new();
899
0
        for (i, _func) in self.live_funcs() {
900
0
            let name = match self.func_names.get(&i) {
901
0
                Some(name) => name,
902
0
                None => continue,
903
            };
904
0
            func_names.push((map.funcs.remap(i), *name));
905
        }
906
0
        for (i, _global) in self.live_globals() {
907
0
            let name = match self.global_names.get(&i) {
908
0
                Some(name) => name,
909
0
                None => continue,
910
            };
911
0
            global_names.push((map.globals.remap(i), *name));
912
        }
913
0
        let mut section = Vec::new();
914
0
        let mut encode_subsection = |code: u8, names: &[(u32, &str)]| {
915
0
            if names.is_empty() {
916
0
                return;
917
0
            }
918
0
            let mut subsection = Vec::new();
919
0
            names.len().encode(&mut subsection);
920
0
            for (i, name) in names {
921
0
                i.encode(&mut subsection);
922
0
                name.encode(&mut subsection);
923
0
            }
924
0
            section.push(code);
925
0
            subsection.encode(&mut section);
926
0
        };
927
0
        if let (Some(realloc_index), true) = (
928
0
            realloc_index,
929
0
            main_module_realloc.is_none() || allocation_state.is_none(),
930
0
        ) {
931
0
            func_names.push((realloc_index, "realloc_via_memory_grow"));
932
0
        }
933
0
        if let Some(lazy_stack_init_index) = lazy_stack_init_index {
934
0
            func_names.push((lazy_stack_init_index, "allocate_stack"));
935
0
        }
936
0
        encode_subsection(0x01, &func_names);
937
0
        encode_subsection(0x07, &global_names);
938
0
        if !section.is_empty() {
939
0
            ret.section(&wasm_encoder::CustomSection {
940
0
                name: "name",
941
0
                data: &section,
942
0
            });
943
0
        }
944
0
        if let Some(producers) = &self.producers {
945
0
            ret.section(&producers.section());
946
0
        }
947
948
0
        Ok(ret.finish())
949
0
    }
950
951
0
    fn find_mut_i32_global(&self, name: &str) -> Result<Option<u32>> {
952
0
        let matches = &self
953
0
            .live_globals()
954
0
            .filter_map(|(i, g)| {
955
0
                if g.ty.mutable
956
0
                    && g.ty.content_type == ValType::I32
957
0
                    && *self.global_names.get(&i)? == name
958
                {
959
0
                    Some(i)
960
                } else {
961
0
                    None
962
                }
963
0
            })
964
0
            .collect::<Vec<_>>();
965
0
966
0
        match matches.deref() {
967
0
            [] => Ok(None),
968
0
            [i] => Ok(Some(*i)),
969
0
            _ => bail!(
970
0
                "found {} mutable i32 globals with name {name}",
971
0
                matches.len()
972
0
            ),
973
        }
974
0
    }
975
}
976
977
// This helper macro is used to define a visitor of all instructions with
978
// special handling for all payloads of instructions to mark any referenced
979
// items live.
980
//
981
// Currently item identification happens through the field name of the payload.
982
// While not exactly the most robust solution this should work well enough for
983
// now.
984
macro_rules! define_visit {
985
    ($(@$p:ident $op:ident $({ $($arg:ident: $argty:ty),* })? => $visit:ident)*) => {
986
        $(
987
0
            fn $visit(&mut self $(, $($arg: $argty),*)?)  {
988
0
                $(
989
0
                    $(
990
0
                        define_visit!(mark_live self $arg $arg);
991
0
                    )*
992
0
                )?
993
0
            }
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i32_ge_u
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_le_s
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i32_atomic_rmw8_sub_u
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_f32_convert_i64_s
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i32_extend8_s
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_f32_convert_i32_s
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_extend_high_i16x8_s
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_v128_load8_lane
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i32_trunc_sat_f32_s
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i64_rem_u
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i8x16_add_sat_u
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_catch_all
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_relaxed_dot_i8x16_i7x16_s
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_f32_div
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i64_shr_s
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i64_ne
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_ge_u
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_f32x4_div
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i64_atomic_rmw16_sub_u
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_local_tee
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_f64_le
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i64_le_s
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_gt_s
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_v128_load32x2_s
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_v128_load64_lane
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_bitmask
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i32_trunc_sat_f64_u
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_f32_load
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_v128_const
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_shl
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_f32_neg
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_f32_copysign
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_data_drop
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_f64x2_sqrt
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i32_atomic_rmw8_or_u
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i8x16_sub_sat_u
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_f64_trunc
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_f32_ne
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i32_store16
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_table_copy
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_lt_s
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i32_div_s
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_f64_div
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i8x16_replace_lane
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_add
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_v128_store32_lane
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i32_xor
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i8x16_max_s
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_trunc_sat_f32x4_u
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_relaxed_trunc_f64x2_s_zero
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_ref_is_null
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_f64x2_pmax
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_f64_neg
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_f64_copysign
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_extmul_high_i16x8_u
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i64x2_eq
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i32_rotr
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i32_add
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_f64x2_ne
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_narrow_i32x4_u
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_extract_lane_s
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_trunc_sat_f64x2_s_zero
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i64_store16
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_splat
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i32_le_u
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i64_atomic_rmw_xor
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_relaxed_laneselect
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i64_const
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i32_gt_u
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_block
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i32_atomic_rmw_cmpxchg
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i64_trunc_f64_s
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_drop
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i64x2_shr_s
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_f32x4_nearest
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_catch
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_delegate
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i64_atomic_store
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i64_div_u
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_add_sat_u
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_extmul_low_i8x16_u
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i64_atomic_store32
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i8x16_all_true
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i64_eqz
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_ref_null
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_f64_promote_f32
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i64_gt_s
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_local_get
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_f64x2_relaxed_nmadd
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_v128_load8x8_s
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_f32_abs
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i32_load
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_f32x4_ceil
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i32_atomic_rmw8_add_u
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_v128_and
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i64_atomic_store8
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_f32x4_neg
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_f64x2_trunc
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_avgr_u
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i8x16_ne
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_extadd_pairwise_i16x8_s
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i64_extend16_s
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i64_atomic_rmw32_cmpxchg_u
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_f32_gt
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i8x16_narrow_i16x8_s
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_v128_load16x4_u
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i32_atomic_rmw_add
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_f64x2_add
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i64_load8_u
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_f32x4_sub
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_lt_s
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i64_atomic_rmw16_add_u
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_f64x2_max
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_min_u
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_neg
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i32_extend16_s
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_extmul_high_i16x8_s
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i8x16_shr_s
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_v128_load8_splat
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_f32_sqrt
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_bitmask
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i8x16_sub
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_f64_nearest
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_trunc_sat_f32x4_s
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_v128_store
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i64x2_le_s
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_eq
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_unreachable
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i64x2_abs
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i32_atomic_rmw_and
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_f64x2_convert_low_i32x4_s
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i64x2_extend_low_i32x4_u
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_f64_gt
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_relaxed_trunc_f32x4_s
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_shr_s
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_memory_copy
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_gt_u
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_shr_u
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_f32x4_extract_lane
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_f64_sqrt
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_sub_sat_s
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i64x2_ne
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i32_shr_u
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i32_atomic_rmw16_or_u
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i64_atomic_rmw_xchg
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i32_rem_s
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_v128_not
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_nop
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i32_eq
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_table_fill
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_elem_drop
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i64x2_replace_lane
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i8x16_eq
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i32_atomic_store
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_f64_min
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_max_s
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_extend_low_i8x16_u
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_min_s
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i32_atomic_rmw_xchg
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i64_atomic_rmw16_cmpxchg_u
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i32_trunc_f32_u
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_f32_convert_i64_u
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_v128_bitselect
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_f32x4_gt
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_v128_or
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i64_clz
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i64_xor
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i32_rotl
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_f64x2_extract_lane
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_memory_atomic_wait64
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i32_atomic_store16
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i32_lt_u
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_eq
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i32_ne
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i8x16_ge_s
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i32_atomic_rmw16_xchg_u
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_call_ref
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i64_extend_i32_s
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_extadd_pairwise_i16x8_u
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_v128_load16_splat
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i64_atomic_rmw_cmpxchg
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_v128_load32x2_u
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_max_u
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_f32x4_max
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i64_add
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i8x16_narrow_i16x8_u
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i32_atomic_store8
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i32_atomic_rmw_sub
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i64_rem_s
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_f32_ceil
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i32_le_s
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_lt_u
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_f64_convert_i32_s
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_shr_u
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i64_eq
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_f32_lt
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_v128_load32_zero
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i8x16_min_u
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_local_set
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_br_on_null
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_v128_load32_lane
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_return_call_ref
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_f64x2_ceil
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i32_atomic_rmw16_and_u
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i64_rotr
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_memory_init
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i32_ctz
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i64_ge_u
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_le_u
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_f64x2_nearest
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i32_load8_u
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i8x16_extract_lane_s
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_memory_grow
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_f64x2_sub
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i64_load16_s
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i64_atomic_rmw16_or_u
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_f64_add
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_else
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_max_s
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i32_atomic_rmw16_xor_u
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i64_trunc_sat_f32_u
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_table_set
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i32_rem_u
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_abs
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_memory_atomic_wait32
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i64_store
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_f32_const
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i64_load32_u
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i32_trunc_f64_u
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i32_eqz
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_throw
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_f32x4_convert_i32x4_s
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i64_atomic_rmw32_xor_u
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i64_popcnt
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_br_table
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i32_atomic_load8_u
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i64x2_all_true
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i32_atomic_load
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i64x2_gt_s
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_memory_discard
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i64x2_extend_high_i32x4_u
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_f64_mul
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_extract_lane
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_add
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_f32_convert_i32_u
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i32_or
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_if
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_relaxed_trunc_f32x4_u
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_f32x4_relaxed_max
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i32_ge_s
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_f64x2_lt
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i32_atomic_rmw8_xchg_u
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i8x16_lt_u
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i64x2_sub
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_f32x4_sqrt
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_end
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i64x2_shr_u
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_splat
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i32_atomic_load16_u
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_f32x4_min
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_sub_sat_u
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_f64_convert_i32_u
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_sub
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_call
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_f32x4_relaxed_min
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i64_trunc_f64_u
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_extend_low_i16x8_s
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i64_shr_u
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_f32_reinterpret_i32
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i64_le_u
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_v128_any_true
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i8x16_add_sat_s
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_v128_xor
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_f32_floor
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_f64_load
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_f32x4_trunc
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_f32x4_pmax
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i8x16_le_s
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_ge_s
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_f32_sub
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i8x16_gt_s
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_f64x2_relaxed_max
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_extmul_high_i8x16_s
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_extend_high_i16x8_u
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_f64_lt
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i8x16_popcnt
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i32_trunc_sat_f32_u
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i32_store
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_f32x4_pmin
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_f64x2_div
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i8x16_max_u
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i8x16_ge_u
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_f32_min
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_extend_low_i16x8_u
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_gt_s
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_q15mulr_sat_s
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_gt_u
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_f64_ge
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i64_atomic_rmw_sub
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_v128_load64_zero
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i32_sub
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_f64_store
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i64_extend32_s
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i64_atomic_rmw32_sub_u
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_trunc_sat_f64x2_u_zero
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_v128_store8_lane
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i64_store32
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i64_trunc_sat_f32_s
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_f32_mul
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_extend_low_i8x16_s
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i8x16_min_s
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i64x2_extend_high_i32x4_s
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i64_atomic_rmw16_and_u
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_loop
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_f64_abs
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_f32x4_ne
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_lt_u
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i64x2_add
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i32_popcnt
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_f64x2_eq
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_v128_store64_lane
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i64_trunc_sat_f64_u
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i64_store8
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i8x16_splat
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i8x16_extract_lane_u
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i64_atomic_rmw_or
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_relaxed_trunc_f64x2_u_zero
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_f64_floor
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_add_sat_s
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i64_atomic_rmw32_xchg_u
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i64_atomic_rmw32_or_u
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i8x16_relaxed_laneselect
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i64x2_extmul_low_i32x4_s
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i32_mul
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_f64x2_gt
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_table_grow
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_f32x4_floor
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i32_and
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_memory_size
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i64x2_splat
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i32_wrap_i64
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_extmul_low_i8x16_s
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_f64_const
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i8x16_lt_s
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i64_atomic_rmw8_xor_u
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i32_atomic_rmw8_cmpxchg_u
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i64x2_relaxed_laneselect
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i8x16_neg
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_rethrow
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_v128_load
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_f64x2_relaxed_madd
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_select
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i64x2_extmul_high_i32x4_u
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i64_atomic_rmw_add
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i64_ctz
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i64_reinterpret_f64
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_f64x2_ge
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_relaxed_laneselect
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_f64x2_splat
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_ne
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_f64x2_relaxed_min
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i64_atomic_rmw8_cmpxchg_u
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_v128_load32_splat
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i64_load8_s
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_f32x4_add
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_typed_select
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i64_atomic_store16
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_f64x2_neg
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i64_or
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_f32_nearest
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_abs
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i64_atomic_rmw_and
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_f64_convert_i64_u
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_mul
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i64_lt_u
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_ne
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i8x16_shl
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_f64_reinterpret_i64
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i64_trunc_sat_f64_s
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i8x16_avgr_u
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_global_set
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_v128_store16_lane
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_f32_trunc
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_f64_ceil
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i32_load8_s
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_f32_store
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i64_atomic_rmw32_and_u
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i64_atomic_rmw32_add_u
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i64_atomic_rmw8_and_u
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_f32_le
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i64x2_lt_s
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_memory_fill
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i64_extend8_s
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_extmul_low_i16x8_u
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_replace_lane
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_table_get
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_min_s
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_f32_add
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_narrow_i32x4_s
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i32_load16_u
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_f64_max
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_f32_max
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_f64_ne
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i64x2_ge_s
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_f64x2_min
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i32_atomic_rmw_xor
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i32_shr_s
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i32_clz
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i64x2_extract_lane
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_extmul_low_i16x8_s
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_table_size
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i32_store8
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_f64x2_replace_lane
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i64x2_neg
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i64x2_mul
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_all_true
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i32_trunc_f32_s
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_f64x2_convert_low_i32x4_u
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i64_atomic_rmw8_xchg_u
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_extend_high_i8x16_s
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i64_extend_i32_u
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i64_trunc_f32_s
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i32_lt_s
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i64_atomic_load16_u
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_f32x4_lt
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i64_sub
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i64_mul
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_call_indirect
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i64x2_extend_low_i32x4_s
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_f32x4_replace_lane
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i64_and
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i8x16_relaxed_swizzle
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_shl
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_relaxed_dot_i8x16_i7x16_add_s
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i64_lt_s
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_f32x4_relaxed_madd
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_f32x4_ge
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_f32_demote_f64
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_global_get
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i64x2_extmul_high_i32x4_s
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_f64x2_le
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i8x16_swizzle
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i64_shl
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i64_atomic_rmw16_xchg_u
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_min_u
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_f32x4_splat
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_ref_as_non_null
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i32_gt_s
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i64_gt_u
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i64_atomic_load32_u
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i32_atomic_rmw16_cmpxchg_u
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_f32_eq
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_return_call_indirect
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i64_load
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_f64x2_abs
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_v128_load8x8_u
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i32_load16_s
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_f64_convert_i64_s
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i32_atomic_rmw16_sub_u
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i8x16_sub_sat_s
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i8x16_abs
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_sub
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i32_atomic_rmw16_add_u
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i64_rotl
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_f32_ge
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i8x16_le_u
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_dot_i16x8_s
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i64_ge_s
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_le_s
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i64_load16_u
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_br_on_non_null
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i32_reinterpret_f32
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_v128_load64_splat
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_f64x2_floor
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_f64x2_pmin
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i8x16_add
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_extadd_pairwise_i8x16_u
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i64_atomic_rmw8_or_u
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i64_atomic_rmw8_sub_u
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_f32x4_convert_i32x4_u
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_shr_s
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_le_u
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_ge_u
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i32_trunc_sat_f64_s
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i64x2_bitmask
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_f64_eq
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_v128_load16_lane
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i32_div_u
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_extadd_pairwise_i8x16_s
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_extend_high_i8x16_u
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i64_load32_s
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_replace_lane
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i32_atomic_rmw8_and_u
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_f32x4_demote_f64x2_zero
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i32_const
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_f64x2_mul
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_ge_s
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_f32x4_le
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i32_atomic_rmw_or
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i64_atomic_rmw16_xor_u
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i64x2_shl
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_try
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_max_u
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_table_init
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_atomic_fence
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_br
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_neg
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i8x16_shuffle
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_f64_sub
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_mul
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_f32x4_relaxed_nmadd
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_extract_lane_u
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_v128_andnot
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_f32x4_eq
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_f64x2_promote_low_f32x4
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i64x2_extmul_low_i32x4_u
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i32_atomic_rmw8_xor_u
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_return
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_memory_atomic_notify
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_f32x4_abs
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i32_shl
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_relaxed_q15mulr_s
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i64_atomic_load
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i32_trunc_f64_s
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_extmul_high_i8x16_u
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_ref_func
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i8x16_gt_u
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_f32x4_mul
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i64_trunc_f32_u
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_all_true
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i8x16_bitmask
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_br_if
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_v128_load16x4_s
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i64_div_s
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i8x16_shr_u
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_return_call
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i64_atomic_rmw8_add_u
Unexecuted instantiation: <wit_component::gc::Module as wasmparser::readers::core::operators::VisitOperator>::visit_i64_atomic_load8_u
994
        )*
995
    };
996
997
    (mark_live $self:ident $arg:ident type_index) => {$self.ty($arg);};
998
    (mark_live $self:ident $arg:ident src_table) => {$self.table($arg);};
999
    (mark_live $self:ident $arg:ident dst_table) => {$self.table($arg);};
1000
    (mark_live $self:ident $arg:ident table_index) => {$self.table($arg);};
1001
    (mark_live $self:ident $arg:ident table) => {$self.table($arg);};
1002
    (mark_live $self:ident $arg:ident table_index) => {$self.table($arg);};
1003
    (mark_live $self:ident $arg:ident global_index) => {$self.global($arg);};
1004
    (mark_live $self:ident $arg:ident function_index) => {$self.func($arg);};
1005
    (mark_live $self:ident $arg:ident mem) => {$self.memory($arg);};
1006
    (mark_live $self:ident $arg:ident src_mem) => {$self.memory($arg);};
1007
    (mark_live $self:ident $arg:ident dst_mem) => {$self.memory($arg);};
1008
    (mark_live $self:ident $arg:ident memarg) => {$self.memory($arg.memory);};
1009
    (mark_live $self:ident $arg:ident blockty) => {$self.blockty($arg);};
1010
    (mark_live $self:ident $arg:ident ty) => {$self.valty($arg)};
1011
    (mark_live $self:ident $arg:ident hty) => {$self.heapty($arg)};
1012
    (mark_live $self:ident $arg:ident lane) => {};
1013
    (mark_live $self:ident $arg:ident lanes) => {};
1014
    (mark_live $self:ident $arg:ident flags) => {};
1015
    (mark_live $self:ident $arg:ident value) => {};
1016
    (mark_live $self:ident $arg:ident mem_byte) => {};
1017
    (mark_live $self:ident $arg:ident table_byte) => {};
1018
    (mark_live $self:ident $arg:ident local_index) => {};
1019
    (mark_live $self:ident $arg:ident relative_depth) => {};
1020
    (mark_live $self:ident $arg:ident tag_index) => {};
1021
    (mark_live $self:ident $arg:ident targets) => {};
1022
    (mark_live $self:ident $arg:ident data_index) => {};
1023
    (mark_live $self:ident $arg:ident elem_index) => {};
1024
}
1025
1026
impl<'a> VisitOperator<'a> for Module<'a> {
1027
    type Output = ();
1028
1029
    wasmparser::for_each_operator!(define_visit);
1030
}
1031
1032
/// Helper function to filter `iter` based on the `live` set, yielding an
1033
/// iterator over the index of the item that's live as well as the item itself.
1034
0
fn live_iter<'a, T>(
1035
0
    live: &'a BitVec,
1036
0
    iter: impl Iterator<Item = T> + 'a,
1037
0
) -> impl Iterator<Item = (u32, T)> + 'a {
1038
0
    iter.enumerate().filter_map(|(i, t)| {
1039
0
        let i = i as u32;
1040
0
        if live.contains(i) {
1041
0
            Some((i, t))
1042
        } else {
1043
0
            None
1044
        }
1045
0
    })
Unexecuted instantiation: wit_component::gc::live_iter::<&wit_component::gc::Global, core::slice::iter::Iter<wit_component::gc::Global>>::{closure#0}
Unexecuted instantiation: wit_component::gc::live_iter::<&wit_component::gc::Memory, core::slice::iter::Iter<wit_component::gc::Memory>>::{closure#0}
Unexecuted instantiation: wit_component::gc::live_iter::<&wit_component::gc::Func, core::slice::iter::Iter<wit_component::gc::Func>>::{closure#0}
Unexecuted instantiation: wit_component::gc::live_iter::<&wit_component::gc::Table, core::slice::iter::Iter<wit_component::gc::Table>>::{closure#0}
Unexecuted instantiation: wit_component::gc::live_iter::<&wasmparser::readers::core::types::Type, core::slice::iter::Iter<wasmparser::readers::core::types::Type>>::{closure#0}
1046
0
}
Unexecuted instantiation: wit_component::gc::live_iter::<&wasmparser::readers::core::types::Type, core::slice::iter::Iter<wasmparser::readers::core::types::Type>>
Unexecuted instantiation: wit_component::gc::live_iter::<&wit_component::gc::Memory, core::slice::iter::Iter<wit_component::gc::Memory>>
Unexecuted instantiation: wit_component::gc::live_iter::<&wit_component::gc::Global, core::slice::iter::Iter<wit_component::gc::Global>>
Unexecuted instantiation: wit_component::gc::live_iter::<&wit_component::gc::Func, core::slice::iter::Iter<wit_component::gc::Func>>
Unexecuted instantiation: wit_component::gc::live_iter::<&wit_component::gc::Table, core::slice::iter::Iter<wit_component::gc::Table>>
1047
1048
0
#[derive(Default)]
1049
struct Encoder {
1050
    types: Remap,
1051
    funcs: Remap,
1052
    memories: Remap,
1053
    globals: Remap,
1054
    tables: Remap,
1055
    buf: Vec<u8>,
1056
}
1057
1058
impl Encoder {
1059
0
    fn operators(&mut self, mut reader: BinaryReader<'_>) -> Result<Vec<u8>> {
1060
0
        while !reader.eof() {
1061
0
            reader.visit_operator(self)?;
1062
        }
1063
0
        Ok(mem::take(&mut self.buf))
1064
0
    }
1065
1066
0
    fn memarg(&self, ty: MemArg) -> wasm_encoder::MemArg {
1067
0
        wasm_encoder::MemArg {
1068
0
            offset: ty.offset,
1069
0
            align: ty.align.into(),
1070
0
            memory_index: self.memories.remap(ty.memory),
1071
0
        }
1072
0
    }
1073
1074
0
    fn blockty(&self, ty: BlockType) -> wasm_encoder::BlockType {
1075
0
        match ty {
1076
0
            BlockType::Empty => wasm_encoder::BlockType::Empty,
1077
0
            BlockType::Type(ty) => wasm_encoder::BlockType::Result(self.valty(ty)),
1078
0
            BlockType::FuncType(ty) => wasm_encoder::BlockType::FunctionType(self.types.remap(ty)),
1079
        }
1080
0
    }
1081
1082
0
    fn valty(&self, ty: wasmparser::ValType) -> wasm_encoder::ValType {
1083
0
        match ty {
1084
0
            wasmparser::ValType::I32 => wasm_encoder::ValType::I32,
1085
0
            wasmparser::ValType::I64 => wasm_encoder::ValType::I64,
1086
0
            wasmparser::ValType::F32 => wasm_encoder::ValType::F32,
1087
0
            wasmparser::ValType::F64 => wasm_encoder::ValType::F64,
1088
0
            wasmparser::ValType::V128 => wasm_encoder::ValType::V128,
1089
0
            wasmparser::ValType::Ref(rt) => wasm_encoder::ValType::Ref(self.refty(rt)),
1090
        }
1091
0
    }
1092
1093
0
    fn refty(&self, rt: wasmparser::RefType) -> wasm_encoder::RefType {
1094
0
        wasm_encoder::RefType {
1095
0
            nullable: rt.is_nullable(),
1096
0
            heap_type: self.heapty(rt.heap_type()),
1097
0
        }
1098
0
    }
1099
1100
0
    fn heapty(&self, ht: wasmparser::HeapType) -> wasm_encoder::HeapType {
1101
0
        match ht {
1102
0
            wasmparser::HeapType::Func => wasm_encoder::HeapType::Func,
1103
0
            wasmparser::HeapType::Extern => wasm_encoder::HeapType::Extern,
1104
0
            wasmparser::HeapType::TypedFunc(idx) => {
1105
0
                wasm_encoder::HeapType::TypedFunc(self.types.remap(idx.into()).try_into().unwrap())
1106
            }
1107
        }
1108
0
    }
1109
}
1110
1111
// This is a helper macro to translate all `wasmparser` instructions to
1112
// `wasm-encoder` instructions without having to list out every single
1113
// instruction itself.
1114
//
1115
// The general goal of this macro is to have O(unique instruction payload)
1116
// number of cases while also simultaneously adapting between the styles of
1117
// wasmparser and wasm-encoder.
1118
macro_rules! define_encode {
1119
    ($(@$p:ident $op:ident $({ $($arg:ident: $argty:ty),* })? => $visit:ident)*) => {
1120
        $(
1121
            #[allow(clippy::drop_copy)]
1122
0
            fn $visit(&mut self $(, $($arg: $argty),*)?)  {
1123
0
                #[allow(unused_imports)]
1124
0
                use wasm_encoder::Instruction::*;
1125
0
                $(
1126
0
                    $(
1127
0
                        let $arg = define_encode!(map self $arg $arg);
1128
0
                    )*
1129
0
                )?
1130
0
                let insn = define_encode!(mk $op $($($arg)*)?);
1131
0
                insn.encode(&mut self.buf);
1132
0
            }
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_gt_s
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i8x16_popcnt
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i64_atomic_store8
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i64_load16_u
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_v128_store16_lane
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_f32_demote_f64
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i8x16_eq
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_le_u
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_extract_lane_s
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i32_atomic_rmw8_cmpxchg_u
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_f64_nearest
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i32_store
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i8x16_lt_u
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_abs
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_f64x2_pmax
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i64_shl
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_delegate
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_bitmask
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i8x16_shl
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_f32x4_neg
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i64_rotl
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i64_gt_u
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i8x16_shuffle
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_f32x4_lt
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i64x2_ne
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_f32x4_ne
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i32_const
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i64_atomic_rmw32_cmpxchg_u
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i32_store8
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_gt_s
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i8x16_le_u
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i64x2_shl
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i64_load
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i32_atomic_rmw16_or_u
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_typed_select
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_f64_max
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_return_call_ref
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_extract_lane_u
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_extend_high_i16x8_u
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i32_atomic_rmw_add
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_f32_ceil
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_add_sat_s
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_f64x2_eq
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i32_rem_s
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i32_shr_s
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i32_reinterpret_f32
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_ref_null
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i8x16_sub_sat_s
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i64x2_extend_high_i32x4_u
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_ge_s
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i64_le_s
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_f32_lt
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_global_set
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i32_load8_u
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_extend_low_i16x8_u
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i8x16_splat
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i32_trunc_sat_f32_s
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_if
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_end
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i32_atomic_rmw16_xor_u
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i64_ctz
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i32_atomic_rmw_sub
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_relaxed_trunc_f64x2_u_zero
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i64x2_add
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_f64_ne
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_f32_eq
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i32_trunc_f32_s
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_f64x2_neg
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_shr_u
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i64_atomic_rmw_xchg
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i32_atomic_rmw_cmpxchg
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_sub_sat_s
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i8x16_ne
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_v128_load8_lane
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i64_trunc_f64_u
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i64_atomic_rmw16_sub_u
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i64_atomic_rmw8_and_u
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_br
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i8x16_min_u
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_f64x2_relaxed_min
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_f64x2_relaxed_nmadd
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_f64_abs
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i32_atomic_load8_u
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i64_rem_s
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_trunc_sat_f32x4_u
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i32_trunc_sat_f64_u
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i32_popcnt
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i64_eq
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_v128_store8_lane
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_select
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i64x2_gt_s
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_avgr_u
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i64_store8
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i64_atomic_rmw_cmpxchg
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i64_atomic_load32_u
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_neg
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_ref_as_non_null
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i64_atomic_rmw16_and_u
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i64_trunc_sat_f64_u
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_f32x4_convert_i32x4_s
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_f32x4_demote_f64x2_zero
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i8x16_gt_s
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_memory_copy
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i64_gt_s
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_f32x4_sub
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_f32x4_pmax
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_extadd_pairwise_i16x8_s
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_extend_low_i16x8_s
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_v128_load32x2_s
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_f64_convert_i32_s
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_memory_grow
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i64_or
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i64x2_all_true
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_lt_u
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_narrow_i32x4_u
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_shr_s
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_f64_sqrt
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i32_load
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_v128_load16_splat
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i32_mul
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i64_atomic_rmw32_add_u
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_f32x4_extract_lane
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i8x16_narrow_i16x8_s
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_relaxed_trunc_f64x2_s_zero
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i8x16_bitmask
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_else
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i64_atomic_rmw16_xor_u
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i64_lt_u
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_memory_atomic_notify
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_f32x4_eq
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_f64x2_abs
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_f32x4_max
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_f64x2_nearest
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_memory_size
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i64_extend8_s
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_f64_promote_f32
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i64x2_mul
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i64x2_extend_low_i32x4_u
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i64x2_sub
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_f64_min
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i32_trunc_f64_s
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_f64_div
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_v128_load64_zero
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_extend_high_i16x8_s
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i8x16_shr_u
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_f32_abs
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i32_atomic_rmw8_xchg_u
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i64_le_u
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_shr_u
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_f32x4_le
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_f64x2_sub
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i32_xor
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i64_atomic_rmw32_sub_u
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_f32_const
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i32_trunc_sat_f32_u
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_relaxed_laneselect
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_le_s
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i64x2_extmul_high_i32x4_u
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_memory_atomic_wait32
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i32_atomic_load16_u
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_f64_load
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_v128_load32_zero
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i64_trunc_f32_s
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_max_s
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_ge_u
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_f32_nearest
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_f32_min
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_max_u
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_splat
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i32_rotr
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i64_mul
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_return_call
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_f64_ge
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_extmul_high_i8x16_s
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_v128_any_true
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i64_atomic_store
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_v128_load16_lane
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i64x2_eq
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_lt_u
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i64_atomic_rmw16_xchg_u
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i8x16_le_s
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_f64x2_splat
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i64x2_abs
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_call_indirect
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_f32_max
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_f64_trunc
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_f32x4_relaxed_min
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_extadd_pairwise_i16x8_u
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i64_div_s
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i64_atomic_rmw8_or_u
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_extend_low_i8x16_s
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i64x2_le_s
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i32_clz
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i64_atomic_rmw_add
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i64_store
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i8x16_abs
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i8x16_narrow_i16x8_u
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_extmul_high_i16x8_u
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_eq
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i32_ge_u
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_table_get
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_catch_all
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_f64_mul
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i8x16_extract_lane_u
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_replace_lane
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i64_reinterpret_f64
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i64_rotr
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_call_ref
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i32_or
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i32_sub
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i8x16_add_sat_s
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_f64x2_convert_low_i32x4_s
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i64x2_bitmask
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i64_ge_u
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i64_lt_s
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_memory_discard
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_all_true
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i32_extend16_s
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i32_atomic_rmw_xor
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i64x2_extract_lane
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i8x16_swizzle
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_v128_load32x2_u
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i32_trunc_f32_u
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i64_atomic_rmw8_add_u
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i32_shr_u
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_loop
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_add
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_relaxed_trunc_f32x4_s
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_f64x2_relaxed_madd
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_sub_sat_u
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_table_size
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i64_clz
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_f64x2_trunc
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i8x16_max_s
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i32_extend8_s
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_f64_eq
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_v128_and
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_f32x4_splat
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_v128_load64_lane
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_ref_is_null
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i32_lt_u
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_v128_load64_splat
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_return
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_gt_u
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_f32x4_relaxed_madd
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i32_load16_s
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i64_load32_s
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i32_atomic_rmw_xchg
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_memory_atomic_wait64
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_f64x2_sqrt
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i64_atomic_rmw8_sub_u
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i64_extend32_s
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i64_atomic_load
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_f64x2_mul
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_v128_bitselect
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i32_ge_s
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_v128_store64_lane
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i32_trunc_sat_f64_s
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i32_le_u
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_f32x4_ceil
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_ge_u
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_min_u
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_f64_store
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i64_atomic_rmw8_cmpxchg_u
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i64_load16_s
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_f32_store
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i64_add
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_max_u
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i8x16_gt_u
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_extadd_pairwise_i8x16_s
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_relaxed_dot_i8x16_i7x16_add_s
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i32_atomic_rmw8_and_u
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_call
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_drop
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_v128_load
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i64_atomic_store16
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i8x16_replace_lane
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_v128_xor
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_trunc_sat_f64x2_u_zero
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i64_xor
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_elem_drop
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_ge_s
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_f32x4_min
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_f32x4_abs
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i32_div_s
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_f32_convert_i64_s
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i64_store16
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_f32_convert_i32_u
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i64x2_extend_high_i32x4_s
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_extmul_low_i16x8_u
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_f64_floor
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_local_tee
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i64_atomic_rmw16_cmpxchg_u
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_v128_load16x4_u
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_extmul_high_i8x16_u
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i8x16_neg
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_block
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i32_atomic_rmw8_xor_u
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i32_atomic_rmw8_or_u
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i64_atomic_rmw_xor
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_narrow_i32x4_s
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i64x2_lt_s
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_f64x2_ceil
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i64_atomic_store32
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_f64_convert_i32_u
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_f32_reinterpret_i32
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_relaxed_trunc_f32x4_u
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i8x16_ge_s
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i64x2_shr_s
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i64x2_ge_s
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_table_copy
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_f64_add
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_v128_load32_splat
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_shl
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i64_shr_u
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i64_atomic_rmw32_xor_u
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i32_load8_s
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_extend_high_i8x16_u
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_add_sat_u
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i8x16_sub_sat_u
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i32_rem_u
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i32_atomic_rmw16_sub_u
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_rethrow
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i32_atomic_rmw16_add_u
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_f64x2_le
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i32_atomic_load
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_gt_u
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_f64x2_replace_lane
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_shr_s
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_min_u
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_throw
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_f32_trunc
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_sub
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_max_s
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i32_rotl
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i32_atomic_rmw16_and_u
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i8x16_min_s
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_eq
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_f32x4_relaxed_max
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_le_s
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_f32_le
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i32_atomic_store
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i32_load16_u
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_f64x2_ge
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_trunc_sat_f32x4_s
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_splat
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_extmul_high_i16x8_s
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i32_ne
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_memory_init
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_br_if
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_f64_neg
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_f32x4_sqrt
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_extmul_low_i8x16_u
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i64_trunc_f32_u
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_f32_convert_i64_u
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i64_rem_u
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_bitmask
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i8x16_avgr_u
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_f64_gt
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i32_add
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_f64_lt
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i8x16_all_true
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_v128_or
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_trunc_sat_f64x2_s_zero
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i32_le_s
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i64_ne
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i32_gt_u
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_table_init
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_f32x4_div
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_f64_convert_i64_u
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_v128_const
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_f64_convert_i64_s
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i64_atomic_rmw32_and_u
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i64x2_extend_low_i32x4_s
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_relaxed_q15mulr_s
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_extend_high_i8x16_s
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i8x16_extract_lane_s
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_f64_ceil
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_f64_sub
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i32_atomic_store16
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i32_div_u
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_f32x4_convert_i32x4_u
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_shl
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i64_and
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i64_eqz
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i32_and
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_f32x4_mul
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i8x16_add
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i64_atomic_rmw16_add_u
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i32_store16
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_f32x4_ge
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_f32x4_replace_lane
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_local_get
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_v128_load16x4_s
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_f64_copysign
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i64_store32
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_v128_load8x8_u
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_unreachable
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_ne
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_le_u
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_f64x2_convert_low_i32x4_u
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_f32_floor
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_global_get
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_table_fill
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_br_on_non_null
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_f32x4_pmin
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i8x16_relaxed_swizzle
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_f32_sqrt
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_f32_gt
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_f64x2_floor
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_f64x2_gt
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i32_eq
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_v128_load8_splat
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_v128_store
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i64_const
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_lt_s
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i64x2_shr_u
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_ne
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_add
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i64_load8_u
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i64_atomic_rmw8_xor_u
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_f32_load
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i64_extend_i32_u
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_f64x2_extract_lane
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i64x2_splat
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i8x16_sub
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_relaxed_laneselect
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i64_atomic_rmw_sub
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_catch
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_f32_div
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_f64x2_max
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i64_sub
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i32_gt_s
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_extadd_pairwise_i8x16_u
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i64x2_extmul_high_i32x4_s
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_f32x4_nearest
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i64x2_extmul_low_i32x4_s
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_f64_le
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i64_extend_i32_s
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i64_load32_u
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_min_s
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i8x16_lt_s
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_mul
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_f32_mul
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_return_call_indirect
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i64_atomic_rmw8_xchg_u
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_v128_not
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i64_atomic_rmw_or
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i64_atomic_rmw_and
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i64x2_relaxed_laneselect
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_relaxed_dot_i8x16_i7x16_s
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_f32x4_floor
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_f32x4_add
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i64_atomic_load16_u
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i64_trunc_f64_s
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_f64x2_pmin
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_dot_i16x8_s
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i64x2_neg
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i64_trunc_sat_f64_s
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_f32_copysign
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_v128_load8x8_s
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_extmul_low_i8x16_s
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i8x16_ge_u
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i64_div_u
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i64_atomic_rmw16_or_u
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_local_set
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_q15mulr_sat_s
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_br_on_null
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_extract_lane
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_f64x2_relaxed_max
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i32_ctz
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i32_atomic_rmw8_add_u
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_nop
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i32_atomic_store8
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_f64x2_promote_low_f32x4
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_memory_fill
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_table_set
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i64_ge_s
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_replace_lane
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_neg
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_f64_const
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_try
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i64_shr_s
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_extend_low_i8x16_u
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i64_atomic_rmw32_or_u
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i32_atomic_rmw8_sub_u
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i8x16_shr_s
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_f32x4_relaxed_nmadd
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_lt_s
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_table_grow
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_atomic_fence
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_f32x4_gt
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_f64x2_add
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i64x2_replace_lane
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_sub
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_f64_reinterpret_i64
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i32_eqz
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_f32_neg
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_f32_add
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i64x2_extmul_low_i32x4_u
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_mul
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i32_atomic_rmw16_xchg_u
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i32_wrap_i64
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i64_load8_s
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_v128_load32_lane
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i32_shl
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i32_atomic_rmw_and
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i8x16_max_u
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i8x16_add_sat_u
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_br_table
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i64_atomic_rmw32_xchg_u
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_f32_ne
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i64_atomic_load8_u
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_f64x2_lt
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_v128_andnot
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_f64x2_ne
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_f64x2_min
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_ref_func
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i64_trunc_sat_f32_u
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i64_extend16_s
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i64_trunc_sat_f32_s
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_f32x4_trunc
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_f32_convert_i32_s
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i32_trunc_f64_u
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_v128_store32_lane
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i32x4_extmul_low_i16x8_s
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i8x16_relaxed_laneselect
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_abs
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_f32_sub
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i32_atomic_rmw16_cmpxchg_u
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_f32_ge
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_min_s
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_f64x2_div
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i16x8_all_true
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i64_popcnt
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i32_atomic_rmw_or
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_i32_lt_s
Unexecuted instantiation: <wit_component::gc::Encoder as wasmparser::readers::core::operators::VisitOperator>::visit_data_drop
1133
        )*
1134
    };
1135
1136
    // No-payload instructions are named the same in wasmparser as they are in
1137
    // wasm-encoder
1138
    (mk $op:ident) => ($op);
1139
1140
    // Instructions which need "special care" to map from wasmparser to
1141
    // wasm-encoder
1142
    (mk BrTable $arg:ident) => ({
1143
        BrTable($arg.0, $arg.1)
1144
    });
1145
    (mk CallIndirect $ty:ident $table:ident $table_byte:ident) => ({
1146
        drop($table_byte);
1147
        CallIndirect { ty: $ty, table: $table }
1148
    });
1149
    (mk ReturnCallIndirect $ty:ident $table:ident) => (
1150
        ReturnCallIndirect { ty: $ty, table: $table }
1151
    );
1152
    (mk MemorySize $mem:ident $mem_byte:ident) => ({
1153
        drop($mem_byte);
1154
        MemorySize($mem)
1155
    });
1156
    (mk MemoryGrow $mem:ident $mem_byte:ident) => ({
1157
        drop($mem_byte);
1158
        MemoryGrow($mem)
1159
    });
1160
    (mk I32Const $v:ident) => (I32Const($v));
1161
    (mk I64Const $v:ident) => (I64Const($v));
1162
    (mk F32Const $v:ident) => (F32Const(f32::from_bits($v.bits())));
1163
    (mk F64Const $v:ident) => (F64Const(f64::from_bits($v.bits())));
1164
    (mk V128Const $v:ident) => (V128Const($v.i128()));
1165
1166
    // Catch-all for the translation of one payload argument which is typically
1167
    // represented as a tuple-enum in wasm-encoder.
1168
    (mk $op:ident $arg:ident) => ($op($arg));
1169
1170
    // Catch-all of everything else where the wasmparser fields are simply
1171
    // translated to wasm-encoder fields.
1172
    (mk $op:ident $($arg:ident)*) => ($op { $($arg),* });
1173
1174
    // Individual cases of mapping one argument type to another, similar to the
1175
    // `define_visit` macro above.
1176
    (map $self:ident $arg:ident memarg) => {$self.memarg($arg)};
1177
    (map $self:ident $arg:ident blockty) => {$self.blockty($arg)};
1178
    (map $self:ident $arg:ident hty) => {$self.heapty($arg)};
1179
    (map $self:ident $arg:ident tag_index) => {$arg};
1180
    (map $self:ident $arg:ident relative_depth) => {$arg};
1181
    (map $self:ident $arg:ident function_index) => {$self.funcs.remap($arg)};
1182
    (map $self:ident $arg:ident global_index) => {$self.globals.remap($arg)};
1183
    (map $self:ident $arg:ident mem) => {$self.memories.remap($arg)};
1184
    (map $self:ident $arg:ident src_mem) => {$self.memories.remap($arg)};
1185
    (map $self:ident $arg:ident dst_mem) => {$self.memories.remap($arg)};
1186
    (map $self:ident $arg:ident table) => {$self.tables.remap($arg)};
1187
    (map $self:ident $arg:ident table_index) => {$self.tables.remap($arg)};
1188
    (map $self:ident $arg:ident src_table) => {$self.tables.remap($arg)};
1189
    (map $self:ident $arg:ident dst_table) => {$self.tables.remap($arg)};
1190
    (map $self:ident $arg:ident type_index) => {$self.types.remap($arg)};
1191
    (map $self:ident $arg:ident ty) => {$self.valty($arg)};
1192
    (map $self:ident $arg:ident local_index) => {$arg};
1193
    (map $self:ident $arg:ident lane) => {$arg};
1194
    (map $self:ident $arg:ident lanes) => {$arg};
1195
    (map $self:ident $arg:ident elem_index) => {$arg};
1196
    (map $self:ident $arg:ident data_index) => {$arg};
1197
    (map $self:ident $arg:ident table_byte) => {$arg};
1198
    (map $self:ident $arg:ident mem_byte) => {$arg};
1199
    (map $self:ident $arg:ident value) => {$arg};
1200
    (map $self:ident $arg:ident targets) => ((
1201
        $arg.targets().map(|i| i.unwrap()).collect::<Vec<_>>().into(),
1202
        $arg.default(),
1203
    ));
1204
}
1205
1206
impl<'a> VisitOperator<'a> for Encoder {
1207
    type Output = ();
1208
1209
0
    wasmparser::for_each_operator!(define_encode);
1210
}
1211
1212
// Minimal definition of a bit vector necessary for the liveness calculations
1213
// above.
1214
mod bitvec {
1215
    use std::mem;
1216
1217
    type T = u64;
1218
1219
0
    #[derive(Default)]
1220
    pub struct BitVec {
1221
        bits: Vec<T>,
1222
    }
1223
1224
    impl BitVec {
1225
        /// Inserts `idx` into this bit vector, returning whether it was not
1226
        /// previously present.
1227
0
        pub fn insert(&mut self, idx: u32) -> bool {
1228
0
            let (idx, bit) = idx_bit(idx);
1229
0
            match self.bits.get_mut(idx) {
1230
0
                Some(bits) => {
1231
0
                    if *bits & bit != 0 {
1232
0
                        return false;
1233
0
                    }
1234
0
                    *bits |= bit;
1235
                }
1236
0
                None => {
1237
0
                    self.bits.resize(idx + 1, 0);
1238
0
                    self.bits[idx] = bit;
1239
0
                }
1240
            }
1241
0
            true
1242
0
        }
1243
1244
        /// Returns whether this bit vector contains the specified `idx`th bit.
1245
0
        pub fn contains(&self, idx: u32) -> bool {
1246
0
            let (idx, bit) = idx_bit(idx);
1247
0
            match self.bits.get(idx) {
1248
0
                Some(bits) => (*bits & bit) != 0,
1249
0
                None => false,
1250
            }
1251
0
        }
1252
    }
1253
1254
0
    fn idx_bit(idx: u32) -> (usize, T) {
1255
0
        let idx = idx as usize;
1256
0
        let size = mem::size_of::<T>() * 8;
1257
0
        let index = idx / size;
1258
0
        let bit = 1 << (idx % size);
1259
0
        (index, bit)
1260
0
    }
1261
}
1262
1263
/// Small data structure used to track index mappings from an old index space to
1264
/// a new.
1265
0
#[derive(Default)]
1266
struct Remap {
1267
    /// Map, indexed by the old index set, to the new index set.
1268
    map: HashMap<u32, u32>,
1269
    /// The next available index in the new index space.
1270
    next: u32,
1271
}
1272
1273
impl Remap {
1274
    /// Appends a new live "old index" into this remapping structure.
1275
    ///
1276
    /// This will assign a new index for the old index provided.
1277
0
    fn push(&mut self, old: u32) {
1278
0
        self.map.insert(old, self.next);
1279
0
        self.next += 1;
1280
0
    }
1281
1282
    /// Returns the new index corresponding to an old index.
1283
    ///
1284
    /// Panics if the `old` index was not added via `push` above.
1285
0
    fn remap(&self, old: u32) -> u32 {
1286
0
        *self
1287
0
            .map
1288
0
            .get(&old)
1289
0
            .unwrap_or_else(|| panic!("can't map {old} to a new index"))
1290
0
    }
1291
}