Coverage Report

Created: 2026-04-09 08:09

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/wasmtime/target/debug/build/cranelift-codegen-6e788acaed5e19cf/out/assembler-isle-macro.rs
Line
Count
Source
1
#[doc(hidden)] // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:229
2
macro_rules! isle_assembler_methods {
3
    () => {
4
20
        fn x64_pabsb_a_raw(&mut self, xmm_m128: &XmmMemAligned) -> AssemblerOutputs {
5
            // Convert ISLE types to assembler types.
6
20
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
7
20
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
8
9
            // Build the instruction.
10
20
            let inst = cranelift_assembler_x64::inst::pabsb_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
11
20
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
12
13
            // Return a type ISLE can work with.
14
20
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
15
20
            AssemblerOutputs::RetXmm { inst, xmm }
16
20
        }
17
1.17k
        fn x64_vpabsb_a_raw(&mut self, xmm_m128: &XmmMem) -> AssemblerOutputs {
18
            // Convert ISLE types to assembler types.
19
1.17k
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
20
1.17k
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
21
22
            // Build the instruction.
23
1.17k
            let inst = cranelift_assembler_x64::inst::vpabsb_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
24
1.17k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
25
26
            // Return a type ISLE can work with.
27
1.17k
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
28
1.17k
            AssemblerOutputs::RetXmm { inst, xmm }
29
1.17k
        }
30
88
        fn x64_pabsw_a_raw(&mut self, xmm_m128: &XmmMemAligned) -> AssemblerOutputs {
31
            // Convert ISLE types to assembler types.
32
88
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
33
88
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
34
35
            // Build the instruction.
36
88
            let inst = cranelift_assembler_x64::inst::pabsw_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
37
88
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
38
39
            // Return a type ISLE can work with.
40
88
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
41
88
            AssemblerOutputs::RetXmm { inst, xmm }
42
88
        }
43
303
        fn x64_vpabsw_a_raw(&mut self, xmm_m128: &XmmMem) -> AssemblerOutputs {
44
            // Convert ISLE types to assembler types.
45
303
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
46
303
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
47
48
            // Build the instruction.
49
303
            let inst = cranelift_assembler_x64::inst::vpabsw_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
50
303
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
51
52
            // Return a type ISLE can work with.
53
303
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
54
303
            AssemblerOutputs::RetXmm { inst, xmm }
55
303
        }
56
795
        fn x64_pabsd_a_raw(&mut self, xmm_m128: &XmmMemAligned) -> AssemblerOutputs {
57
            // Convert ISLE types to assembler types.
58
795
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
59
795
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
60
61
            // Build the instruction.
62
795
            let inst = cranelift_assembler_x64::inst::pabsd_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
63
795
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
64
65
            // Return a type ISLE can work with.
66
795
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
67
795
            AssemblerOutputs::RetXmm { inst, xmm }
68
795
        }
69
469
        fn x64_vpabsd_a_raw(&mut self, xmm_m128: &XmmMem) -> AssemblerOutputs {
70
            // Convert ISLE types to assembler types.
71
469
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
72
469
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
73
74
            // Build the instruction.
75
469
            let inst = cranelift_assembler_x64::inst::vpabsd_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
76
469
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
77
78
            // Return a type ISLE can work with.
79
469
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
80
469
            AssemblerOutputs::RetXmm { inst, xmm }
81
469
        }
82
0
        fn x64_vpabsd_c_raw(&mut self, xmm_m128: &XmmMem) -> AssemblerOutputs {
83
            // Convert ISLE types to assembler types.
84
0
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
85
0
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
86
87
            // Build the instruction.
88
0
            let inst = cranelift_assembler_x64::inst::vpabsd_c::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
89
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
90
91
            // Return a type ISLE can work with.
92
0
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
93
0
            AssemblerOutputs::RetXmm { inst, xmm }
94
0
        }
95
2
        fn x64_vpabsq_c_raw(&mut self, xmm_m128: &XmmMem) -> AssemblerOutputs {
96
            // Convert ISLE types to assembler types.
97
2
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
98
2
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
99
100
            // Build the instruction.
101
2
            let inst = cranelift_assembler_x64::inst::vpabsq_c::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
102
2
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
103
104
            // Return a type ISLE can work with.
105
2
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
106
2
            AssemblerOutputs::RetXmm { inst, xmm }
107
2
        }
108
0
        fn x64_addb_i_raw(&mut self, al: Gpr, imm8: u8) -> AssemblerOutputs {
109
            // Convert ISLE types to assembler types.
110
0
            let al = self.convert_gpr_to_assembler_fixed_read_write_gpr(al); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
111
0
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
112
113
            // Build the instruction.
114
0
            let inst = cranelift_assembler_x64::inst::addb_i::new(al.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
115
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
116
117
            // Return a type ISLE can work with.
118
0
            let gpr = al.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
119
0
            AssemblerOutputs::RetGpr { inst, gpr }
120
0
        }
121
0
        fn x64_addw_i_raw(&mut self, ax: Gpr, imm16: u16) -> AssemblerOutputs {
122
            // Convert ISLE types to assembler types.
123
0
            let ax = self.convert_gpr_to_assembler_fixed_read_write_gpr(ax); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
124
0
            let imm16 = cranelift_assembler_x64::Imm16::new(imm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
125
126
            // Build the instruction.
127
0
            let inst = cranelift_assembler_x64::inst::addw_i::new(ax.clone(), imm16.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
128
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
129
130
            // Return a type ISLE can work with.
131
0
            let gpr = ax.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
132
0
            AssemblerOutputs::RetGpr { inst, gpr }
133
0
        }
134
0
        fn x64_addl_i_raw(&mut self, eax: Gpr, imm32: u32) -> AssemblerOutputs {
135
            // Convert ISLE types to assembler types.
136
0
            let eax = self.convert_gpr_to_assembler_fixed_read_write_gpr(eax); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
137
0
            let imm32 = cranelift_assembler_x64::Imm32::new(imm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
138
139
            // Build the instruction.
140
0
            let inst = cranelift_assembler_x64::inst::addl_i::new(eax.clone(), imm32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
141
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
142
143
            // Return a type ISLE can work with.
144
0
            let gpr = eax.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
145
0
            AssemblerOutputs::RetGpr { inst, gpr }
146
0
        }
147
0
        fn x64_addq_i_sxl_raw(&mut self, rax: Gpr, imm32: i32) -> AssemblerOutputs {
148
            // Convert ISLE types to assembler types.
149
0
            let rax = self.convert_gpr_to_assembler_fixed_read_write_gpr(rax); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
150
0
            let imm32 = cranelift_assembler_x64::Simm32::new(imm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
151
152
            // Build the instruction.
153
0
            let inst = cranelift_assembler_x64::inst::addq_i_sxl::new(rax.clone(), imm32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
154
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
155
156
            // Return a type ISLE can work with.
157
0
            let gpr = rax.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
158
0
            AssemblerOutputs::RetGpr { inst, gpr }
159
0
        }
160
16.8k
        fn x64_addb_mi_raw(&mut self, rm8: &GprMem, imm8: u8) -> AssemblerOutputs {
161
            // Convert ISLE types to assembler types.
162
16.8k
            let rm8 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
163
16.8k
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
164
165
            // Build the instruction.
166
16.8k
            let inst = cranelift_assembler_x64::inst::addb_mi::new(rm8.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
167
16.8k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
168
169
            // Return a type ISLE can work with.
170
16.8k
            match rm8 {
171
16.8k
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
172
16.8k
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
173
16.8k
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
174
                }
175
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
176
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
177
                }
178
            }
179
16.8k
        }
180
11.4k
        fn x64_addw_mi_raw(&mut self, rm16: &GprMem, imm16: u16) -> AssemblerOutputs {
181
            // Convert ISLE types to assembler types.
182
11.4k
            let rm16 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
183
11.4k
            let imm16 = cranelift_assembler_x64::Imm16::new(imm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
184
185
            // Build the instruction.
186
11.4k
            let inst = cranelift_assembler_x64::inst::addw_mi::new(rm16.clone(), imm16.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
187
11.4k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
188
189
            // Return a type ISLE can work with.
190
11.4k
            match rm16 {
191
11.4k
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
192
11.4k
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
193
11.4k
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
194
                }
195
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
196
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
197
                }
198
            }
199
11.4k
        }
200
133
        fn x64_addl_mi_raw(&mut self, rm32: &GprMem, imm32: u32) -> AssemblerOutputs {
201
            // Convert ISLE types to assembler types.
202
133
            let rm32 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
203
133
            let imm32 = cranelift_assembler_x64::Imm32::new(imm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
204
205
            // Build the instruction.
206
133
            let inst = cranelift_assembler_x64::inst::addl_mi::new(rm32.clone(), imm32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
207
133
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
208
209
            // Return a type ISLE can work with.
210
133
            match rm32 {
211
72
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
212
72
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
213
72
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
214
                }
215
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
216
61
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
217
                }
218
            }
219
133
        }
220
50.6k
        fn x64_addq_mi_sxl_raw(&mut self, rm64: &GprMem, imm32: i32) -> AssemblerOutputs {
221
            // Convert ISLE types to assembler types.
222
50.6k
            let rm64 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
223
50.6k
            let imm32 = cranelift_assembler_x64::Simm32::new(imm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
224
225
            // Build the instruction.
226
50.6k
            let inst = cranelift_assembler_x64::inst::addq_mi_sxl::new(rm64.clone(), imm32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
227
50.6k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
228
229
            // Return a type ISLE can work with.
230
50.6k
            match rm64 {
231
50.6k
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
232
50.6k
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
233
50.6k
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
234
                }
235
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
236
1
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
237
                }
238
            }
239
50.6k
        }
240
71.1k
        fn x64_addl_mi_sxb_raw(&mut self, rm32: &GprMem, imm8: i8) -> AssemblerOutputs {
241
            // Convert ISLE types to assembler types.
242
71.1k
            let rm32 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
243
71.1k
            let imm8 = cranelift_assembler_x64::Simm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
244
245
            // Build the instruction.
246
71.1k
            let inst = cranelift_assembler_x64::inst::addl_mi_sxb::new(rm32.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
247
71.1k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
248
249
            // Return a type ISLE can work with.
250
71.1k
            match rm32 {
251
69.4k
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
252
69.4k
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
253
69.4k
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
254
                }
255
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
256
1.75k
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
257
                }
258
            }
259
71.1k
        }
260
740k
        fn x64_addq_mi_sxb_raw(&mut self, rm64: &GprMem, imm8: i8) -> AssemblerOutputs {
261
            // Convert ISLE types to assembler types.
262
740k
            let rm64 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
263
740k
            let imm8 = cranelift_assembler_x64::Simm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
264
265
            // Build the instruction.
266
740k
            let inst = cranelift_assembler_x64::inst::addq_mi_sxb::new(rm64.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
267
740k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
268
269
            // Return a type ISLE can work with.
270
740k
            match rm64 {
271
341k
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
272
341k
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
273
341k
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
274
                }
275
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
276
399k
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
277
                }
278
            }
279
740k
        }
280
0
        fn x64_addb_mr_raw(&mut self, rm8: &GprMem, r8: Gpr) -> AssemblerOutputs {
281
            // Convert ISLE types to assembler types.
282
0
            let rm8 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
283
0
            let r8 = cranelift_assembler_x64::Gpr::new(r8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
284
285
            // Build the instruction.
286
0
            let inst = cranelift_assembler_x64::inst::addb_mr::new(rm8.clone(), r8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
287
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
288
289
            // Return a type ISLE can work with.
290
0
            match rm8 {
291
0
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
292
0
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
293
0
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
294
                }
295
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
296
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
297
                }
298
            }
299
0
        }
300
0
        fn x64_addw_mr_raw(&mut self, rm16: &GprMem, r16: Gpr) -> AssemblerOutputs {
301
            // Convert ISLE types to assembler types.
302
0
            let rm16 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
303
0
            let r16 = cranelift_assembler_x64::Gpr::new(r16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
304
305
            // Build the instruction.
306
0
            let inst = cranelift_assembler_x64::inst::addw_mr::new(rm16.clone(), r16.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
307
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
308
309
            // Return a type ISLE can work with.
310
0
            match rm16 {
311
0
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
312
0
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
313
0
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
314
                }
315
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
316
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
317
                }
318
            }
319
0
        }
320
2.86k
        fn x64_addl_mr_raw(&mut self, rm32: &GprMem, r32: Gpr) -> AssemblerOutputs {
321
            // Convert ISLE types to assembler types.
322
2.86k
            let rm32 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
323
2.86k
            let r32 = cranelift_assembler_x64::Gpr::new(r32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
324
325
            // Build the instruction.
326
2.86k
            let inst = cranelift_assembler_x64::inst::addl_mr::new(rm32.clone(), r32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
327
2.86k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
328
329
            // Return a type ISLE can work with.
330
2.86k
            match rm32 {
331
0
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
332
0
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
333
0
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
334
                }
335
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
336
2.86k
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
337
                }
338
            }
339
2.86k
        }
340
7
        fn x64_addq_mr_raw(&mut self, rm64: &GprMem, r64: Gpr) -> AssemblerOutputs {
341
            // Convert ISLE types to assembler types.
342
7
            let rm64 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
343
7
            let r64 = cranelift_assembler_x64::Gpr::new(r64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
344
345
            // Build the instruction.
346
7
            let inst = cranelift_assembler_x64::inst::addq_mr::new(rm64.clone(), r64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
347
7
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
348
349
            // Return a type ISLE can work with.
350
7
            match rm64 {
351
0
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
352
0
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
353
0
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
354
                }
355
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
356
7
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
357
                }
358
            }
359
7
        }
360
68
        fn x64_addb_rm_raw(&mut self, r8: Gpr, rm8: &GprMem) -> AssemblerOutputs {
361
            // Convert ISLE types to assembler types.
362
68
            let r8 = self.convert_gpr_to_assembler_read_write_gpr(r8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
363
68
            let rm8 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
364
365
            // Build the instruction.
366
68
            let inst = cranelift_assembler_x64::inst::addb_rm::new(r8.clone(), rm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
367
68
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
368
369
            // Return a type ISLE can work with.
370
68
            let gpr = r8.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
371
68
            AssemblerOutputs::RetGpr { inst, gpr }
372
68
        }
373
419
        fn x64_addw_rm_raw(&mut self, r16: Gpr, rm16: &GprMem) -> AssemblerOutputs {
374
            // Convert ISLE types to assembler types.
375
419
            let r16 = self.convert_gpr_to_assembler_read_write_gpr(r16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
376
419
            let rm16 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
377
378
            // Build the instruction.
379
419
            let inst = cranelift_assembler_x64::inst::addw_rm::new(r16.clone(), rm16.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
380
419
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
381
382
            // Return a type ISLE can work with.
383
419
            let gpr = r16.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
384
419
            AssemblerOutputs::RetGpr { inst, gpr }
385
419
        }
386
42.2k
        fn x64_addl_rm_raw(&mut self, r32: Gpr, rm32: &GprMem) -> AssemblerOutputs {
387
            // Convert ISLE types to assembler types.
388
42.2k
            let r32 = self.convert_gpr_to_assembler_read_write_gpr(r32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
389
42.2k
            let rm32 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
390
391
            // Build the instruction.
392
42.2k
            let inst = cranelift_assembler_x64::inst::addl_rm::new(r32.clone(), rm32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
393
42.2k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
394
395
            // Return a type ISLE can work with.
396
42.2k
            let gpr = r32.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
397
42.2k
            AssemblerOutputs::RetGpr { inst, gpr }
398
42.2k
        }
399
318k
        fn x64_addq_rm_raw(&mut self, r64: Gpr, rm64: &GprMem) -> AssemblerOutputs {
400
            // Convert ISLE types to assembler types.
401
318k
            let r64 = self.convert_gpr_to_assembler_read_write_gpr(r64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
402
318k
            let rm64 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
403
404
            // Build the instruction.
405
318k
            let inst = cranelift_assembler_x64::inst::addq_rm::new(r64.clone(), rm64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
406
318k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
407
408
            // Return a type ISLE can work with.
409
318k
            let gpr = r64.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
410
318k
            AssemblerOutputs::RetGpr { inst, gpr }
411
318k
        }
412
0
        fn x64_adcb_i_raw(&mut self, al: Gpr, imm8: u8) -> AssemblerOutputs {
413
            // Convert ISLE types to assembler types.
414
0
            let al = self.convert_gpr_to_assembler_fixed_read_write_gpr(al); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
415
0
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
416
417
            // Build the instruction.
418
0
            let inst = cranelift_assembler_x64::inst::adcb_i::new(al.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
419
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
420
421
            // Return a type ISLE can work with.
422
0
            let gpr = al.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
423
0
            AssemblerOutputs::RetGpr { inst, gpr }
424
0
        }
425
0
        fn x64_adcw_i_raw(&mut self, ax: Gpr, imm16: u16) -> AssemblerOutputs {
426
            // Convert ISLE types to assembler types.
427
0
            let ax = self.convert_gpr_to_assembler_fixed_read_write_gpr(ax); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
428
0
            let imm16 = cranelift_assembler_x64::Imm16::new(imm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
429
430
            // Build the instruction.
431
0
            let inst = cranelift_assembler_x64::inst::adcw_i::new(ax.clone(), imm16.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
432
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
433
434
            // Return a type ISLE can work with.
435
0
            let gpr = ax.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
436
0
            AssemblerOutputs::RetGpr { inst, gpr }
437
0
        }
438
0
        fn x64_adcl_i_raw(&mut self, eax: Gpr, imm32: u32) -> AssemblerOutputs {
439
            // Convert ISLE types to assembler types.
440
0
            let eax = self.convert_gpr_to_assembler_fixed_read_write_gpr(eax); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
441
0
            let imm32 = cranelift_assembler_x64::Imm32::new(imm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
442
443
            // Build the instruction.
444
0
            let inst = cranelift_assembler_x64::inst::adcl_i::new(eax.clone(), imm32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
445
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
446
447
            // Return a type ISLE can work with.
448
0
            let gpr = eax.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
449
0
            AssemblerOutputs::RetGpr { inst, gpr }
450
0
        }
451
0
        fn x64_adcq_i_sxl_raw(&mut self, rax: Gpr, imm32: i32) -> AssemblerOutputs {
452
            // Convert ISLE types to assembler types.
453
0
            let rax = self.convert_gpr_to_assembler_fixed_read_write_gpr(rax); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
454
0
            let imm32 = cranelift_assembler_x64::Simm32::new(imm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
455
456
            // Build the instruction.
457
0
            let inst = cranelift_assembler_x64::inst::adcq_i_sxl::new(rax.clone(), imm32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
458
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
459
460
            // Return a type ISLE can work with.
461
0
            let gpr = rax.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
462
0
            AssemblerOutputs::RetGpr { inst, gpr }
463
0
        }
464
0
        fn x64_adcb_mi_raw(&mut self, rm8: &GprMem, imm8: u8) -> AssemblerOutputs {
465
            // Convert ISLE types to assembler types.
466
0
            let rm8 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
467
0
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
468
469
            // Build the instruction.
470
0
            let inst = cranelift_assembler_x64::inst::adcb_mi::new(rm8.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
471
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
472
473
            // Return a type ISLE can work with.
474
0
            match rm8 {
475
0
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
476
0
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
477
0
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
478
                }
479
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
480
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
481
                }
482
            }
483
0
        }
484
0
        fn x64_adcw_mi_raw(&mut self, rm16: &GprMem, imm16: u16) -> AssemblerOutputs {
485
            // Convert ISLE types to assembler types.
486
0
            let rm16 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
487
0
            let imm16 = cranelift_assembler_x64::Imm16::new(imm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
488
489
            // Build the instruction.
490
0
            let inst = cranelift_assembler_x64::inst::adcw_mi::new(rm16.clone(), imm16.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
491
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
492
493
            // Return a type ISLE can work with.
494
0
            match rm16 {
495
0
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
496
0
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
497
0
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
498
                }
499
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
500
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
501
                }
502
            }
503
0
        }
504
0
        fn x64_adcl_mi_raw(&mut self, rm32: &GprMem, imm32: u32) -> AssemblerOutputs {
505
            // Convert ISLE types to assembler types.
506
0
            let rm32 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
507
0
            let imm32 = cranelift_assembler_x64::Imm32::new(imm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
508
509
            // Build the instruction.
510
0
            let inst = cranelift_assembler_x64::inst::adcl_mi::new(rm32.clone(), imm32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
511
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
512
513
            // Return a type ISLE can work with.
514
0
            match rm32 {
515
0
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
516
0
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
517
0
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
518
                }
519
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
520
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
521
                }
522
            }
523
0
        }
524
4
        fn x64_adcq_mi_sxl_raw(&mut self, rm64: &GprMem, imm32: i32) -> AssemblerOutputs {
525
            // Convert ISLE types to assembler types.
526
4
            let rm64 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
527
4
            let imm32 = cranelift_assembler_x64::Simm32::new(imm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
528
529
            // Build the instruction.
530
4
            let inst = cranelift_assembler_x64::inst::adcq_mi_sxl::new(rm64.clone(), imm32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
531
4
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
532
533
            // Return a type ISLE can work with.
534
4
            match rm64 {
535
4
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
536
4
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
537
4
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
538
                }
539
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
540
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
541
                }
542
            }
543
4
        }
544
0
        fn x64_adcl_mi_sxb_raw(&mut self, rm32: &GprMem, imm8: i8) -> AssemblerOutputs {
545
            // Convert ISLE types to assembler types.
546
0
            let rm32 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
547
0
            let imm8 = cranelift_assembler_x64::Simm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
548
549
            // Build the instruction.
550
0
            let inst = cranelift_assembler_x64::inst::adcl_mi_sxb::new(rm32.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
551
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
552
553
            // Return a type ISLE can work with.
554
0
            match rm32 {
555
0
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
556
0
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
557
0
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
558
                }
559
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
560
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
561
                }
562
            }
563
0
        }
564
1.18k
        fn x64_adcq_mi_sxb_raw(&mut self, rm64: &GprMem, imm8: i8) -> AssemblerOutputs {
565
            // Convert ISLE types to assembler types.
566
1.18k
            let rm64 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
567
1.18k
            let imm8 = cranelift_assembler_x64::Simm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
568
569
            // Build the instruction.
570
1.18k
            let inst = cranelift_assembler_x64::inst::adcq_mi_sxb::new(rm64.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
571
1.18k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
572
573
            // Return a type ISLE can work with.
574
1.18k
            match rm64 {
575
1.18k
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
576
1.18k
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
577
1.18k
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
578
                }
579
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
580
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
581
                }
582
            }
583
1.18k
        }
584
0
        fn x64_adcb_mr_raw(&mut self, rm8: &GprMem, r8: Gpr) -> AssemblerOutputs {
585
            // Convert ISLE types to assembler types.
586
0
            let rm8 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
587
0
            let r8 = cranelift_assembler_x64::Gpr::new(r8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
588
589
            // Build the instruction.
590
0
            let inst = cranelift_assembler_x64::inst::adcb_mr::new(rm8.clone(), r8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
591
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
592
593
            // Return a type ISLE can work with.
594
0
            match rm8 {
595
0
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
596
0
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
597
0
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
598
                }
599
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
600
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
601
                }
602
            }
603
0
        }
604
0
        fn x64_adcw_mr_raw(&mut self, rm16: &GprMem, r16: Gpr) -> AssemblerOutputs {
605
            // Convert ISLE types to assembler types.
606
0
            let rm16 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
607
0
            let r16 = cranelift_assembler_x64::Gpr::new(r16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
608
609
            // Build the instruction.
610
0
            let inst = cranelift_assembler_x64::inst::adcw_mr::new(rm16.clone(), r16.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
611
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
612
613
            // Return a type ISLE can work with.
614
0
            match rm16 {
615
0
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
616
0
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
617
0
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
618
                }
619
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
620
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
621
                }
622
            }
623
0
        }
624
0
        fn x64_adcl_mr_raw(&mut self, rm32: &GprMem, r32: Gpr) -> AssemblerOutputs {
625
            // Convert ISLE types to assembler types.
626
0
            let rm32 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
627
0
            let r32 = cranelift_assembler_x64::Gpr::new(r32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
628
629
            // Build the instruction.
630
0
            let inst = cranelift_assembler_x64::inst::adcl_mr::new(rm32.clone(), r32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
631
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
632
633
            // Return a type ISLE can work with.
634
0
            match rm32 {
635
0
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
636
0
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
637
0
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
638
                }
639
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
640
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
641
                }
642
            }
643
0
        }
644
0
        fn x64_adcq_mr_raw(&mut self, rm64: &GprMem, r64: Gpr) -> AssemblerOutputs {
645
            // Convert ISLE types to assembler types.
646
0
            let rm64 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
647
0
            let r64 = cranelift_assembler_x64::Gpr::new(r64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
648
649
            // Build the instruction.
650
0
            let inst = cranelift_assembler_x64::inst::adcq_mr::new(rm64.clone(), r64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
651
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
652
653
            // Return a type ISLE can work with.
654
0
            match rm64 {
655
0
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
656
0
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
657
0
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
658
                }
659
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
660
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
661
                }
662
            }
663
0
        }
664
0
        fn x64_adcb_rm_raw(&mut self, r8: Gpr, rm8: &GprMem) -> AssemblerOutputs {
665
            // Convert ISLE types to assembler types.
666
0
            let r8 = self.convert_gpr_to_assembler_read_write_gpr(r8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
667
0
            let rm8 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
668
669
            // Build the instruction.
670
0
            let inst = cranelift_assembler_x64::inst::adcb_rm::new(r8.clone(), rm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
671
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
672
673
            // Return a type ISLE can work with.
674
0
            let gpr = r8.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
675
0
            AssemblerOutputs::RetGpr { inst, gpr }
676
0
        }
677
0
        fn x64_adcw_rm_raw(&mut self, r16: Gpr, rm16: &GprMem) -> AssemblerOutputs {
678
            // Convert ISLE types to assembler types.
679
0
            let r16 = self.convert_gpr_to_assembler_read_write_gpr(r16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
680
0
            let rm16 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
681
682
            // Build the instruction.
683
0
            let inst = cranelift_assembler_x64::inst::adcw_rm::new(r16.clone(), rm16.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
684
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
685
686
            // Return a type ISLE can work with.
687
0
            let gpr = r16.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
688
0
            AssemblerOutputs::RetGpr { inst, gpr }
689
0
        }
690
0
        fn x64_adcl_rm_raw(&mut self, r32: Gpr, rm32: &GprMem) -> AssemblerOutputs {
691
            // Convert ISLE types to assembler types.
692
0
            let r32 = self.convert_gpr_to_assembler_read_write_gpr(r32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
693
0
            let rm32 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
694
695
            // Build the instruction.
696
0
            let inst = cranelift_assembler_x64::inst::adcl_rm::new(r32.clone(), rm32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
697
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
698
699
            // Return a type ISLE can work with.
700
0
            let gpr = r32.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
701
0
            AssemblerOutputs::RetGpr { inst, gpr }
702
0
        }
703
1.76k
        fn x64_adcq_rm_raw(&mut self, r64: Gpr, rm64: &GprMem) -> AssemblerOutputs {
704
            // Convert ISLE types to assembler types.
705
1.76k
            let r64 = self.convert_gpr_to_assembler_read_write_gpr(r64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
706
1.76k
            let rm64 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
707
708
            // Build the instruction.
709
1.76k
            let inst = cranelift_assembler_x64::inst::adcq_rm::new(r64.clone(), rm64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
710
1.76k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
711
712
            // Return a type ISLE can work with.
713
1.76k
            let gpr = r64.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
714
1.76k
            AssemblerOutputs::RetGpr { inst, gpr }
715
1.76k
        }
716
0
        fn x64_lock_addb_mi_raw(&mut self, m8: &SyntheticAmode, imm8: u8) -> AssemblerOutputs {
717
            // Convert ISLE types to assembler types.
718
0
            let m8 = self.convert_amode_to_assembler_amode(m8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
719
0
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
720
721
            // Build the instruction.
722
0
            let inst = cranelift_assembler_x64::inst::lock_addb_mi::new(m8.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
723
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
724
725
            // Return a type ISLE can work with.
726
0
            AssemblerOutputs::SideEffect { inst }
727
0
        }
728
0
        fn x64_lock_addw_mi_raw(&mut self, m16: &SyntheticAmode, imm16: u16) -> AssemblerOutputs {
729
            // Convert ISLE types to assembler types.
730
0
            let m16 = self.convert_amode_to_assembler_amode(m16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
731
0
            let imm16 = cranelift_assembler_x64::Imm16::new(imm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
732
733
            // Build the instruction.
734
0
            let inst = cranelift_assembler_x64::inst::lock_addw_mi::new(m16.clone(), imm16.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
735
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
736
737
            // Return a type ISLE can work with.
738
0
            AssemblerOutputs::SideEffect { inst }
739
0
        }
740
0
        fn x64_lock_addl_mi_raw(&mut self, m32: &SyntheticAmode, imm32: u32) -> AssemblerOutputs {
741
            // Convert ISLE types to assembler types.
742
0
            let m32 = self.convert_amode_to_assembler_amode(m32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
743
0
            let imm32 = cranelift_assembler_x64::Imm32::new(imm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
744
745
            // Build the instruction.
746
0
            let inst = cranelift_assembler_x64::inst::lock_addl_mi::new(m32.clone(), imm32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
747
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
748
749
            // Return a type ISLE can work with.
750
0
            AssemblerOutputs::SideEffect { inst }
751
0
        }
752
0
        fn x64_lock_addq_mi_sxl_raw(&mut self, m64: &SyntheticAmode, imm32: i32) -> AssemblerOutputs {
753
            // Convert ISLE types to assembler types.
754
0
            let m64 = self.convert_amode_to_assembler_amode(m64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
755
0
            let imm32 = cranelift_assembler_x64::Simm32::new(imm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
756
757
            // Build the instruction.
758
0
            let inst = cranelift_assembler_x64::inst::lock_addq_mi_sxl::new(m64.clone(), imm32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
759
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
760
761
            // Return a type ISLE can work with.
762
0
            AssemblerOutputs::SideEffect { inst }
763
0
        }
764
0
        fn x64_lock_addl_mi_sxb_raw(&mut self, m32: &SyntheticAmode, imm8: i8) -> AssemblerOutputs {
765
            // Convert ISLE types to assembler types.
766
0
            let m32 = self.convert_amode_to_assembler_amode(m32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
767
0
            let imm8 = cranelift_assembler_x64::Simm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
768
769
            // Build the instruction.
770
0
            let inst = cranelift_assembler_x64::inst::lock_addl_mi_sxb::new(m32.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
771
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
772
773
            // Return a type ISLE can work with.
774
0
            AssemblerOutputs::SideEffect { inst }
775
0
        }
776
0
        fn x64_lock_addq_mi_sxb_raw(&mut self, m64: &SyntheticAmode, imm8: i8) -> AssemblerOutputs {
777
            // Convert ISLE types to assembler types.
778
0
            let m64 = self.convert_amode_to_assembler_amode(m64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
779
0
            let imm8 = cranelift_assembler_x64::Simm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
780
781
            // Build the instruction.
782
0
            let inst = cranelift_assembler_x64::inst::lock_addq_mi_sxb::new(m64.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
783
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
784
785
            // Return a type ISLE can work with.
786
0
            AssemblerOutputs::SideEffect { inst }
787
0
        }
788
3
        fn x64_lock_addb_mr_raw(&mut self, m8: &SyntheticAmode, r8: Gpr) -> AssemblerOutputs {
789
            // Convert ISLE types to assembler types.
790
3
            let m8 = self.convert_amode_to_assembler_amode(m8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
791
3
            let r8 = cranelift_assembler_x64::Gpr::new(r8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
792
793
            // Build the instruction.
794
3
            let inst = cranelift_assembler_x64::inst::lock_addb_mr::new(m8.clone(), r8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
795
3
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
796
797
            // Return a type ISLE can work with.
798
3
            AssemblerOutputs::SideEffect { inst }
799
3
        }
800
4
        fn x64_lock_addw_mr_raw(&mut self, m16: &SyntheticAmode, r16: Gpr) -> AssemblerOutputs {
801
            // Convert ISLE types to assembler types.
802
4
            let m16 = self.convert_amode_to_assembler_amode(m16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
803
4
            let r16 = cranelift_assembler_x64::Gpr::new(r16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
804
805
            // Build the instruction.
806
4
            let inst = cranelift_assembler_x64::inst::lock_addw_mr::new(m16.clone(), r16.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
807
4
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
808
809
            // Return a type ISLE can work with.
810
4
            AssemblerOutputs::SideEffect { inst }
811
4
        }
812
1
        fn x64_lock_addl_mr_raw(&mut self, m32: &SyntheticAmode, r32: Gpr) -> AssemblerOutputs {
813
            // Convert ISLE types to assembler types.
814
1
            let m32 = self.convert_amode_to_assembler_amode(m32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
815
1
            let r32 = cranelift_assembler_x64::Gpr::new(r32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
816
817
            // Build the instruction.
818
1
            let inst = cranelift_assembler_x64::inst::lock_addl_mr::new(m32.clone(), r32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
819
1
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
820
821
            // Return a type ISLE can work with.
822
1
            AssemblerOutputs::SideEffect { inst }
823
1
        }
824
1
        fn x64_lock_addq_mr_raw(&mut self, m64: &SyntheticAmode, r64: Gpr) -> AssemblerOutputs {
825
            // Convert ISLE types to assembler types.
826
1
            let m64 = self.convert_amode_to_assembler_amode(m64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
827
1
            let r64 = cranelift_assembler_x64::Gpr::new(r64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
828
829
            // Build the instruction.
830
1
            let inst = cranelift_assembler_x64::inst::lock_addq_mr::new(m64.clone(), r64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
831
1
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
832
833
            // Return a type ISLE can work with.
834
1
            AssemblerOutputs::SideEffect { inst }
835
1
        }
836
0
        fn x64_lock_adcb_mi_raw(&mut self, m8: &SyntheticAmode, imm8: u8) -> AssemblerOutputs {
837
            // Convert ISLE types to assembler types.
838
0
            let m8 = self.convert_amode_to_assembler_amode(m8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
839
0
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
840
841
            // Build the instruction.
842
0
            let inst = cranelift_assembler_x64::inst::lock_adcb_mi::new(m8.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
843
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
844
845
            // Return a type ISLE can work with.
846
0
            AssemblerOutputs::SideEffect { inst }
847
0
        }
848
0
        fn x64_lock_adcw_mi_raw(&mut self, m16: &SyntheticAmode, imm16: u16) -> AssemblerOutputs {
849
            // Convert ISLE types to assembler types.
850
0
            let m16 = self.convert_amode_to_assembler_amode(m16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
851
0
            let imm16 = cranelift_assembler_x64::Imm16::new(imm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
852
853
            // Build the instruction.
854
0
            let inst = cranelift_assembler_x64::inst::lock_adcw_mi::new(m16.clone(), imm16.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
855
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
856
857
            // Return a type ISLE can work with.
858
0
            AssemblerOutputs::SideEffect { inst }
859
0
        }
860
0
        fn x64_lock_adcl_mi_raw(&mut self, m32: &SyntheticAmode, imm32: u32) -> AssemblerOutputs {
861
            // Convert ISLE types to assembler types.
862
0
            let m32 = self.convert_amode_to_assembler_amode(m32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
863
0
            let imm32 = cranelift_assembler_x64::Imm32::new(imm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
864
865
            // Build the instruction.
866
0
            let inst = cranelift_assembler_x64::inst::lock_adcl_mi::new(m32.clone(), imm32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
867
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
868
869
            // Return a type ISLE can work with.
870
0
            AssemblerOutputs::SideEffect { inst }
871
0
        }
872
0
        fn x64_lock_adcq_mi_sxl_raw(&mut self, m64: &SyntheticAmode, imm32: i32) -> AssemblerOutputs {
873
            // Convert ISLE types to assembler types.
874
0
            let m64 = self.convert_amode_to_assembler_amode(m64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
875
0
            let imm32 = cranelift_assembler_x64::Simm32::new(imm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
876
877
            // Build the instruction.
878
0
            let inst = cranelift_assembler_x64::inst::lock_adcq_mi_sxl::new(m64.clone(), imm32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
879
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
880
881
            // Return a type ISLE can work with.
882
0
            AssemblerOutputs::SideEffect { inst }
883
0
        }
884
0
        fn x64_lock_adcl_mi_sxb_raw(&mut self, m32: &SyntheticAmode, imm8: i8) -> AssemblerOutputs {
885
            // Convert ISLE types to assembler types.
886
0
            let m32 = self.convert_amode_to_assembler_amode(m32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
887
0
            let imm8 = cranelift_assembler_x64::Simm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
888
889
            // Build the instruction.
890
0
            let inst = cranelift_assembler_x64::inst::lock_adcl_mi_sxb::new(m32.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
891
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
892
893
            // Return a type ISLE can work with.
894
0
            AssemblerOutputs::SideEffect { inst }
895
0
        }
896
0
        fn x64_lock_adcq_mi_sxb_raw(&mut self, m64: &SyntheticAmode, imm8: i8) -> AssemblerOutputs {
897
            // Convert ISLE types to assembler types.
898
0
            let m64 = self.convert_amode_to_assembler_amode(m64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
899
0
            let imm8 = cranelift_assembler_x64::Simm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
900
901
            // Build the instruction.
902
0
            let inst = cranelift_assembler_x64::inst::lock_adcq_mi_sxb::new(m64.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
903
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
904
905
            // Return a type ISLE can work with.
906
0
            AssemblerOutputs::SideEffect { inst }
907
0
        }
908
0
        fn x64_lock_adcb_mr_raw(&mut self, m8: &SyntheticAmode, r8: Gpr) -> AssemblerOutputs {
909
            // Convert ISLE types to assembler types.
910
0
            let m8 = self.convert_amode_to_assembler_amode(m8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
911
0
            let r8 = cranelift_assembler_x64::Gpr::new(r8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
912
913
            // Build the instruction.
914
0
            let inst = cranelift_assembler_x64::inst::lock_adcb_mr::new(m8.clone(), r8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
915
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
916
917
            // Return a type ISLE can work with.
918
0
            AssemblerOutputs::SideEffect { inst }
919
0
        }
920
0
        fn x64_lock_adcw_mr_raw(&mut self, m16: &SyntheticAmode, r16: Gpr) -> AssemblerOutputs {
921
            // Convert ISLE types to assembler types.
922
0
            let m16 = self.convert_amode_to_assembler_amode(m16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
923
0
            let r16 = cranelift_assembler_x64::Gpr::new(r16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
924
925
            // Build the instruction.
926
0
            let inst = cranelift_assembler_x64::inst::lock_adcw_mr::new(m16.clone(), r16.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
927
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
928
929
            // Return a type ISLE can work with.
930
0
            AssemblerOutputs::SideEffect { inst }
931
0
        }
932
0
        fn x64_lock_adcl_mr_raw(&mut self, m32: &SyntheticAmode, r32: Gpr) -> AssemblerOutputs {
933
            // Convert ISLE types to assembler types.
934
0
            let m32 = self.convert_amode_to_assembler_amode(m32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
935
0
            let r32 = cranelift_assembler_x64::Gpr::new(r32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
936
937
            // Build the instruction.
938
0
            let inst = cranelift_assembler_x64::inst::lock_adcl_mr::new(m32.clone(), r32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
939
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
940
941
            // Return a type ISLE can work with.
942
0
            AssemblerOutputs::SideEffect { inst }
943
0
        }
944
0
        fn x64_lock_adcq_mr_raw(&mut self, m64: &SyntheticAmode, r64: Gpr) -> AssemblerOutputs {
945
            // Convert ISLE types to assembler types.
946
0
            let m64 = self.convert_amode_to_assembler_amode(m64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
947
0
            let r64 = cranelift_assembler_x64::Gpr::new(r64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
948
949
            // Build the instruction.
950
0
            let inst = cranelift_assembler_x64::inst::lock_adcq_mr::new(m64.clone(), r64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
951
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
952
953
            // Return a type ISLE can work with.
954
0
            AssemblerOutputs::SideEffect { inst }
955
0
        }
956
8
        fn x64_lock_xaddb_mr_raw(&mut self, m8: &SyntheticAmode, r8: Gpr) -> AssemblerOutputs {
957
            // Convert ISLE types to assembler types.
958
8
            let m8 = self.convert_amode_to_assembler_amode(m8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
959
8
            let r8 = self.convert_gpr_to_assembler_read_write_gpr(r8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
960
961
            // Build the instruction.
962
8
            let inst = cranelift_assembler_x64::inst::lock_xaddb_mr::new(m8.clone(), r8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
963
8
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
964
965
            // Return a type ISLE can work with.
966
8
            let gpr = r8.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:201
967
8
            AssemblerOutputs::RetGpr { inst, gpr }
968
8
        }
969
22
        fn x64_lock_xaddw_mr_raw(&mut self, m16: &SyntheticAmode, r16: Gpr) -> AssemblerOutputs {
970
            // Convert ISLE types to assembler types.
971
22
            let m16 = self.convert_amode_to_assembler_amode(m16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
972
22
            let r16 = self.convert_gpr_to_assembler_read_write_gpr(r16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
973
974
            // Build the instruction.
975
22
            let inst = cranelift_assembler_x64::inst::lock_xaddw_mr::new(m16.clone(), r16.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
976
22
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
977
978
            // Return a type ISLE can work with.
979
22
            let gpr = r16.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:201
980
22
            AssemblerOutputs::RetGpr { inst, gpr }
981
22
        }
982
5
        fn x64_lock_xaddl_mr_raw(&mut self, m32: &SyntheticAmode, r32: Gpr) -> AssemblerOutputs {
983
            // Convert ISLE types to assembler types.
984
5
            let m32 = self.convert_amode_to_assembler_amode(m32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
985
5
            let r32 = self.convert_gpr_to_assembler_read_write_gpr(r32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
986
987
            // Build the instruction.
988
5
            let inst = cranelift_assembler_x64::inst::lock_xaddl_mr::new(m32.clone(), r32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
989
5
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
990
991
            // Return a type ISLE can work with.
992
5
            let gpr = r32.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:201
993
5
            AssemblerOutputs::RetGpr { inst, gpr }
994
5
        }
995
5
        fn x64_lock_xaddq_mr_raw(&mut self, m64: &SyntheticAmode, r64: Gpr) -> AssemblerOutputs {
996
            // Convert ISLE types to assembler types.
997
5
            let m64 = self.convert_amode_to_assembler_amode(m64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
998
5
            let r64 = self.convert_gpr_to_assembler_read_write_gpr(r64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
999
1000
            // Build the instruction.
1001
5
            let inst = cranelift_assembler_x64::inst::lock_xaddq_mr::new(m64.clone(), r64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
1002
5
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
1003
1004
            // Return a type ISLE can work with.
1005
5
            let gpr = r64.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:201
1006
5
            AssemblerOutputs::RetGpr { inst, gpr }
1007
5
        }
1008
1.24k
        fn x64_addss_a_raw(&mut self, xmm1: Xmm, xmm_m32: &XmmMem) -> AssemblerOutputs {
1009
            // Convert ISLE types to assembler types.
1010
1.24k
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
1011
1.24k
            let xmm_m32 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
1012
1013
            // Build the instruction.
1014
1.24k
            let inst = cranelift_assembler_x64::inst::addss_a::new(xmm1.clone(), xmm_m32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
1015
1.24k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
1016
1017
            // Return a type ISLE can work with.
1018
1.24k
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
1019
1.24k
            AssemblerOutputs::RetXmm { inst, xmm }
1020
1.24k
        }
1021
24
        fn x64_addsd_a_raw(&mut self, xmm1: Xmm, xmm_m64: &XmmMem) -> AssemblerOutputs {
1022
            // Convert ISLE types to assembler types.
1023
24
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
1024
24
            let xmm_m64 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
1025
1026
            // Build the instruction.
1027
24
            let inst = cranelift_assembler_x64::inst::addsd_a::new(xmm1.clone(), xmm_m64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
1028
24
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
1029
1030
            // Return a type ISLE can work with.
1031
24
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
1032
24
            AssemblerOutputs::RetXmm { inst, xmm }
1033
24
        }
1034
114
        fn x64_addps_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned) -> AssemblerOutputs {
1035
            // Convert ISLE types to assembler types.
1036
114
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
1037
114
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
1038
1039
            // Build the instruction.
1040
114
            let inst = cranelift_assembler_x64::inst::addps_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
1041
114
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
1042
1043
            // Return a type ISLE can work with.
1044
114
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
1045
114
            AssemblerOutputs::RetXmm { inst, xmm }
1046
114
        }
1047
0
        fn x64_addpd_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned) -> AssemblerOutputs {
1048
            // Convert ISLE types to assembler types.
1049
0
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
1050
0
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
1051
1052
            // Build the instruction.
1053
0
            let inst = cranelift_assembler_x64::inst::addpd_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
1054
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
1055
1056
            // Return a type ISLE can work with.
1057
0
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
1058
0
            AssemblerOutputs::RetXmm { inst, xmm }
1059
0
        }
1060
689
        fn x64_paddb_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned) -> AssemblerOutputs {
1061
            // Convert ISLE types to assembler types.
1062
689
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
1063
689
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
1064
1065
            // Build the instruction.
1066
689
            let inst = cranelift_assembler_x64::inst::paddb_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
1067
689
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
1068
1069
            // Return a type ISLE can work with.
1070
689
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
1071
689
            AssemblerOutputs::RetXmm { inst, xmm }
1072
689
        }
1073
57
        fn x64_paddw_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned) -> AssemblerOutputs {
1074
            // Convert ISLE types to assembler types.
1075
57
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
1076
57
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
1077
1078
            // Build the instruction.
1079
57
            let inst = cranelift_assembler_x64::inst::paddw_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
1080
57
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
1081
1082
            // Return a type ISLE can work with.
1083
57
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
1084
57
            AssemblerOutputs::RetXmm { inst, xmm }
1085
57
        }
1086
260
        fn x64_paddd_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned) -> AssemblerOutputs {
1087
            // Convert ISLE types to assembler types.
1088
260
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
1089
260
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
1090
1091
            // Build the instruction.
1092
260
            let inst = cranelift_assembler_x64::inst::paddd_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
1093
260
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
1094
1095
            // Return a type ISLE can work with.
1096
260
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
1097
260
            AssemblerOutputs::RetXmm { inst, xmm }
1098
260
        }
1099
15
        fn x64_paddq_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned) -> AssemblerOutputs {
1100
            // Convert ISLE types to assembler types.
1101
15
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
1102
15
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
1103
1104
            // Build the instruction.
1105
15
            let inst = cranelift_assembler_x64::inst::paddq_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
1106
15
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
1107
1108
            // Return a type ISLE can work with.
1109
15
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
1110
15
            AssemblerOutputs::RetXmm { inst, xmm }
1111
15
        }
1112
1
        fn x64_paddsb_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned) -> AssemblerOutputs {
1113
            // Convert ISLE types to assembler types.
1114
1
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
1115
1
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
1116
1117
            // Build the instruction.
1118
1
            let inst = cranelift_assembler_x64::inst::paddsb_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
1119
1
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
1120
1121
            // Return a type ISLE can work with.
1122
1
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
1123
1
            AssemblerOutputs::RetXmm { inst, xmm }
1124
1
        }
1125
8
        fn x64_paddsw_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned) -> AssemblerOutputs {
1126
            // Convert ISLE types to assembler types.
1127
8
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
1128
8
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
1129
1130
            // Build the instruction.
1131
8
            let inst = cranelift_assembler_x64::inst::paddsw_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
1132
8
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
1133
1134
            // Return a type ISLE can work with.
1135
8
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
1136
8
            AssemblerOutputs::RetXmm { inst, xmm }
1137
8
        }
1138
7.62k
        fn x64_paddusb_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned) -> AssemblerOutputs {
1139
            // Convert ISLE types to assembler types.
1140
7.62k
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
1141
7.62k
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
1142
1143
            // Build the instruction.
1144
7.62k
            let inst = cranelift_assembler_x64::inst::paddusb_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
1145
7.62k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
1146
1147
            // Return a type ISLE can work with.
1148
7.62k
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
1149
7.62k
            AssemblerOutputs::RetXmm { inst, xmm }
1150
7.62k
        }
1151
6
        fn x64_paddusw_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned) -> AssemblerOutputs {
1152
            // Convert ISLE types to assembler types.
1153
6
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
1154
6
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
1155
1156
            // Build the instruction.
1157
6
            let inst = cranelift_assembler_x64::inst::paddusw_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
1158
6
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
1159
1160
            // Return a type ISLE can work with.
1161
6
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
1162
6
            AssemblerOutputs::RetXmm { inst, xmm }
1163
6
        }
1164
0
        fn x64_phaddw_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned) -> AssemblerOutputs {
1165
            // Convert ISLE types to assembler types.
1166
0
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
1167
0
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
1168
1169
            // Build the instruction.
1170
0
            let inst = cranelift_assembler_x64::inst::phaddw_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
1171
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
1172
1173
            // Return a type ISLE can work with.
1174
0
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
1175
0
            AssemblerOutputs::RetXmm { inst, xmm }
1176
0
        }
1177
0
        fn x64_phaddd_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned) -> AssemblerOutputs {
1178
            // Convert ISLE types to assembler types.
1179
0
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
1180
0
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
1181
1182
            // Build the instruction.
1183
0
            let inst = cranelift_assembler_x64::inst::phaddd_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
1184
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
1185
1186
            // Return a type ISLE can work with.
1187
0
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
1188
0
            AssemblerOutputs::RetXmm { inst, xmm }
1189
0
        }
1190
4.94k
        fn x64_vaddss_b_raw(&mut self, xmm2: Xmm, xmm_m32: &XmmMem) -> AssemblerOutputs {
1191
            // Convert ISLE types to assembler types.
1192
4.94k
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
1193
4.94k
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
1194
4.94k
            let xmm_m32 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
1195
1196
            // Build the instruction.
1197
4.94k
            let inst = cranelift_assembler_x64::inst::vaddss_b::new(xmm1.clone(), xmm2.clone(), xmm_m32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
1198
4.94k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
1199
1200
            // Return a type ISLE can work with.
1201
4.94k
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
1202
4.94k
            AssemblerOutputs::RetXmm { inst, xmm }
1203
4.94k
        }
1204
3.16k
        fn x64_vaddsd_b_raw(&mut self, xmm2: Xmm, xmm_m64: &XmmMem) -> AssemblerOutputs {
1205
            // Convert ISLE types to assembler types.
1206
3.16k
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
1207
3.16k
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
1208
3.16k
            let xmm_m64 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
1209
1210
            // Build the instruction.
1211
3.16k
            let inst = cranelift_assembler_x64::inst::vaddsd_b::new(xmm1.clone(), xmm2.clone(), xmm_m64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
1212
3.16k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
1213
1214
            // Return a type ISLE can work with.
1215
3.16k
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
1216
3.16k
            AssemblerOutputs::RetXmm { inst, xmm }
1217
3.16k
        }
1218
537
        fn x64_vaddps_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem) -> AssemblerOutputs {
1219
            // Convert ISLE types to assembler types.
1220
537
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
1221
537
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
1222
537
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
1223
1224
            // Build the instruction.
1225
537
            let inst = cranelift_assembler_x64::inst::vaddps_b::new(xmm1.clone(), xmm2.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
1226
537
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
1227
1228
            // Return a type ISLE can work with.
1229
537
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
1230
537
            AssemblerOutputs::RetXmm { inst, xmm }
1231
537
        }
1232
87
        fn x64_vaddpd_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem) -> AssemblerOutputs {
1233
            // Convert ISLE types to assembler types.
1234
87
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
1235
87
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
1236
87
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
1237
1238
            // Build the instruction.
1239
87
            let inst = cranelift_assembler_x64::inst::vaddpd_b::new(xmm1.clone(), xmm2.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
1240
87
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
1241
1242
            // Return a type ISLE can work with.
1243
87
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
1244
87
            AssemblerOutputs::RetXmm { inst, xmm }
1245
87
        }
1246
4.59k
        fn x64_vpaddb_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem) -> AssemblerOutputs {
1247
            // Convert ISLE types to assembler types.
1248
4.59k
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
1249
4.59k
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
1250
4.59k
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
1251
1252
            // Build the instruction.
1253
4.59k
            let inst = cranelift_assembler_x64::inst::vpaddb_b::new(xmm1.clone(), xmm2.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
1254
4.59k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
1255
1256
            // Return a type ISLE can work with.
1257
4.59k
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
1258
4.59k
            AssemblerOutputs::RetXmm { inst, xmm }
1259
4.59k
        }
1260
161
        fn x64_vpaddw_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem) -> AssemblerOutputs {
1261
            // Convert ISLE types to assembler types.
1262
161
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
1263
161
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
1264
161
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
1265
1266
            // Build the instruction.
1267
161
            let inst = cranelift_assembler_x64::inst::vpaddw_b::new(xmm1.clone(), xmm2.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
1268
161
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
1269
1270
            // Return a type ISLE can work with.
1271
161
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
1272
161
            AssemblerOutputs::RetXmm { inst, xmm }
1273
161
        }
1274
1.01k
        fn x64_vpaddd_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem) -> AssemblerOutputs {
1275
            // Convert ISLE types to assembler types.
1276
1.01k
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
1277
1.01k
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
1278
1.01k
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
1279
1280
            // Build the instruction.
1281
1.01k
            let inst = cranelift_assembler_x64::inst::vpaddd_b::new(xmm1.clone(), xmm2.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
1282
1.01k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
1283
1284
            // Return a type ISLE can work with.
1285
1.01k
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
1286
1.01k
            AssemblerOutputs::RetXmm { inst, xmm }
1287
1.01k
        }
1288
1.58k
        fn x64_vpaddq_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem) -> AssemblerOutputs {
1289
            // Convert ISLE types to assembler types.
1290
1.58k
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
1291
1.58k
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
1292
1.58k
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
1293
1294
            // Build the instruction.
1295
1.58k
            let inst = cranelift_assembler_x64::inst::vpaddq_b::new(xmm1.clone(), xmm2.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
1296
1.58k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
1297
1298
            // Return a type ISLE can work with.
1299
1.58k
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
1300
1.58k
            AssemblerOutputs::RetXmm { inst, xmm }
1301
1.58k
        }
1302
84
        fn x64_vpaddsb_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem) -> AssemblerOutputs {
1303
            // Convert ISLE types to assembler types.
1304
84
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
1305
84
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
1306
84
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
1307
1308
            // Build the instruction.
1309
84
            let inst = cranelift_assembler_x64::inst::vpaddsb_b::new(xmm1.clone(), xmm2.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
1310
84
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
1311
1312
            // Return a type ISLE can work with.
1313
84
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
1314
84
            AssemblerOutputs::RetXmm { inst, xmm }
1315
84
        }
1316
162
        fn x64_vpaddsw_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem) -> AssemblerOutputs {
1317
            // Convert ISLE types to assembler types.
1318
162
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
1319
162
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
1320
162
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
1321
1322
            // Build the instruction.
1323
162
            let inst = cranelift_assembler_x64::inst::vpaddsw_b::new(xmm1.clone(), xmm2.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
1324
162
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
1325
1326
            // Return a type ISLE can work with.
1327
162
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
1328
162
            AssemblerOutputs::RetXmm { inst, xmm }
1329
162
        }
1330
3.34k
        fn x64_vpaddusb_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem) -> AssemblerOutputs {
1331
            // Convert ISLE types to assembler types.
1332
3.34k
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
1333
3.34k
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
1334
3.34k
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
1335
1336
            // Build the instruction.
1337
3.34k
            let inst = cranelift_assembler_x64::inst::vpaddusb_b::new(xmm1.clone(), xmm2.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
1338
3.34k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
1339
1340
            // Return a type ISLE can work with.
1341
3.34k
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
1342
3.34k
            AssemblerOutputs::RetXmm { inst, xmm }
1343
3.34k
        }
1344
178
        fn x64_vpaddusw_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem) -> AssemblerOutputs {
1345
            // Convert ISLE types to assembler types.
1346
178
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
1347
178
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
1348
178
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
1349
1350
            // Build the instruction.
1351
178
            let inst = cranelift_assembler_x64::inst::vpaddusw_b::new(xmm1.clone(), xmm2.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
1352
178
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
1353
1354
            // Return a type ISLE can work with.
1355
178
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
1356
178
            AssemblerOutputs::RetXmm { inst, xmm }
1357
178
        }
1358
5
        fn x64_vphaddw_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem) -> AssemblerOutputs {
1359
            // Convert ISLE types to assembler types.
1360
5
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
1361
5
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
1362
5
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
1363
1364
            // Build the instruction.
1365
5
            let inst = cranelift_assembler_x64::inst::vphaddw_b::new(xmm1.clone(), xmm2.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
1366
5
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
1367
1368
            // Return a type ISLE can work with.
1369
5
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
1370
5
            AssemblerOutputs::RetXmm { inst, xmm }
1371
5
        }
1372
38
        fn x64_vphaddd_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem) -> AssemblerOutputs {
1373
            // Convert ISLE types to assembler types.
1374
38
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
1375
38
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
1376
38
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
1377
1378
            // Build the instruction.
1379
38
            let inst = cranelift_assembler_x64::inst::vphaddd_b::new(xmm1.clone(), xmm2.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
1380
38
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
1381
1382
            // Return a type ISLE can work with.
1383
38
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
1384
38
            AssemblerOutputs::RetXmm { inst, xmm }
1385
38
        }
1386
0
        fn x64_vaddpd_c_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem) -> AssemblerOutputs {
1387
            // Convert ISLE types to assembler types.
1388
0
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
1389
0
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
1390
0
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
1391
1392
            // Build the instruction.
1393
0
            let inst = cranelift_assembler_x64::inst::vaddpd_c::new(xmm1.clone(), xmm2.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
1394
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
1395
1396
            // Return a type ISLE can work with.
1397
0
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
1398
0
            AssemblerOutputs::RetXmm { inst, xmm }
1399
0
        }
1400
0
        fn x64_palignr_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned, imm8: u8) -> AssemblerOutputs {
1401
            // Convert ISLE types to assembler types.
1402
0
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
1403
0
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
1404
0
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
1405
1406
            // Build the instruction.
1407
0
            let inst = cranelift_assembler_x64::inst::palignr_a::new(xmm1.clone(), xmm_m128.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
1408
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
1409
1410
            // Return a type ISLE can work with.
1411
0
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
1412
0
            AssemblerOutputs::RetXmm { inst, xmm }
1413
0
        }
1414
784
        fn x64_vpalignr_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem, imm8: u8) -> AssemblerOutputs {
1415
            // Convert ISLE types to assembler types.
1416
784
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
1417
784
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
1418
784
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
1419
784
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
1420
1421
            // Build the instruction.
1422
784
            let inst = cranelift_assembler_x64::inst::vpalignr_b::new(xmm1.clone(), xmm2.clone(), xmm_m128.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
1423
784
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
1424
1425
            // Return a type ISLE can work with.
1426
784
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
1427
784
            AssemblerOutputs::RetXmm { inst, xmm }
1428
784
        }
1429
0
        fn x64_andb_i_raw(&mut self, al: Gpr, imm8: u8) -> AssemblerOutputs {
1430
            // Convert ISLE types to assembler types.
1431
0
            let al = self.convert_gpr_to_assembler_fixed_read_write_gpr(al); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
1432
0
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
1433
1434
            // Build the instruction.
1435
0
            let inst = cranelift_assembler_x64::inst::andb_i::new(al.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
1436
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
1437
1438
            // Return a type ISLE can work with.
1439
0
            let gpr = al.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
1440
0
            AssemblerOutputs::RetGpr { inst, gpr }
1441
0
        }
1442
0
        fn x64_andw_i_raw(&mut self, ax: Gpr, imm16: u16) -> AssemblerOutputs {
1443
            // Convert ISLE types to assembler types.
1444
0
            let ax = self.convert_gpr_to_assembler_fixed_read_write_gpr(ax); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
1445
0
            let imm16 = cranelift_assembler_x64::Imm16::new(imm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
1446
1447
            // Build the instruction.
1448
0
            let inst = cranelift_assembler_x64::inst::andw_i::new(ax.clone(), imm16.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
1449
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
1450
1451
            // Return a type ISLE can work with.
1452
0
            let gpr = ax.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
1453
0
            AssemblerOutputs::RetGpr { inst, gpr }
1454
0
        }
1455
0
        fn x64_andl_i_raw(&mut self, eax: Gpr, imm32: u32) -> AssemblerOutputs {
1456
            // Convert ISLE types to assembler types.
1457
0
            let eax = self.convert_gpr_to_assembler_fixed_read_write_gpr(eax); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
1458
0
            let imm32 = cranelift_assembler_x64::Imm32::new(imm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
1459
1460
            // Build the instruction.
1461
0
            let inst = cranelift_assembler_x64::inst::andl_i::new(eax.clone(), imm32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
1462
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
1463
1464
            // Return a type ISLE can work with.
1465
0
            let gpr = eax.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
1466
0
            AssemblerOutputs::RetGpr { inst, gpr }
1467
0
        }
1468
0
        fn x64_andq_i_sxl_raw(&mut self, rax: Gpr, imm32: i32) -> AssemblerOutputs {
1469
            // Convert ISLE types to assembler types.
1470
0
            let rax = self.convert_gpr_to_assembler_fixed_read_write_gpr(rax); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
1471
0
            let imm32 = cranelift_assembler_x64::Simm32::new(imm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
1472
1473
            // Build the instruction.
1474
0
            let inst = cranelift_assembler_x64::inst::andq_i_sxl::new(rax.clone(), imm32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
1475
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
1476
1477
            // Return a type ISLE can work with.
1478
0
            let gpr = rax.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
1479
0
            AssemblerOutputs::RetGpr { inst, gpr }
1480
0
        }
1481
159
        fn x64_andb_mi_raw(&mut self, rm8: &GprMem, imm8: u8) -> AssemblerOutputs {
1482
            // Convert ISLE types to assembler types.
1483
159
            let rm8 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
1484
159
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
1485
1486
            // Build the instruction.
1487
159
            let inst = cranelift_assembler_x64::inst::andb_mi::new(rm8.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
1488
159
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
1489
1490
            // Return a type ISLE can work with.
1491
159
            match rm8 {
1492
159
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
1493
159
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
1494
159
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
1495
                }
1496
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
1497
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
1498
                }
1499
            }
1500
159
        }
1501
39
        fn x64_andw_mi_raw(&mut self, rm16: &GprMem, imm16: u16) -> AssemblerOutputs {
1502
            // Convert ISLE types to assembler types.
1503
39
            let rm16 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
1504
39
            let imm16 = cranelift_assembler_x64::Imm16::new(imm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
1505
1506
            // Build the instruction.
1507
39
            let inst = cranelift_assembler_x64::inst::andw_mi::new(rm16.clone(), imm16.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
1508
39
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
1509
1510
            // Return a type ISLE can work with.
1511
39
            match rm16 {
1512
39
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
1513
39
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
1514
39
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
1515
                }
1516
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
1517
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
1518
                }
1519
            }
1520
39
        }
1521
16.1k
        fn x64_andl_mi_raw(&mut self, rm32: &GprMem, imm32: u32) -> AssemblerOutputs {
1522
            // Convert ISLE types to assembler types.
1523
16.1k
            let rm32 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
1524
16.1k
            let imm32 = cranelift_assembler_x64::Imm32::new(imm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
1525
1526
            // Build the instruction.
1527
16.1k
            let inst = cranelift_assembler_x64::inst::andl_mi::new(rm32.clone(), imm32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
1528
16.1k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
1529
1530
            // Return a type ISLE can work with.
1531
16.1k
            match rm32 {
1532
16.1k
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
1533
16.1k
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
1534
16.1k
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
1535
                }
1536
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
1537
9
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
1538
                }
1539
            }
1540
16.1k
        }
1541
296
        fn x64_andq_mi_sxl_raw(&mut self, rm64: &GprMem, imm32: i32) -> AssemblerOutputs {
1542
            // Convert ISLE types to assembler types.
1543
296
            let rm64 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
1544
296
            let imm32 = cranelift_assembler_x64::Simm32::new(imm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
1545
1546
            // Build the instruction.
1547
296
            let inst = cranelift_assembler_x64::inst::andq_mi_sxl::new(rm64.clone(), imm32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
1548
296
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
1549
1550
            // Return a type ISLE can work with.
1551
296
            match rm64 {
1552
293
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
1553
293
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
1554
293
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
1555
                }
1556
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
1557
3
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
1558
                }
1559
            }
1560
296
        }
1561
170k
        fn x64_andl_mi_sxb_raw(&mut self, rm32: &GprMem, imm8: i8) -> AssemblerOutputs {
1562
            // Convert ISLE types to assembler types.
1563
170k
            let rm32 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
1564
170k
            let imm8 = cranelift_assembler_x64::Simm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
1565
1566
            // Build the instruction.
1567
170k
            let inst = cranelift_assembler_x64::inst::andl_mi_sxb::new(rm32.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
1568
170k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
1569
1570
            // Return a type ISLE can work with.
1571
170k
            match rm32 {
1572
169k
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
1573
169k
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
1574
169k
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
1575
                }
1576
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
1577
1.09k
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
1578
                }
1579
            }
1580
170k
        }
1581
121k
        fn x64_andq_mi_sxb_raw(&mut self, rm64: &GprMem, imm8: i8) -> AssemblerOutputs {
1582
            // Convert ISLE types to assembler types.
1583
121k
            let rm64 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
1584
121k
            let imm8 = cranelift_assembler_x64::Simm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
1585
1586
            // Build the instruction.
1587
121k
            let inst = cranelift_assembler_x64::inst::andq_mi_sxb::new(rm64.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
1588
121k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
1589
1590
            // Return a type ISLE can work with.
1591
121k
            match rm64 {
1592
121k
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
1593
121k
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
1594
121k
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
1595
                }
1596
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
1597
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
1598
                }
1599
            }
1600
121k
        }
1601
0
        fn x64_andb_mr_raw(&mut self, rm8: &GprMem, r8: Gpr) -> AssemblerOutputs {
1602
            // Convert ISLE types to assembler types.
1603
0
            let rm8 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
1604
0
            let r8 = cranelift_assembler_x64::Gpr::new(r8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
1605
1606
            // Build the instruction.
1607
0
            let inst = cranelift_assembler_x64::inst::andb_mr::new(rm8.clone(), r8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
1608
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
1609
1610
            // Return a type ISLE can work with.
1611
0
            match rm8 {
1612
0
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
1613
0
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
1614
0
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
1615
                }
1616
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
1617
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
1618
                }
1619
            }
1620
0
        }
1621
0
        fn x64_andw_mr_raw(&mut self, rm16: &GprMem, r16: Gpr) -> AssemblerOutputs {
1622
            // Convert ISLE types to assembler types.
1623
0
            let rm16 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
1624
0
            let r16 = cranelift_assembler_x64::Gpr::new(r16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
1625
1626
            // Build the instruction.
1627
0
            let inst = cranelift_assembler_x64::inst::andw_mr::new(rm16.clone(), r16.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
1628
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
1629
1630
            // Return a type ISLE can work with.
1631
0
            match rm16 {
1632
0
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
1633
0
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
1634
0
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
1635
                }
1636
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
1637
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
1638
                }
1639
            }
1640
0
        }
1641
48
        fn x64_andl_mr_raw(&mut self, rm32: &GprMem, r32: Gpr) -> AssemblerOutputs {
1642
            // Convert ISLE types to assembler types.
1643
48
            let rm32 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
1644
48
            let r32 = cranelift_assembler_x64::Gpr::new(r32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
1645
1646
            // Build the instruction.
1647
48
            let inst = cranelift_assembler_x64::inst::andl_mr::new(rm32.clone(), r32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
1648
48
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
1649
1650
            // Return a type ISLE can work with.
1651
48
            match rm32 {
1652
0
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
1653
0
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
1654
0
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
1655
                }
1656
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
1657
48
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
1658
                }
1659
            }
1660
48
        }
1661
5
        fn x64_andq_mr_raw(&mut self, rm64: &GprMem, r64: Gpr) -> AssemblerOutputs {
1662
            // Convert ISLE types to assembler types.
1663
5
            let rm64 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
1664
5
            let r64 = cranelift_assembler_x64::Gpr::new(r64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
1665
1666
            // Build the instruction.
1667
5
            let inst = cranelift_assembler_x64::inst::andq_mr::new(rm64.clone(), r64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
1668
5
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
1669
1670
            // Return a type ISLE can work with.
1671
5
            match rm64 {
1672
0
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
1673
0
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
1674
0
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
1675
                }
1676
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
1677
5
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
1678
                }
1679
            }
1680
5
        }
1681
0
        fn x64_andb_rm_raw(&mut self, r8: Gpr, rm8: &GprMem) -> AssemblerOutputs {
1682
            // Convert ISLE types to assembler types.
1683
0
            let r8 = self.convert_gpr_to_assembler_read_write_gpr(r8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
1684
0
            let rm8 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
1685
1686
            // Build the instruction.
1687
0
            let inst = cranelift_assembler_x64::inst::andb_rm::new(r8.clone(), rm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
1688
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
1689
1690
            // Return a type ISLE can work with.
1691
0
            let gpr = r8.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
1692
0
            AssemblerOutputs::RetGpr { inst, gpr }
1693
0
        }
1694
0
        fn x64_andw_rm_raw(&mut self, r16: Gpr, rm16: &GprMem) -> AssemblerOutputs {
1695
            // Convert ISLE types to assembler types.
1696
0
            let r16 = self.convert_gpr_to_assembler_read_write_gpr(r16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
1697
0
            let rm16 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
1698
1699
            // Build the instruction.
1700
0
            let inst = cranelift_assembler_x64::inst::andw_rm::new(r16.clone(), rm16.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
1701
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
1702
1703
            // Return a type ISLE can work with.
1704
0
            let gpr = r16.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
1705
0
            AssemblerOutputs::RetGpr { inst, gpr }
1706
0
        }
1707
73.8k
        fn x64_andl_rm_raw(&mut self, r32: Gpr, rm32: &GprMem) -> AssemblerOutputs {
1708
            // Convert ISLE types to assembler types.
1709
73.8k
            let r32 = self.convert_gpr_to_assembler_read_write_gpr(r32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
1710
73.8k
            let rm32 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
1711
1712
            // Build the instruction.
1713
73.8k
            let inst = cranelift_assembler_x64::inst::andl_rm::new(r32.clone(), rm32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
1714
73.8k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
1715
1716
            // Return a type ISLE can work with.
1717
73.8k
            let gpr = r32.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
1718
73.8k
            AssemblerOutputs::RetGpr { inst, gpr }
1719
73.8k
        }
1720
27.0k
        fn x64_andq_rm_raw(&mut self, r64: Gpr, rm64: &GprMem) -> AssemblerOutputs {
1721
            // Convert ISLE types to assembler types.
1722
27.0k
            let r64 = self.convert_gpr_to_assembler_read_write_gpr(r64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
1723
27.0k
            let rm64 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
1724
1725
            // Build the instruction.
1726
27.0k
            let inst = cranelift_assembler_x64::inst::andq_rm::new(r64.clone(), rm64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
1727
27.0k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
1728
1729
            // Return a type ISLE can work with.
1730
27.0k
            let gpr = r64.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
1731
27.0k
            AssemblerOutputs::RetGpr { inst, gpr }
1732
27.0k
        }
1733
14.0k
        fn x64_andnl_rvm_raw(&mut self, r32b: Gpr, rm32: &GprMem) -> AssemblerOutputs {
1734
            // Convert ISLE types to assembler types.
1735
14.0k
            let r32a = cranelift_assembler_x64::Gpr::new(self.temp_writable_gpr()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
1736
14.0k
            let r32b = cranelift_assembler_x64::Gpr::new(r32b); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
1737
14.0k
            let rm32 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
1738
1739
            // Build the instruction.
1740
14.0k
            let inst = cranelift_assembler_x64::inst::andnl_rvm::new(r32a.clone(), r32b.clone(), rm32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
1741
14.0k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
1742
1743
            // Return a type ISLE can work with.
1744
14.0k
            let gpr = r32a.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
1745
14.0k
            AssemblerOutputs::RetGpr { inst, gpr }
1746
14.0k
        }
1747
66
        fn x64_andnq_rvm_raw(&mut self, r64b: Gpr, rm64: &GprMem) -> AssemblerOutputs {
1748
            // Convert ISLE types to assembler types.
1749
66
            let r64a = cranelift_assembler_x64::Gpr::new(self.temp_writable_gpr()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
1750
66
            let r64b = cranelift_assembler_x64::Gpr::new(r64b); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
1751
66
            let rm64 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
1752
1753
            // Build the instruction.
1754
66
            let inst = cranelift_assembler_x64::inst::andnq_rvm::new(r64a.clone(), r64b.clone(), rm64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
1755
66
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
1756
1757
            // Return a type ISLE can work with.
1758
66
            let gpr = r64a.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
1759
66
            AssemblerOutputs::RetGpr { inst, gpr }
1760
66
        }
1761
0
        fn x64_lock_andb_mi_raw(&mut self, m8: &SyntheticAmode, imm8: u8) -> AssemblerOutputs {
1762
            // Convert ISLE types to assembler types.
1763
0
            let m8 = self.convert_amode_to_assembler_amode(m8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
1764
0
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
1765
1766
            // Build the instruction.
1767
0
            let inst = cranelift_assembler_x64::inst::lock_andb_mi::new(m8.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
1768
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
1769
1770
            // Return a type ISLE can work with.
1771
0
            AssemblerOutputs::SideEffect { inst }
1772
0
        }
1773
0
        fn x64_lock_andw_mi_raw(&mut self, m16: &SyntheticAmode, imm16: u16) -> AssemblerOutputs {
1774
            // Convert ISLE types to assembler types.
1775
0
            let m16 = self.convert_amode_to_assembler_amode(m16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
1776
0
            let imm16 = cranelift_assembler_x64::Imm16::new(imm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
1777
1778
            // Build the instruction.
1779
0
            let inst = cranelift_assembler_x64::inst::lock_andw_mi::new(m16.clone(), imm16.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
1780
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
1781
1782
            // Return a type ISLE can work with.
1783
0
            AssemblerOutputs::SideEffect { inst }
1784
0
        }
1785
0
        fn x64_lock_andl_mi_raw(&mut self, m32: &SyntheticAmode, imm32: u32) -> AssemblerOutputs {
1786
            // Convert ISLE types to assembler types.
1787
0
            let m32 = self.convert_amode_to_assembler_amode(m32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
1788
0
            let imm32 = cranelift_assembler_x64::Imm32::new(imm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
1789
1790
            // Build the instruction.
1791
0
            let inst = cranelift_assembler_x64::inst::lock_andl_mi::new(m32.clone(), imm32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
1792
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
1793
1794
            // Return a type ISLE can work with.
1795
0
            AssemblerOutputs::SideEffect { inst }
1796
0
        }
1797
0
        fn x64_lock_andq_mi_sxl_raw(&mut self, m64: &SyntheticAmode, imm32: i32) -> AssemblerOutputs {
1798
            // Convert ISLE types to assembler types.
1799
0
            let m64 = self.convert_amode_to_assembler_amode(m64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
1800
0
            let imm32 = cranelift_assembler_x64::Simm32::new(imm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
1801
1802
            // Build the instruction.
1803
0
            let inst = cranelift_assembler_x64::inst::lock_andq_mi_sxl::new(m64.clone(), imm32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
1804
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
1805
1806
            // Return a type ISLE can work with.
1807
0
            AssemblerOutputs::SideEffect { inst }
1808
0
        }
1809
0
        fn x64_lock_andl_mi_sxb_raw(&mut self, m32: &SyntheticAmode, imm8: i8) -> AssemblerOutputs {
1810
            // Convert ISLE types to assembler types.
1811
0
            let m32 = self.convert_amode_to_assembler_amode(m32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
1812
0
            let imm8 = cranelift_assembler_x64::Simm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
1813
1814
            // Build the instruction.
1815
0
            let inst = cranelift_assembler_x64::inst::lock_andl_mi_sxb::new(m32.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
1816
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
1817
1818
            // Return a type ISLE can work with.
1819
0
            AssemblerOutputs::SideEffect { inst }
1820
0
        }
1821
0
        fn x64_lock_andq_mi_sxb_raw(&mut self, m64: &SyntheticAmode, imm8: i8) -> AssemblerOutputs {
1822
            // Convert ISLE types to assembler types.
1823
0
            let m64 = self.convert_amode_to_assembler_amode(m64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
1824
0
            let imm8 = cranelift_assembler_x64::Simm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
1825
1826
            // Build the instruction.
1827
0
            let inst = cranelift_assembler_x64::inst::lock_andq_mi_sxb::new(m64.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
1828
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
1829
1830
            // Return a type ISLE can work with.
1831
0
            AssemblerOutputs::SideEffect { inst }
1832
0
        }
1833
0
        fn x64_lock_andb_mr_raw(&mut self, m8: &SyntheticAmode, r8: Gpr) -> AssemblerOutputs {
1834
            // Convert ISLE types to assembler types.
1835
0
            let m8 = self.convert_amode_to_assembler_amode(m8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
1836
0
            let r8 = cranelift_assembler_x64::Gpr::new(r8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
1837
1838
            // Build the instruction.
1839
0
            let inst = cranelift_assembler_x64::inst::lock_andb_mr::new(m8.clone(), r8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
1840
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
1841
1842
            // Return a type ISLE can work with.
1843
0
            AssemblerOutputs::SideEffect { inst }
1844
0
        }
1845
4
        fn x64_lock_andw_mr_raw(&mut self, m16: &SyntheticAmode, r16: Gpr) -> AssemblerOutputs {
1846
            // Convert ISLE types to assembler types.
1847
4
            let m16 = self.convert_amode_to_assembler_amode(m16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
1848
4
            let r16 = cranelift_assembler_x64::Gpr::new(r16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
1849
1850
            // Build the instruction.
1851
4
            let inst = cranelift_assembler_x64::inst::lock_andw_mr::new(m16.clone(), r16.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
1852
4
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
1853
1854
            // Return a type ISLE can work with.
1855
4
            AssemblerOutputs::SideEffect { inst }
1856
4
        }
1857
0
        fn x64_lock_andl_mr_raw(&mut self, m32: &SyntheticAmode, r32: Gpr) -> AssemblerOutputs {
1858
            // Convert ISLE types to assembler types.
1859
0
            let m32 = self.convert_amode_to_assembler_amode(m32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
1860
0
            let r32 = cranelift_assembler_x64::Gpr::new(r32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
1861
1862
            // Build the instruction.
1863
0
            let inst = cranelift_assembler_x64::inst::lock_andl_mr::new(m32.clone(), r32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
1864
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
1865
1866
            // Return a type ISLE can work with.
1867
0
            AssemblerOutputs::SideEffect { inst }
1868
0
        }
1869
2
        fn x64_lock_andq_mr_raw(&mut self, m64: &SyntheticAmode, r64: Gpr) -> AssemblerOutputs {
1870
            // Convert ISLE types to assembler types.
1871
2
            let m64 = self.convert_amode_to_assembler_amode(m64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
1872
2
            let r64 = cranelift_assembler_x64::Gpr::new(r64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
1873
1874
            // Build the instruction.
1875
2
            let inst = cranelift_assembler_x64::inst::lock_andq_mr::new(m64.clone(), r64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
1876
2
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
1877
1878
            // Return a type ISLE can work with.
1879
2
            AssemblerOutputs::SideEffect { inst }
1880
2
        }
1881
4.92k
        fn x64_andps_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned) -> AssemblerOutputs {
1882
            // Convert ISLE types to assembler types.
1883
4.92k
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
1884
4.92k
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
1885
1886
            // Build the instruction.
1887
4.92k
            let inst = cranelift_assembler_x64::inst::andps_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
1888
4.92k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
1889
1890
            // Return a type ISLE can work with.
1891
4.92k
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
1892
4.92k
            AssemblerOutputs::RetXmm { inst, xmm }
1893
4.92k
        }
1894
2.45k
        fn x64_andpd_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned) -> AssemblerOutputs {
1895
            // Convert ISLE types to assembler types.
1896
2.45k
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
1897
2.45k
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
1898
1899
            // Build the instruction.
1900
2.45k
            let inst = cranelift_assembler_x64::inst::andpd_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
1901
2.45k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
1902
1903
            // Return a type ISLE can work with.
1904
2.45k
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
1905
2.45k
            AssemblerOutputs::RetXmm { inst, xmm }
1906
2.45k
        }
1907
2.77k
        fn x64_andnps_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned) -> AssemblerOutputs {
1908
            // Convert ISLE types to assembler types.
1909
2.77k
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
1910
2.77k
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
1911
1912
            // Build the instruction.
1913
2.77k
            let inst = cranelift_assembler_x64::inst::andnps_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
1914
2.77k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
1915
1916
            // Return a type ISLE can work with.
1917
2.77k
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
1918
2.77k
            AssemblerOutputs::RetXmm { inst, xmm }
1919
2.77k
        }
1920
617
        fn x64_andnpd_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned) -> AssemblerOutputs {
1921
            // Convert ISLE types to assembler types.
1922
617
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
1923
617
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
1924
1925
            // Build the instruction.
1926
617
            let inst = cranelift_assembler_x64::inst::andnpd_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
1927
617
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
1928
1929
            // Return a type ISLE can work with.
1930
617
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
1931
617
            AssemblerOutputs::RetXmm { inst, xmm }
1932
617
        }
1933
3.74k
        fn x64_pand_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned) -> AssemblerOutputs {
1934
            // Convert ISLE types to assembler types.
1935
3.74k
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
1936
3.74k
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
1937
1938
            // Build the instruction.
1939
3.74k
            let inst = cranelift_assembler_x64::inst::pand_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
1940
3.74k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
1941
1942
            // Return a type ISLE can work with.
1943
3.74k
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
1944
3.74k
            AssemblerOutputs::RetXmm { inst, xmm }
1945
3.74k
        }
1946
1.93k
        fn x64_pandn_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned) -> AssemblerOutputs {
1947
            // Convert ISLE types to assembler types.
1948
1.93k
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
1949
1.93k
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
1950
1951
            // Build the instruction.
1952
1.93k
            let inst = cranelift_assembler_x64::inst::pandn_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
1953
1.93k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
1954
1955
            // Return a type ISLE can work with.
1956
1.93k
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
1957
1.93k
            AssemblerOutputs::RetXmm { inst, xmm }
1958
1.93k
        }
1959
18.3k
        fn x64_vandps_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem) -> AssemblerOutputs {
1960
            // Convert ISLE types to assembler types.
1961
18.3k
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
1962
18.3k
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
1963
18.3k
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
1964
1965
            // Build the instruction.
1966
18.3k
            let inst = cranelift_assembler_x64::inst::vandps_b::new(xmm1.clone(), xmm2.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
1967
18.3k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
1968
1969
            // Return a type ISLE can work with.
1970
18.3k
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
1971
18.3k
            AssemblerOutputs::RetXmm { inst, xmm }
1972
18.3k
        }
1973
32.2k
        fn x64_vandpd_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem) -> AssemblerOutputs {
1974
            // Convert ISLE types to assembler types.
1975
32.2k
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
1976
32.2k
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
1977
32.2k
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
1978
1979
            // Build the instruction.
1980
32.2k
            let inst = cranelift_assembler_x64::inst::vandpd_b::new(xmm1.clone(), xmm2.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
1981
32.2k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
1982
1983
            // Return a type ISLE can work with.
1984
32.2k
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
1985
32.2k
            AssemblerOutputs::RetXmm { inst, xmm }
1986
32.2k
        }
1987
4.62k
        fn x64_vandnps_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem) -> AssemblerOutputs {
1988
            // Convert ISLE types to assembler types.
1989
4.62k
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
1990
4.62k
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
1991
4.62k
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
1992
1993
            // Build the instruction.
1994
4.62k
            let inst = cranelift_assembler_x64::inst::vandnps_b::new(xmm1.clone(), xmm2.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
1995
4.62k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
1996
1997
            // Return a type ISLE can work with.
1998
4.62k
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
1999
4.62k
            AssemblerOutputs::RetXmm { inst, xmm }
2000
4.62k
        }
2001
967
        fn x64_vandnpd_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem) -> AssemblerOutputs {
2002
            // Convert ISLE types to assembler types.
2003
967
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
2004
967
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
2005
967
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
2006
2007
            // Build the instruction.
2008
967
            let inst = cranelift_assembler_x64::inst::vandnpd_b::new(xmm1.clone(), xmm2.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
2009
967
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
2010
2011
            // Return a type ISLE can work with.
2012
967
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
2013
967
            AssemblerOutputs::RetXmm { inst, xmm }
2014
967
        }
2015
12.1k
        fn x64_vpand_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem) -> AssemblerOutputs {
2016
            // Convert ISLE types to assembler types.
2017
12.1k
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
2018
12.1k
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
2019
12.1k
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
2020
2021
            // Build the instruction.
2022
12.1k
            let inst = cranelift_assembler_x64::inst::vpand_b::new(xmm1.clone(), xmm2.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
2023
12.1k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
2024
2025
            // Return a type ISLE can work with.
2026
12.1k
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
2027
12.1k
            AssemblerOutputs::RetXmm { inst, xmm }
2028
12.1k
        }
2029
2.02k
        fn x64_vpandn_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem) -> AssemblerOutputs {
2030
            // Convert ISLE types to assembler types.
2031
2.02k
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
2032
2.02k
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
2033
2.02k
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
2034
2035
            // Build the instruction.
2036
2.02k
            let inst = cranelift_assembler_x64::inst::vpandn_b::new(xmm1.clone(), xmm2.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
2037
2.02k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
2038
2039
            // Return a type ISLE can work with.
2040
2.02k
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
2041
2.02k
            AssemblerOutputs::RetXmm { inst, xmm }
2042
2.02k
        }
2043
7
        fn x64_xchgb_rm_raw(&mut self, r8: Gpr, m8: &SyntheticAmode) -> AssemblerOutputs {
2044
            // Convert ISLE types to assembler types.
2045
7
            let r8 = self.convert_gpr_to_assembler_read_write_gpr(r8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
2046
7
            let m8 = self.convert_amode_to_assembler_amode(m8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
2047
2048
            // Build the instruction.
2049
7
            let inst = cranelift_assembler_x64::inst::xchgb_rm::new(r8.clone(), m8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
2050
7
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
2051
2052
            // Return a type ISLE can work with.
2053
7
            let gpr = r8.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:201
2054
7
            AssemblerOutputs::RetGpr { inst, gpr }
2055
7
        }
2056
7
        fn x64_xchgw_rm_raw(&mut self, r16: Gpr, m16: &SyntheticAmode) -> AssemblerOutputs {
2057
            // Convert ISLE types to assembler types.
2058
7
            let r16 = self.convert_gpr_to_assembler_read_write_gpr(r16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
2059
7
            let m16 = self.convert_amode_to_assembler_amode(m16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
2060
2061
            // Build the instruction.
2062
7
            let inst = cranelift_assembler_x64::inst::xchgw_rm::new(r16.clone(), m16.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
2063
7
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
2064
2065
            // Return a type ISLE can work with.
2066
7
            let gpr = r16.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:201
2067
7
            AssemblerOutputs::RetGpr { inst, gpr }
2068
7
        }
2069
3
        fn x64_xchgl_rm_raw(&mut self, r32: Gpr, m32: &SyntheticAmode) -> AssemblerOutputs {
2070
            // Convert ISLE types to assembler types.
2071
3
            let r32 = self.convert_gpr_to_assembler_read_write_gpr(r32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
2072
3
            let m32 = self.convert_amode_to_assembler_amode(m32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
2073
2074
            // Build the instruction.
2075
3
            let inst = cranelift_assembler_x64::inst::xchgl_rm::new(r32.clone(), m32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
2076
3
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
2077
2078
            // Return a type ISLE can work with.
2079
3
            let gpr = r32.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:201
2080
3
            AssemblerOutputs::RetGpr { inst, gpr }
2081
3
        }
2082
1
        fn x64_xchgq_rm_raw(&mut self, r64: Gpr, m64: &SyntheticAmode) -> AssemblerOutputs {
2083
            // Convert ISLE types to assembler types.
2084
1
            let r64 = self.convert_gpr_to_assembler_read_write_gpr(r64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
2085
1
            let m64 = self.convert_amode_to_assembler_amode(m64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
2086
2087
            // Build the instruction.
2088
1
            let inst = cranelift_assembler_x64::inst::xchgq_rm::new(r64.clone(), m64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
2089
1
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
2090
2091
            // Return a type ISLE can work with.
2092
1
            let gpr = r64.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:201
2093
1
            AssemblerOutputs::RetGpr { inst, gpr }
2094
1
        }
2095
0
        fn x64_cmpxchg16b_m_raw(&mut self, rax: Gpr, rdx: Gpr, rbx: Gpr, rcx: Gpr, m128: &SyntheticAmode) -> AssemblerOutputs {
2096
            // Convert ISLE types to assembler types.
2097
0
            let rax = self.convert_gpr_to_assembler_fixed_read_write_gpr(rax); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
2098
0
            let rdx = self.convert_gpr_to_assembler_fixed_read_write_gpr(rdx); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
2099
0
            let rbx = cranelift_assembler_x64::Fixed(rbx); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
2100
0
            let rcx = cranelift_assembler_x64::Fixed(rcx); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
2101
0
            let m128 = self.convert_amode_to_assembler_amode(m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
2102
2103
            // Build the instruction.
2104
0
            let inst = cranelift_assembler_x64::inst::cmpxchg16b_m::new(rax.clone(), rdx.clone(), rbx.clone(), rcx.clone(), m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
2105
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
2106
2107
            // Return a type ISLE can work with.
2108
0
            let one = rax.as_ref().write.to_reg().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:213
2109
0
            let two = rdx.as_ref().write.to_reg().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:214
2110
0
            let regs = ValueRegs::two(one, two); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:215
2111
0
            AssemblerOutputs::RetValueRegs { inst, regs }
2112
0
        }
2113
0
        fn x64_lock_cmpxchg16b_m_raw(&mut self, rax: Gpr, rdx: Gpr, rbx: Gpr, rcx: Gpr, m128: &SyntheticAmode) -> AssemblerOutputs {
2114
            // Convert ISLE types to assembler types.
2115
0
            let rax = self.convert_gpr_to_assembler_fixed_read_write_gpr(rax); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
2116
0
            let rdx = self.convert_gpr_to_assembler_fixed_read_write_gpr(rdx); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
2117
0
            let rbx = cranelift_assembler_x64::Fixed(rbx); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
2118
0
            let rcx = cranelift_assembler_x64::Fixed(rcx); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
2119
0
            let m128 = self.convert_amode_to_assembler_amode(m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
2120
2121
            // Build the instruction.
2122
0
            let inst = cranelift_assembler_x64::inst::lock_cmpxchg16b_m::new(rax.clone(), rdx.clone(), rbx.clone(), rcx.clone(), m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
2123
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
2124
2125
            // Return a type ISLE can work with.
2126
0
            let one = rax.as_ref().write.to_reg().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:213
2127
0
            let two = rdx.as_ref().write.to_reg().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:214
2128
0
            let regs = ValueRegs::two(one, two); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:215
2129
0
            AssemblerOutputs::RetValueRegs { inst, regs }
2130
0
        }
2131
0
        fn x64_cmpxchgb_mr_raw(&mut self, rm8: &GprMem, r8: Gpr, al: Gpr) -> AssemblerOutputs {
2132
            // Convert ISLE types to assembler types.
2133
0
            let rm8 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
2134
0
            let r8 = cranelift_assembler_x64::Gpr::new(r8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
2135
0
            let al = self.convert_gpr_to_assembler_fixed_read_write_gpr(al); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
2136
2137
            // Build the instruction.
2138
0
            let inst = cranelift_assembler_x64::inst::cmpxchgb_mr::new(rm8.clone(), r8.clone(), al.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
2139
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
2140
2141
            // Return a type ISLE can work with.
2142
0
            let gpr = al.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:201
2143
0
            AssemblerOutputs::RetGpr { inst, gpr }
2144
0
        }
2145
0
        fn x64_cmpxchgw_mr_raw(&mut self, rm16: &GprMem, r16: Gpr, ax: Gpr) -> AssemblerOutputs {
2146
            // Convert ISLE types to assembler types.
2147
0
            let rm16 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
2148
0
            let r16 = cranelift_assembler_x64::Gpr::new(r16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
2149
0
            let ax = self.convert_gpr_to_assembler_fixed_read_write_gpr(ax); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
2150
2151
            // Build the instruction.
2152
0
            let inst = cranelift_assembler_x64::inst::cmpxchgw_mr::new(rm16.clone(), r16.clone(), ax.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
2153
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
2154
2155
            // Return a type ISLE can work with.
2156
0
            let gpr = ax.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:201
2157
0
            AssemblerOutputs::RetGpr { inst, gpr }
2158
0
        }
2159
0
        fn x64_cmpxchgl_mr_raw(&mut self, rm32: &GprMem, r32: Gpr, eax: Gpr) -> AssemblerOutputs {
2160
            // Convert ISLE types to assembler types.
2161
0
            let rm32 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
2162
0
            let r32 = cranelift_assembler_x64::Gpr::new(r32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
2163
0
            let eax = self.convert_gpr_to_assembler_fixed_read_write_gpr(eax); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
2164
2165
            // Build the instruction.
2166
0
            let inst = cranelift_assembler_x64::inst::cmpxchgl_mr::new(rm32.clone(), r32.clone(), eax.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
2167
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
2168
2169
            // Return a type ISLE can work with.
2170
0
            let gpr = eax.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:201
2171
0
            AssemblerOutputs::RetGpr { inst, gpr }
2172
0
        }
2173
0
        fn x64_cmpxchgq_mr_raw(&mut self, rm64: &GprMem, r64: Gpr, rax: Gpr) -> AssemblerOutputs {
2174
            // Convert ISLE types to assembler types.
2175
0
            let rm64 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
2176
0
            let r64 = cranelift_assembler_x64::Gpr::new(r64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
2177
0
            let rax = self.convert_gpr_to_assembler_fixed_read_write_gpr(rax); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
2178
2179
            // Build the instruction.
2180
0
            let inst = cranelift_assembler_x64::inst::cmpxchgq_mr::new(rm64.clone(), r64.clone(), rax.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
2181
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
2182
2183
            // Return a type ISLE can work with.
2184
0
            let gpr = rax.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:201
2185
0
            AssemblerOutputs::RetGpr { inst, gpr }
2186
0
        }
2187
16
        fn x64_lock_cmpxchgb_mr_raw(&mut self, m8: &SyntheticAmode, r8: Gpr, al: Gpr) -> AssemblerOutputs {
2188
            // Convert ISLE types to assembler types.
2189
16
            let m8 = self.convert_amode_to_assembler_amode(m8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
2190
16
            let r8 = cranelift_assembler_x64::Gpr::new(r8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
2191
16
            let al = self.convert_gpr_to_assembler_fixed_read_write_gpr(al); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
2192
2193
            // Build the instruction.
2194
16
            let inst = cranelift_assembler_x64::inst::lock_cmpxchgb_mr::new(m8.clone(), r8.clone(), al.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
2195
16
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
2196
2197
            // Return a type ISLE can work with.
2198
16
            let gpr = al.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:201
2199
16
            AssemblerOutputs::RetGpr { inst, gpr }
2200
16
        }
2201
9
        fn x64_lock_cmpxchgw_mr_raw(&mut self, m16: &SyntheticAmode, r16: Gpr, ax: Gpr) -> AssemblerOutputs {
2202
            // Convert ISLE types to assembler types.
2203
9
            let m16 = self.convert_amode_to_assembler_amode(m16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
2204
9
            let r16 = cranelift_assembler_x64::Gpr::new(r16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
2205
9
            let ax = self.convert_gpr_to_assembler_fixed_read_write_gpr(ax); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
2206
2207
            // Build the instruction.
2208
9
            let inst = cranelift_assembler_x64::inst::lock_cmpxchgw_mr::new(m16.clone(), r16.clone(), ax.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
2209
9
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
2210
2211
            // Return a type ISLE can work with.
2212
9
            let gpr = ax.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:201
2213
9
            AssemblerOutputs::RetGpr { inst, gpr }
2214
9
        }
2215
10.9k
        fn x64_lock_cmpxchgl_mr_raw(&mut self, m32: &SyntheticAmode, r32: Gpr, eax: Gpr) -> AssemblerOutputs {
2216
            // Convert ISLE types to assembler types.
2217
10.9k
            let m32 = self.convert_amode_to_assembler_amode(m32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
2218
10.9k
            let r32 = cranelift_assembler_x64::Gpr::new(r32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
2219
10.9k
            let eax = self.convert_gpr_to_assembler_fixed_read_write_gpr(eax); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
2220
2221
            // Build the instruction.
2222
10.9k
            let inst = cranelift_assembler_x64::inst::lock_cmpxchgl_mr::new(m32.clone(), r32.clone(), eax.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
2223
10.9k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
2224
2225
            // Return a type ISLE can work with.
2226
10.9k
            let gpr = eax.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:201
2227
10.9k
            AssemblerOutputs::RetGpr { inst, gpr }
2228
10.9k
        }
2229
532
        fn x64_lock_cmpxchgq_mr_raw(&mut self, m64: &SyntheticAmode, r64: Gpr, rax: Gpr) -> AssemblerOutputs {
2230
            // Convert ISLE types to assembler types.
2231
532
            let m64 = self.convert_amode_to_assembler_amode(m64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
2232
532
            let r64 = cranelift_assembler_x64::Gpr::new(r64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
2233
532
            let rax = self.convert_gpr_to_assembler_fixed_read_write_gpr(rax); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
2234
2235
            // Build the instruction.
2236
532
            let inst = cranelift_assembler_x64::inst::lock_cmpxchgq_mr::new(m64.clone(), r64.clone(), rax.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
2237
532
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
2238
2239
            // Return a type ISLE can work with.
2240
532
            let gpr = rax.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:201
2241
532
            AssemblerOutputs::RetGpr { inst, gpr }
2242
532
        }
2243
3
        fn x64_pavgb_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned) -> AssemblerOutputs {
2244
            // Convert ISLE types to assembler types.
2245
3
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
2246
3
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
2247
2248
            // Build the instruction.
2249
3
            let inst = cranelift_assembler_x64::inst::pavgb_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
2250
3
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
2251
2252
            // Return a type ISLE can work with.
2253
3
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
2254
3
            AssemblerOutputs::RetXmm { inst, xmm }
2255
3
        }
2256
0
        fn x64_pavgw_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned) -> AssemblerOutputs {
2257
            // Convert ISLE types to assembler types.
2258
0
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
2259
0
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
2260
2261
            // Build the instruction.
2262
0
            let inst = cranelift_assembler_x64::inst::pavgw_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
2263
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
2264
2265
            // Return a type ISLE can work with.
2266
0
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
2267
0
            AssemblerOutputs::RetXmm { inst, xmm }
2268
0
        }
2269
27
        fn x64_vpavgb_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem) -> AssemblerOutputs {
2270
            // Convert ISLE types to assembler types.
2271
27
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
2272
27
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
2273
27
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
2274
2275
            // Build the instruction.
2276
27
            let inst = cranelift_assembler_x64::inst::vpavgb_b::new(xmm1.clone(), xmm2.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
2277
27
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
2278
2279
            // Return a type ISLE can work with.
2280
27
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
2281
27
            AssemblerOutputs::RetXmm { inst, xmm }
2282
27
        }
2283
12
        fn x64_vpavgw_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem) -> AssemblerOutputs {
2284
            // Convert ISLE types to assembler types.
2285
12
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
2286
12
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
2287
12
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
2288
2289
            // Build the instruction.
2290
12
            let inst = cranelift_assembler_x64::inst::vpavgw_b::new(xmm1.clone(), xmm2.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
2291
12
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
2292
2293
            // Return a type ISLE can work with.
2294
12
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
2295
12
            AssemblerOutputs::RetXmm { inst, xmm }
2296
12
        }
2297
0
        fn x64_bsfw_rm_raw(&mut self, rm16: &GprMem) -> AssemblerOutputs {
2298
            // Convert ISLE types to assembler types.
2299
0
            let r16 = cranelift_assembler_x64::Gpr::new(self.temp_writable_gpr()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
2300
0
            let rm16 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
2301
2302
            // Build the instruction.
2303
0
            let inst = cranelift_assembler_x64::inst::bsfw_rm::new(r16.clone(), rm16.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
2304
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
2305
2306
            // Return a type ISLE can work with.
2307
0
            let gpr = r16.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
2308
0
            AssemblerOutputs::RetGpr { inst, gpr }
2309
0
        }
2310
1.19k
        fn x64_bsfl_rm_raw(&mut self, rm32: &GprMem) -> AssemblerOutputs {
2311
            // Convert ISLE types to assembler types.
2312
1.19k
            let r32 = cranelift_assembler_x64::Gpr::new(self.temp_writable_gpr()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
2313
1.19k
            let rm32 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
2314
2315
            // Build the instruction.
2316
1.19k
            let inst = cranelift_assembler_x64::inst::bsfl_rm::new(r32.clone(), rm32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
2317
1.19k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
2318
2319
            // Return a type ISLE can work with.
2320
1.19k
            let gpr = r32.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
2321
1.19k
            AssemblerOutputs::RetGpr { inst, gpr }
2322
1.19k
        }
2323
1.79k
        fn x64_bsfq_rm_raw(&mut self, rm64: &GprMem) -> AssemblerOutputs {
2324
            // Convert ISLE types to assembler types.
2325
1.79k
            let r64 = cranelift_assembler_x64::Gpr::new(self.temp_writable_gpr()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
2326
1.79k
            let rm64 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
2327
2328
            // Build the instruction.
2329
1.79k
            let inst = cranelift_assembler_x64::inst::bsfq_rm::new(r64.clone(), rm64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
2330
1.79k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
2331
2332
            // Return a type ISLE can work with.
2333
1.79k
            let gpr = r64.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
2334
1.79k
            AssemblerOutputs::RetGpr { inst, gpr }
2335
1.79k
        }
2336
0
        fn x64_bsrw_rm_raw(&mut self, rm16: &GprMem) -> AssemblerOutputs {
2337
            // Convert ISLE types to assembler types.
2338
0
            let r16 = cranelift_assembler_x64::Gpr::new(self.temp_writable_gpr()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
2339
0
            let rm16 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
2340
2341
            // Build the instruction.
2342
0
            let inst = cranelift_assembler_x64::inst::bsrw_rm::new(r16.clone(), rm16.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
2343
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
2344
2345
            // Return a type ISLE can work with.
2346
0
            let gpr = r16.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
2347
0
            AssemblerOutputs::RetGpr { inst, gpr }
2348
0
        }
2349
1.41k
        fn x64_bsrl_rm_raw(&mut self, rm32: &GprMem) -> AssemblerOutputs {
2350
            // Convert ISLE types to assembler types.
2351
1.41k
            let r32 = cranelift_assembler_x64::Gpr::new(self.temp_writable_gpr()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
2352
1.41k
            let rm32 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
2353
2354
            // Build the instruction.
2355
1.41k
            let inst = cranelift_assembler_x64::inst::bsrl_rm::new(r32.clone(), rm32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
2356
1.41k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
2357
2358
            // Return a type ISLE can work with.
2359
1.41k
            let gpr = r32.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
2360
1.41k
            AssemblerOutputs::RetGpr { inst, gpr }
2361
1.41k
        }
2362
1.69k
        fn x64_bsrq_rm_raw(&mut self, rm64: &GprMem) -> AssemblerOutputs {
2363
            // Convert ISLE types to assembler types.
2364
1.69k
            let r64 = cranelift_assembler_x64::Gpr::new(self.temp_writable_gpr()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
2365
1.69k
            let rm64 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
2366
2367
            // Build the instruction.
2368
1.69k
            let inst = cranelift_assembler_x64::inst::bsrq_rm::new(r64.clone(), rm64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
2369
1.69k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
2370
2371
            // Return a type ISLE can work with.
2372
1.69k
            let gpr = r64.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
2373
1.69k
            AssemblerOutputs::RetGpr { inst, gpr }
2374
1.69k
        }
2375
0
        fn x64_tzcntw_a_raw(&mut self, rm16: &GprMem) -> AssemblerOutputs {
2376
            // Convert ISLE types to assembler types.
2377
0
            let r16 = cranelift_assembler_x64::Gpr::new(self.temp_writable_gpr()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
2378
0
            let rm16 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
2379
2380
            // Build the instruction.
2381
0
            let inst = cranelift_assembler_x64::inst::tzcntw_a::new(r16.clone(), rm16.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
2382
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
2383
2384
            // Return a type ISLE can work with.
2385
0
            let gpr = r16.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
2386
0
            AssemblerOutputs::RetGpr { inst, gpr }
2387
0
        }
2388
27.6k
        fn x64_tzcntl_a_raw(&mut self, rm32: &GprMem) -> AssemblerOutputs {
2389
            // Convert ISLE types to assembler types.
2390
27.6k
            let r32 = cranelift_assembler_x64::Gpr::new(self.temp_writable_gpr()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
2391
27.6k
            let rm32 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
2392
2393
            // Build the instruction.
2394
27.6k
            let inst = cranelift_assembler_x64::inst::tzcntl_a::new(r32.clone(), rm32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
2395
27.6k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
2396
2397
            // Return a type ISLE can work with.
2398
27.6k
            let gpr = r32.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
2399
27.6k
            AssemblerOutputs::RetGpr { inst, gpr }
2400
27.6k
        }
2401
39.1k
        fn x64_tzcntq_a_raw(&mut self, rm64: &GprMem) -> AssemblerOutputs {
2402
            // Convert ISLE types to assembler types.
2403
39.1k
            let r64 = cranelift_assembler_x64::Gpr::new(self.temp_writable_gpr()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
2404
39.1k
            let rm64 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
2405
2406
            // Build the instruction.
2407
39.1k
            let inst = cranelift_assembler_x64::inst::tzcntq_a::new(r64.clone(), rm64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
2408
39.1k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
2409
2410
            // Return a type ISLE can work with.
2411
39.1k
            let gpr = r64.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
2412
39.1k
            AssemblerOutputs::RetGpr { inst, gpr }
2413
39.1k
        }
2414
0
        fn x64_lzcntw_rm_raw(&mut self, rm16: &GprMem) -> AssemblerOutputs {
2415
            // Convert ISLE types to assembler types.
2416
0
            let r16 = cranelift_assembler_x64::Gpr::new(self.temp_writable_gpr()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
2417
0
            let rm16 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
2418
2419
            // Build the instruction.
2420
0
            let inst = cranelift_assembler_x64::inst::lzcntw_rm::new(r16.clone(), rm16.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
2421
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
2422
2423
            // Return a type ISLE can work with.
2424
0
            let gpr = r16.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
2425
0
            AssemblerOutputs::RetGpr { inst, gpr }
2426
0
        }
2427
30.2k
        fn x64_lzcntl_rm_raw(&mut self, rm32: &GprMem) -> AssemblerOutputs {
2428
            // Convert ISLE types to assembler types.
2429
30.2k
            let r32 = cranelift_assembler_x64::Gpr::new(self.temp_writable_gpr()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
2430
30.2k
            let rm32 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
2431
2432
            // Build the instruction.
2433
30.2k
            let inst = cranelift_assembler_x64::inst::lzcntl_rm::new(r32.clone(), rm32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
2434
30.2k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
2435
2436
            // Return a type ISLE can work with.
2437
30.2k
            let gpr = r32.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
2438
30.2k
            AssemblerOutputs::RetGpr { inst, gpr }
2439
30.2k
        }
2440
18.8k
        fn x64_lzcntq_rm_raw(&mut self, rm64: &GprMem) -> AssemblerOutputs {
2441
            // Convert ISLE types to assembler types.
2442
18.8k
            let r64 = cranelift_assembler_x64::Gpr::new(self.temp_writable_gpr()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
2443
18.8k
            let rm64 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
2444
2445
            // Build the instruction.
2446
18.8k
            let inst = cranelift_assembler_x64::inst::lzcntq_rm::new(r64.clone(), rm64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
2447
18.8k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
2448
2449
            // Return a type ISLE can work with.
2450
18.8k
            let gpr = r64.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
2451
18.8k
            AssemblerOutputs::RetGpr { inst, gpr }
2452
18.8k
        }
2453
0
        fn x64_popcntw_rm_raw(&mut self, rm16: &GprMem) -> AssemblerOutputs {
2454
            // Convert ISLE types to assembler types.
2455
0
            let r16 = cranelift_assembler_x64::Gpr::new(self.temp_writable_gpr()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
2456
0
            let rm16 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
2457
2458
            // Build the instruction.
2459
0
            let inst = cranelift_assembler_x64::inst::popcntw_rm::new(r16.clone(), rm16.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
2460
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
2461
2462
            // Return a type ISLE can work with.
2463
0
            let gpr = r16.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
2464
0
            AssemblerOutputs::RetGpr { inst, gpr }
2465
0
        }
2466
39.5k
        fn x64_popcntl_rm_raw(&mut self, rm32: &GprMem) -> AssemblerOutputs {
2467
            // Convert ISLE types to assembler types.
2468
39.5k
            let r32 = cranelift_assembler_x64::Gpr::new(self.temp_writable_gpr()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
2469
39.5k
            let rm32 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
2470
2471
            // Build the instruction.
2472
39.5k
            let inst = cranelift_assembler_x64::inst::popcntl_rm::new(r32.clone(), rm32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
2473
39.5k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
2474
2475
            // Return a type ISLE can work with.
2476
39.5k
            let gpr = r32.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
2477
39.5k
            AssemblerOutputs::RetGpr { inst, gpr }
2478
39.5k
        }
2479
62.8k
        fn x64_popcntq_rm_raw(&mut self, rm64: &GprMem) -> AssemblerOutputs {
2480
            // Convert ISLE types to assembler types.
2481
62.8k
            let r64 = cranelift_assembler_x64::Gpr::new(self.temp_writable_gpr()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
2482
62.8k
            let rm64 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
2483
2484
            // Build the instruction.
2485
62.8k
            let inst = cranelift_assembler_x64::inst::popcntq_rm::new(r64.clone(), rm64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
2486
62.8k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
2487
2488
            // Return a type ISLE can work with.
2489
62.8k
            let gpr = r64.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
2490
62.8k
            AssemblerOutputs::RetGpr { inst, gpr }
2491
62.8k
        }
2492
0
        fn x64_btw_mr_raw(&mut self, rm16: &GprMem, r16: Gpr) -> AssemblerOutputs {
2493
            // Convert ISLE types to assembler types.
2494
0
            let rm16 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
2495
0
            let r16 = cranelift_assembler_x64::Gpr::new(r16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
2496
2497
            // Build the instruction.
2498
0
            let inst = cranelift_assembler_x64::inst::btw_mr::new(rm16.clone(), r16.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
2499
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
2500
2501
            // Return a type ISLE can work with.
2502
0
            AssemblerOutputs::SideEffect { inst }
2503
0
        }
2504
54
        fn x64_btl_mr_raw(&mut self, rm32: &GprMem, r32: Gpr) -> AssemblerOutputs {
2505
            // Convert ISLE types to assembler types.
2506
54
            let rm32 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
2507
54
            let r32 = cranelift_assembler_x64::Gpr::new(r32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
2508
2509
            // Build the instruction.
2510
54
            let inst = cranelift_assembler_x64::inst::btl_mr::new(rm32.clone(), r32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
2511
54
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
2512
2513
            // Return a type ISLE can work with.
2514
54
            AssemblerOutputs::SideEffect { inst }
2515
54
        }
2516
16
        fn x64_btq_mr_raw(&mut self, rm64: &GprMem, r64: Gpr) -> AssemblerOutputs {
2517
            // Convert ISLE types to assembler types.
2518
16
            let rm64 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
2519
16
            let r64 = cranelift_assembler_x64::Gpr::new(r64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
2520
2521
            // Build the instruction.
2522
16
            let inst = cranelift_assembler_x64::inst::btq_mr::new(rm64.clone(), r64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
2523
16
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
2524
2525
            // Return a type ISLE can work with.
2526
16
            AssemblerOutputs::SideEffect { inst }
2527
16
        }
2528
0
        fn x64_btw_mi_raw(&mut self, rm16: &GprMem, imm8: u8) -> AssemblerOutputs {
2529
            // Convert ISLE types to assembler types.
2530
0
            let rm16 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
2531
0
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
2532
2533
            // Build the instruction.
2534
0
            let inst = cranelift_assembler_x64::inst::btw_mi::new(rm16.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
2535
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
2536
2537
            // Return a type ISLE can work with.
2538
0
            AssemblerOutputs::SideEffect { inst }
2539
0
        }
2540
0
        fn x64_btl_mi_raw(&mut self, rm32: &GprMem, imm8: u8) -> AssemblerOutputs {
2541
            // Convert ISLE types to assembler types.
2542
0
            let rm32 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
2543
0
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
2544
2545
            // Build the instruction.
2546
0
            let inst = cranelift_assembler_x64::inst::btl_mi::new(rm32.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
2547
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
2548
2549
            // Return a type ISLE can work with.
2550
0
            AssemblerOutputs::SideEffect { inst }
2551
0
        }
2552
0
        fn x64_btq_mi_raw(&mut self, rm64: &GprMem, imm8: u8) -> AssemblerOutputs {
2553
            // Convert ISLE types to assembler types.
2554
0
            let rm64 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
2555
0
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
2556
2557
            // Build the instruction.
2558
0
            let inst = cranelift_assembler_x64::inst::btq_mi::new(rm64.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
2559
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
2560
2561
            // Return a type ISLE can work with.
2562
0
            AssemblerOutputs::SideEffect { inst }
2563
0
        }
2564
72
        fn x64_cbtw_zo_raw(&mut self, ax: Gpr) -> AssemblerOutputs {
2565
            // Convert ISLE types to assembler types.
2566
72
            let ax = self.convert_gpr_to_assembler_fixed_read_write_gpr(ax); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
2567
2568
            // Build the instruction.
2569
72
            let inst = cranelift_assembler_x64::inst::cbtw_zo::new(ax.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
2570
72
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
2571
2572
            // Return a type ISLE can work with.
2573
72
            let gpr = ax.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
2574
72
            AssemblerOutputs::RetGpr { inst, gpr }
2575
72
        }
2576
0
        fn x64_cwtl_zo_raw(&mut self, eax: Gpr) -> AssemblerOutputs {
2577
            // Convert ISLE types to assembler types.
2578
0
            let eax = self.convert_gpr_to_assembler_fixed_read_write_gpr(eax); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
2579
2580
            // Build the instruction.
2581
0
            let inst = cranelift_assembler_x64::inst::cwtl_zo::new(eax.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
2582
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
2583
2584
            // Return a type ISLE can work with.
2585
0
            let gpr = eax.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
2586
0
            AssemblerOutputs::RetGpr { inst, gpr }
2587
0
        }
2588
0
        fn x64_cltq_zo_raw(&mut self, rax: Gpr) -> AssemblerOutputs {
2589
            // Convert ISLE types to assembler types.
2590
0
            let rax = self.convert_gpr_to_assembler_fixed_read_write_gpr(rax); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
2591
2592
            // Build the instruction.
2593
0
            let inst = cranelift_assembler_x64::inst::cltq_zo::new(rax.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
2594
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
2595
2596
            // Return a type ISLE can work with.
2597
0
            let gpr = rax.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
2598
0
            AssemblerOutputs::RetGpr { inst, gpr }
2599
0
        }
2600
166
        fn x64_cwtd_zo_raw(&mut self, ax: Gpr) -> AssemblerOutputs {
2601
            // Convert ISLE types to assembler types.
2602
166
            let dx = cranelift_assembler_x64::Fixed(self.temp_writable_gpr()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
2603
166
            let ax = cranelift_assembler_x64::Fixed(ax); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
2604
2605
            // Build the instruction.
2606
166
            let inst = cranelift_assembler_x64::inst::cwtd_zo::new(dx.clone(), ax.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
2607
166
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
2608
2609
            // Return a type ISLE can work with.
2610
166
            let gpr = dx.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
2611
166
            AssemblerOutputs::RetGpr { inst, gpr }
2612
166
        }
2613
16.0k
        fn x64_cltd_zo_raw(&mut self, eax: Gpr) -> AssemblerOutputs {
2614
            // Convert ISLE types to assembler types.
2615
16.0k
            let edx = cranelift_assembler_x64::Fixed(self.temp_writable_gpr()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
2616
16.0k
            let eax = cranelift_assembler_x64::Fixed(eax); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
2617
2618
            // Build the instruction.
2619
16.0k
            let inst = cranelift_assembler_x64::inst::cltd_zo::new(edx.clone(), eax.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
2620
16.0k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
2621
2622
            // Return a type ISLE can work with.
2623
16.0k
            let gpr = edx.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
2624
16.0k
            AssemblerOutputs::RetGpr { inst, gpr }
2625
16.0k
        }
2626
6.47k
        fn x64_cqto_zo_raw(&mut self, rax: Gpr) -> AssemblerOutputs {
2627
            // Convert ISLE types to assembler types.
2628
6.47k
            let rdx = cranelift_assembler_x64::Fixed(self.temp_writable_gpr()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
2629
6.47k
            let rax = cranelift_assembler_x64::Fixed(rax); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
2630
2631
            // Build the instruction.
2632
6.47k
            let inst = cranelift_assembler_x64::inst::cqto_zo::new(rdx.clone(), rax.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
2633
6.47k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
2634
2635
            // Return a type ISLE can work with.
2636
6.47k
            let gpr = rdx.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
2637
6.47k
            AssemblerOutputs::RetGpr { inst, gpr }
2638
6.47k
        }
2639
68
        fn x64_bswapl_o_raw(&mut self, r32: Gpr) -> AssemblerOutputs {
2640
            // Convert ISLE types to assembler types.
2641
68
            let r32 = self.convert_gpr_to_assembler_read_write_gpr(r32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
2642
2643
            // Build the instruction.
2644
68
            let inst = cranelift_assembler_x64::inst::bswapl_o::new(r32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
2645
68
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
2646
2647
            // Return a type ISLE can work with.
2648
68
            let gpr = r32.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
2649
68
            AssemblerOutputs::RetGpr { inst, gpr }
2650
68
        }
2651
290
        fn x64_bswapq_o_raw(&mut self, r64: Gpr) -> AssemblerOutputs {
2652
            // Convert ISLE types to assembler types.
2653
290
            let r64 = self.convert_gpr_to_assembler_read_write_gpr(r64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
2654
2655
            // Build the instruction.
2656
290
            let inst = cranelift_assembler_x64::inst::bswapq_o::new(r64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
2657
290
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
2658
2659
            // Return a type ISLE can work with.
2660
290
            let gpr = r64.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
2661
290
            AssemblerOutputs::RetGpr { inst, gpr }
2662
290
        }
2663
2
        fn x64_blsrl_vm_raw(&mut self, rm32: &GprMem) -> AssemblerOutputs {
2664
            // Convert ISLE types to assembler types.
2665
2
            let r32 = cranelift_assembler_x64::Gpr::new(self.temp_writable_gpr()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
2666
2
            let rm32 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
2667
2668
            // Build the instruction.
2669
2
            let inst = cranelift_assembler_x64::inst::blsrl_vm::new(r32.clone(), rm32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
2670
2
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
2671
2672
            // Return a type ISLE can work with.
2673
2
            let gpr = r32.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
2674
2
            AssemblerOutputs::RetGpr { inst, gpr }
2675
2
        }
2676
144
        fn x64_blsrq_vm_raw(&mut self, rm64: &GprMem) -> AssemblerOutputs {
2677
            // Convert ISLE types to assembler types.
2678
144
            let r64 = cranelift_assembler_x64::Gpr::new(self.temp_writable_gpr()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
2679
144
            let rm64 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
2680
2681
            // Build the instruction.
2682
144
            let inst = cranelift_assembler_x64::inst::blsrq_vm::new(r64.clone(), rm64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
2683
144
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
2684
2685
            // Return a type ISLE can work with.
2686
144
            let gpr = r64.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
2687
144
            AssemblerOutputs::RetGpr { inst, gpr }
2688
144
        }
2689
2
        fn x64_blsmskl_vm_raw(&mut self, rm32: &GprMem) -> AssemblerOutputs {
2690
            // Convert ISLE types to assembler types.
2691
2
            let r32 = cranelift_assembler_x64::Gpr::new(self.temp_writable_gpr()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
2692
2
            let rm32 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
2693
2694
            // Build the instruction.
2695
2
            let inst = cranelift_assembler_x64::inst::blsmskl_vm::new(r32.clone(), rm32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
2696
2
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
2697
2698
            // Return a type ISLE can work with.
2699
2
            let gpr = r32.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
2700
2
            AssemblerOutputs::RetGpr { inst, gpr }
2701
2
        }
2702
0
        fn x64_blsmskq_vm_raw(&mut self, rm64: &GprMem) -> AssemblerOutputs {
2703
            // Convert ISLE types to assembler types.
2704
0
            let r64 = cranelift_assembler_x64::Gpr::new(self.temp_writable_gpr()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
2705
0
            let rm64 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
2706
2707
            // Build the instruction.
2708
0
            let inst = cranelift_assembler_x64::inst::blsmskq_vm::new(r64.clone(), rm64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
2709
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
2710
2711
            // Return a type ISLE can work with.
2712
0
            let gpr = r64.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
2713
0
            AssemblerOutputs::RetGpr { inst, gpr }
2714
0
        }
2715
0
        fn x64_blsil_vm_raw(&mut self, rm32: &GprMem) -> AssemblerOutputs {
2716
            // Convert ISLE types to assembler types.
2717
0
            let r32 = cranelift_assembler_x64::Gpr::new(self.temp_writable_gpr()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
2718
0
            let rm32 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
2719
2720
            // Build the instruction.
2721
0
            let inst = cranelift_assembler_x64::inst::blsil_vm::new(r32.clone(), rm32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
2722
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
2723
2724
            // Return a type ISLE can work with.
2725
0
            let gpr = r32.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
2726
0
            AssemblerOutputs::RetGpr { inst, gpr }
2727
0
        }
2728
10
        fn x64_blsiq_vm_raw(&mut self, rm64: &GprMem) -> AssemblerOutputs {
2729
            // Convert ISLE types to assembler types.
2730
10
            let r64 = cranelift_assembler_x64::Gpr::new(self.temp_writable_gpr()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
2731
10
            let rm64 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
2732
2733
            // Build the instruction.
2734
10
            let inst = cranelift_assembler_x64::inst::blsiq_vm::new(r64.clone(), rm64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
2735
10
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
2736
2737
            // Return a type ISLE can work with.
2738
10
            let gpr = r64.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
2739
10
            AssemblerOutputs::RetGpr { inst, gpr }
2740
10
        }
2741
5
        fn x64_bzhil_rmv_raw(&mut self, rm32: &GprMem, r32b: Gpr) -> AssemblerOutputs {
2742
            // Convert ISLE types to assembler types.
2743
5
            let r32a = cranelift_assembler_x64::Gpr::new(self.temp_writable_gpr()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
2744
5
            let rm32 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
2745
5
            let r32b = cranelift_assembler_x64::Gpr::new(r32b); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
2746
2747
            // Build the instruction.
2748
5
            let inst = cranelift_assembler_x64::inst::bzhil_rmv::new(r32a.clone(), rm32.clone(), r32b.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
2749
5
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
2750
2751
            // Return a type ISLE can work with.
2752
5
            let gpr = r32a.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
2753
5
            AssemblerOutputs::RetGpr { inst, gpr }
2754
5
        }
2755
0
        fn x64_bzhiq_rmv_raw(&mut self, rm64: &GprMem, r64b: Gpr) -> AssemblerOutputs {
2756
            // Convert ISLE types to assembler types.
2757
0
            let r64a = cranelift_assembler_x64::Gpr::new(self.temp_writable_gpr()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
2758
0
            let rm64 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
2759
0
            let r64b = cranelift_assembler_x64::Gpr::new(r64b); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
2760
2761
            // Build the instruction.
2762
0
            let inst = cranelift_assembler_x64::inst::bzhiq_rmv::new(r64a.clone(), rm64.clone(), r64b.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
2763
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
2764
2765
            // Return a type ISLE can work with.
2766
0
            let gpr = r64a.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
2767
0
            AssemblerOutputs::RetGpr { inst, gpr }
2768
0
        }
2769
0
        fn x64_vpopcntb_a_raw(&mut self, xmm_m128: &XmmMem) -> AssemblerOutputs {
2770
            // Convert ISLE types to assembler types.
2771
0
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
2772
0
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
2773
2774
            // Build the instruction.
2775
0
            let inst = cranelift_assembler_x64::inst::vpopcntb_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
2776
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
2777
2778
            // Return a type ISLE can work with.
2779
0
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
2780
0
            AssemblerOutputs::RetXmm { inst, xmm }
2781
0
        }
2782
0
        fn x64_vpopcntw_a_raw(&mut self, xmm_m128: &XmmMem) -> AssemblerOutputs {
2783
            // Convert ISLE types to assembler types.
2784
0
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
2785
0
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
2786
2787
            // Build the instruction.
2788
0
            let inst = cranelift_assembler_x64::inst::vpopcntw_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
2789
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
2790
2791
            // Return a type ISLE can work with.
2792
0
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
2793
0
            AssemblerOutputs::RetXmm { inst, xmm }
2794
0
        }
2795
0
        fn x64_cmovaw_rm_raw(&mut self, r16: Gpr, rm16: &GprMem) -> AssemblerOutputs {
2796
            // Convert ISLE types to assembler types.
2797
0
            let r16 = self.convert_gpr_to_assembler_read_write_gpr(r16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
2798
0
            let rm16 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
2799
2800
            // Build the instruction.
2801
0
            let inst = cranelift_assembler_x64::inst::cmovaw_rm::new(r16.clone(), rm16.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
2802
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
2803
2804
            // Return a type ISLE can work with.
2805
0
            let gpr = r16.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
2806
0
            AssemblerOutputs::RetGpr { inst, gpr }
2807
0
        }
2808
542
        fn x64_cmoval_rm_raw(&mut self, r32: Gpr, rm32: &GprMem) -> AssemblerOutputs {
2809
            // Convert ISLE types to assembler types.
2810
542
            let r32 = self.convert_gpr_to_assembler_read_write_gpr(r32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
2811
542
            let rm32 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
2812
2813
            // Build the instruction.
2814
542
            let inst = cranelift_assembler_x64::inst::cmoval_rm::new(r32.clone(), rm32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
2815
542
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
2816
2817
            // Return a type ISLE can work with.
2818
542
            let gpr = r32.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
2819
542
            AssemblerOutputs::RetGpr { inst, gpr }
2820
542
        }
2821
211k
        fn x64_cmovaq_rm_raw(&mut self, r64: Gpr, rm64: &GprMem) -> AssemblerOutputs {
2822
            // Convert ISLE types to assembler types.
2823
211k
            let r64 = self.convert_gpr_to_assembler_read_write_gpr(r64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
2824
211k
            let rm64 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
2825
2826
            // Build the instruction.
2827
211k
            let inst = cranelift_assembler_x64::inst::cmovaq_rm::new(r64.clone(), rm64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
2828
211k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
2829
2830
            // Return a type ISLE can work with.
2831
211k
            let gpr = r64.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
2832
211k
            AssemblerOutputs::RetGpr { inst, gpr }
2833
211k
        }
2834
0
        fn x64_cmovaew_rm_raw(&mut self, r16: Gpr, rm16: &GprMem) -> AssemblerOutputs {
2835
            // Convert ISLE types to assembler types.
2836
0
            let r16 = self.convert_gpr_to_assembler_read_write_gpr(r16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
2837
0
            let rm16 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
2838
2839
            // Build the instruction.
2840
0
            let inst = cranelift_assembler_x64::inst::cmovaew_rm::new(r16.clone(), rm16.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
2841
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
2842
2843
            // Return a type ISLE can work with.
2844
0
            let gpr = r16.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
2845
0
            AssemblerOutputs::RetGpr { inst, gpr }
2846
0
        }
2847
560
        fn x64_cmovael_rm_raw(&mut self, r32: Gpr, rm32: &GprMem) -> AssemblerOutputs {
2848
            // Convert ISLE types to assembler types.
2849
560
            let r32 = self.convert_gpr_to_assembler_read_write_gpr(r32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
2850
560
            let rm32 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
2851
2852
            // Build the instruction.
2853
560
            let inst = cranelift_assembler_x64::inst::cmovael_rm::new(r32.clone(), rm32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
2854
560
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
2855
2856
            // Return a type ISLE can work with.
2857
560
            let gpr = r32.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
2858
560
            AssemblerOutputs::RetGpr { inst, gpr }
2859
560
        }
2860
44.2k
        fn x64_cmovaeq_rm_raw(&mut self, r64: Gpr, rm64: &GprMem) -> AssemblerOutputs {
2861
            // Convert ISLE types to assembler types.
2862
44.2k
            let r64 = self.convert_gpr_to_assembler_read_write_gpr(r64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
2863
44.2k
            let rm64 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
2864
2865
            // Build the instruction.
2866
44.2k
            let inst = cranelift_assembler_x64::inst::cmovaeq_rm::new(r64.clone(), rm64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
2867
44.2k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
2868
2869
            // Return a type ISLE can work with.
2870
44.2k
            let gpr = r64.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
2871
44.2k
            AssemblerOutputs::RetGpr { inst, gpr }
2872
44.2k
        }
2873
0
        fn x64_cmovbw_rm_raw(&mut self, r16: Gpr, rm16: &GprMem) -> AssemblerOutputs {
2874
            // Convert ISLE types to assembler types.
2875
0
            let r16 = self.convert_gpr_to_assembler_read_write_gpr(r16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
2876
0
            let rm16 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
2877
2878
            // Build the instruction.
2879
0
            let inst = cranelift_assembler_x64::inst::cmovbw_rm::new(r16.clone(), rm16.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
2880
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
2881
2882
            // Return a type ISLE can work with.
2883
0
            let gpr = r16.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
2884
0
            AssemblerOutputs::RetGpr { inst, gpr }
2885
0
        }
2886
165k
        fn x64_cmovbl_rm_raw(&mut self, r32: Gpr, rm32: &GprMem) -> AssemblerOutputs {
2887
            // Convert ISLE types to assembler types.
2888
165k
            let r32 = self.convert_gpr_to_assembler_read_write_gpr(r32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
2889
165k
            let rm32 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
2890
2891
            // Build the instruction.
2892
165k
            let inst = cranelift_assembler_x64::inst::cmovbl_rm::new(r32.clone(), rm32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
2893
165k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
2894
2895
            // Return a type ISLE can work with.
2896
165k
            let gpr = r32.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
2897
165k
            AssemblerOutputs::RetGpr { inst, gpr }
2898
165k
        }
2899
628
        fn x64_cmovbq_rm_raw(&mut self, r64: Gpr, rm64: &GprMem) -> AssemblerOutputs {
2900
            // Convert ISLE types to assembler types.
2901
628
            let r64 = self.convert_gpr_to_assembler_read_write_gpr(r64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
2902
628
            let rm64 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
2903
2904
            // Build the instruction.
2905
628
            let inst = cranelift_assembler_x64::inst::cmovbq_rm::new(r64.clone(), rm64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
2906
628
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
2907
2908
            // Return a type ISLE can work with.
2909
628
            let gpr = r64.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
2910
628
            AssemblerOutputs::RetGpr { inst, gpr }
2911
628
        }
2912
0
        fn x64_cmovbew_rm_raw(&mut self, r16: Gpr, rm16: &GprMem) -> AssemblerOutputs {
2913
            // Convert ISLE types to assembler types.
2914
0
            let r16 = self.convert_gpr_to_assembler_read_write_gpr(r16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
2915
0
            let rm16 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
2916
2917
            // Build the instruction.
2918
0
            let inst = cranelift_assembler_x64::inst::cmovbew_rm::new(r16.clone(), rm16.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
2919
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
2920
2921
            // Return a type ISLE can work with.
2922
0
            let gpr = r16.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
2923
0
            AssemblerOutputs::RetGpr { inst, gpr }
2924
0
        }
2925
46
        fn x64_cmovbel_rm_raw(&mut self, r32: Gpr, rm32: &GprMem) -> AssemblerOutputs {
2926
            // Convert ISLE types to assembler types.
2927
46
            let r32 = self.convert_gpr_to_assembler_read_write_gpr(r32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
2928
46
            let rm32 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
2929
2930
            // Build the instruction.
2931
46
            let inst = cranelift_assembler_x64::inst::cmovbel_rm::new(r32.clone(), rm32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
2932
46
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
2933
2934
            // Return a type ISLE can work with.
2935
46
            let gpr = r32.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
2936
46
            AssemblerOutputs::RetGpr { inst, gpr }
2937
46
        }
2938
45.2k
        fn x64_cmovbeq_rm_raw(&mut self, r64: Gpr, rm64: &GprMem) -> AssemblerOutputs {
2939
            // Convert ISLE types to assembler types.
2940
45.2k
            let r64 = self.convert_gpr_to_assembler_read_write_gpr(r64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
2941
45.2k
            let rm64 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
2942
2943
            // Build the instruction.
2944
45.2k
            let inst = cranelift_assembler_x64::inst::cmovbeq_rm::new(r64.clone(), rm64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
2945
45.2k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
2946
2947
            // Return a type ISLE can work with.
2948
45.2k
            let gpr = r64.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
2949
45.2k
            AssemblerOutputs::RetGpr { inst, gpr }
2950
45.2k
        }
2951
0
        fn x64_cmovew_rm_raw(&mut self, r16: Gpr, rm16: &GprMem) -> AssemblerOutputs {
2952
            // Convert ISLE types to assembler types.
2953
0
            let r16 = self.convert_gpr_to_assembler_read_write_gpr(r16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
2954
0
            let rm16 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
2955
2956
            // Build the instruction.
2957
0
            let inst = cranelift_assembler_x64::inst::cmovew_rm::new(r16.clone(), rm16.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
2958
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
2959
2960
            // Return a type ISLE can work with.
2961
0
            let gpr = r16.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
2962
0
            AssemblerOutputs::RetGpr { inst, gpr }
2963
0
        }
2964
15.6k
        fn x64_cmovel_rm_raw(&mut self, r32: Gpr, rm32: &GprMem) -> AssemblerOutputs {
2965
            // Convert ISLE types to assembler types.
2966
15.6k
            let r32 = self.convert_gpr_to_assembler_read_write_gpr(r32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
2967
15.6k
            let rm32 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
2968
2969
            // Build the instruction.
2970
15.6k
            let inst = cranelift_assembler_x64::inst::cmovel_rm::new(r32.clone(), rm32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
2971
15.6k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
2972
2973
            // Return a type ISLE can work with.
2974
15.6k
            let gpr = r32.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
2975
15.6k
            AssemblerOutputs::RetGpr { inst, gpr }
2976
15.6k
        }
2977
55.5k
        fn x64_cmoveq_rm_raw(&mut self, r64: Gpr, rm64: &GprMem) -> AssemblerOutputs {
2978
            // Convert ISLE types to assembler types.
2979
55.5k
            let r64 = self.convert_gpr_to_assembler_read_write_gpr(r64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
2980
55.5k
            let rm64 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
2981
2982
            // Build the instruction.
2983
55.5k
            let inst = cranelift_assembler_x64::inst::cmoveq_rm::new(r64.clone(), rm64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
2984
55.5k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
2985
2986
            // Return a type ISLE can work with.
2987
55.5k
            let gpr = r64.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
2988
55.5k
            AssemblerOutputs::RetGpr { inst, gpr }
2989
55.5k
        }
2990
0
        fn x64_cmovgw_rm_raw(&mut self, r16: Gpr, rm16: &GprMem) -> AssemblerOutputs {
2991
            // Convert ISLE types to assembler types.
2992
0
            let r16 = self.convert_gpr_to_assembler_read_write_gpr(r16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
2993
0
            let rm16 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
2994
2995
            // Build the instruction.
2996
0
            let inst = cranelift_assembler_x64::inst::cmovgw_rm::new(r16.clone(), rm16.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
2997
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
2998
2999
            // Return a type ISLE can work with.
3000
0
            let gpr = r16.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
3001
0
            AssemblerOutputs::RetGpr { inst, gpr }
3002
0
        }
3003
44
        fn x64_cmovgl_rm_raw(&mut self, r32: Gpr, rm32: &GprMem) -> AssemblerOutputs {
3004
            // Convert ISLE types to assembler types.
3005
44
            let r32 = self.convert_gpr_to_assembler_read_write_gpr(r32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
3006
44
            let rm32 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
3007
3008
            // Build the instruction.
3009
44
            let inst = cranelift_assembler_x64::inst::cmovgl_rm::new(r32.clone(), rm32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
3010
44
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
3011
3012
            // Return a type ISLE can work with.
3013
44
            let gpr = r32.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
3014
44
            AssemblerOutputs::RetGpr { inst, gpr }
3015
44
        }
3016
9
        fn x64_cmovgq_rm_raw(&mut self, r64: Gpr, rm64: &GprMem) -> AssemblerOutputs {
3017
            // Convert ISLE types to assembler types.
3018
9
            let r64 = self.convert_gpr_to_assembler_read_write_gpr(r64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
3019
9
            let rm64 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
3020
3021
            // Build the instruction.
3022
9
            let inst = cranelift_assembler_x64::inst::cmovgq_rm::new(r64.clone(), rm64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
3023
9
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
3024
3025
            // Return a type ISLE can work with.
3026
9
            let gpr = r64.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
3027
9
            AssemblerOutputs::RetGpr { inst, gpr }
3028
9
        }
3029
0
        fn x64_cmovgew_rm_raw(&mut self, r16: Gpr, rm16: &GprMem) -> AssemblerOutputs {
3030
            // Convert ISLE types to assembler types.
3031
0
            let r16 = self.convert_gpr_to_assembler_read_write_gpr(r16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
3032
0
            let rm16 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
3033
3034
            // Build the instruction.
3035
0
            let inst = cranelift_assembler_x64::inst::cmovgew_rm::new(r16.clone(), rm16.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
3036
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
3037
3038
            // Return a type ISLE can work with.
3039
0
            let gpr = r16.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
3040
0
            AssemblerOutputs::RetGpr { inst, gpr }
3041
0
        }
3042
429
        fn x64_cmovgel_rm_raw(&mut self, r32: Gpr, rm32: &GprMem) -> AssemblerOutputs {
3043
            // Convert ISLE types to assembler types.
3044
429
            let r32 = self.convert_gpr_to_assembler_read_write_gpr(r32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
3045
429
            let rm32 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
3046
3047
            // Build the instruction.
3048
429
            let inst = cranelift_assembler_x64::inst::cmovgel_rm::new(r32.clone(), rm32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
3049
429
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
3050
3051
            // Return a type ISLE can work with.
3052
429
            let gpr = r32.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
3053
429
            AssemblerOutputs::RetGpr { inst, gpr }
3054
429
        }
3055
43
        fn x64_cmovgeq_rm_raw(&mut self, r64: Gpr, rm64: &GprMem) -> AssemblerOutputs {
3056
            // Convert ISLE types to assembler types.
3057
43
            let r64 = self.convert_gpr_to_assembler_read_write_gpr(r64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
3058
43
            let rm64 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
3059
3060
            // Build the instruction.
3061
43
            let inst = cranelift_assembler_x64::inst::cmovgeq_rm::new(r64.clone(), rm64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
3062
43
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
3063
3064
            // Return a type ISLE can work with.
3065
43
            let gpr = r64.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
3066
43
            AssemblerOutputs::RetGpr { inst, gpr }
3067
43
        }
3068
0
        fn x64_cmovlw_rm_raw(&mut self, r16: Gpr, rm16: &GprMem) -> AssemblerOutputs {
3069
            // Convert ISLE types to assembler types.
3070
0
            let r16 = self.convert_gpr_to_assembler_read_write_gpr(r16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
3071
0
            let rm16 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
3072
3073
            // Build the instruction.
3074
0
            let inst = cranelift_assembler_x64::inst::cmovlw_rm::new(r16.clone(), rm16.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
3075
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
3076
3077
            // Return a type ISLE can work with.
3078
0
            let gpr = r16.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
3079
0
            AssemblerOutputs::RetGpr { inst, gpr }
3080
0
        }
3081
131
        fn x64_cmovll_rm_raw(&mut self, r32: Gpr, rm32: &GprMem) -> AssemblerOutputs {
3082
            // Convert ISLE types to assembler types.
3083
131
            let r32 = self.convert_gpr_to_assembler_read_write_gpr(r32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
3084
131
            let rm32 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
3085
3086
            // Build the instruction.
3087
131
            let inst = cranelift_assembler_x64::inst::cmovll_rm::new(r32.clone(), rm32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
3088
131
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
3089
3090
            // Return a type ISLE can work with.
3091
131
            let gpr = r32.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
3092
131
            AssemblerOutputs::RetGpr { inst, gpr }
3093
131
        }
3094
82
        fn x64_cmovlq_rm_raw(&mut self, r64: Gpr, rm64: &GprMem) -> AssemblerOutputs {
3095
            // Convert ISLE types to assembler types.
3096
82
            let r64 = self.convert_gpr_to_assembler_read_write_gpr(r64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
3097
82
            let rm64 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
3098
3099
            // Build the instruction.
3100
82
            let inst = cranelift_assembler_x64::inst::cmovlq_rm::new(r64.clone(), rm64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
3101
82
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
3102
3103
            // Return a type ISLE can work with.
3104
82
            let gpr = r64.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
3105
82
            AssemblerOutputs::RetGpr { inst, gpr }
3106
82
        }
3107
0
        fn x64_cmovlew_rm_raw(&mut self, r16: Gpr, rm16: &GprMem) -> AssemblerOutputs {
3108
            // Convert ISLE types to assembler types.
3109
0
            let r16 = self.convert_gpr_to_assembler_read_write_gpr(r16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
3110
0
            let rm16 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
3111
3112
            // Build the instruction.
3113
0
            let inst = cranelift_assembler_x64::inst::cmovlew_rm::new(r16.clone(), rm16.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
3114
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
3115
3116
            // Return a type ISLE can work with.
3117
0
            let gpr = r16.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
3118
0
            AssemblerOutputs::RetGpr { inst, gpr }
3119
0
        }
3120
36
        fn x64_cmovlel_rm_raw(&mut self, r32: Gpr, rm32: &GprMem) -> AssemblerOutputs {
3121
            // Convert ISLE types to assembler types.
3122
36
            let r32 = self.convert_gpr_to_assembler_read_write_gpr(r32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
3123
36
            let rm32 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
3124
3125
            // Build the instruction.
3126
36
            let inst = cranelift_assembler_x64::inst::cmovlel_rm::new(r32.clone(), rm32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
3127
36
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
3128
3129
            // Return a type ISLE can work with.
3130
36
            let gpr = r32.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
3131
36
            AssemblerOutputs::RetGpr { inst, gpr }
3132
36
        }
3133
14
        fn x64_cmovleq_rm_raw(&mut self, r64: Gpr, rm64: &GprMem) -> AssemblerOutputs {
3134
            // Convert ISLE types to assembler types.
3135
14
            let r64 = self.convert_gpr_to_assembler_read_write_gpr(r64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
3136
14
            let rm64 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
3137
3138
            // Build the instruction.
3139
14
            let inst = cranelift_assembler_x64::inst::cmovleq_rm::new(r64.clone(), rm64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
3140
14
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
3141
3142
            // Return a type ISLE can work with.
3143
14
            let gpr = r64.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
3144
14
            AssemblerOutputs::RetGpr { inst, gpr }
3145
14
        }
3146
0
        fn x64_cmovnew_rm_raw(&mut self, r16: Gpr, rm16: &GprMem) -> AssemblerOutputs {
3147
            // Convert ISLE types to assembler types.
3148
0
            let r16 = self.convert_gpr_to_assembler_read_write_gpr(r16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
3149
0
            let rm16 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
3150
3151
            // Build the instruction.
3152
0
            let inst = cranelift_assembler_x64::inst::cmovnew_rm::new(r16.clone(), rm16.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
3153
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
3154
3155
            // Return a type ISLE can work with.
3156
0
            let gpr = r16.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
3157
0
            AssemblerOutputs::RetGpr { inst, gpr }
3158
0
        }
3159
24.5k
        fn x64_cmovnel_rm_raw(&mut self, r32: Gpr, rm32: &GprMem) -> AssemblerOutputs {
3160
            // Convert ISLE types to assembler types.
3161
24.5k
            let r32 = self.convert_gpr_to_assembler_read_write_gpr(r32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
3162
24.5k
            let rm32 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
3163
3164
            // Build the instruction.
3165
24.5k
            let inst = cranelift_assembler_x64::inst::cmovnel_rm::new(r32.clone(), rm32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
3166
24.5k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
3167
3168
            // Return a type ISLE can work with.
3169
24.5k
            let gpr = r32.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
3170
24.5k
            AssemblerOutputs::RetGpr { inst, gpr }
3171
24.5k
        }
3172
3.94k
        fn x64_cmovneq_rm_raw(&mut self, r64: Gpr, rm64: &GprMem) -> AssemblerOutputs {
3173
            // Convert ISLE types to assembler types.
3174
3.94k
            let r64 = self.convert_gpr_to_assembler_read_write_gpr(r64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
3175
3.94k
            let rm64 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
3176
3177
            // Build the instruction.
3178
3.94k
            let inst = cranelift_assembler_x64::inst::cmovneq_rm::new(r64.clone(), rm64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
3179
3.94k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
3180
3181
            // Return a type ISLE can work with.
3182
3.94k
            let gpr = r64.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
3183
3.94k
            AssemblerOutputs::RetGpr { inst, gpr }
3184
3.94k
        }
3185
0
        fn x64_cmovnow_rm_raw(&mut self, r16: Gpr, rm16: &GprMem) -> AssemblerOutputs {
3186
            // Convert ISLE types to assembler types.
3187
0
            let r16 = self.convert_gpr_to_assembler_read_write_gpr(r16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
3188
0
            let rm16 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
3189
3190
            // Build the instruction.
3191
0
            let inst = cranelift_assembler_x64::inst::cmovnow_rm::new(r16.clone(), rm16.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
3192
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
3193
3194
            // Return a type ISLE can work with.
3195
0
            let gpr = r16.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
3196
0
            AssemblerOutputs::RetGpr { inst, gpr }
3197
0
        }
3198
0
        fn x64_cmovnol_rm_raw(&mut self, r32: Gpr, rm32: &GprMem) -> AssemblerOutputs {
3199
            // Convert ISLE types to assembler types.
3200
0
            let r32 = self.convert_gpr_to_assembler_read_write_gpr(r32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
3201
0
            let rm32 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
3202
3203
            // Build the instruction.
3204
0
            let inst = cranelift_assembler_x64::inst::cmovnol_rm::new(r32.clone(), rm32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
3205
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
3206
3207
            // Return a type ISLE can work with.
3208
0
            let gpr = r32.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
3209
0
            AssemblerOutputs::RetGpr { inst, gpr }
3210
0
        }
3211
0
        fn x64_cmovnoq_rm_raw(&mut self, r64: Gpr, rm64: &GprMem) -> AssemblerOutputs {
3212
            // Convert ISLE types to assembler types.
3213
0
            let r64 = self.convert_gpr_to_assembler_read_write_gpr(r64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
3214
0
            let rm64 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
3215
3216
            // Build the instruction.
3217
0
            let inst = cranelift_assembler_x64::inst::cmovnoq_rm::new(r64.clone(), rm64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
3218
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
3219
3220
            // Return a type ISLE can work with.
3221
0
            let gpr = r64.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
3222
0
            AssemblerOutputs::RetGpr { inst, gpr }
3223
0
        }
3224
0
        fn x64_cmovnpw_rm_raw(&mut self, r16: Gpr, rm16: &GprMem) -> AssemblerOutputs {
3225
            // Convert ISLE types to assembler types.
3226
0
            let r16 = self.convert_gpr_to_assembler_read_write_gpr(r16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
3227
0
            let rm16 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
3228
3229
            // Build the instruction.
3230
0
            let inst = cranelift_assembler_x64::inst::cmovnpw_rm::new(r16.clone(), rm16.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
3231
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
3232
3233
            // Return a type ISLE can work with.
3234
0
            let gpr = r16.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
3235
0
            AssemblerOutputs::RetGpr { inst, gpr }
3236
0
        }
3237
0
        fn x64_cmovnpl_rm_raw(&mut self, r32: Gpr, rm32: &GprMem) -> AssemblerOutputs {
3238
            // Convert ISLE types to assembler types.
3239
0
            let r32 = self.convert_gpr_to_assembler_read_write_gpr(r32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
3240
0
            let rm32 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
3241
3242
            // Build the instruction.
3243
0
            let inst = cranelift_assembler_x64::inst::cmovnpl_rm::new(r32.clone(), rm32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
3244
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
3245
3246
            // Return a type ISLE can work with.
3247
0
            let gpr = r32.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
3248
0
            AssemblerOutputs::RetGpr { inst, gpr }
3249
0
        }
3250
0
        fn x64_cmovnpq_rm_raw(&mut self, r64: Gpr, rm64: &GprMem) -> AssemblerOutputs {
3251
            // Convert ISLE types to assembler types.
3252
0
            let r64 = self.convert_gpr_to_assembler_read_write_gpr(r64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
3253
0
            let rm64 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
3254
3255
            // Build the instruction.
3256
0
            let inst = cranelift_assembler_x64::inst::cmovnpq_rm::new(r64.clone(), rm64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
3257
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
3258
3259
            // Return a type ISLE can work with.
3260
0
            let gpr = r64.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
3261
0
            AssemblerOutputs::RetGpr { inst, gpr }
3262
0
        }
3263
0
        fn x64_cmovnsw_rm_raw(&mut self, r16: Gpr, rm16: &GprMem) -> AssemblerOutputs {
3264
            // Convert ISLE types to assembler types.
3265
0
            let r16 = self.convert_gpr_to_assembler_read_write_gpr(r16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
3266
0
            let rm16 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
3267
3268
            // Build the instruction.
3269
0
            let inst = cranelift_assembler_x64::inst::cmovnsw_rm::new(r16.clone(), rm16.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
3270
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
3271
3272
            // Return a type ISLE can work with.
3273
0
            let gpr = r16.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
3274
0
            AssemblerOutputs::RetGpr { inst, gpr }
3275
0
        }
3276
0
        fn x64_cmovnsl_rm_raw(&mut self, r32: Gpr, rm32: &GprMem) -> AssemblerOutputs {
3277
            // Convert ISLE types to assembler types.
3278
0
            let r32 = self.convert_gpr_to_assembler_read_write_gpr(r32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
3279
0
            let rm32 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
3280
3281
            // Build the instruction.
3282
0
            let inst = cranelift_assembler_x64::inst::cmovnsl_rm::new(r32.clone(), rm32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
3283
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
3284
3285
            // Return a type ISLE can work with.
3286
0
            let gpr = r32.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
3287
0
            AssemblerOutputs::RetGpr { inst, gpr }
3288
0
        }
3289
0
        fn x64_cmovnsq_rm_raw(&mut self, r64: Gpr, rm64: &GprMem) -> AssemblerOutputs {
3290
            // Convert ISLE types to assembler types.
3291
0
            let r64 = self.convert_gpr_to_assembler_read_write_gpr(r64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
3292
0
            let rm64 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
3293
3294
            // Build the instruction.
3295
0
            let inst = cranelift_assembler_x64::inst::cmovnsq_rm::new(r64.clone(), rm64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
3296
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
3297
3298
            // Return a type ISLE can work with.
3299
0
            let gpr = r64.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
3300
0
            AssemblerOutputs::RetGpr { inst, gpr }
3301
0
        }
3302
0
        fn x64_cmovow_rm_raw(&mut self, r16: Gpr, rm16: &GprMem) -> AssemblerOutputs {
3303
            // Convert ISLE types to assembler types.
3304
0
            let r16 = self.convert_gpr_to_assembler_read_write_gpr(r16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
3305
0
            let rm16 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
3306
3307
            // Build the instruction.
3308
0
            let inst = cranelift_assembler_x64::inst::cmovow_rm::new(r16.clone(), rm16.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
3309
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
3310
3311
            // Return a type ISLE can work with.
3312
0
            let gpr = r16.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
3313
0
            AssemblerOutputs::RetGpr { inst, gpr }
3314
0
        }
3315
0
        fn x64_cmovol_rm_raw(&mut self, r32: Gpr, rm32: &GprMem) -> AssemblerOutputs {
3316
            // Convert ISLE types to assembler types.
3317
0
            let r32 = self.convert_gpr_to_assembler_read_write_gpr(r32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
3318
0
            let rm32 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
3319
3320
            // Build the instruction.
3321
0
            let inst = cranelift_assembler_x64::inst::cmovol_rm::new(r32.clone(), rm32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
3322
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
3323
3324
            // Return a type ISLE can work with.
3325
0
            let gpr = r32.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
3326
0
            AssemblerOutputs::RetGpr { inst, gpr }
3327
0
        }
3328
0
        fn x64_cmovoq_rm_raw(&mut self, r64: Gpr, rm64: &GprMem) -> AssemblerOutputs {
3329
            // Convert ISLE types to assembler types.
3330
0
            let r64 = self.convert_gpr_to_assembler_read_write_gpr(r64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
3331
0
            let rm64 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
3332
3333
            // Build the instruction.
3334
0
            let inst = cranelift_assembler_x64::inst::cmovoq_rm::new(r64.clone(), rm64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
3335
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
3336
3337
            // Return a type ISLE can work with.
3338
0
            let gpr = r64.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
3339
0
            AssemblerOutputs::RetGpr { inst, gpr }
3340
0
        }
3341
0
        fn x64_cmovpw_rm_raw(&mut self, r16: Gpr, rm16: &GprMem) -> AssemblerOutputs {
3342
            // Convert ISLE types to assembler types.
3343
0
            let r16 = self.convert_gpr_to_assembler_read_write_gpr(r16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
3344
0
            let rm16 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
3345
3346
            // Build the instruction.
3347
0
            let inst = cranelift_assembler_x64::inst::cmovpw_rm::new(r16.clone(), rm16.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
3348
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
3349
3350
            // Return a type ISLE can work with.
3351
0
            let gpr = r16.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
3352
0
            AssemblerOutputs::RetGpr { inst, gpr }
3353
0
        }
3354
955
        fn x64_cmovpl_rm_raw(&mut self, r32: Gpr, rm32: &GprMem) -> AssemblerOutputs {
3355
            // Convert ISLE types to assembler types.
3356
955
            let r32 = self.convert_gpr_to_assembler_read_write_gpr(r32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
3357
955
            let rm32 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
3358
3359
            // Build the instruction.
3360
955
            let inst = cranelift_assembler_x64::inst::cmovpl_rm::new(r32.clone(), rm32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
3361
955
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
3362
3363
            // Return a type ISLE can work with.
3364
955
            let gpr = r32.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
3365
955
            AssemblerOutputs::RetGpr { inst, gpr }
3366
955
        }
3367
0
        fn x64_cmovpq_rm_raw(&mut self, r64: Gpr, rm64: &GprMem) -> AssemblerOutputs {
3368
            // Convert ISLE types to assembler types.
3369
0
            let r64 = self.convert_gpr_to_assembler_read_write_gpr(r64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
3370
0
            let rm64 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
3371
3372
            // Build the instruction.
3373
0
            let inst = cranelift_assembler_x64::inst::cmovpq_rm::new(r64.clone(), rm64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
3374
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
3375
3376
            // Return a type ISLE can work with.
3377
0
            let gpr = r64.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
3378
0
            AssemblerOutputs::RetGpr { inst, gpr }
3379
0
        }
3380
0
        fn x64_cmovsw_rm_raw(&mut self, r16: Gpr, rm16: &GprMem) -> AssemblerOutputs {
3381
            // Convert ISLE types to assembler types.
3382
0
            let r16 = self.convert_gpr_to_assembler_read_write_gpr(r16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
3383
0
            let rm16 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
3384
3385
            // Build the instruction.
3386
0
            let inst = cranelift_assembler_x64::inst::cmovsw_rm::new(r16.clone(), rm16.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
3387
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
3388
3389
            // Return a type ISLE can work with.
3390
0
            let gpr = r16.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
3391
0
            AssemblerOutputs::RetGpr { inst, gpr }
3392
0
        }
3393
359
        fn x64_cmovsl_rm_raw(&mut self, r32: Gpr, rm32: &GprMem) -> AssemblerOutputs {
3394
            // Convert ISLE types to assembler types.
3395
359
            let r32 = self.convert_gpr_to_assembler_read_write_gpr(r32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
3396
359
            let rm32 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
3397
3398
            // Build the instruction.
3399
359
            let inst = cranelift_assembler_x64::inst::cmovsl_rm::new(r32.clone(), rm32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
3400
359
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
3401
3402
            // Return a type ISLE can work with.
3403
359
            let gpr = r32.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
3404
359
            AssemblerOutputs::RetGpr { inst, gpr }
3405
359
        }
3406
167
        fn x64_cmovsq_rm_raw(&mut self, r64: Gpr, rm64: &GprMem) -> AssemblerOutputs {
3407
            // Convert ISLE types to assembler types.
3408
167
            let r64 = self.convert_gpr_to_assembler_read_write_gpr(r64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
3409
167
            let rm64 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
3410
3411
            // Build the instruction.
3412
167
            let inst = cranelift_assembler_x64::inst::cmovsq_rm::new(r64.clone(), rm64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
3413
167
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
3414
3415
            // Return a type ISLE can work with.
3416
167
            let gpr = r64.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
3417
167
            AssemblerOutputs::RetGpr { inst, gpr }
3418
167
        }
3419
0
        fn x64_cmpb_i_raw(&mut self, al: Gpr, imm8: u8) -> AssemblerOutputs {
3420
            // Convert ISLE types to assembler types.
3421
0
            let al = cranelift_assembler_x64::Fixed(al); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
3422
0
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
3423
3424
            // Build the instruction.
3425
0
            let inst = cranelift_assembler_x64::inst::cmpb_i::new(al.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
3426
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
3427
3428
            // Return a type ISLE can work with.
3429
0
            AssemblerOutputs::SideEffect { inst }
3430
0
        }
3431
0
        fn x64_cmpw_i_raw(&mut self, ax: Gpr, imm16: u16) -> AssemblerOutputs {
3432
            // Convert ISLE types to assembler types.
3433
0
            let ax = cranelift_assembler_x64::Fixed(ax); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
3434
0
            let imm16 = cranelift_assembler_x64::Imm16::new(imm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
3435
3436
            // Build the instruction.
3437
0
            let inst = cranelift_assembler_x64::inst::cmpw_i::new(ax.clone(), imm16.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
3438
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
3439
3440
            // Return a type ISLE can work with.
3441
0
            AssemblerOutputs::SideEffect { inst }
3442
0
        }
3443
0
        fn x64_cmpl_i_raw(&mut self, eax: Gpr, imm32: u32) -> AssemblerOutputs {
3444
            // Convert ISLE types to assembler types.
3445
0
            let eax = cranelift_assembler_x64::Fixed(eax); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
3446
0
            let imm32 = cranelift_assembler_x64::Imm32::new(imm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
3447
3448
            // Build the instruction.
3449
0
            let inst = cranelift_assembler_x64::inst::cmpl_i::new(eax.clone(), imm32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
3450
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
3451
3452
            // Return a type ISLE can work with.
3453
0
            AssemblerOutputs::SideEffect { inst }
3454
0
        }
3455
0
        fn x64_cmpq_i_raw(&mut self, rax: Gpr, imm32: i32) -> AssemblerOutputs {
3456
            // Convert ISLE types to assembler types.
3457
0
            let rax = cranelift_assembler_x64::Fixed(rax); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
3458
0
            let imm32 = cranelift_assembler_x64::Simm32::new(imm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
3459
3460
            // Build the instruction.
3461
0
            let inst = cranelift_assembler_x64::inst::cmpq_i::new(rax.clone(), imm32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
3462
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
3463
3464
            // Return a type ISLE can work with.
3465
0
            AssemblerOutputs::SideEffect { inst }
3466
0
        }
3467
17.9k
        fn x64_cmpb_mi_raw(&mut self, rm8: &GprMem, imm8: u8) -> AssemblerOutputs {
3468
            // Convert ISLE types to assembler types.
3469
17.9k
            let rm8 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
3470
17.9k
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
3471
3472
            // Build the instruction.
3473
17.9k
            let inst = cranelift_assembler_x64::inst::cmpb_mi::new(rm8.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
3474
17.9k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
3475
3476
            // Return a type ISLE can work with.
3477
17.9k
            AssemblerOutputs::SideEffect { inst }
3478
17.9k
        }
3479
22.3k
        fn x64_cmpw_mi_raw(&mut self, rm16: &GprMem, imm16: u16) -> AssemblerOutputs {
3480
            // Convert ISLE types to assembler types.
3481
22.3k
            let rm16 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
3482
22.3k
            let imm16 = cranelift_assembler_x64::Imm16::new(imm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
3483
3484
            // Build the instruction.
3485
22.3k
            let inst = cranelift_assembler_x64::inst::cmpw_mi::new(rm16.clone(), imm16.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
3486
22.3k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
3487
3488
            // Return a type ISLE can work with.
3489
22.3k
            AssemblerOutputs::SideEffect { inst }
3490
22.3k
        }
3491
95.5k
        fn x64_cmpl_mi_raw(&mut self, rm32: &GprMem, imm32: u32) -> AssemblerOutputs {
3492
            // Convert ISLE types to assembler types.
3493
95.5k
            let rm32 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
3494
95.5k
            let imm32 = cranelift_assembler_x64::Imm32::new(imm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
3495
3496
            // Build the instruction.
3497
95.5k
            let inst = cranelift_assembler_x64::inst::cmpl_mi::new(rm32.clone(), imm32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
3498
95.5k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
3499
3500
            // Return a type ISLE can work with.
3501
95.5k
            AssemblerOutputs::SideEffect { inst }
3502
95.5k
        }
3503
10.3k
        fn x64_cmpq_mi_raw(&mut self, rm64: &GprMem, imm32: i32) -> AssemblerOutputs {
3504
            // Convert ISLE types to assembler types.
3505
10.3k
            let rm64 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
3506
10.3k
            let imm32 = cranelift_assembler_x64::Simm32::new(imm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
3507
3508
            // Build the instruction.
3509
10.3k
            let inst = cranelift_assembler_x64::inst::cmpq_mi::new(rm64.clone(), imm32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
3510
10.3k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
3511
3512
            // Return a type ISLE can work with.
3513
10.3k
            AssemblerOutputs::SideEffect { inst }
3514
10.3k
        }
3515
1.41k
        fn x64_cmpw_mi_sxb_raw(&mut self, rm16: &GprMem, imm8: i8) -> AssemblerOutputs {
3516
            // Convert ISLE types to assembler types.
3517
1.41k
            let rm16 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
3518
1.41k
            let imm8 = cranelift_assembler_x64::Simm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
3519
3520
            // Build the instruction.
3521
1.41k
            let inst = cranelift_assembler_x64::inst::cmpw_mi_sxb::new(rm16.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
3522
1.41k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
3523
3524
            // Return a type ISLE can work with.
3525
1.41k
            AssemblerOutputs::SideEffect { inst }
3526
1.41k
        }
3527
53.7k
        fn x64_cmpl_mi_sxb_raw(&mut self, rm32: &GprMem, imm8: i8) -> AssemblerOutputs {
3528
            // Convert ISLE types to assembler types.
3529
53.7k
            let rm32 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
3530
53.7k
            let imm8 = cranelift_assembler_x64::Simm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
3531
3532
            // Build the instruction.
3533
53.7k
            let inst = cranelift_assembler_x64::inst::cmpl_mi_sxb::new(rm32.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
3534
53.7k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
3535
3536
            // Return a type ISLE can work with.
3537
53.7k
            AssemblerOutputs::SideEffect { inst }
3538
53.7k
        }
3539
72.8k
        fn x64_cmpq_mi_sxb_raw(&mut self, rm64: &GprMem, imm8: i8) -> AssemblerOutputs {
3540
            // Convert ISLE types to assembler types.
3541
72.8k
            let rm64 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
3542
72.8k
            let imm8 = cranelift_assembler_x64::Simm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
3543
3544
            // Build the instruction.
3545
72.8k
            let inst = cranelift_assembler_x64::inst::cmpq_mi_sxb::new(rm64.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
3546
72.8k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
3547
3548
            // Return a type ISLE can work with.
3549
72.8k
            AssemblerOutputs::SideEffect { inst }
3550
72.8k
        }
3551
0
        fn x64_cmpb_mr_raw(&mut self, rm8: &GprMem, r8: Gpr) -> AssemblerOutputs {
3552
            // Convert ISLE types to assembler types.
3553
0
            let rm8 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
3554
0
            let r8 = cranelift_assembler_x64::Gpr::new(r8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
3555
3556
            // Build the instruction.
3557
0
            let inst = cranelift_assembler_x64::inst::cmpb_mr::new(rm8.clone(), r8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
3558
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
3559
3560
            // Return a type ISLE can work with.
3561
0
            AssemblerOutputs::SideEffect { inst }
3562
0
        }
3563
0
        fn x64_cmpw_mr_raw(&mut self, rm16: &GprMem, r16: Gpr) -> AssemblerOutputs {
3564
            // Convert ISLE types to assembler types.
3565
0
            let rm16 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
3566
0
            let r16 = cranelift_assembler_x64::Gpr::new(r16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
3567
3568
            // Build the instruction.
3569
0
            let inst = cranelift_assembler_x64::inst::cmpw_mr::new(rm16.clone(), r16.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
3570
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
3571
3572
            // Return a type ISLE can work with.
3573
0
            AssemblerOutputs::SideEffect { inst }
3574
0
        }
3575
0
        fn x64_cmpl_mr_raw(&mut self, rm32: &GprMem, r32: Gpr) -> AssemblerOutputs {
3576
            // Convert ISLE types to assembler types.
3577
0
            let rm32 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
3578
0
            let r32 = cranelift_assembler_x64::Gpr::new(r32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
3579
3580
            // Build the instruction.
3581
0
            let inst = cranelift_assembler_x64::inst::cmpl_mr::new(rm32.clone(), r32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
3582
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
3583
3584
            // Return a type ISLE can work with.
3585
0
            AssemblerOutputs::SideEffect { inst }
3586
0
        }
3587
0
        fn x64_cmpq_mr_raw(&mut self, rm64: &GprMem, r64: Gpr) -> AssemblerOutputs {
3588
            // Convert ISLE types to assembler types.
3589
0
            let rm64 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
3590
0
            let r64 = cranelift_assembler_x64::Gpr::new(r64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
3591
3592
            // Build the instruction.
3593
0
            let inst = cranelift_assembler_x64::inst::cmpq_mr::new(rm64.clone(), r64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
3594
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
3595
3596
            // Return a type ISLE can work with.
3597
0
            AssemblerOutputs::SideEffect { inst }
3598
0
        }
3599
247
        fn x64_cmpb_rm_raw(&mut self, r8: Gpr, rm8: &GprMem) -> AssemblerOutputs {
3600
            // Convert ISLE types to assembler types.
3601
247
            let r8 = cranelift_assembler_x64::Gpr::new(r8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
3602
247
            let rm8 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
3603
3604
            // Build the instruction.
3605
247
            let inst = cranelift_assembler_x64::inst::cmpb_rm::new(r8.clone(), rm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
3606
247
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
3607
3608
            // Return a type ISLE can work with.
3609
247
            AssemblerOutputs::SideEffect { inst }
3610
247
        }
3611
307
        fn x64_cmpw_rm_raw(&mut self, r16: Gpr, rm16: &GprMem) -> AssemblerOutputs {
3612
            // Convert ISLE types to assembler types.
3613
307
            let r16 = cranelift_assembler_x64::Gpr::new(r16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
3614
307
            let rm16 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
3615
3616
            // Build the instruction.
3617
307
            let inst = cranelift_assembler_x64::inst::cmpw_rm::new(r16.clone(), rm16.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
3618
307
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
3619
3620
            // Return a type ISLE can work with.
3621
307
            AssemblerOutputs::SideEffect { inst }
3622
307
        }
3623
392k
        fn x64_cmpl_rm_raw(&mut self, r32: Gpr, rm32: &GprMem) -> AssemblerOutputs {
3624
            // Convert ISLE types to assembler types.
3625
392k
            let r32 = cranelift_assembler_x64::Gpr::new(r32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
3626
392k
            let rm32 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
3627
3628
            // Build the instruction.
3629
392k
            let inst = cranelift_assembler_x64::inst::cmpl_rm::new(r32.clone(), rm32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
3630
392k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
3631
3632
            // Return a type ISLE can work with.
3633
392k
            AssemblerOutputs::SideEffect { inst }
3634
392k
        }
3635
1.55M
        fn x64_cmpq_rm_raw(&mut self, r64: Gpr, rm64: &GprMem) -> AssemblerOutputs {
3636
            // Convert ISLE types to assembler types.
3637
1.55M
            let r64 = cranelift_assembler_x64::Gpr::new(r64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
3638
1.55M
            let rm64 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
3639
3640
            // Build the instruction.
3641
1.55M
            let inst = cranelift_assembler_x64::inst::cmpq_rm::new(r64.clone(), rm64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
3642
1.55M
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
3643
3644
            // Return a type ISLE can work with.
3645
1.55M
            AssemblerOutputs::SideEffect { inst }
3646
1.55M
        }
3647
0
        fn x64_testb_i_raw(&mut self, al: Gpr, imm8: u8) -> AssemblerOutputs {
3648
            // Convert ISLE types to assembler types.
3649
0
            let al = cranelift_assembler_x64::Fixed(al); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
3650
0
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
3651
3652
            // Build the instruction.
3653
0
            let inst = cranelift_assembler_x64::inst::testb_i::new(al.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
3654
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
3655
3656
            // Return a type ISLE can work with.
3657
0
            AssemblerOutputs::SideEffect { inst }
3658
0
        }
3659
0
        fn x64_testw_i_raw(&mut self, ax: Gpr, imm16: u16) -> AssemblerOutputs {
3660
            // Convert ISLE types to assembler types.
3661
0
            let ax = cranelift_assembler_x64::Fixed(ax); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
3662
0
            let imm16 = cranelift_assembler_x64::Imm16::new(imm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
3663
3664
            // Build the instruction.
3665
0
            let inst = cranelift_assembler_x64::inst::testw_i::new(ax.clone(), imm16.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
3666
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
3667
3668
            // Return a type ISLE can work with.
3669
0
            AssemblerOutputs::SideEffect { inst }
3670
0
        }
3671
0
        fn x64_testl_i_raw(&mut self, eax: Gpr, imm32: u32) -> AssemblerOutputs {
3672
            // Convert ISLE types to assembler types.
3673
0
            let eax = cranelift_assembler_x64::Fixed(eax); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
3674
0
            let imm32 = cranelift_assembler_x64::Imm32::new(imm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
3675
3676
            // Build the instruction.
3677
0
            let inst = cranelift_assembler_x64::inst::testl_i::new(eax.clone(), imm32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
3678
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
3679
3680
            // Return a type ISLE can work with.
3681
0
            AssemblerOutputs::SideEffect { inst }
3682
0
        }
3683
0
        fn x64_testq_i_raw(&mut self, rax: Gpr, imm32: i32) -> AssemblerOutputs {
3684
            // Convert ISLE types to assembler types.
3685
0
            let rax = cranelift_assembler_x64::Fixed(rax); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
3686
0
            let imm32 = cranelift_assembler_x64::Simm32::new(imm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
3687
3688
            // Build the instruction.
3689
0
            let inst = cranelift_assembler_x64::inst::testq_i::new(rax.clone(), imm32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
3690
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
3691
3692
            // Return a type ISLE can work with.
3693
0
            AssemblerOutputs::SideEffect { inst }
3694
0
        }
3695
65
        fn x64_testb_mi_raw(&mut self, rm8: &GprMem, imm8: u8) -> AssemblerOutputs {
3696
            // Convert ISLE types to assembler types.
3697
65
            let rm8 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
3698
65
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
3699
3700
            // Build the instruction.
3701
65
            let inst = cranelift_assembler_x64::inst::testb_mi::new(rm8.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
3702
65
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
3703
3704
            // Return a type ISLE can work with.
3705
65
            AssemblerOutputs::SideEffect { inst }
3706
65
        }
3707
3
        fn x64_testw_mi_raw(&mut self, rm16: &GprMem, imm16: u16) -> AssemblerOutputs {
3708
            // Convert ISLE types to assembler types.
3709
3
            let rm16 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
3710
3
            let imm16 = cranelift_assembler_x64::Imm16::new(imm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
3711
3712
            // Build the instruction.
3713
3
            let inst = cranelift_assembler_x64::inst::testw_mi::new(rm16.clone(), imm16.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
3714
3
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
3715
3716
            // Return a type ISLE can work with.
3717
3
            AssemblerOutputs::SideEffect { inst }
3718
3
        }
3719
229k
        fn x64_testl_mi_raw(&mut self, rm32: &GprMem, imm32: u32) -> AssemblerOutputs {
3720
            // Convert ISLE types to assembler types.
3721
229k
            let rm32 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
3722
229k
            let imm32 = cranelift_assembler_x64::Imm32::new(imm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
3723
3724
            // Build the instruction.
3725
229k
            let inst = cranelift_assembler_x64::inst::testl_mi::new(rm32.clone(), imm32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
3726
229k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
3727
3728
            // Return a type ISLE can work with.
3729
229k
            AssemblerOutputs::SideEffect { inst }
3730
229k
        }
3731
23.3k
        fn x64_testq_mi_raw(&mut self, rm64: &GprMem, imm32: i32) -> AssemblerOutputs {
3732
            // Convert ISLE types to assembler types.
3733
23.3k
            let rm64 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
3734
23.3k
            let imm32 = cranelift_assembler_x64::Simm32::new(imm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
3735
3736
            // Build the instruction.
3737
23.3k
            let inst = cranelift_assembler_x64::inst::testq_mi::new(rm64.clone(), imm32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
3738
23.3k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
3739
3740
            // Return a type ISLE can work with.
3741
23.3k
            AssemblerOutputs::SideEffect { inst }
3742
23.3k
        }
3743
941k
        fn x64_testb_mr_raw(&mut self, rm8: &GprMem, r8: Gpr) -> AssemblerOutputs {
3744
            // Convert ISLE types to assembler types.
3745
941k
            let rm8 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
3746
941k
            let r8 = cranelift_assembler_x64::Gpr::new(r8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
3747
3748
            // Build the instruction.
3749
941k
            let inst = cranelift_assembler_x64::inst::testb_mr::new(rm8.clone(), r8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
3750
941k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
3751
3752
            // Return a type ISLE can work with.
3753
941k
            AssemblerOutputs::SideEffect { inst }
3754
941k
        }
3755
10.0k
        fn x64_testw_mr_raw(&mut self, rm16: &GprMem, r16: Gpr) -> AssemblerOutputs {
3756
            // Convert ISLE types to assembler types.
3757
10.0k
            let rm16 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
3758
10.0k
            let r16 = cranelift_assembler_x64::Gpr::new(r16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
3759
3760
            // Build the instruction.
3761
10.0k
            let inst = cranelift_assembler_x64::inst::testw_mr::new(rm16.clone(), r16.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
3762
10.0k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
3763
3764
            // Return a type ISLE can work with.
3765
10.0k
            AssemblerOutputs::SideEffect { inst }
3766
10.0k
        }
3767
713k
        fn x64_testl_mr_raw(&mut self, rm32: &GprMem, r32: Gpr) -> AssemblerOutputs {
3768
            // Convert ISLE types to assembler types.
3769
713k
            let rm32 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
3770
713k
            let r32 = cranelift_assembler_x64::Gpr::new(r32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
3771
3772
            // Build the instruction.
3773
713k
            let inst = cranelift_assembler_x64::inst::testl_mr::new(rm32.clone(), r32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
3774
713k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
3775
3776
            // Return a type ISLE can work with.
3777
713k
            AssemblerOutputs::SideEffect { inst }
3778
713k
        }
3779
449k
        fn x64_testq_mr_raw(&mut self, rm64: &GprMem, r64: Gpr) -> AssemblerOutputs {
3780
            // Convert ISLE types to assembler types.
3781
449k
            let rm64 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
3782
449k
            let r64 = cranelift_assembler_x64::Gpr::new(r64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
3783
3784
            // Build the instruction.
3785
449k
            let inst = cranelift_assembler_x64::inst::testq_mr::new(rm64.clone(), r64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
3786
449k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
3787
3788
            // Return a type ISLE can work with.
3789
449k
            AssemblerOutputs::SideEffect { inst }
3790
449k
        }
3791
251
        fn x64_ptest_rm_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned) -> AssemblerOutputs {
3792
            // Convert ISLE types to assembler types.
3793
251
            let xmm1 = cranelift_assembler_x64::Xmm::new(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
3794
251
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
3795
3796
            // Build the instruction.
3797
251
            let inst = cranelift_assembler_x64::inst::ptest_rm::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
3798
251
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
3799
3800
            // Return a type ISLE can work with.
3801
251
            AssemblerOutputs::SideEffect { inst }
3802
251
        }
3803
2.91k
        fn x64_vptest_rm_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMem) -> AssemblerOutputs {
3804
            // Convert ISLE types to assembler types.
3805
2.91k
            let xmm1 = cranelift_assembler_x64::Xmm::new(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
3806
2.91k
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
3807
3808
            // Build the instruction.
3809
2.91k
            let inst = cranelift_assembler_x64::inst::vptest_rm::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
3810
2.91k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
3811
3812
            // Return a type ISLE can work with.
3813
2.91k
            AssemblerOutputs::SideEffect { inst }
3814
2.91k
        }
3815
18.6k
        fn x64_ucomiss_a_raw(&mut self, xmm1: Xmm, xmm_m32: &XmmMem) -> AssemblerOutputs {
3816
            // Convert ISLE types to assembler types.
3817
18.6k
            let xmm1 = cranelift_assembler_x64::Xmm::new(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
3818
18.6k
            let xmm_m32 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
3819
3820
            // Build the instruction.
3821
18.6k
            let inst = cranelift_assembler_x64::inst::ucomiss_a::new(xmm1.clone(), xmm_m32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
3822
18.6k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
3823
3824
            // Return a type ISLE can work with.
3825
18.6k
            AssemblerOutputs::SideEffect { inst }
3826
18.6k
        }
3827
6.36k
        fn x64_ucomisd_a_raw(&mut self, xmm1: Xmm, xmm_m64: &XmmMem) -> AssemblerOutputs {
3828
            // Convert ISLE types to assembler types.
3829
6.36k
            let xmm1 = cranelift_assembler_x64::Xmm::new(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
3830
6.36k
            let xmm_m64 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
3831
3832
            // Build the instruction.
3833
6.36k
            let inst = cranelift_assembler_x64::inst::ucomisd_a::new(xmm1.clone(), xmm_m64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
3834
6.36k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
3835
3836
            // Return a type ISLE can work with.
3837
6.36k
            AssemblerOutputs::SideEffect { inst }
3838
6.36k
        }
3839
58.6k
        fn x64_vucomiss_a_raw(&mut self, xmm2: Xmm, xmm_m32: &XmmMem) -> AssemblerOutputs {
3840
            // Convert ISLE types to assembler types.
3841
58.6k
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
3842
58.6k
            let xmm_m32 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
3843
3844
            // Build the instruction.
3845
58.6k
            let inst = cranelift_assembler_x64::inst::vucomiss_a::new(xmm2.clone(), xmm_m32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
3846
58.6k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
3847
3848
            // Return a type ISLE can work with.
3849
58.6k
            AssemblerOutputs::SideEffect { inst }
3850
58.6k
        }
3851
98.8k
        fn x64_vucomisd_a_raw(&mut self, xmm2: Xmm, xmm_m64: &XmmMem) -> AssemblerOutputs {
3852
            // Convert ISLE types to assembler types.
3853
98.8k
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
3854
98.8k
            let xmm_m64 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
3855
3856
            // Build the instruction.
3857
98.8k
            let inst = cranelift_assembler_x64::inst::vucomisd_a::new(xmm2.clone(), xmm_m64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
3858
98.8k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
3859
3860
            // Return a type ISLE can work with.
3861
98.8k
            AssemblerOutputs::SideEffect { inst }
3862
98.8k
        }
3863
0
        fn x64_cmpss_a_raw(&mut self, xmm1: Xmm, xmm_m32: &XmmMem, imm8: u8) -> AssemblerOutputs {
3864
            // Convert ISLE types to assembler types.
3865
0
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
3866
0
            let xmm_m32 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
3867
0
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
3868
3869
            // Build the instruction.
3870
0
            let inst = cranelift_assembler_x64::inst::cmpss_a::new(xmm1.clone(), xmm_m32.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
3871
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
3872
3873
            // Return a type ISLE can work with.
3874
0
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
3875
0
            AssemblerOutputs::RetXmm { inst, xmm }
3876
0
        }
3877
0
        fn x64_cmpsd_a_raw(&mut self, xmm1: Xmm, xmm_m64: &XmmMem, imm8: u8) -> AssemblerOutputs {
3878
            // Convert ISLE types to assembler types.
3879
0
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
3880
0
            let xmm_m64 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
3881
0
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
3882
3883
            // Build the instruction.
3884
0
            let inst = cranelift_assembler_x64::inst::cmpsd_a::new(xmm1.clone(), xmm_m64.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
3885
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
3886
3887
            // Return a type ISLE can work with.
3888
0
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
3889
0
            AssemblerOutputs::RetXmm { inst, xmm }
3890
0
        }
3891
10.6k
        fn x64_cmpps_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMem, imm8: u8) -> AssemblerOutputs {
3892
            // Convert ISLE types to assembler types.
3893
10.6k
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
3894
10.6k
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
3895
10.6k
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
3896
3897
            // Build the instruction.
3898
10.6k
            let inst = cranelift_assembler_x64::inst::cmpps_a::new(xmm1.clone(), xmm_m128.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
3899
10.6k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
3900
3901
            // Return a type ISLE can work with.
3902
10.6k
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
3903
10.6k
            AssemblerOutputs::RetXmm { inst, xmm }
3904
10.6k
        }
3905
3.17k
        fn x64_cmppd_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMem, imm8: u8) -> AssemblerOutputs {
3906
            // Convert ISLE types to assembler types.
3907
3.17k
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
3908
3.17k
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
3909
3.17k
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
3910
3911
            // Build the instruction.
3912
3.17k
            let inst = cranelift_assembler_x64::inst::cmppd_a::new(xmm1.clone(), xmm_m128.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
3913
3.17k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
3914
3915
            // Return a type ISLE can work with.
3916
3.17k
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
3917
3.17k
            AssemblerOutputs::RetXmm { inst, xmm }
3918
3.17k
        }
3919
0
        fn x64_vcmpss_b_raw(&mut self, xmm2: Xmm, xmm_m32: &XmmMem, imm8: u8) -> AssemblerOutputs {
3920
            // Convert ISLE types to assembler types.
3921
0
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
3922
0
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
3923
0
            let xmm_m32 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
3924
0
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
3925
3926
            // Build the instruction.
3927
0
            let inst = cranelift_assembler_x64::inst::vcmpss_b::new(xmm1.clone(), xmm2.clone(), xmm_m32.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
3928
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
3929
3930
            // Return a type ISLE can work with.
3931
0
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
3932
0
            AssemblerOutputs::RetXmm { inst, xmm }
3933
0
        }
3934
0
        fn x64_vcmpsd_b_raw(&mut self, xmm2: Xmm, xmm_m64: &XmmMem, imm8: u8) -> AssemblerOutputs {
3935
            // Convert ISLE types to assembler types.
3936
0
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
3937
0
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
3938
0
            let xmm_m64 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
3939
0
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
3940
3941
            // Build the instruction.
3942
0
            let inst = cranelift_assembler_x64::inst::vcmpsd_b::new(xmm1.clone(), xmm2.clone(), xmm_m64.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
3943
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
3944
3945
            // Return a type ISLE can work with.
3946
0
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
3947
0
            AssemblerOutputs::RetXmm { inst, xmm }
3948
0
        }
3949
51.3k
        fn x64_vcmpps_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem, imm8: u8) -> AssemblerOutputs {
3950
            // Convert ISLE types to assembler types.
3951
51.3k
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
3952
51.3k
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
3953
51.3k
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
3954
51.3k
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
3955
3956
            // Build the instruction.
3957
51.3k
            let inst = cranelift_assembler_x64::inst::vcmpps_b::new(xmm1.clone(), xmm2.clone(), xmm_m128.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
3958
51.3k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
3959
3960
            // Return a type ISLE can work with.
3961
51.3k
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
3962
51.3k
            AssemblerOutputs::RetXmm { inst, xmm }
3963
51.3k
        }
3964
39.1k
        fn x64_vcmppd_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem, imm8: u8) -> AssemblerOutputs {
3965
            // Convert ISLE types to assembler types.
3966
39.1k
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
3967
39.1k
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
3968
39.1k
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
3969
39.1k
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
3970
3971
            // Build the instruction.
3972
39.1k
            let inst = cranelift_assembler_x64::inst::vcmppd_b::new(xmm1.clone(), xmm2.clone(), xmm_m128.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
3973
39.1k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
3974
3975
            // Return a type ISLE can work with.
3976
39.1k
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
3977
39.1k
            AssemblerOutputs::RetXmm { inst, xmm }
3978
39.1k
        }
3979
99
        fn x64_pcmpeqb_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned) -> AssemblerOutputs {
3980
            // Convert ISLE types to assembler types.
3981
99
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
3982
99
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
3983
3984
            // Build the instruction.
3985
99
            let inst = cranelift_assembler_x64::inst::pcmpeqb_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
3986
99
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
3987
3988
            // Return a type ISLE can work with.
3989
99
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
3990
99
            AssemblerOutputs::RetXmm { inst, xmm }
3991
99
        }
3992
54
        fn x64_pcmpeqw_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned) -> AssemblerOutputs {
3993
            // Convert ISLE types to assembler types.
3994
54
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
3995
54
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
3996
3997
            // Build the instruction.
3998
54
            let inst = cranelift_assembler_x64::inst::pcmpeqw_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
3999
54
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
4000
4001
            // Return a type ISLE can work with.
4002
54
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
4003
54
            AssemblerOutputs::RetXmm { inst, xmm }
4004
54
        }
4005
3.48k
        fn x64_pcmpeqd_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned) -> AssemblerOutputs {
4006
            // Convert ISLE types to assembler types.
4007
3.48k
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
4008
3.48k
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
4009
4010
            // Build the instruction.
4011
3.48k
            let inst = cranelift_assembler_x64::inst::pcmpeqd_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
4012
3.48k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
4013
4014
            // Return a type ISLE can work with.
4015
3.48k
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
4016
3.48k
            AssemblerOutputs::RetXmm { inst, xmm }
4017
3.48k
        }
4018
103
        fn x64_pcmpeqq_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned) -> AssemblerOutputs {
4019
            // Convert ISLE types to assembler types.
4020
103
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
4021
103
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
4022
4023
            // Build the instruction.
4024
103
            let inst = cranelift_assembler_x64::inst::pcmpeqq_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
4025
103
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
4026
4027
            // Return a type ISLE can work with.
4028
103
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
4029
103
            AssemblerOutputs::RetXmm { inst, xmm }
4030
103
        }
4031
7
        fn x64_pcmpgtb_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned) -> AssemblerOutputs {
4032
            // Convert ISLE types to assembler types.
4033
7
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
4034
7
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
4035
4036
            // Build the instruction.
4037
7
            let inst = cranelift_assembler_x64::inst::pcmpgtb_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
4038
7
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
4039
4040
            // Return a type ISLE can work with.
4041
7
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
4042
7
            AssemblerOutputs::RetXmm { inst, xmm }
4043
7
        }
4044
6
        fn x64_pcmpgtw_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned) -> AssemblerOutputs {
4045
            // Convert ISLE types to assembler types.
4046
6
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
4047
6
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
4048
4049
            // Build the instruction.
4050
6
            let inst = cranelift_assembler_x64::inst::pcmpgtw_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
4051
6
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
4052
4053
            // Return a type ISLE can work with.
4054
6
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
4055
6
            AssemblerOutputs::RetXmm { inst, xmm }
4056
6
        }
4057
905
        fn x64_pcmpgtd_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned) -> AssemblerOutputs {
4058
            // Convert ISLE types to assembler types.
4059
905
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
4060
905
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
4061
4062
            // Build the instruction.
4063
905
            let inst = cranelift_assembler_x64::inst::pcmpgtd_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
4064
905
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
4065
4066
            // Return a type ISLE can work with.
4067
905
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
4068
905
            AssemblerOutputs::RetXmm { inst, xmm }
4069
905
        }
4070
1
        fn x64_pcmpgtq_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned) -> AssemblerOutputs {
4071
            // Convert ISLE types to assembler types.
4072
1
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
4073
1
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
4074
4075
            // Build the instruction.
4076
1
            let inst = cranelift_assembler_x64::inst::pcmpgtq_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
4077
1
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
4078
4079
            // Return a type ISLE can work with.
4080
1
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
4081
1
            AssemblerOutputs::RetXmm { inst, xmm }
4082
1
        }
4083
805
        fn x64_vpcmpeqb_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem) -> AssemblerOutputs {
4084
            // Convert ISLE types to assembler types.
4085
805
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
4086
805
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
4087
805
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
4088
4089
            // Build the instruction.
4090
805
            let inst = cranelift_assembler_x64::inst::vpcmpeqb_b::new(xmm1.clone(), xmm2.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
4091
805
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
4092
4093
            // Return a type ISLE can work with.
4094
805
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
4095
805
            AssemblerOutputs::RetXmm { inst, xmm }
4096
805
        }
4097
490
        fn x64_vpcmpeqw_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem) -> AssemblerOutputs {
4098
            // Convert ISLE types to assembler types.
4099
490
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
4100
490
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
4101
490
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
4102
4103
            // Build the instruction.
4104
490
            let inst = cranelift_assembler_x64::inst::vpcmpeqw_b::new(xmm1.clone(), xmm2.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
4105
490
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
4106
4107
            // Return a type ISLE can work with.
4108
490
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
4109
490
            AssemblerOutputs::RetXmm { inst, xmm }
4110
490
        }
4111
10.3k
        fn x64_vpcmpeqd_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem) -> AssemblerOutputs {
4112
            // Convert ISLE types to assembler types.
4113
10.3k
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
4114
10.3k
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
4115
10.3k
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
4116
4117
            // Build the instruction.
4118
10.3k
            let inst = cranelift_assembler_x64::inst::vpcmpeqd_b::new(xmm1.clone(), xmm2.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
4119
10.3k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
4120
4121
            // Return a type ISLE can work with.
4122
10.3k
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
4123
10.3k
            AssemblerOutputs::RetXmm { inst, xmm }
4124
10.3k
        }
4125
150
        fn x64_vpcmpeqq_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem) -> AssemblerOutputs {
4126
            // Convert ISLE types to assembler types.
4127
150
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
4128
150
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
4129
150
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
4130
4131
            // Build the instruction.
4132
150
            let inst = cranelift_assembler_x64::inst::vpcmpeqq_b::new(xmm1.clone(), xmm2.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
4133
150
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
4134
4135
            // Return a type ISLE can work with.
4136
150
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
4137
150
            AssemblerOutputs::RetXmm { inst, xmm }
4138
150
        }
4139
32
        fn x64_vpcmpgtb_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem) -> AssemblerOutputs {
4140
            // Convert ISLE types to assembler types.
4141
32
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
4142
32
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
4143
32
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
4144
4145
            // Build the instruction.
4146
32
            let inst = cranelift_assembler_x64::inst::vpcmpgtb_b::new(xmm1.clone(), xmm2.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
4147
32
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
4148
4149
            // Return a type ISLE can work with.
4150
32
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
4151
32
            AssemblerOutputs::RetXmm { inst, xmm }
4152
32
        }
4153
35
        fn x64_vpcmpgtw_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem) -> AssemblerOutputs {
4154
            // Convert ISLE types to assembler types.
4155
35
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
4156
35
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
4157
35
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
4158
4159
            // Build the instruction.
4160
35
            let inst = cranelift_assembler_x64::inst::vpcmpgtw_b::new(xmm1.clone(), xmm2.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
4161
35
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
4162
4163
            // Return a type ISLE can work with.
4164
35
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
4165
35
            AssemblerOutputs::RetXmm { inst, xmm }
4166
35
        }
4167
67
        fn x64_vpcmpgtd_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem) -> AssemblerOutputs {
4168
            // Convert ISLE types to assembler types.
4169
67
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
4170
67
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
4171
67
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
4172
4173
            // Build the instruction.
4174
67
            let inst = cranelift_assembler_x64::inst::vpcmpgtd_b::new(xmm1.clone(), xmm2.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
4175
67
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
4176
4177
            // Return a type ISLE can work with.
4178
67
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
4179
67
            AssemblerOutputs::RetXmm { inst, xmm }
4180
67
        }
4181
29
        fn x64_vpcmpgtq_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem) -> AssemblerOutputs {
4182
            // Convert ISLE types to assembler types.
4183
29
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
4184
29
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
4185
29
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
4186
4187
            // Build the instruction.
4188
29
            let inst = cranelift_assembler_x64::inst::vpcmpgtq_b::new(xmm1.clone(), xmm2.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
4189
29
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
4190
4191
            // Return a type ISLE can work with.
4192
29
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
4193
29
            AssemblerOutputs::RetXmm { inst, xmm }
4194
29
        }
4195
1
        fn x64_cvtps2pd_a_raw(&mut self, xmm_m64: &XmmMem) -> AssemblerOutputs {
4196
            // Convert ISLE types to assembler types.
4197
1
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
4198
1
            let xmm_m64 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
4199
4200
            // Build the instruction.
4201
1
            let inst = cranelift_assembler_x64::inst::cvtps2pd_a::new(xmm1.clone(), xmm_m64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
4202
1
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
4203
4204
            // Return a type ISLE can work with.
4205
1
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
4206
1
            AssemblerOutputs::RetXmm { inst, xmm }
4207
1
        }
4208
95
        fn x64_cvttps2dq_a_raw(&mut self, xmm_m128: &XmmMemAligned) -> AssemblerOutputs {
4209
            // Convert ISLE types to assembler types.
4210
95
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
4211
95
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
4212
4213
            // Build the instruction.
4214
95
            let inst = cranelift_assembler_x64::inst::cvttps2dq_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
4215
95
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
4216
4217
            // Return a type ISLE can work with.
4218
95
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
4219
95
            AssemblerOutputs::RetXmm { inst, xmm }
4220
95
        }
4221
576
        fn x64_cvtss2sd_a_raw(&mut self, xmm1: Xmm, xmm_m32: &XmmMem) -> AssemblerOutputs {
4222
            // Convert ISLE types to assembler types.
4223
576
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
4224
576
            let xmm_m32 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
4225
4226
            // Build the instruction.
4227
576
            let inst = cranelift_assembler_x64::inst::cvtss2sd_a::new(xmm1.clone(), xmm_m32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
4228
576
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
4229
4230
            // Return a type ISLE can work with.
4231
576
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
4232
576
            AssemblerOutputs::RetXmm { inst, xmm }
4233
576
        }
4234
0
        fn x64_cvtss2si_a_raw(&mut self, xmm_m32: &XmmMem) -> AssemblerOutputs {
4235
            // Convert ISLE types to assembler types.
4236
0
            let r32 = cranelift_assembler_x64::Gpr::new(self.temp_writable_gpr()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
4237
0
            let xmm_m32 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
4238
4239
            // Build the instruction.
4240
0
            let inst = cranelift_assembler_x64::inst::cvtss2si_a::new(r32.clone(), xmm_m32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
4241
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
4242
4243
            // Return a type ISLE can work with.
4244
0
            let gpr = r32.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
4245
0
            AssemblerOutputs::RetGpr { inst, gpr }
4246
0
        }
4247
0
        fn x64_cvtss2si_aq_raw(&mut self, xmm_m32: &XmmMem) -> AssemblerOutputs {
4248
            // Convert ISLE types to assembler types.
4249
0
            let r64 = cranelift_assembler_x64::Gpr::new(self.temp_writable_gpr()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
4250
0
            let xmm_m32 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
4251
4252
            // Build the instruction.
4253
0
            let inst = cranelift_assembler_x64::inst::cvtss2si_aq::new(r64.clone(), xmm_m32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
4254
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
4255
4256
            // Return a type ISLE can work with.
4257
0
            let gpr = r64.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
4258
0
            AssemblerOutputs::RetGpr { inst, gpr }
4259
0
        }
4260
0
        fn x64_cvttss2si_a_raw(&mut self, xmm_m32: &XmmMem) -> AssemblerOutputs {
4261
            // Convert ISLE types to assembler types.
4262
0
            let r32 = cranelift_assembler_x64::Gpr::new(self.temp_writable_gpr()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
4263
0
            let xmm_m32 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
4264
4265
            // Build the instruction.
4266
0
            let inst = cranelift_assembler_x64::inst::cvttss2si_a::new(r32.clone(), xmm_m32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
4267
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
4268
4269
            // Return a type ISLE can work with.
4270
0
            let gpr = r32.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
4271
0
            AssemblerOutputs::RetGpr { inst, gpr }
4272
0
        }
4273
0
        fn x64_cvttss2si_aq_raw(&mut self, xmm_m32: &XmmMem) -> AssemblerOutputs {
4274
            // Convert ISLE types to assembler types.
4275
0
            let r64 = cranelift_assembler_x64::Gpr::new(self.temp_writable_gpr()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
4276
0
            let xmm_m32 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
4277
4278
            // Build the instruction.
4279
0
            let inst = cranelift_assembler_x64::inst::cvttss2si_aq::new(r64.clone(), xmm_m32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
4280
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
4281
4282
            // Return a type ISLE can work with.
4283
0
            let gpr = r64.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
4284
0
            AssemblerOutputs::RetGpr { inst, gpr }
4285
0
        }
4286
57
        fn x64_vcvtps2pd_a_raw(&mut self, xmm_m64: &XmmMem) -> AssemblerOutputs {
4287
            // Convert ISLE types to assembler types.
4288
57
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
4289
57
            let xmm_m64 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
4290
4291
            // Build the instruction.
4292
57
            let inst = cranelift_assembler_x64::inst::vcvtps2pd_a::new(xmm1.clone(), xmm_m64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
4293
57
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
4294
4295
            // Return a type ISLE can work with.
4296
57
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
4297
57
            AssemblerOutputs::RetXmm { inst, xmm }
4298
57
        }
4299
535
        fn x64_vcvttps2dq_a_raw(&mut self, xmm_m128: &XmmMem) -> AssemblerOutputs {
4300
            // Convert ISLE types to assembler types.
4301
535
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
4302
535
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
4303
4304
            // Build the instruction.
4305
535
            let inst = cranelift_assembler_x64::inst::vcvttps2dq_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
4306
535
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
4307
4308
            // Return a type ISLE can work with.
4309
535
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
4310
535
            AssemblerOutputs::RetXmm { inst, xmm }
4311
535
        }
4312
8.77k
        fn x64_vcvtss2sd_b_raw(&mut self, xmm2: Xmm, xmm_m32: &XmmMem) -> AssemblerOutputs {
4313
            // Convert ISLE types to assembler types.
4314
8.77k
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
4315
8.77k
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
4316
8.77k
            let xmm_m32 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
4317
4318
            // Build the instruction.
4319
8.77k
            let inst = cranelift_assembler_x64::inst::vcvtss2sd_b::new(xmm1.clone(), xmm2.clone(), xmm_m32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
4320
8.77k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
4321
4322
            // Return a type ISLE can work with.
4323
8.77k
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
4324
8.77k
            AssemblerOutputs::RetXmm { inst, xmm }
4325
8.77k
        }
4326
0
        fn x64_vcvtss2si_a_raw(&mut self, xmm_m32: &XmmMem) -> AssemblerOutputs {
4327
            // Convert ISLE types to assembler types.
4328
0
            let r32 = cranelift_assembler_x64::Gpr::new(self.temp_writable_gpr()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
4329
0
            let xmm_m32 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
4330
4331
            // Build the instruction.
4332
0
            let inst = cranelift_assembler_x64::inst::vcvtss2si_a::new(r32.clone(), xmm_m32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
4333
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
4334
4335
            // Return a type ISLE can work with.
4336
0
            let gpr = r32.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
4337
0
            AssemblerOutputs::RetGpr { inst, gpr }
4338
0
        }
4339
0
        fn x64_vcvtss2si_aq_raw(&mut self, xmm_m32: &XmmMem) -> AssemblerOutputs {
4340
            // Convert ISLE types to assembler types.
4341
0
            let r64 = cranelift_assembler_x64::Gpr::new(self.temp_writable_gpr()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
4342
0
            let xmm_m32 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
4343
4344
            // Build the instruction.
4345
0
            let inst = cranelift_assembler_x64::inst::vcvtss2si_aq::new(r64.clone(), xmm_m32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
4346
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
4347
4348
            // Return a type ISLE can work with.
4349
0
            let gpr = r64.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
4350
0
            AssemblerOutputs::RetGpr { inst, gpr }
4351
0
        }
4352
0
        fn x64_vcvttss2si_a_raw(&mut self, xmm_m32: &XmmMem) -> AssemblerOutputs {
4353
            // Convert ISLE types to assembler types.
4354
0
            let r32 = cranelift_assembler_x64::Gpr::new(self.temp_writable_gpr()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
4355
0
            let xmm_m32 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
4356
4357
            // Build the instruction.
4358
0
            let inst = cranelift_assembler_x64::inst::vcvttss2si_a::new(r32.clone(), xmm_m32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
4359
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
4360
4361
            // Return a type ISLE can work with.
4362
0
            let gpr = r32.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
4363
0
            AssemblerOutputs::RetGpr { inst, gpr }
4364
0
        }
4365
0
        fn x64_vcvttss2si_aq_raw(&mut self, xmm_m32: &XmmMem) -> AssemblerOutputs {
4366
            // Convert ISLE types to assembler types.
4367
0
            let r64 = cranelift_assembler_x64::Gpr::new(self.temp_writable_gpr()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
4368
0
            let xmm_m32 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
4369
4370
            // Build the instruction.
4371
0
            let inst = cranelift_assembler_x64::inst::vcvttss2si_aq::new(r64.clone(), xmm_m32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
4372
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
4373
4374
            // Return a type ISLE can work with.
4375
0
            let gpr = r64.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
4376
0
            AssemblerOutputs::RetGpr { inst, gpr }
4377
0
        }
4378
9
        fn x64_cvtpd2ps_a_raw(&mut self, xmm_m128: &XmmMemAligned) -> AssemblerOutputs {
4379
            // Convert ISLE types to assembler types.
4380
9
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
4381
9
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
4382
4383
            // Build the instruction.
4384
9
            let inst = cranelift_assembler_x64::inst::cvtpd2ps_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
4385
9
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
4386
4387
            // Return a type ISLE can work with.
4388
9
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
4389
9
            AssemblerOutputs::RetXmm { inst, xmm }
4390
9
        }
4391
3
        fn x64_cvttpd2dq_a_raw(&mut self, xmm_m128: &XmmMemAligned) -> AssemblerOutputs {
4392
            // Convert ISLE types to assembler types.
4393
3
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
4394
3
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
4395
4396
            // Build the instruction.
4397
3
            let inst = cranelift_assembler_x64::inst::cvttpd2dq_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
4398
3
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
4399
4400
            // Return a type ISLE can work with.
4401
3
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
4402
3
            AssemblerOutputs::RetXmm { inst, xmm }
4403
3
        }
4404
129
        fn x64_cvtsd2ss_a_raw(&mut self, xmm1: Xmm, xmm_m64: &XmmMem) -> AssemblerOutputs {
4405
            // Convert ISLE types to assembler types.
4406
129
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
4407
129
            let xmm_m64 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
4408
4409
            // Build the instruction.
4410
129
            let inst = cranelift_assembler_x64::inst::cvtsd2ss_a::new(xmm1.clone(), xmm_m64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
4411
129
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
4412
4413
            // Return a type ISLE can work with.
4414
129
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
4415
129
            AssemblerOutputs::RetXmm { inst, xmm }
4416
129
        }
4417
0
        fn x64_cvtsd2si_a_raw(&mut self, xmm_m64: &XmmMem) -> AssemblerOutputs {
4418
            // Convert ISLE types to assembler types.
4419
0
            let r32 = cranelift_assembler_x64::Gpr::new(self.temp_writable_gpr()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
4420
0
            let xmm_m64 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
4421
4422
            // Build the instruction.
4423
0
            let inst = cranelift_assembler_x64::inst::cvtsd2si_a::new(r32.clone(), xmm_m64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
4424
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
4425
4426
            // Return a type ISLE can work with.
4427
0
            let gpr = r32.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
4428
0
            AssemblerOutputs::RetGpr { inst, gpr }
4429
0
        }
4430
0
        fn x64_cvtsd2si_aq_raw(&mut self, xmm_m64: &XmmMem) -> AssemblerOutputs {
4431
            // Convert ISLE types to assembler types.
4432
0
            let r64 = cranelift_assembler_x64::Gpr::new(self.temp_writable_gpr()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
4433
0
            let xmm_m64 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
4434
4435
            // Build the instruction.
4436
0
            let inst = cranelift_assembler_x64::inst::cvtsd2si_aq::new(r64.clone(), xmm_m64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
4437
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
4438
4439
            // Return a type ISLE can work with.
4440
0
            let gpr = r64.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
4441
0
            AssemblerOutputs::RetGpr { inst, gpr }
4442
0
        }
4443
0
        fn x64_cvttsd2si_a_raw(&mut self, xmm_m64: &XmmMem) -> AssemblerOutputs {
4444
            // Convert ISLE types to assembler types.
4445
0
            let r32 = cranelift_assembler_x64::Gpr::new(self.temp_writable_gpr()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
4446
0
            let xmm_m64 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
4447
4448
            // Build the instruction.
4449
0
            let inst = cranelift_assembler_x64::inst::cvttsd2si_a::new(r32.clone(), xmm_m64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
4450
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
4451
4452
            // Return a type ISLE can work with.
4453
0
            let gpr = r32.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
4454
0
            AssemblerOutputs::RetGpr { inst, gpr }
4455
0
        }
4456
0
        fn x64_cvttsd2si_aq_raw(&mut self, xmm_m64: &XmmMem) -> AssemblerOutputs {
4457
            // Convert ISLE types to assembler types.
4458
0
            let r64 = cranelift_assembler_x64::Gpr::new(self.temp_writable_gpr()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
4459
0
            let xmm_m64 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
4460
4461
            // Build the instruction.
4462
0
            let inst = cranelift_assembler_x64::inst::cvttsd2si_aq::new(r64.clone(), xmm_m64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
4463
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
4464
4465
            // Return a type ISLE can work with.
4466
0
            let gpr = r64.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
4467
0
            AssemblerOutputs::RetGpr { inst, gpr }
4468
0
        }
4469
182
        fn x64_vcvtpd2ps_a_raw(&mut self, xmm_m128: &XmmMem) -> AssemblerOutputs {
4470
            // Convert ISLE types to assembler types.
4471
182
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
4472
182
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
4473
4474
            // Build the instruction.
4475
182
            let inst = cranelift_assembler_x64::inst::vcvtpd2ps_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
4476
182
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
4477
4478
            // Return a type ISLE can work with.
4479
182
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
4480
182
            AssemblerOutputs::RetXmm { inst, xmm }
4481
182
        }
4482
125
        fn x64_vcvttpd2dq_a_raw(&mut self, xmm_m128: &XmmMem) -> AssemblerOutputs {
4483
            // Convert ISLE types to assembler types.
4484
125
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
4485
125
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
4486
4487
            // Build the instruction.
4488
125
            let inst = cranelift_assembler_x64::inst::vcvttpd2dq_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
4489
125
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
4490
4491
            // Return a type ISLE can work with.
4492
125
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
4493
125
            AssemblerOutputs::RetXmm { inst, xmm }
4494
125
        }
4495
3.07k
        fn x64_vcvtsd2ss_b_raw(&mut self, xmm2: Xmm, xmm_m64: &XmmMem) -> AssemblerOutputs {
4496
            // Convert ISLE types to assembler types.
4497
3.07k
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
4498
3.07k
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
4499
3.07k
            let xmm_m64 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
4500
4501
            // Build the instruction.
4502
3.07k
            let inst = cranelift_assembler_x64::inst::vcvtsd2ss_b::new(xmm1.clone(), xmm2.clone(), xmm_m64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
4503
3.07k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
4504
4505
            // Return a type ISLE can work with.
4506
3.07k
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
4507
3.07k
            AssemblerOutputs::RetXmm { inst, xmm }
4508
3.07k
        }
4509
0
        fn x64_vcvtsd2si_a_raw(&mut self, xmm_m64: &XmmMem) -> AssemblerOutputs {
4510
            // Convert ISLE types to assembler types.
4511
0
            let r32 = cranelift_assembler_x64::Gpr::new(self.temp_writable_gpr()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
4512
0
            let xmm_m64 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
4513
4514
            // Build the instruction.
4515
0
            let inst = cranelift_assembler_x64::inst::vcvtsd2si_a::new(r32.clone(), xmm_m64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
4516
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
4517
4518
            // Return a type ISLE can work with.
4519
0
            let gpr = r32.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
4520
0
            AssemblerOutputs::RetGpr { inst, gpr }
4521
0
        }
4522
0
        fn x64_vcvtsd2si_aq_raw(&mut self, xmm_m64: &XmmMem) -> AssemblerOutputs {
4523
            // Convert ISLE types to assembler types.
4524
0
            let r64 = cranelift_assembler_x64::Gpr::new(self.temp_writable_gpr()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
4525
0
            let xmm_m64 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
4526
4527
            // Build the instruction.
4528
0
            let inst = cranelift_assembler_x64::inst::vcvtsd2si_aq::new(r64.clone(), xmm_m64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
4529
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
4530
4531
            // Return a type ISLE can work with.
4532
0
            let gpr = r64.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
4533
0
            AssemblerOutputs::RetGpr { inst, gpr }
4534
0
        }
4535
0
        fn x64_vcvttsd2si_a_raw(&mut self, xmm_m64: &XmmMem) -> AssemblerOutputs {
4536
            // Convert ISLE types to assembler types.
4537
0
            let r32 = cranelift_assembler_x64::Gpr::new(self.temp_writable_gpr()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
4538
0
            let xmm_m64 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
4539
4540
            // Build the instruction.
4541
0
            let inst = cranelift_assembler_x64::inst::vcvttsd2si_a::new(r32.clone(), xmm_m64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
4542
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
4543
4544
            // Return a type ISLE can work with.
4545
0
            let gpr = r32.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
4546
0
            AssemblerOutputs::RetGpr { inst, gpr }
4547
0
        }
4548
0
        fn x64_vcvttsd2si_aq_raw(&mut self, xmm_m64: &XmmMem) -> AssemblerOutputs {
4549
            // Convert ISLE types to assembler types.
4550
0
            let r64 = cranelift_assembler_x64::Gpr::new(self.temp_writable_gpr()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
4551
0
            let xmm_m64 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
4552
4553
            // Build the instruction.
4554
0
            let inst = cranelift_assembler_x64::inst::vcvttsd2si_aq::new(r64.clone(), xmm_m64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
4555
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
4556
4557
            // Return a type ISLE can work with.
4558
0
            let gpr = r64.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
4559
0
            AssemblerOutputs::RetGpr { inst, gpr }
4560
0
        }
4561
147
        fn x64_cvtdq2ps_a_raw(&mut self, xmm_m128: &XmmMemAligned) -> AssemblerOutputs {
4562
            // Convert ISLE types to assembler types.
4563
147
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
4564
147
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
4565
4566
            // Build the instruction.
4567
147
            let inst = cranelift_assembler_x64::inst::cvtdq2ps_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
4568
147
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
4569
4570
            // Return a type ISLE can work with.
4571
147
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
4572
147
            AssemblerOutputs::RetXmm { inst, xmm }
4573
147
        }
4574
1
        fn x64_cvtdq2pd_a_raw(&mut self, xmm_m64: &XmmMem) -> AssemblerOutputs {
4575
            // Convert ISLE types to assembler types.
4576
1
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
4577
1
            let xmm_m64 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
4578
4579
            // Build the instruction.
4580
1
            let inst = cranelift_assembler_x64::inst::cvtdq2pd_a::new(xmm1.clone(), xmm_m64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
4581
1
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
4582
4583
            // Return a type ISLE can work with.
4584
1
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
4585
1
            AssemblerOutputs::RetXmm { inst, xmm }
4586
1
        }
4587
341
        fn x64_cvtsi2ssl_a_raw(&mut self, xmm1: Xmm, rm32: &GprMem) -> AssemblerOutputs {
4588
            // Convert ISLE types to assembler types.
4589
341
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
4590
341
            let rm32 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
4591
4592
            // Build the instruction.
4593
341
            let inst = cranelift_assembler_x64::inst::cvtsi2ssl_a::new(xmm1.clone(), rm32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
4594
341
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
4595
4596
            // Return a type ISLE can work with.
4597
341
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
4598
341
            AssemblerOutputs::RetXmm { inst, xmm }
4599
341
        }
4600
591
        fn x64_cvtsi2ssq_a_raw(&mut self, xmm1: Xmm, rm64: &GprMem) -> AssemblerOutputs {
4601
            // Convert ISLE types to assembler types.
4602
591
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
4603
591
            let rm64 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
4604
4605
            // Build the instruction.
4606
591
            let inst = cranelift_assembler_x64::inst::cvtsi2ssq_a::new(xmm1.clone(), rm64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
4607
591
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
4608
4609
            // Return a type ISLE can work with.
4610
591
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
4611
591
            AssemblerOutputs::RetXmm { inst, xmm }
4612
591
        }
4613
281
        fn x64_cvtsi2sdl_a_raw(&mut self, xmm1: Xmm, rm32: &GprMem) -> AssemblerOutputs {
4614
            // Convert ISLE types to assembler types.
4615
281
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
4616
281
            let rm32 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
4617
4618
            // Build the instruction.
4619
281
            let inst = cranelift_assembler_x64::inst::cvtsi2sdl_a::new(xmm1.clone(), rm32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
4620
281
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
4621
4622
            // Return a type ISLE can work with.
4623
281
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
4624
281
            AssemblerOutputs::RetXmm { inst, xmm }
4625
281
        }
4626
654
        fn x64_cvtsi2sdq_a_raw(&mut self, xmm1: Xmm, rm64: &GprMem) -> AssemblerOutputs {
4627
            // Convert ISLE types to assembler types.
4628
654
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
4629
654
            let rm64 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
4630
4631
            // Build the instruction.
4632
654
            let inst = cranelift_assembler_x64::inst::cvtsi2sdq_a::new(xmm1.clone(), rm64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
4633
654
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
4634
4635
            // Return a type ISLE can work with.
4636
654
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
4637
654
            AssemblerOutputs::RetXmm { inst, xmm }
4638
654
        }
4639
57
        fn x64_vcvtdq2pd_a_raw(&mut self, xmm_m64: &XmmMem) -> AssemblerOutputs {
4640
            // Convert ISLE types to assembler types.
4641
57
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
4642
57
            let xmm_m64 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
4643
4644
            // Build the instruction.
4645
57
            let inst = cranelift_assembler_x64::inst::vcvtdq2pd_a::new(xmm1.clone(), xmm_m64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
4646
57
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
4647
4648
            // Return a type ISLE can work with.
4649
57
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
4650
57
            AssemblerOutputs::RetXmm { inst, xmm }
4651
57
        }
4652
929
        fn x64_vcvtdq2ps_a_raw(&mut self, xmm_m128: &XmmMem) -> AssemblerOutputs {
4653
            // Convert ISLE types to assembler types.
4654
929
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
4655
929
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
4656
4657
            // Build the instruction.
4658
929
            let inst = cranelift_assembler_x64::inst::vcvtdq2ps_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
4659
929
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
4660
4661
            // Return a type ISLE can work with.
4662
929
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
4663
929
            AssemblerOutputs::RetXmm { inst, xmm }
4664
929
        }
4665
5.45k
        fn x64_vcvtsi2sdl_b_raw(&mut self, xmm2: Xmm, rm32: &GprMem) -> AssemblerOutputs {
4666
            // Convert ISLE types to assembler types.
4667
5.45k
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
4668
5.45k
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
4669
5.45k
            let rm32 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
4670
4671
            // Build the instruction.
4672
5.45k
            let inst = cranelift_assembler_x64::inst::vcvtsi2sdl_b::new(xmm1.clone(), xmm2.clone(), rm32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
4673
5.45k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
4674
4675
            // Return a type ISLE can work with.
4676
5.45k
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
4677
5.45k
            AssemblerOutputs::RetXmm { inst, xmm }
4678
5.45k
        }
4679
11.7k
        fn x64_vcvtsi2sdq_b_raw(&mut self, xmm2: Xmm, rm64: &GprMem) -> AssemblerOutputs {
4680
            // Convert ISLE types to assembler types.
4681
11.7k
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
4682
11.7k
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
4683
11.7k
            let rm64 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
4684
4685
            // Build the instruction.
4686
11.7k
            let inst = cranelift_assembler_x64::inst::vcvtsi2sdq_b::new(xmm1.clone(), xmm2.clone(), rm64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
4687
11.7k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
4688
4689
            // Return a type ISLE can work with.
4690
11.7k
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
4691
11.7k
            AssemblerOutputs::RetXmm { inst, xmm }
4692
11.7k
        }
4693
9.59k
        fn x64_vcvtsi2ssl_b_raw(&mut self, xmm2: Xmm, rm32: &GprMem) -> AssemblerOutputs {
4694
            // Convert ISLE types to assembler types.
4695
9.59k
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
4696
9.59k
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
4697
9.59k
            let rm32 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
4698
4699
            // Build the instruction.
4700
9.59k
            let inst = cranelift_assembler_x64::inst::vcvtsi2ssl_b::new(xmm1.clone(), xmm2.clone(), rm32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
4701
9.59k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
4702
4703
            // Return a type ISLE can work with.
4704
9.59k
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
4705
9.59k
            AssemblerOutputs::RetXmm { inst, xmm }
4706
9.59k
        }
4707
11.0k
        fn x64_vcvtsi2ssq_b_raw(&mut self, xmm2: Xmm, rm64: &GprMem) -> AssemblerOutputs {
4708
            // Convert ISLE types to assembler types.
4709
11.0k
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
4710
11.0k
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
4711
11.0k
            let rm64 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
4712
4713
            // Build the instruction.
4714
11.0k
            let inst = cranelift_assembler_x64::inst::vcvtsi2ssq_b::new(xmm1.clone(), xmm2.clone(), rm64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
4715
11.0k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
4716
4717
            // Return a type ISLE can work with.
4718
11.0k
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
4719
11.0k
            AssemblerOutputs::RetXmm { inst, xmm }
4720
11.0k
        }
4721
0
        fn x64_vcvtudq2ps_a_raw(&mut self, xmm_m128: &XmmMem) -> AssemblerOutputs {
4722
            // Convert ISLE types to assembler types.
4723
0
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
4724
0
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
4725
4726
            // Build the instruction.
4727
0
            let inst = cranelift_assembler_x64::inst::vcvtudq2ps_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
4728
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
4729
4730
            // Return a type ISLE can work with.
4731
0
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
4732
0
            AssemblerOutputs::RetXmm { inst, xmm }
4733
0
        }
4734
82
        fn x64_divb_m_raw(&mut self, ax: Gpr, rm8: &GprMem, trap: &TrapCode) -> AssemblerOutputs {
4735
            // Convert ISLE types to assembler types.
4736
82
            let ax = self.convert_gpr_to_assembler_fixed_read_write_gpr(ax); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
4737
82
            let rm8 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
4738
4739
            // Build the instruction.
4740
82
            let inst = cranelift_assembler_x64::inst::divb_m::new(ax.clone(), rm8.clone(), cranelift_assembler_x64::TrapCode(trap.as_raw())).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
4741
82
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
4742
4743
            // Return a type ISLE can work with.
4744
82
            let gpr = ax.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
4745
82
            AssemblerOutputs::RetGpr { inst, gpr }
4746
82
        }
4747
7.38k
        fn x64_divw_m_raw(&mut self, ax: Gpr, dx: Gpr, rm16: &GprMem, trap: &TrapCode) -> AssemblerOutputs {
4748
            // Convert ISLE types to assembler types.
4749
7.38k
            let ax = self.convert_gpr_to_assembler_fixed_read_write_gpr(ax); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
4750
7.38k
            let dx = self.convert_gpr_to_assembler_fixed_read_write_gpr(dx); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
4751
7.38k
            let rm16 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
4752
4753
            // Build the instruction.
4754
7.38k
            let inst = cranelift_assembler_x64::inst::divw_m::new(ax.clone(), dx.clone(), rm16.clone(), cranelift_assembler_x64::TrapCode(trap.as_raw())).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
4755
7.38k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
4756
4757
            // Return a type ISLE can work with.
4758
7.38k
            let one = ax.as_ref().write.to_reg().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:194
4759
7.38k
            let two = dx.as_ref().write.to_reg().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:195
4760
7.38k
            let regs = ValueRegs::two(one, two); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:196
4761
7.38k
            AssemblerOutputs::RetValueRegs { inst, regs }
4762
7.38k
        }
4763
17.3k
        fn x64_divl_m_raw(&mut self, eax: Gpr, edx: Gpr, rm32: &GprMem, trap: &TrapCode) -> AssemblerOutputs {
4764
            // Convert ISLE types to assembler types.
4765
17.3k
            let eax = self.convert_gpr_to_assembler_fixed_read_write_gpr(eax); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
4766
17.3k
            let edx = self.convert_gpr_to_assembler_fixed_read_write_gpr(edx); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
4767
17.3k
            let rm32 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
4768
4769
            // Build the instruction.
4770
17.3k
            let inst = cranelift_assembler_x64::inst::divl_m::new(eax.clone(), edx.clone(), rm32.clone(), cranelift_assembler_x64::TrapCode(trap.as_raw())).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
4771
17.3k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
4772
4773
            // Return a type ISLE can work with.
4774
17.3k
            let one = eax.as_ref().write.to_reg().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:194
4775
17.3k
            let two = edx.as_ref().write.to_reg().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:195
4776
17.3k
            let regs = ValueRegs::two(one, two); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:196
4777
17.3k
            AssemblerOutputs::RetValueRegs { inst, regs }
4778
17.3k
        }
4779
6.62k
        fn x64_divq_m_raw(&mut self, rax: Gpr, rdx: Gpr, rm64: &GprMem, trap: &TrapCode) -> AssemblerOutputs {
4780
            // Convert ISLE types to assembler types.
4781
6.62k
            let rax = self.convert_gpr_to_assembler_fixed_read_write_gpr(rax); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
4782
6.62k
            let rdx = self.convert_gpr_to_assembler_fixed_read_write_gpr(rdx); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
4783
6.62k
            let rm64 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
4784
4785
            // Build the instruction.
4786
6.62k
            let inst = cranelift_assembler_x64::inst::divq_m::new(rax.clone(), rdx.clone(), rm64.clone(), cranelift_assembler_x64::TrapCode(trap.as_raw())).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
4787
6.62k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
4788
4789
            // Return a type ISLE can work with.
4790
6.62k
            let one = rax.as_ref().write.to_reg().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:194
4791
6.62k
            let two = rdx.as_ref().write.to_reg().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:195
4792
6.62k
            let regs = ValueRegs::two(one, two); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:196
4793
6.62k
            AssemblerOutputs::RetValueRegs { inst, regs }
4794
6.62k
        }
4795
18
        fn x64_idivb_m_raw(&mut self, ax: Gpr, rm8: &GprMem, trap: &TrapCode) -> AssemblerOutputs {
4796
            // Convert ISLE types to assembler types.
4797
18
            let ax = self.convert_gpr_to_assembler_fixed_read_write_gpr(ax); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
4798
18
            let rm8 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
4799
4800
            // Build the instruction.
4801
18
            let inst = cranelift_assembler_x64::inst::idivb_m::new(ax.clone(), rm8.clone(), cranelift_assembler_x64::TrapCode(trap.as_raw())).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
4802
18
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
4803
4804
            // Return a type ISLE can work with.
4805
18
            let gpr = ax.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
4806
18
            AssemblerOutputs::RetGpr { inst, gpr }
4807
18
        }
4808
69
        fn x64_idivw_m_raw(&mut self, ax: Gpr, dx: Gpr, rm16: &GprMem, trap: &TrapCode) -> AssemblerOutputs {
4809
            // Convert ISLE types to assembler types.
4810
69
            let ax = self.convert_gpr_to_assembler_fixed_read_write_gpr(ax); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
4811
69
            let dx = self.convert_gpr_to_assembler_fixed_read_write_gpr(dx); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
4812
69
            let rm16 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
4813
4814
            // Build the instruction.
4815
69
            let inst = cranelift_assembler_x64::inst::idivw_m::new(ax.clone(), dx.clone(), rm16.clone(), cranelift_assembler_x64::TrapCode(trap.as_raw())).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
4816
69
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
4817
4818
            // Return a type ISLE can work with.
4819
69
            let one = ax.as_ref().write.to_reg().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:194
4820
69
            let two = dx.as_ref().write.to_reg().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:195
4821
69
            let regs = ValueRegs::two(one, two); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:196
4822
69
            AssemblerOutputs::RetValueRegs { inst, regs }
4823
69
        }
4824
11.4k
        fn x64_idivl_m_raw(&mut self, eax: Gpr, edx: Gpr, rm32: &GprMem, trap: &TrapCode) -> AssemblerOutputs {
4825
            // Convert ISLE types to assembler types.
4826
11.4k
            let eax = self.convert_gpr_to_assembler_fixed_read_write_gpr(eax); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
4827
11.4k
            let edx = self.convert_gpr_to_assembler_fixed_read_write_gpr(edx); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
4828
11.4k
            let rm32 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
4829
4830
            // Build the instruction.
4831
11.4k
            let inst = cranelift_assembler_x64::inst::idivl_m::new(eax.clone(), edx.clone(), rm32.clone(), cranelift_assembler_x64::TrapCode(trap.as_raw())).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
4832
11.4k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
4833
4834
            // Return a type ISLE can work with.
4835
11.4k
            let one = eax.as_ref().write.to_reg().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:194
4836
11.4k
            let two = edx.as_ref().write.to_reg().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:195
4837
11.4k
            let regs = ValueRegs::two(one, two); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:196
4838
11.4k
            AssemblerOutputs::RetValueRegs { inst, regs }
4839
11.4k
        }
4840
3.05k
        fn x64_idivq_m_raw(&mut self, rax: Gpr, rdx: Gpr, rm64: &GprMem, trap: &TrapCode) -> AssemblerOutputs {
4841
            // Convert ISLE types to assembler types.
4842
3.05k
            let rax = self.convert_gpr_to_assembler_fixed_read_write_gpr(rax); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
4843
3.05k
            let rdx = self.convert_gpr_to_assembler_fixed_read_write_gpr(rdx); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
4844
3.05k
            let rm64 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
4845
4846
            // Build the instruction.
4847
3.05k
            let inst = cranelift_assembler_x64::inst::idivq_m::new(rax.clone(), rdx.clone(), rm64.clone(), cranelift_assembler_x64::TrapCode(trap.as_raw())).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
4848
3.05k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
4849
4850
            // Return a type ISLE can work with.
4851
3.05k
            let one = rax.as_ref().write.to_reg().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:194
4852
3.05k
            let two = rdx.as_ref().write.to_reg().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:195
4853
3.05k
            let regs = ValueRegs::two(one, two); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:196
4854
3.05k
            AssemblerOutputs::RetValueRegs { inst, regs }
4855
3.05k
        }
4856
19
        fn x64_divss_a_raw(&mut self, xmm1: Xmm, xmm_m32: &XmmMem) -> AssemblerOutputs {
4857
            // Convert ISLE types to assembler types.
4858
19
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
4859
19
            let xmm_m32 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
4860
4861
            // Build the instruction.
4862
19
            let inst = cranelift_assembler_x64::inst::divss_a::new(xmm1.clone(), xmm_m32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
4863
19
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
4864
4865
            // Return a type ISLE can work with.
4866
19
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
4867
19
            AssemblerOutputs::RetXmm { inst, xmm }
4868
19
        }
4869
22
        fn x64_divsd_a_raw(&mut self, xmm1: Xmm, xmm_m64: &XmmMem) -> AssemblerOutputs {
4870
            // Convert ISLE types to assembler types.
4871
22
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
4872
22
            let xmm_m64 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
4873
4874
            // Build the instruction.
4875
22
            let inst = cranelift_assembler_x64::inst::divsd_a::new(xmm1.clone(), xmm_m64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
4876
22
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
4877
4878
            // Return a type ISLE can work with.
4879
22
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
4880
22
            AssemblerOutputs::RetXmm { inst, xmm }
4881
22
        }
4882
5
        fn x64_divps_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned) -> AssemblerOutputs {
4883
            // Convert ISLE types to assembler types.
4884
5
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
4885
5
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
4886
4887
            // Build the instruction.
4888
5
            let inst = cranelift_assembler_x64::inst::divps_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
4889
5
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
4890
4891
            // Return a type ISLE can work with.
4892
5
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
4893
5
            AssemblerOutputs::RetXmm { inst, xmm }
4894
5
        }
4895
0
        fn x64_divpd_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned) -> AssemblerOutputs {
4896
            // Convert ISLE types to assembler types.
4897
0
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
4898
0
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
4899
4900
            // Build the instruction.
4901
0
            let inst = cranelift_assembler_x64::inst::divpd_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
4902
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
4903
4904
            // Return a type ISLE can work with.
4905
0
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
4906
0
            AssemblerOutputs::RetXmm { inst, xmm }
4907
0
        }
4908
1.93k
        fn x64_vdivss_b_raw(&mut self, xmm2: Xmm, xmm_m32: &XmmMem) -> AssemblerOutputs {
4909
            // Convert ISLE types to assembler types.
4910
1.93k
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
4911
1.93k
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
4912
1.93k
            let xmm_m32 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
4913
4914
            // Build the instruction.
4915
1.93k
            let inst = cranelift_assembler_x64::inst::vdivss_b::new(xmm1.clone(), xmm2.clone(), xmm_m32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
4916
1.93k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
4917
4918
            // Return a type ISLE can work with.
4919
1.93k
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
4920
1.93k
            AssemblerOutputs::RetXmm { inst, xmm }
4921
1.93k
        }
4922
667
        fn x64_vdivsd_b_raw(&mut self, xmm2: Xmm, xmm_m64: &XmmMem) -> AssemblerOutputs {
4923
            // Convert ISLE types to assembler types.
4924
667
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
4925
667
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
4926
667
            let xmm_m64 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
4927
4928
            // Build the instruction.
4929
667
            let inst = cranelift_assembler_x64::inst::vdivsd_b::new(xmm1.clone(), xmm2.clone(), xmm_m64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
4930
667
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
4931
4932
            // Return a type ISLE can work with.
4933
667
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
4934
667
            AssemblerOutputs::RetXmm { inst, xmm }
4935
667
        }
4936
45
        fn x64_vdivps_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem) -> AssemblerOutputs {
4937
            // Convert ISLE types to assembler types.
4938
45
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
4939
45
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
4940
45
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
4941
4942
            // Build the instruction.
4943
45
            let inst = cranelift_assembler_x64::inst::vdivps_b::new(xmm1.clone(), xmm2.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
4944
45
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
4945
4946
            // Return a type ISLE can work with.
4947
45
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
4948
45
            AssemblerOutputs::RetXmm { inst, xmm }
4949
45
        }
4950
21
        fn x64_vdivpd_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem) -> AssemblerOutputs {
4951
            // Convert ISLE types to assembler types.
4952
21
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
4953
21
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
4954
21
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
4955
4956
            // Build the instruction.
4957
21
            let inst = cranelift_assembler_x64::inst::vdivpd_b::new(xmm1.clone(), xmm2.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
4958
21
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
4959
4960
            // Return a type ISLE can work with.
4961
21
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
4962
21
            AssemblerOutputs::RetXmm { inst, xmm }
4963
21
        }
4964
0
        fn x64_vfmadd132ss_a_raw(&mut self, xmm1: Xmm, xmm2: Xmm, xmm_m32: &XmmMem) -> AssemblerOutputs {
4965
            // Convert ISLE types to assembler types.
4966
0
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
4967
0
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
4968
0
            let xmm_m32 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
4969
4970
            // Build the instruction.
4971
0
            let inst = cranelift_assembler_x64::inst::vfmadd132ss_a::new(xmm1.clone(), xmm2.clone(), xmm_m32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
4972
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
4973
4974
            // Return a type ISLE can work with.
4975
0
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
4976
0
            AssemblerOutputs::RetXmm { inst, xmm }
4977
0
        }
4978
10.3k
        fn x64_vfmadd213ss_a_raw(&mut self, xmm1: Xmm, xmm2: Xmm, xmm_m32: &XmmMem) -> AssemblerOutputs {
4979
            // Convert ISLE types to assembler types.
4980
10.3k
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
4981
10.3k
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
4982
10.3k
            let xmm_m32 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
4983
4984
            // Build the instruction.
4985
10.3k
            let inst = cranelift_assembler_x64::inst::vfmadd213ss_a::new(xmm1.clone(), xmm2.clone(), xmm_m32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
4986
10.3k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
4987
4988
            // Return a type ISLE can work with.
4989
10.3k
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
4990
10.3k
            AssemblerOutputs::RetXmm { inst, xmm }
4991
10.3k
        }
4992
0
        fn x64_vfmadd231ss_a_raw(&mut self, xmm1: Xmm, xmm2: Xmm, xmm_m32: &XmmMem) -> AssemblerOutputs {
4993
            // Convert ISLE types to assembler types.
4994
0
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
4995
0
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
4996
0
            let xmm_m32 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
4997
4998
            // Build the instruction.
4999
0
            let inst = cranelift_assembler_x64::inst::vfmadd231ss_a::new(xmm1.clone(), xmm2.clone(), xmm_m32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
5000
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
5001
5002
            // Return a type ISLE can work with.
5003
0
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
5004
0
            AssemblerOutputs::RetXmm { inst, xmm }
5005
0
        }
5006
0
        fn x64_vfmadd132sd_a_raw(&mut self, xmm1: Xmm, xmm2: Xmm, xmm_m64: &XmmMem) -> AssemblerOutputs {
5007
            // Convert ISLE types to assembler types.
5008
0
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
5009
0
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
5010
0
            let xmm_m64 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
5011
5012
            // Build the instruction.
5013
0
            let inst = cranelift_assembler_x64::inst::vfmadd132sd_a::new(xmm1.clone(), xmm2.clone(), xmm_m64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
5014
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
5015
5016
            // Return a type ISLE can work with.
5017
0
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
5018
0
            AssemblerOutputs::RetXmm { inst, xmm }
5019
0
        }
5020
96
        fn x64_vfmadd213sd_a_raw(&mut self, xmm1: Xmm, xmm2: Xmm, xmm_m64: &XmmMem) -> AssemblerOutputs {
5021
            // Convert ISLE types to assembler types.
5022
96
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
5023
96
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
5024
96
            let xmm_m64 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
5025
5026
            // Build the instruction.
5027
96
            let inst = cranelift_assembler_x64::inst::vfmadd213sd_a::new(xmm1.clone(), xmm2.clone(), xmm_m64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
5028
96
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
5029
5030
            // Return a type ISLE can work with.
5031
96
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
5032
96
            AssemblerOutputs::RetXmm { inst, xmm }
5033
96
        }
5034
0
        fn x64_vfmadd231sd_a_raw(&mut self, xmm1: Xmm, xmm2: Xmm, xmm_m64: &XmmMem) -> AssemblerOutputs {
5035
            // Convert ISLE types to assembler types.
5036
0
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
5037
0
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
5038
0
            let xmm_m64 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
5039
5040
            // Build the instruction.
5041
0
            let inst = cranelift_assembler_x64::inst::vfmadd231sd_a::new(xmm1.clone(), xmm2.clone(), xmm_m64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
5042
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
5043
5044
            // Return a type ISLE can work with.
5045
0
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
5046
0
            AssemblerOutputs::RetXmm { inst, xmm }
5047
0
        }
5048
0
        fn x64_vfmadd132ps_a_raw(&mut self, xmm1: Xmm, xmm2: Xmm, xmm_m128: &XmmMem) -> AssemblerOutputs {
5049
            // Convert ISLE types to assembler types.
5050
0
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
5051
0
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
5052
0
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
5053
5054
            // Build the instruction.
5055
0
            let inst = cranelift_assembler_x64::inst::vfmadd132ps_a::new(xmm1.clone(), xmm2.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
5056
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
5057
5058
            // Return a type ISLE can work with.
5059
0
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
5060
0
            AssemblerOutputs::RetXmm { inst, xmm }
5061
0
        }
5062
19
        fn x64_vfmadd213ps_a_raw(&mut self, xmm1: Xmm, xmm2: Xmm, xmm_m128: &XmmMem) -> AssemblerOutputs {
5063
            // Convert ISLE types to assembler types.
5064
19
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
5065
19
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
5066
19
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
5067
5068
            // Build the instruction.
5069
19
            let inst = cranelift_assembler_x64::inst::vfmadd213ps_a::new(xmm1.clone(), xmm2.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
5070
19
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
5071
5072
            // Return a type ISLE can work with.
5073
19
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
5074
19
            AssemblerOutputs::RetXmm { inst, xmm }
5075
19
        }
5076
0
        fn x64_vfmadd231ps_a_raw(&mut self, xmm1: Xmm, xmm2: Xmm, xmm_m128: &XmmMem) -> AssemblerOutputs {
5077
            // Convert ISLE types to assembler types.
5078
0
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
5079
0
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
5080
0
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
5081
5082
            // Build the instruction.
5083
0
            let inst = cranelift_assembler_x64::inst::vfmadd231ps_a::new(xmm1.clone(), xmm2.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
5084
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
5085
5086
            // Return a type ISLE can work with.
5087
0
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
5088
0
            AssemblerOutputs::RetXmm { inst, xmm }
5089
0
        }
5090
0
        fn x64_vfmadd132pd_a_raw(&mut self, xmm1: Xmm, xmm2: Xmm, xmm_m128: &XmmMem) -> AssemblerOutputs {
5091
            // Convert ISLE types to assembler types.
5092
0
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
5093
0
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
5094
0
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
5095
5096
            // Build the instruction.
5097
0
            let inst = cranelift_assembler_x64::inst::vfmadd132pd_a::new(xmm1.clone(), xmm2.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
5098
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
5099
5100
            // Return a type ISLE can work with.
5101
0
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
5102
0
            AssemblerOutputs::RetXmm { inst, xmm }
5103
0
        }
5104
49
        fn x64_vfmadd213pd_a_raw(&mut self, xmm1: Xmm, xmm2: Xmm, xmm_m128: &XmmMem) -> AssemblerOutputs {
5105
            // Convert ISLE types to assembler types.
5106
49
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
5107
49
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
5108
49
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
5109
5110
            // Build the instruction.
5111
49
            let inst = cranelift_assembler_x64::inst::vfmadd213pd_a::new(xmm1.clone(), xmm2.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
5112
49
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
5113
5114
            // Return a type ISLE can work with.
5115
49
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
5116
49
            AssemblerOutputs::RetXmm { inst, xmm }
5117
49
        }
5118
0
        fn x64_vfmadd231pd_a_raw(&mut self, xmm1: Xmm, xmm2: Xmm, xmm_m128: &XmmMem) -> AssemblerOutputs {
5119
            // Convert ISLE types to assembler types.
5120
0
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
5121
0
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
5122
0
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
5123
5124
            // Build the instruction.
5125
0
            let inst = cranelift_assembler_x64::inst::vfmadd231pd_a::new(xmm1.clone(), xmm2.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
5126
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
5127
5128
            // Return a type ISLE can work with.
5129
0
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
5130
0
            AssemblerOutputs::RetXmm { inst, xmm }
5131
0
        }
5132
0
        fn x64_vfnmadd132ss_a_raw(&mut self, xmm1: Xmm, xmm2: Xmm, xmm_m32: &XmmMem) -> AssemblerOutputs {
5133
            // Convert ISLE types to assembler types.
5134
0
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
5135
0
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
5136
0
            let xmm_m32 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
5137
5138
            // Build the instruction.
5139
0
            let inst = cranelift_assembler_x64::inst::vfnmadd132ss_a::new(xmm1.clone(), xmm2.clone(), xmm_m32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
5140
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
5141
5142
            // Return a type ISLE can work with.
5143
0
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
5144
0
            AssemblerOutputs::RetXmm { inst, xmm }
5145
0
        }
5146
0
        fn x64_vfnmadd213ss_a_raw(&mut self, xmm1: Xmm, xmm2: Xmm, xmm_m32: &XmmMem) -> AssemblerOutputs {
5147
            // Convert ISLE types to assembler types.
5148
0
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
5149
0
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
5150
0
            let xmm_m32 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
5151
5152
            // Build the instruction.
5153
0
            let inst = cranelift_assembler_x64::inst::vfnmadd213ss_a::new(xmm1.clone(), xmm2.clone(), xmm_m32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
5154
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
5155
5156
            // Return a type ISLE can work with.
5157
0
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
5158
0
            AssemblerOutputs::RetXmm { inst, xmm }
5159
0
        }
5160
0
        fn x64_vfnmadd231ss_a_raw(&mut self, xmm1: Xmm, xmm2: Xmm, xmm_m32: &XmmMem) -> AssemblerOutputs {
5161
            // Convert ISLE types to assembler types.
5162
0
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
5163
0
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
5164
0
            let xmm_m32 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
5165
5166
            // Build the instruction.
5167
0
            let inst = cranelift_assembler_x64::inst::vfnmadd231ss_a::new(xmm1.clone(), xmm2.clone(), xmm_m32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
5168
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
5169
5170
            // Return a type ISLE can work with.
5171
0
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
5172
0
            AssemblerOutputs::RetXmm { inst, xmm }
5173
0
        }
5174
0
        fn x64_vfnmadd132sd_a_raw(&mut self, xmm1: Xmm, xmm2: Xmm, xmm_m64: &XmmMem) -> AssemblerOutputs {
5175
            // Convert ISLE types to assembler types.
5176
0
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
5177
0
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
5178
0
            let xmm_m64 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
5179
5180
            // Build the instruction.
5181
0
            let inst = cranelift_assembler_x64::inst::vfnmadd132sd_a::new(xmm1.clone(), xmm2.clone(), xmm_m64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
5182
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
5183
5184
            // Return a type ISLE can work with.
5185
0
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
5186
0
            AssemblerOutputs::RetXmm { inst, xmm }
5187
0
        }
5188
0
        fn x64_vfnmadd213sd_a_raw(&mut self, xmm1: Xmm, xmm2: Xmm, xmm_m64: &XmmMem) -> AssemblerOutputs {
5189
            // Convert ISLE types to assembler types.
5190
0
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
5191
0
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
5192
0
            let xmm_m64 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
5193
5194
            // Build the instruction.
5195
0
            let inst = cranelift_assembler_x64::inst::vfnmadd213sd_a::new(xmm1.clone(), xmm2.clone(), xmm_m64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
5196
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
5197
5198
            // Return a type ISLE can work with.
5199
0
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
5200
0
            AssemblerOutputs::RetXmm { inst, xmm }
5201
0
        }
5202
0
        fn x64_vfnmadd231sd_a_raw(&mut self, xmm1: Xmm, xmm2: Xmm, xmm_m64: &XmmMem) -> AssemblerOutputs {
5203
            // Convert ISLE types to assembler types.
5204
0
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
5205
0
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
5206
0
            let xmm_m64 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
5207
5208
            // Build the instruction.
5209
0
            let inst = cranelift_assembler_x64::inst::vfnmadd231sd_a::new(xmm1.clone(), xmm2.clone(), xmm_m64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
5210
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
5211
5212
            // Return a type ISLE can work with.
5213
0
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
5214
0
            AssemblerOutputs::RetXmm { inst, xmm }
5215
0
        }
5216
0
        fn x64_vfnmadd132ps_a_raw(&mut self, xmm1: Xmm, xmm2: Xmm, xmm_m128: &XmmMem) -> AssemblerOutputs {
5217
            // Convert ISLE types to assembler types.
5218
0
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
5219
0
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
5220
0
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
5221
5222
            // Build the instruction.
5223
0
            let inst = cranelift_assembler_x64::inst::vfnmadd132ps_a::new(xmm1.clone(), xmm2.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
5224
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
5225
5226
            // Return a type ISLE can work with.
5227
0
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
5228
0
            AssemblerOutputs::RetXmm { inst, xmm }
5229
0
        }
5230
6
        fn x64_vfnmadd213ps_a_raw(&mut self, xmm1: Xmm, xmm2: Xmm, xmm_m128: &XmmMem) -> AssemblerOutputs {
5231
            // Convert ISLE types to assembler types.
5232
6
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
5233
6
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
5234
6
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
5235
5236
            // Build the instruction.
5237
6
            let inst = cranelift_assembler_x64::inst::vfnmadd213ps_a::new(xmm1.clone(), xmm2.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
5238
6
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
5239
5240
            // Return a type ISLE can work with.
5241
6
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
5242
6
            AssemblerOutputs::RetXmm { inst, xmm }
5243
6
        }
5244
0
        fn x64_vfnmadd231ps_a_raw(&mut self, xmm1: Xmm, xmm2: Xmm, xmm_m128: &XmmMem) -> AssemblerOutputs {
5245
            // Convert ISLE types to assembler types.
5246
0
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
5247
0
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
5248
0
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
5249
5250
            // Build the instruction.
5251
0
            let inst = cranelift_assembler_x64::inst::vfnmadd231ps_a::new(xmm1.clone(), xmm2.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
5252
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
5253
5254
            // Return a type ISLE can work with.
5255
0
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
5256
0
            AssemblerOutputs::RetXmm { inst, xmm }
5257
0
        }
5258
0
        fn x64_vfnmadd132pd_a_raw(&mut self, xmm1: Xmm, xmm2: Xmm, xmm_m128: &XmmMem) -> AssemblerOutputs {
5259
            // Convert ISLE types to assembler types.
5260
0
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
5261
0
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
5262
0
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
5263
5264
            // Build the instruction.
5265
0
            let inst = cranelift_assembler_x64::inst::vfnmadd132pd_a::new(xmm1.clone(), xmm2.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
5266
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
5267
5268
            // Return a type ISLE can work with.
5269
0
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
5270
0
            AssemblerOutputs::RetXmm { inst, xmm }
5271
0
        }
5272
6
        fn x64_vfnmadd213pd_a_raw(&mut self, xmm1: Xmm, xmm2: Xmm, xmm_m128: &XmmMem) -> AssemblerOutputs {
5273
            // Convert ISLE types to assembler types.
5274
6
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
5275
6
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
5276
6
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
5277
5278
            // Build the instruction.
5279
6
            let inst = cranelift_assembler_x64::inst::vfnmadd213pd_a::new(xmm1.clone(), xmm2.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
5280
6
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
5281
5282
            // Return a type ISLE can work with.
5283
6
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
5284
6
            AssemblerOutputs::RetXmm { inst, xmm }
5285
6
        }
5286
0
        fn x64_vfnmadd231pd_a_raw(&mut self, xmm1: Xmm, xmm2: Xmm, xmm_m128: &XmmMem) -> AssemblerOutputs {
5287
            // Convert ISLE types to assembler types.
5288
0
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
5289
0
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
5290
0
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
5291
5292
            // Build the instruction.
5293
0
            let inst = cranelift_assembler_x64::inst::vfnmadd231pd_a::new(xmm1.clone(), xmm2.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
5294
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
5295
5296
            // Return a type ISLE can work with.
5297
0
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
5298
0
            AssemblerOutputs::RetXmm { inst, xmm }
5299
0
        }
5300
0
        fn x64_vfmsub132ss_a_raw(&mut self, xmm1: Xmm, xmm2: Xmm, xmm_m32: &XmmMem) -> AssemblerOutputs {
5301
            // Convert ISLE types to assembler types.
5302
0
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
5303
0
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
5304
0
            let xmm_m32 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
5305
5306
            // Build the instruction.
5307
0
            let inst = cranelift_assembler_x64::inst::vfmsub132ss_a::new(xmm1.clone(), xmm2.clone(), xmm_m32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
5308
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
5309
5310
            // Return a type ISLE can work with.
5311
0
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
5312
0
            AssemblerOutputs::RetXmm { inst, xmm }
5313
0
        }
5314
1
        fn x64_vfmsub213ss_a_raw(&mut self, xmm1: Xmm, xmm2: Xmm, xmm_m32: &XmmMem) -> AssemblerOutputs {
5315
            // Convert ISLE types to assembler types.
5316
1
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
5317
1
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
5318
1
            let xmm_m32 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
5319
5320
            // Build the instruction.
5321
1
            let inst = cranelift_assembler_x64::inst::vfmsub213ss_a::new(xmm1.clone(), xmm2.clone(), xmm_m32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
5322
1
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
5323
5324
            // Return a type ISLE can work with.
5325
1
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
5326
1
            AssemblerOutputs::RetXmm { inst, xmm }
5327
1
        }
5328
0
        fn x64_vfmsub231ss_a_raw(&mut self, xmm1: Xmm, xmm2: Xmm, xmm_m32: &XmmMem) -> AssemblerOutputs {
5329
            // Convert ISLE types to assembler types.
5330
0
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
5331
0
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
5332
0
            let xmm_m32 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
5333
5334
            // Build the instruction.
5335
0
            let inst = cranelift_assembler_x64::inst::vfmsub231ss_a::new(xmm1.clone(), xmm2.clone(), xmm_m32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
5336
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
5337
5338
            // Return a type ISLE can work with.
5339
0
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
5340
0
            AssemblerOutputs::RetXmm { inst, xmm }
5341
0
        }
5342
0
        fn x64_vfmsub132sd_a_raw(&mut self, xmm1: Xmm, xmm2: Xmm, xmm_m64: &XmmMem) -> AssemblerOutputs {
5343
            // Convert ISLE types to assembler types.
5344
0
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
5345
0
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
5346
0
            let xmm_m64 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
5347
5348
            // Build the instruction.
5349
0
            let inst = cranelift_assembler_x64::inst::vfmsub132sd_a::new(xmm1.clone(), xmm2.clone(), xmm_m64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
5350
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
5351
5352
            // Return a type ISLE can work with.
5353
0
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
5354
0
            AssemblerOutputs::RetXmm { inst, xmm }
5355
0
        }
5356
0
        fn x64_vfmsub213sd_a_raw(&mut self, xmm1: Xmm, xmm2: Xmm, xmm_m64: &XmmMem) -> AssemblerOutputs {
5357
            // Convert ISLE types to assembler types.
5358
0
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
5359
0
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
5360
0
            let xmm_m64 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
5361
5362
            // Build the instruction.
5363
0
            let inst = cranelift_assembler_x64::inst::vfmsub213sd_a::new(xmm1.clone(), xmm2.clone(), xmm_m64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
5364
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
5365
5366
            // Return a type ISLE can work with.
5367
0
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
5368
0
            AssemblerOutputs::RetXmm { inst, xmm }
5369
0
        }
5370
0
        fn x64_vfmsub231sd_a_raw(&mut self, xmm1: Xmm, xmm2: Xmm, xmm_m64: &XmmMem) -> AssemblerOutputs {
5371
            // Convert ISLE types to assembler types.
5372
0
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
5373
0
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
5374
0
            let xmm_m64 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
5375
5376
            // Build the instruction.
5377
0
            let inst = cranelift_assembler_x64::inst::vfmsub231sd_a::new(xmm1.clone(), xmm2.clone(), xmm_m64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
5378
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
5379
5380
            // Return a type ISLE can work with.
5381
0
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
5382
0
            AssemblerOutputs::RetXmm { inst, xmm }
5383
0
        }
5384
0
        fn x64_vfmsub132ps_a_raw(&mut self, xmm1: Xmm, xmm2: Xmm, xmm_m128: &XmmMem) -> AssemblerOutputs {
5385
            // Convert ISLE types to assembler types.
5386
0
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
5387
0
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
5388
0
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
5389
5390
            // Build the instruction.
5391
0
            let inst = cranelift_assembler_x64::inst::vfmsub132ps_a::new(xmm1.clone(), xmm2.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
5392
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
5393
5394
            // Return a type ISLE can work with.
5395
0
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
5396
0
            AssemblerOutputs::RetXmm { inst, xmm }
5397
0
        }
5398
0
        fn x64_vfmsub213ps_a_raw(&mut self, xmm1: Xmm, xmm2: Xmm, xmm_m128: &XmmMem) -> AssemblerOutputs {
5399
            // Convert ISLE types to assembler types.
5400
0
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
5401
0
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
5402
0
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
5403
5404
            // Build the instruction.
5405
0
            let inst = cranelift_assembler_x64::inst::vfmsub213ps_a::new(xmm1.clone(), xmm2.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
5406
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
5407
5408
            // Return a type ISLE can work with.
5409
0
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
5410
0
            AssemblerOutputs::RetXmm { inst, xmm }
5411
0
        }
5412
0
        fn x64_vfmsub231ps_a_raw(&mut self, xmm1: Xmm, xmm2: Xmm, xmm_m128: &XmmMem) -> AssemblerOutputs {
5413
            // Convert ISLE types to assembler types.
5414
0
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
5415
0
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
5416
0
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
5417
5418
            // Build the instruction.
5419
0
            let inst = cranelift_assembler_x64::inst::vfmsub231ps_a::new(xmm1.clone(), xmm2.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
5420
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
5421
5422
            // Return a type ISLE can work with.
5423
0
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
5424
0
            AssemblerOutputs::RetXmm { inst, xmm }
5425
0
        }
5426
0
        fn x64_vfmsub132pd_a_raw(&mut self, xmm1: Xmm, xmm2: Xmm, xmm_m128: &XmmMem) -> AssemblerOutputs {
5427
            // Convert ISLE types to assembler types.
5428
0
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
5429
0
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
5430
0
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
5431
5432
            // Build the instruction.
5433
0
            let inst = cranelift_assembler_x64::inst::vfmsub132pd_a::new(xmm1.clone(), xmm2.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
5434
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
5435
5436
            // Return a type ISLE can work with.
5437
0
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
5438
0
            AssemblerOutputs::RetXmm { inst, xmm }
5439
0
        }
5440
0
        fn x64_vfmsub213pd_a_raw(&mut self, xmm1: Xmm, xmm2: Xmm, xmm_m128: &XmmMem) -> AssemblerOutputs {
5441
            // Convert ISLE types to assembler types.
5442
0
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
5443
0
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
5444
0
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
5445
5446
            // Build the instruction.
5447
0
            let inst = cranelift_assembler_x64::inst::vfmsub213pd_a::new(xmm1.clone(), xmm2.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
5448
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
5449
5450
            // Return a type ISLE can work with.
5451
0
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
5452
0
            AssemblerOutputs::RetXmm { inst, xmm }
5453
0
        }
5454
0
        fn x64_vfmsub231pd_a_raw(&mut self, xmm1: Xmm, xmm2: Xmm, xmm_m128: &XmmMem) -> AssemblerOutputs {
5455
            // Convert ISLE types to assembler types.
5456
0
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
5457
0
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
5458
0
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
5459
5460
            // Build the instruction.
5461
0
            let inst = cranelift_assembler_x64::inst::vfmsub231pd_a::new(xmm1.clone(), xmm2.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
5462
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
5463
5464
            // Return a type ISLE can work with.
5465
0
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
5466
0
            AssemblerOutputs::RetXmm { inst, xmm }
5467
0
        }
5468
0
        fn x64_vfnmsub132ss_a_raw(&mut self, xmm1: Xmm, xmm2: Xmm, xmm_m32: &XmmMem) -> AssemblerOutputs {
5469
            // Convert ISLE types to assembler types.
5470
0
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
5471
0
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
5472
0
            let xmm_m32 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
5473
5474
            // Build the instruction.
5475
0
            let inst = cranelift_assembler_x64::inst::vfnmsub132ss_a::new(xmm1.clone(), xmm2.clone(), xmm_m32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
5476
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
5477
5478
            // Return a type ISLE can work with.
5479
0
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
5480
0
            AssemblerOutputs::RetXmm { inst, xmm }
5481
0
        }
5482
0
        fn x64_vfnmsub213ss_a_raw(&mut self, xmm1: Xmm, xmm2: Xmm, xmm_m32: &XmmMem) -> AssemblerOutputs {
5483
            // Convert ISLE types to assembler types.
5484
0
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
5485
0
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
5486
0
            let xmm_m32 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
5487
5488
            // Build the instruction.
5489
0
            let inst = cranelift_assembler_x64::inst::vfnmsub213ss_a::new(xmm1.clone(), xmm2.clone(), xmm_m32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
5490
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
5491
5492
            // Return a type ISLE can work with.
5493
0
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
5494
0
            AssemblerOutputs::RetXmm { inst, xmm }
5495
0
        }
5496
0
        fn x64_vfnmsub231ss_a_raw(&mut self, xmm1: Xmm, xmm2: Xmm, xmm_m32: &XmmMem) -> AssemblerOutputs {
5497
            // Convert ISLE types to assembler types.
5498
0
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
5499
0
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
5500
0
            let xmm_m32 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
5501
5502
            // Build the instruction.
5503
0
            let inst = cranelift_assembler_x64::inst::vfnmsub231ss_a::new(xmm1.clone(), xmm2.clone(), xmm_m32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
5504
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
5505
5506
            // Return a type ISLE can work with.
5507
0
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
5508
0
            AssemblerOutputs::RetXmm { inst, xmm }
5509
0
        }
5510
0
        fn x64_vfnmsub132sd_a_raw(&mut self, xmm1: Xmm, xmm2: Xmm, xmm_m64: &XmmMem) -> AssemblerOutputs {
5511
            // Convert ISLE types to assembler types.
5512
0
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
5513
0
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
5514
0
            let xmm_m64 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
5515
5516
            // Build the instruction.
5517
0
            let inst = cranelift_assembler_x64::inst::vfnmsub132sd_a::new(xmm1.clone(), xmm2.clone(), xmm_m64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
5518
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
5519
5520
            // Return a type ISLE can work with.
5521
0
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
5522
0
            AssemblerOutputs::RetXmm { inst, xmm }
5523
0
        }
5524
0
        fn x64_vfnmsub213sd_a_raw(&mut self, xmm1: Xmm, xmm2: Xmm, xmm_m64: &XmmMem) -> AssemblerOutputs {
5525
            // Convert ISLE types to assembler types.
5526
0
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
5527
0
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
5528
0
            let xmm_m64 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
5529
5530
            // Build the instruction.
5531
0
            let inst = cranelift_assembler_x64::inst::vfnmsub213sd_a::new(xmm1.clone(), xmm2.clone(), xmm_m64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
5532
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
5533
5534
            // Return a type ISLE can work with.
5535
0
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
5536
0
            AssemblerOutputs::RetXmm { inst, xmm }
5537
0
        }
5538
0
        fn x64_vfnmsub231sd_a_raw(&mut self, xmm1: Xmm, xmm2: Xmm, xmm_m64: &XmmMem) -> AssemblerOutputs {
5539
            // Convert ISLE types to assembler types.
5540
0
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
5541
0
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
5542
0
            let xmm_m64 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
5543
5544
            // Build the instruction.
5545
0
            let inst = cranelift_assembler_x64::inst::vfnmsub231sd_a::new(xmm1.clone(), xmm2.clone(), xmm_m64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
5546
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
5547
5548
            // Return a type ISLE can work with.
5549
0
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
5550
0
            AssemblerOutputs::RetXmm { inst, xmm }
5551
0
        }
5552
0
        fn x64_vfnmsub132ps_a_raw(&mut self, xmm1: Xmm, xmm2: Xmm, xmm_m128: &XmmMem) -> AssemblerOutputs {
5553
            // Convert ISLE types to assembler types.
5554
0
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
5555
0
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
5556
0
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
5557
5558
            // Build the instruction.
5559
0
            let inst = cranelift_assembler_x64::inst::vfnmsub132ps_a::new(xmm1.clone(), xmm2.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
5560
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
5561
5562
            // Return a type ISLE can work with.
5563
0
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
5564
0
            AssemblerOutputs::RetXmm { inst, xmm }
5565
0
        }
5566
0
        fn x64_vfnmsub213ps_a_raw(&mut self, xmm1: Xmm, xmm2: Xmm, xmm_m128: &XmmMem) -> AssemblerOutputs {
5567
            // Convert ISLE types to assembler types.
5568
0
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
5569
0
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
5570
0
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
5571
5572
            // Build the instruction.
5573
0
            let inst = cranelift_assembler_x64::inst::vfnmsub213ps_a::new(xmm1.clone(), xmm2.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
5574
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
5575
5576
            // Return a type ISLE can work with.
5577
0
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
5578
0
            AssemblerOutputs::RetXmm { inst, xmm }
5579
0
        }
5580
0
        fn x64_vfnmsub231ps_a_raw(&mut self, xmm1: Xmm, xmm2: Xmm, xmm_m128: &XmmMem) -> AssemblerOutputs {
5581
            // Convert ISLE types to assembler types.
5582
0
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
5583
0
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
5584
0
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
5585
5586
            // Build the instruction.
5587
0
            let inst = cranelift_assembler_x64::inst::vfnmsub231ps_a::new(xmm1.clone(), xmm2.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
5588
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
5589
5590
            // Return a type ISLE can work with.
5591
0
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
5592
0
            AssemblerOutputs::RetXmm { inst, xmm }
5593
0
        }
5594
0
        fn x64_vfnmsub132pd_a_raw(&mut self, xmm1: Xmm, xmm2: Xmm, xmm_m128: &XmmMem) -> AssemblerOutputs {
5595
            // Convert ISLE types to assembler types.
5596
0
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
5597
0
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
5598
0
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
5599
5600
            // Build the instruction.
5601
0
            let inst = cranelift_assembler_x64::inst::vfnmsub132pd_a::new(xmm1.clone(), xmm2.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
5602
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
5603
5604
            // Return a type ISLE can work with.
5605
0
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
5606
0
            AssemblerOutputs::RetXmm { inst, xmm }
5607
0
        }
5608
0
        fn x64_vfnmsub213pd_a_raw(&mut self, xmm1: Xmm, xmm2: Xmm, xmm_m128: &XmmMem) -> AssemblerOutputs {
5609
            // Convert ISLE types to assembler types.
5610
0
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
5611
0
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
5612
0
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
5613
5614
            // Build the instruction.
5615
0
            let inst = cranelift_assembler_x64::inst::vfnmsub213pd_a::new(xmm1.clone(), xmm2.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
5616
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
5617
5618
            // Return a type ISLE can work with.
5619
0
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
5620
0
            AssemblerOutputs::RetXmm { inst, xmm }
5621
0
        }
5622
0
        fn x64_vfnmsub231pd_a_raw(&mut self, xmm1: Xmm, xmm2: Xmm, xmm_m128: &XmmMem) -> AssemblerOutputs {
5623
            // Convert ISLE types to assembler types.
5624
0
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
5625
0
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
5626
0
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
5627
5628
            // Build the instruction.
5629
0
            let inst = cranelift_assembler_x64::inst::vfnmsub231pd_a::new(xmm1.clone(), xmm2.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
5630
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
5631
5632
            // Return a type ISLE can work with.
5633
0
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
5634
0
            AssemblerOutputs::RetXmm { inst, xmm }
5635
0
        }
5636
0
        fn x64_jmpq_m_raw(&mut self, rm64: &GprMem) -> AssemblerOutputs {
5637
            // Convert ISLE types to assembler types.
5638
0
            let rm64 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
5639
5640
            // Build the instruction.
5641
0
            let inst = cranelift_assembler_x64::inst::jmpq_m::new(rm64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
5642
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
5643
5644
            // Return a type ISLE can work with.
5645
0
            AssemblerOutputs::SideEffect { inst }
5646
0
        }
5647
0
        fn x64_jmp_d8_raw(&mut self, imm8: i8) -> AssemblerOutputs {
5648
            // Convert ISLE types to assembler types.
5649
0
            let imm8 = cranelift_assembler_x64::Simm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
5650
5651
            // Build the instruction.
5652
0
            let inst = cranelift_assembler_x64::inst::jmp_d8::new(imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
5653
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
5654
5655
            // Return a type ISLE can work with.
5656
0
            AssemblerOutputs::SideEffect { inst }
5657
0
        }
5658
0
        fn x64_jmp_d32_raw(&mut self, imm32: i32) -> AssemblerOutputs {
5659
            // Convert ISLE types to assembler types.
5660
0
            let imm32 = cranelift_assembler_x64::Simm32::new(imm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
5661
5662
            // Build the instruction.
5663
0
            let inst = cranelift_assembler_x64::inst::jmp_d32::new(imm32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
5664
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
5665
5666
            // Return a type ISLE can work with.
5667
0
            AssemblerOutputs::SideEffect { inst }
5668
0
        }
5669
0
        fn x64_ja_d8_raw(&mut self, imm8: i8) -> AssemblerOutputs {
5670
            // Convert ISLE types to assembler types.
5671
0
            let imm8 = cranelift_assembler_x64::Simm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
5672
5673
            // Build the instruction.
5674
0
            let inst = cranelift_assembler_x64::inst::ja_d8::new(imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
5675
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
5676
5677
            // Return a type ISLE can work with.
5678
0
            AssemblerOutputs::SideEffect { inst }
5679
0
        }
5680
0
        fn x64_ja_d32_raw(&mut self, imm32: i32) -> AssemblerOutputs {
5681
            // Convert ISLE types to assembler types.
5682
0
            let imm32 = cranelift_assembler_x64::Simm32::new(imm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
5683
5684
            // Build the instruction.
5685
0
            let inst = cranelift_assembler_x64::inst::ja_d32::new(imm32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
5686
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
5687
5688
            // Return a type ISLE can work with.
5689
0
            AssemblerOutputs::SideEffect { inst }
5690
0
        }
5691
0
        fn x64_jae_d8_raw(&mut self, imm8: i8) -> AssemblerOutputs {
5692
            // Convert ISLE types to assembler types.
5693
0
            let imm8 = cranelift_assembler_x64::Simm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
5694
5695
            // Build the instruction.
5696
0
            let inst = cranelift_assembler_x64::inst::jae_d8::new(imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
5697
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
5698
5699
            // Return a type ISLE can work with.
5700
0
            AssemblerOutputs::SideEffect { inst }
5701
0
        }
5702
0
        fn x64_jae_d32_raw(&mut self, imm32: i32) -> AssemblerOutputs {
5703
            // Convert ISLE types to assembler types.
5704
0
            let imm32 = cranelift_assembler_x64::Simm32::new(imm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
5705
5706
            // Build the instruction.
5707
0
            let inst = cranelift_assembler_x64::inst::jae_d32::new(imm32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
5708
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
5709
5710
            // Return a type ISLE can work with.
5711
0
            AssemblerOutputs::SideEffect { inst }
5712
0
        }
5713
0
        fn x64_jb_d8_raw(&mut self, imm8: i8) -> AssemblerOutputs {
5714
            // Convert ISLE types to assembler types.
5715
0
            let imm8 = cranelift_assembler_x64::Simm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
5716
5717
            // Build the instruction.
5718
0
            let inst = cranelift_assembler_x64::inst::jb_d8::new(imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
5719
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
5720
5721
            // Return a type ISLE can work with.
5722
0
            AssemblerOutputs::SideEffect { inst }
5723
0
        }
5724
0
        fn x64_jb_d32_raw(&mut self, imm32: i32) -> AssemblerOutputs {
5725
            // Convert ISLE types to assembler types.
5726
0
            let imm32 = cranelift_assembler_x64::Simm32::new(imm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
5727
5728
            // Build the instruction.
5729
0
            let inst = cranelift_assembler_x64::inst::jb_d32::new(imm32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
5730
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
5731
5732
            // Return a type ISLE can work with.
5733
0
            AssemblerOutputs::SideEffect { inst }
5734
0
        }
5735
0
        fn x64_jbe_d8_raw(&mut self, imm8: i8) -> AssemblerOutputs {
5736
            // Convert ISLE types to assembler types.
5737
0
            let imm8 = cranelift_assembler_x64::Simm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
5738
5739
            // Build the instruction.
5740
0
            let inst = cranelift_assembler_x64::inst::jbe_d8::new(imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
5741
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
5742
5743
            // Return a type ISLE can work with.
5744
0
            AssemblerOutputs::SideEffect { inst }
5745
0
        }
5746
0
        fn x64_jbe_d32_raw(&mut self, imm32: i32) -> AssemblerOutputs {
5747
            // Convert ISLE types to assembler types.
5748
0
            let imm32 = cranelift_assembler_x64::Simm32::new(imm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
5749
5750
            // Build the instruction.
5751
0
            let inst = cranelift_assembler_x64::inst::jbe_d32::new(imm32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
5752
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
5753
5754
            // Return a type ISLE can work with.
5755
0
            AssemblerOutputs::SideEffect { inst }
5756
0
        }
5757
0
        fn x64_je_d8_raw(&mut self, imm8: i8) -> AssemblerOutputs {
5758
            // Convert ISLE types to assembler types.
5759
0
            let imm8 = cranelift_assembler_x64::Simm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
5760
5761
            // Build the instruction.
5762
0
            let inst = cranelift_assembler_x64::inst::je_d8::new(imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
5763
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
5764
5765
            // Return a type ISLE can work with.
5766
0
            AssemblerOutputs::SideEffect { inst }
5767
0
        }
5768
0
        fn x64_je_d32_raw(&mut self, imm32: i32) -> AssemblerOutputs {
5769
            // Convert ISLE types to assembler types.
5770
0
            let imm32 = cranelift_assembler_x64::Simm32::new(imm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
5771
5772
            // Build the instruction.
5773
0
            let inst = cranelift_assembler_x64::inst::je_d32::new(imm32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
5774
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
5775
5776
            // Return a type ISLE can work with.
5777
0
            AssemblerOutputs::SideEffect { inst }
5778
0
        }
5779
0
        fn x64_jg_d8_raw(&mut self, imm8: i8) -> AssemblerOutputs {
5780
            // Convert ISLE types to assembler types.
5781
0
            let imm8 = cranelift_assembler_x64::Simm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
5782
5783
            // Build the instruction.
5784
0
            let inst = cranelift_assembler_x64::inst::jg_d8::new(imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
5785
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
5786
5787
            // Return a type ISLE can work with.
5788
0
            AssemblerOutputs::SideEffect { inst }
5789
0
        }
5790
0
        fn x64_jg_d32_raw(&mut self, imm32: i32) -> AssemblerOutputs {
5791
            // Convert ISLE types to assembler types.
5792
0
            let imm32 = cranelift_assembler_x64::Simm32::new(imm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
5793
5794
            // Build the instruction.
5795
0
            let inst = cranelift_assembler_x64::inst::jg_d32::new(imm32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
5796
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
5797
5798
            // Return a type ISLE can work with.
5799
0
            AssemblerOutputs::SideEffect { inst }
5800
0
        }
5801
0
        fn x64_jge_d8_raw(&mut self, imm8: i8) -> AssemblerOutputs {
5802
            // Convert ISLE types to assembler types.
5803
0
            let imm8 = cranelift_assembler_x64::Simm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
5804
5805
            // Build the instruction.
5806
0
            let inst = cranelift_assembler_x64::inst::jge_d8::new(imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
5807
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
5808
5809
            // Return a type ISLE can work with.
5810
0
            AssemblerOutputs::SideEffect { inst }
5811
0
        }
5812
0
        fn x64_jge_d32_raw(&mut self, imm32: i32) -> AssemblerOutputs {
5813
            // Convert ISLE types to assembler types.
5814
0
            let imm32 = cranelift_assembler_x64::Simm32::new(imm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
5815
5816
            // Build the instruction.
5817
0
            let inst = cranelift_assembler_x64::inst::jge_d32::new(imm32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
5818
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
5819
5820
            // Return a type ISLE can work with.
5821
0
            AssemblerOutputs::SideEffect { inst }
5822
0
        }
5823
0
        fn x64_jl_d8_raw(&mut self, imm8: i8) -> AssemblerOutputs {
5824
            // Convert ISLE types to assembler types.
5825
0
            let imm8 = cranelift_assembler_x64::Simm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
5826
5827
            // Build the instruction.
5828
0
            let inst = cranelift_assembler_x64::inst::jl_d8::new(imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
5829
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
5830
5831
            // Return a type ISLE can work with.
5832
0
            AssemblerOutputs::SideEffect { inst }
5833
0
        }
5834
0
        fn x64_jl_d32_raw(&mut self, imm32: i32) -> AssemblerOutputs {
5835
            // Convert ISLE types to assembler types.
5836
0
            let imm32 = cranelift_assembler_x64::Simm32::new(imm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
5837
5838
            // Build the instruction.
5839
0
            let inst = cranelift_assembler_x64::inst::jl_d32::new(imm32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
5840
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
5841
5842
            // Return a type ISLE can work with.
5843
0
            AssemblerOutputs::SideEffect { inst }
5844
0
        }
5845
0
        fn x64_jle_d8_raw(&mut self, imm8: i8) -> AssemblerOutputs {
5846
            // Convert ISLE types to assembler types.
5847
0
            let imm8 = cranelift_assembler_x64::Simm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
5848
5849
            // Build the instruction.
5850
0
            let inst = cranelift_assembler_x64::inst::jle_d8::new(imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
5851
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
5852
5853
            // Return a type ISLE can work with.
5854
0
            AssemblerOutputs::SideEffect { inst }
5855
0
        }
5856
0
        fn x64_jle_d32_raw(&mut self, imm32: i32) -> AssemblerOutputs {
5857
            // Convert ISLE types to assembler types.
5858
0
            let imm32 = cranelift_assembler_x64::Simm32::new(imm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
5859
5860
            // Build the instruction.
5861
0
            let inst = cranelift_assembler_x64::inst::jle_d32::new(imm32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
5862
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
5863
5864
            // Return a type ISLE can work with.
5865
0
            AssemblerOutputs::SideEffect { inst }
5866
0
        }
5867
0
        fn x64_jne_d8_raw(&mut self, imm8: i8) -> AssemblerOutputs {
5868
            // Convert ISLE types to assembler types.
5869
0
            let imm8 = cranelift_assembler_x64::Simm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
5870
5871
            // Build the instruction.
5872
0
            let inst = cranelift_assembler_x64::inst::jne_d8::new(imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
5873
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
5874
5875
            // Return a type ISLE can work with.
5876
0
            AssemblerOutputs::SideEffect { inst }
5877
0
        }
5878
0
        fn x64_jne_d32_raw(&mut self, imm32: i32) -> AssemblerOutputs {
5879
            // Convert ISLE types to assembler types.
5880
0
            let imm32 = cranelift_assembler_x64::Simm32::new(imm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
5881
5882
            // Build the instruction.
5883
0
            let inst = cranelift_assembler_x64::inst::jne_d32::new(imm32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
5884
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
5885
5886
            // Return a type ISLE can work with.
5887
0
            AssemblerOutputs::SideEffect { inst }
5888
0
        }
5889
0
        fn x64_jno_d8_raw(&mut self, imm8: i8) -> AssemblerOutputs {
5890
            // Convert ISLE types to assembler types.
5891
0
            let imm8 = cranelift_assembler_x64::Simm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
5892
5893
            // Build the instruction.
5894
0
            let inst = cranelift_assembler_x64::inst::jno_d8::new(imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
5895
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
5896
5897
            // Return a type ISLE can work with.
5898
0
            AssemblerOutputs::SideEffect { inst }
5899
0
        }
5900
0
        fn x64_jno_d32_raw(&mut self, imm32: i32) -> AssemblerOutputs {
5901
            // Convert ISLE types to assembler types.
5902
0
            let imm32 = cranelift_assembler_x64::Simm32::new(imm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
5903
5904
            // Build the instruction.
5905
0
            let inst = cranelift_assembler_x64::inst::jno_d32::new(imm32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
5906
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
5907
5908
            // Return a type ISLE can work with.
5909
0
            AssemblerOutputs::SideEffect { inst }
5910
0
        }
5911
0
        fn x64_jnp_d8_raw(&mut self, imm8: i8) -> AssemblerOutputs {
5912
            // Convert ISLE types to assembler types.
5913
0
            let imm8 = cranelift_assembler_x64::Simm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
5914
5915
            // Build the instruction.
5916
0
            let inst = cranelift_assembler_x64::inst::jnp_d8::new(imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
5917
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
5918
5919
            // Return a type ISLE can work with.
5920
0
            AssemblerOutputs::SideEffect { inst }
5921
0
        }
5922
0
        fn x64_jnp_d32_raw(&mut self, imm32: i32) -> AssemblerOutputs {
5923
            // Convert ISLE types to assembler types.
5924
0
            let imm32 = cranelift_assembler_x64::Simm32::new(imm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
5925
5926
            // Build the instruction.
5927
0
            let inst = cranelift_assembler_x64::inst::jnp_d32::new(imm32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
5928
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
5929
5930
            // Return a type ISLE can work with.
5931
0
            AssemblerOutputs::SideEffect { inst }
5932
0
        }
5933
0
        fn x64_jns_d8_raw(&mut self, imm8: i8) -> AssemblerOutputs {
5934
            // Convert ISLE types to assembler types.
5935
0
            let imm8 = cranelift_assembler_x64::Simm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
5936
5937
            // Build the instruction.
5938
0
            let inst = cranelift_assembler_x64::inst::jns_d8::new(imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
5939
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
5940
5941
            // Return a type ISLE can work with.
5942
0
            AssemblerOutputs::SideEffect { inst }
5943
0
        }
5944
0
        fn x64_jns_d32_raw(&mut self, imm32: i32) -> AssemblerOutputs {
5945
            // Convert ISLE types to assembler types.
5946
0
            let imm32 = cranelift_assembler_x64::Simm32::new(imm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
5947
5948
            // Build the instruction.
5949
0
            let inst = cranelift_assembler_x64::inst::jns_d32::new(imm32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
5950
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
5951
5952
            // Return a type ISLE can work with.
5953
0
            AssemblerOutputs::SideEffect { inst }
5954
0
        }
5955
0
        fn x64_jo_d8_raw(&mut self, imm8: i8) -> AssemblerOutputs {
5956
            // Convert ISLE types to assembler types.
5957
0
            let imm8 = cranelift_assembler_x64::Simm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
5958
5959
            // Build the instruction.
5960
0
            let inst = cranelift_assembler_x64::inst::jo_d8::new(imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
5961
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
5962
5963
            // Return a type ISLE can work with.
5964
0
            AssemblerOutputs::SideEffect { inst }
5965
0
        }
5966
0
        fn x64_jo_d32_raw(&mut self, imm32: i32) -> AssemblerOutputs {
5967
            // Convert ISLE types to assembler types.
5968
0
            let imm32 = cranelift_assembler_x64::Simm32::new(imm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
5969
5970
            // Build the instruction.
5971
0
            let inst = cranelift_assembler_x64::inst::jo_d32::new(imm32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
5972
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
5973
5974
            // Return a type ISLE can work with.
5975
0
            AssemblerOutputs::SideEffect { inst }
5976
0
        }
5977
0
        fn x64_jp_d8_raw(&mut self, imm8: i8) -> AssemblerOutputs {
5978
            // Convert ISLE types to assembler types.
5979
0
            let imm8 = cranelift_assembler_x64::Simm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
5980
5981
            // Build the instruction.
5982
0
            let inst = cranelift_assembler_x64::inst::jp_d8::new(imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
5983
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
5984
5985
            // Return a type ISLE can work with.
5986
0
            AssemblerOutputs::SideEffect { inst }
5987
0
        }
5988
0
        fn x64_jp_d32_raw(&mut self, imm32: i32) -> AssemblerOutputs {
5989
            // Convert ISLE types to assembler types.
5990
0
            let imm32 = cranelift_assembler_x64::Simm32::new(imm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
5991
5992
            // Build the instruction.
5993
0
            let inst = cranelift_assembler_x64::inst::jp_d32::new(imm32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
5994
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
5995
5996
            // Return a type ISLE can work with.
5997
0
            AssemblerOutputs::SideEffect { inst }
5998
0
        }
5999
0
        fn x64_js_d8_raw(&mut self, imm8: i8) -> AssemblerOutputs {
6000
            // Convert ISLE types to assembler types.
6001
0
            let imm8 = cranelift_assembler_x64::Simm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6002
6003
            // Build the instruction.
6004
0
            let inst = cranelift_assembler_x64::inst::js_d8::new(imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
6005
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
6006
6007
            // Return a type ISLE can work with.
6008
0
            AssemblerOutputs::SideEffect { inst }
6009
0
        }
6010
0
        fn x64_js_d32_raw(&mut self, imm32: i32) -> AssemblerOutputs {
6011
            // Convert ISLE types to assembler types.
6012
0
            let imm32 = cranelift_assembler_x64::Simm32::new(imm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6013
6014
            // Build the instruction.
6015
0
            let inst = cranelift_assembler_x64::inst::js_d32::new(imm32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
6016
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
6017
6018
            // Return a type ISLE can work with.
6019
0
            AssemblerOutputs::SideEffect { inst }
6020
0
        }
6021
0
        fn x64_extractps_a_raw(&mut self, rm32: &GprMem, xmm1: Xmm, imm8: u8) -> AssemblerOutputs {
6022
            // Convert ISLE types to assembler types.
6023
0
            let rm32 = self.convert_gpr_mem_to_assembler_write_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6024
0
            let xmm1 = cranelift_assembler_x64::Xmm::new(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6025
0
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6026
6027
            // Build the instruction.
6028
0
            let inst = cranelift_assembler_x64::inst::extractps_a::new(rm32.clone(), xmm1.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
6029
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
6030
6031
            // Return a type ISLE can work with.
6032
0
            match rm32 {
6033
0
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
6034
0
                    let gpr = reg.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
6035
0
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
6036
                }
6037
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
6038
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
6039
                }
6040
            }
6041
0
        }
6042
43
        fn x64_pextrb_a_raw(&mut self, rm32: &GprMem, xmm2: Xmm, imm8: u8) -> AssemblerOutputs {
6043
            // Convert ISLE types to assembler types.
6044
43
            let rm32 = self.convert_gpr_mem_to_assembler_write_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6045
43
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6046
43
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6047
6048
            // Build the instruction.
6049
43
            let inst = cranelift_assembler_x64::inst::pextrb_a::new(rm32.clone(), xmm2.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
6050
43
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
6051
6052
            // Return a type ISLE can work with.
6053
43
            match rm32 {
6054
19
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
6055
19
                    let gpr = reg.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
6056
19
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
6057
                }
6058
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
6059
24
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
6060
                }
6061
            }
6062
43
        }
6063
306
        fn x64_pextrw_a_raw(&mut self, xmm2: Xmm, imm8: u8) -> AssemblerOutputs {
6064
            // Convert ISLE types to assembler types.
6065
306
            let r32 = cranelift_assembler_x64::Gpr::new(self.temp_writable_gpr()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6066
306
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6067
306
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6068
6069
            // Build the instruction.
6070
306
            let inst = cranelift_assembler_x64::inst::pextrw_a::new(r32.clone(), xmm2.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
6071
306
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
6072
6073
            // Return a type ISLE can work with.
6074
306
            let gpr = r32.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
6075
306
            AssemblerOutputs::RetGpr { inst, gpr }
6076
306
        }
6077
2
        fn x64_pextrw_b_raw(&mut self, rm32: &GprMem, xmm2: Xmm, imm8: u8) -> AssemblerOutputs {
6078
            // Convert ISLE types to assembler types.
6079
2
            let rm32 = self.convert_gpr_mem_to_assembler_write_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6080
2
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6081
2
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6082
6083
            // Build the instruction.
6084
2
            let inst = cranelift_assembler_x64::inst::pextrw_b::new(rm32.clone(), xmm2.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
6085
2
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
6086
6087
            // Return a type ISLE can work with.
6088
2
            match rm32 {
6089
0
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
6090
0
                    let gpr = reg.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
6091
0
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
6092
                }
6093
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
6094
2
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
6095
                }
6096
            }
6097
2
        }
6098
8
        fn x64_pextrd_a_raw(&mut self, rm32: &GprMem, xmm2: Xmm, imm8: u8) -> AssemblerOutputs {
6099
            // Convert ISLE types to assembler types.
6100
8
            let rm32 = self.convert_gpr_mem_to_assembler_write_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6101
8
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6102
8
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6103
6104
            // Build the instruction.
6105
8
            let inst = cranelift_assembler_x64::inst::pextrd_a::new(rm32.clone(), xmm2.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
6106
8
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
6107
6108
            // Return a type ISLE can work with.
6109
8
            match rm32 {
6110
6
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
6111
6
                    let gpr = reg.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
6112
6
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
6113
                }
6114
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
6115
2
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
6116
                }
6117
            }
6118
8
        }
6119
83
        fn x64_pextrq_a_raw(&mut self, rm64: &GprMem, xmm2: Xmm, imm8: u8) -> AssemblerOutputs {
6120
            // Convert ISLE types to assembler types.
6121
83
            let rm64 = self.convert_gpr_mem_to_assembler_write_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6122
83
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6123
83
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6124
6125
            // Build the instruction.
6126
83
            let inst = cranelift_assembler_x64::inst::pextrq_a::new(rm64.clone(), xmm2.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
6127
83
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
6128
6129
            // Return a type ISLE can work with.
6130
83
            match rm64 {
6131
79
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
6132
79
                    let gpr = reg.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
6133
79
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
6134
                }
6135
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
6136
4
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
6137
                }
6138
            }
6139
83
        }
6140
0
        fn x64_vextractps_b_raw(&mut self, rm32: &GprMem, xmm1: Xmm, imm8: u8) -> AssemblerOutputs {
6141
            // Convert ISLE types to assembler types.
6142
0
            let rm32 = self.convert_gpr_mem_to_assembler_write_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6143
0
            let xmm1 = cranelift_assembler_x64::Xmm::new(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6144
0
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6145
6146
            // Build the instruction.
6147
0
            let inst = cranelift_assembler_x64::inst::vextractps_b::new(rm32.clone(), xmm1.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
6148
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
6149
6150
            // Return a type ISLE can work with.
6151
0
            match rm32 {
6152
0
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
6153
0
                    let gpr = reg.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
6154
0
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
6155
                }
6156
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
6157
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
6158
                }
6159
            }
6160
0
        }
6161
865
        fn x64_vpextrb_a_raw(&mut self, rm32: &GprMem, xmm2: Xmm, imm8: u8) -> AssemblerOutputs {
6162
            // Convert ISLE types to assembler types.
6163
865
            let rm32 = self.convert_gpr_mem_to_assembler_write_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6164
865
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6165
865
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6166
6167
            // Build the instruction.
6168
865
            let inst = cranelift_assembler_x64::inst::vpextrb_a::new(rm32.clone(), xmm2.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
6169
865
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
6170
6171
            // Return a type ISLE can work with.
6172
865
            match rm32 {
6173
623
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
6174
623
                    let gpr = reg.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
6175
623
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
6176
                }
6177
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
6178
242
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
6179
                }
6180
            }
6181
865
        }
6182
828
        fn x64_vpextrw_a_raw(&mut self, xmm2: Xmm, imm8: u8) -> AssemblerOutputs {
6183
            // Convert ISLE types to assembler types.
6184
828
            let r32 = cranelift_assembler_x64::Gpr::new(self.temp_writable_gpr()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6185
828
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6186
828
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6187
6188
            // Build the instruction.
6189
828
            let inst = cranelift_assembler_x64::inst::vpextrw_a::new(r32.clone(), xmm2.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
6190
828
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
6191
6192
            // Return a type ISLE can work with.
6193
828
            let gpr = r32.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
6194
828
            AssemblerOutputs::RetGpr { inst, gpr }
6195
828
        }
6196
144
        fn x64_vpextrw_b_raw(&mut self, rm32: &GprMem, xmm2: Xmm, imm8: u8) -> AssemblerOutputs {
6197
            // Convert ISLE types to assembler types.
6198
144
            let rm32 = self.convert_gpr_mem_to_assembler_write_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6199
144
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6200
144
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6201
6202
            // Build the instruction.
6203
144
            let inst = cranelift_assembler_x64::inst::vpextrw_b::new(rm32.clone(), xmm2.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
6204
144
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
6205
6206
            // Return a type ISLE can work with.
6207
144
            match rm32 {
6208
0
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
6209
0
                    let gpr = reg.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
6210
0
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
6211
                }
6212
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
6213
144
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
6214
                }
6215
            }
6216
144
        }
6217
334
        fn x64_vpextrd_a_raw(&mut self, rm32: &GprMem, xmm2: Xmm, imm8: u8) -> AssemblerOutputs {
6218
            // Convert ISLE types to assembler types.
6219
334
            let rm32 = self.convert_gpr_mem_to_assembler_write_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6220
334
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6221
334
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6222
6223
            // Build the instruction.
6224
334
            let inst = cranelift_assembler_x64::inst::vpextrd_a::new(rm32.clone(), xmm2.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
6225
334
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
6226
6227
            // Return a type ISLE can work with.
6228
334
            match rm32 {
6229
299
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
6230
299
                    let gpr = reg.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
6231
299
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
6232
                }
6233
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
6234
35
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
6235
                }
6236
            }
6237
334
        }
6238
1.00k
        fn x64_vpextrq_a_raw(&mut self, rm64: &GprMem, xmm2: Xmm, imm8: u8) -> AssemblerOutputs {
6239
            // Convert ISLE types to assembler types.
6240
1.00k
            let rm64 = self.convert_gpr_mem_to_assembler_write_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6241
1.00k
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6242
1.00k
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6243
6244
            // Build the instruction.
6245
1.00k
            let inst = cranelift_assembler_x64::inst::vpextrq_a::new(rm64.clone(), xmm2.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
6246
1.00k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
6247
6248
            // Return a type ISLE can work with.
6249
1.00k
            match rm64 {
6250
961
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
6251
961
                    let gpr = reg.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
6252
961
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
6253
                }
6254
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
6255
45
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
6256
                }
6257
            }
6258
1.00k
        }
6259
0
        fn x64_insertps_a_raw(&mut self, xmm1: Xmm, xmm_m32: &XmmMem, imm8: u8) -> AssemblerOutputs {
6260
            // Convert ISLE types to assembler types.
6261
0
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6262
0
            let xmm_m32 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6263
0
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6264
6265
            // Build the instruction.
6266
0
            let inst = cranelift_assembler_x64::inst::insertps_a::new(xmm1.clone(), xmm_m32.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
6267
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
6268
6269
            // Return a type ISLE can work with.
6270
0
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
6271
0
            AssemblerOutputs::RetXmm { inst, xmm }
6272
0
        }
6273
148
        fn x64_pinsrb_a_raw(&mut self, xmm1: Xmm, rm32: &GprMem, imm8: u8) -> AssemblerOutputs {
6274
            // Convert ISLE types to assembler types.
6275
148
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6276
148
            let rm32 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6277
148
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6278
6279
            // Build the instruction.
6280
148
            let inst = cranelift_assembler_x64::inst::pinsrb_a::new(xmm1.clone(), rm32.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
6281
148
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
6282
6283
            // Return a type ISLE can work with.
6284
148
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
6285
148
            AssemblerOutputs::RetXmm { inst, xmm }
6286
148
        }
6287
38
        fn x64_pinsrw_a_raw(&mut self, xmm1: Xmm, rm32: &GprMem, imm8: u8) -> AssemblerOutputs {
6288
            // Convert ISLE types to assembler types.
6289
38
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6290
38
            let rm32 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6291
38
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6292
6293
            // Build the instruction.
6294
38
            let inst = cranelift_assembler_x64::inst::pinsrw_a::new(xmm1.clone(), rm32.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
6295
38
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
6296
6297
            // Return a type ISLE can work with.
6298
38
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
6299
38
            AssemblerOutputs::RetXmm { inst, xmm }
6300
38
        }
6301
288
        fn x64_pinsrd_a_raw(&mut self, xmm1: Xmm, rm32: &GprMem, imm8: u8) -> AssemblerOutputs {
6302
            // Convert ISLE types to assembler types.
6303
288
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6304
288
            let rm32 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6305
288
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6306
6307
            // Build the instruction.
6308
288
            let inst = cranelift_assembler_x64::inst::pinsrd_a::new(xmm1.clone(), rm32.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
6309
288
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
6310
6311
            // Return a type ISLE can work with.
6312
288
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
6313
288
            AssemblerOutputs::RetXmm { inst, xmm }
6314
288
        }
6315
0
        fn x64_pinsrq_a_raw(&mut self, xmm1: Xmm, rm64: &GprMem, imm8: u8) -> AssemblerOutputs {
6316
            // Convert ISLE types to assembler types.
6317
0
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6318
0
            let rm64 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6319
0
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6320
6321
            // Build the instruction.
6322
0
            let inst = cranelift_assembler_x64::inst::pinsrq_a::new(xmm1.clone(), rm64.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
6323
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
6324
6325
            // Return a type ISLE can work with.
6326
0
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
6327
0
            AssemblerOutputs::RetXmm { inst, xmm }
6328
0
        }
6329
44
        fn x64_vinsertps_b_raw(&mut self, xmm2: Xmm, xmm_m32: &XmmMem, imm8: u8) -> AssemblerOutputs {
6330
            // Convert ISLE types to assembler types.
6331
44
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6332
44
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6333
44
            let xmm_m32 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6334
44
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6335
6336
            // Build the instruction.
6337
44
            let inst = cranelift_assembler_x64::inst::vinsertps_b::new(xmm1.clone(), xmm2.clone(), xmm_m32.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
6338
44
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
6339
6340
            // Return a type ISLE can work with.
6341
44
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
6342
44
            AssemblerOutputs::RetXmm { inst, xmm }
6343
44
        }
6344
547
        fn x64_vpinsrb_b_raw(&mut self, xmm2: Xmm, rm32: &GprMem, imm8: u8) -> AssemblerOutputs {
6345
            // Convert ISLE types to assembler types.
6346
547
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6347
547
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6348
547
            let rm32 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6349
547
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6350
6351
            // Build the instruction.
6352
547
            let inst = cranelift_assembler_x64::inst::vpinsrb_b::new(xmm1.clone(), xmm2.clone(), rm32.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
6353
547
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
6354
6355
            // Return a type ISLE can work with.
6356
547
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
6357
547
            AssemblerOutputs::RetXmm { inst, xmm }
6358
547
        }
6359
157
        fn x64_vpinsrw_b_raw(&mut self, xmm2: Xmm, rm32: &GprMem, imm8: u8) -> AssemblerOutputs {
6360
            // Convert ISLE types to assembler types.
6361
157
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6362
157
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6363
157
            let rm32 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6364
157
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6365
6366
            // Build the instruction.
6367
157
            let inst = cranelift_assembler_x64::inst::vpinsrw_b::new(xmm1.clone(), xmm2.clone(), rm32.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
6368
157
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
6369
6370
            // Return a type ISLE can work with.
6371
157
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
6372
157
            AssemblerOutputs::RetXmm { inst, xmm }
6373
157
        }
6374
252
        fn x64_vpinsrd_b_raw(&mut self, xmm2: Xmm, rm32: &GprMem, imm8: u8) -> AssemblerOutputs {
6375
            // Convert ISLE types to assembler types.
6376
252
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6377
252
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6378
252
            let rm32 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6379
252
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6380
6381
            // Build the instruction.
6382
252
            let inst = cranelift_assembler_x64::inst::vpinsrd_b::new(xmm1.clone(), xmm2.clone(), rm32.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
6383
252
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
6384
6385
            // Return a type ISLE can work with.
6386
252
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
6387
252
            AssemblerOutputs::RetXmm { inst, xmm }
6388
252
        }
6389
132
        fn x64_vpinsrq_b_raw(&mut self, xmm2: Xmm, rm64: &GprMem, imm8: u8) -> AssemblerOutputs {
6390
            // Convert ISLE types to assembler types.
6391
132
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6392
132
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6393
132
            let rm64 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6394
132
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6395
6396
            // Build the instruction.
6397
132
            let inst = cranelift_assembler_x64::inst::vpinsrq_b::new(xmm1.clone(), xmm2.clone(), rm64.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
6398
132
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
6399
6400
            // Return a type ISLE can work with.
6401
132
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
6402
132
            AssemblerOutputs::RetXmm { inst, xmm }
6403
132
        }
6404
161
        fn x64_movmskps_rm_raw(&mut self, xmm2: Xmm) -> AssemblerOutputs {
6405
            // Convert ISLE types to assembler types.
6406
161
            let r32 = cranelift_assembler_x64::Gpr::new(self.temp_writable_gpr()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6407
161
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6408
6409
            // Build the instruction.
6410
161
            let inst = cranelift_assembler_x64::inst::movmskps_rm::new(r32.clone(), xmm2.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
6411
161
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
6412
6413
            // Return a type ISLE can work with.
6414
161
            let gpr = r32.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
6415
161
            AssemblerOutputs::RetGpr { inst, gpr }
6416
161
        }
6417
61
        fn x64_movmskpd_rm_raw(&mut self, xmm2: Xmm) -> AssemblerOutputs {
6418
            // Convert ISLE types to assembler types.
6419
61
            let r32 = cranelift_assembler_x64::Gpr::new(self.temp_writable_gpr()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6420
61
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6421
6422
            // Build the instruction.
6423
61
            let inst = cranelift_assembler_x64::inst::movmskpd_rm::new(r32.clone(), xmm2.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
6424
61
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
6425
6426
            // Return a type ISLE can work with.
6427
61
            let gpr = r32.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
6428
61
            AssemblerOutputs::RetGpr { inst, gpr }
6429
61
        }
6430
402
        fn x64_pmovmskb_rm_raw(&mut self, xmm2: Xmm) -> AssemblerOutputs {
6431
            // Convert ISLE types to assembler types.
6432
402
            let r32 = cranelift_assembler_x64::Gpr::new(self.temp_writable_gpr()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6433
402
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6434
6435
            // Build the instruction.
6436
402
            let inst = cranelift_assembler_x64::inst::pmovmskb_rm::new(r32.clone(), xmm2.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
6437
402
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
6438
6439
            // Return a type ISLE can work with.
6440
402
            let gpr = r32.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
6441
402
            AssemblerOutputs::RetGpr { inst, gpr }
6442
402
        }
6443
779
        fn x64_vmovmskps_rm_raw(&mut self, xmm2: Xmm) -> AssemblerOutputs {
6444
            // Convert ISLE types to assembler types.
6445
779
            let r32 = cranelift_assembler_x64::Gpr::new(self.temp_writable_gpr()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6446
779
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6447
6448
            // Build the instruction.
6449
779
            let inst = cranelift_assembler_x64::inst::vmovmskps_rm::new(r32.clone(), xmm2.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
6450
779
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
6451
6452
            // Return a type ISLE can work with.
6453
779
            let gpr = r32.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
6454
779
            AssemblerOutputs::RetGpr { inst, gpr }
6455
779
        }
6456
663
        fn x64_vmovmskpd_rm_raw(&mut self, xmm2: Xmm) -> AssemblerOutputs {
6457
            // Convert ISLE types to assembler types.
6458
663
            let r32 = cranelift_assembler_x64::Gpr::new(self.temp_writable_gpr()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6459
663
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6460
6461
            // Build the instruction.
6462
663
            let inst = cranelift_assembler_x64::inst::vmovmskpd_rm::new(r32.clone(), xmm2.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
6463
663
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
6464
6465
            // Return a type ISLE can work with.
6466
663
            let gpr = r32.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
6467
663
            AssemblerOutputs::RetGpr { inst, gpr }
6468
663
        }
6469
865
        fn x64_vpmovmskb_rm_raw(&mut self, xmm2: Xmm) -> AssemblerOutputs {
6470
            // Convert ISLE types to assembler types.
6471
865
            let r32 = cranelift_assembler_x64::Gpr::new(self.temp_writable_gpr()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6472
865
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6473
6474
            // Build the instruction.
6475
865
            let inst = cranelift_assembler_x64::inst::vpmovmskb_rm::new(r32.clone(), xmm2.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
6476
865
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
6477
6478
            // Return a type ISLE can work with.
6479
865
            let gpr = r32.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
6480
865
            AssemblerOutputs::RetGpr { inst, gpr }
6481
865
        }
6482
0
        fn x64_movhps_a_raw(&mut self, xmm1: Xmm, m64: &SyntheticAmode) -> AssemblerOutputs {
6483
            // Convert ISLE types to assembler types.
6484
0
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6485
0
            let m64 = self.convert_amode_to_assembler_amode(m64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6486
6487
            // Build the instruction.
6488
0
            let inst = cranelift_assembler_x64::inst::movhps_a::new(xmm1.clone(), m64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
6489
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
6490
6491
            // Return a type ISLE can work with.
6492
0
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
6493
0
            AssemblerOutputs::RetXmm { inst, xmm }
6494
0
        }
6495
59
        fn x64_movlhps_rm_raw(&mut self, xmm1: Xmm, xmm2: Xmm) -> AssemblerOutputs {
6496
            // Convert ISLE types to assembler types.
6497
59
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6498
59
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6499
6500
            // Build the instruction.
6501
59
            let inst = cranelift_assembler_x64::inst::movlhps_rm::new(xmm1.clone(), xmm2.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
6502
59
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
6503
6504
            // Return a type ISLE can work with.
6505
59
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
6506
59
            AssemblerOutputs::RetXmm { inst, xmm }
6507
59
        }
6508
0
        fn x64_vmovhps_b_raw(&mut self, xmm1: Xmm, m64: &SyntheticAmode) -> AssemblerOutputs {
6509
            // Convert ISLE types to assembler types.
6510
0
            let xmm2 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6511
0
            let xmm1 = cranelift_assembler_x64::Xmm::new(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6512
0
            let m64 = self.convert_amode_to_assembler_amode(m64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6513
6514
            // Build the instruction.
6515
0
            let inst = cranelift_assembler_x64::inst::vmovhps_b::new(xmm2.clone(), xmm1.clone(), m64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
6516
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
6517
6518
            // Return a type ISLE can work with.
6519
0
            let xmm = xmm2.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
6520
0
            AssemblerOutputs::RetXmm { inst, xmm }
6521
0
        }
6522
38
        fn x64_vmovlhps_rvm_raw(&mut self, xmm2: Xmm, xmm3: Xmm) -> AssemblerOutputs {
6523
            // Convert ISLE types to assembler types.
6524
38
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6525
38
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6526
38
            let xmm3 = cranelift_assembler_x64::Xmm::new(xmm3); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6527
6528
            // Build the instruction.
6529
38
            let inst = cranelift_assembler_x64::inst::vmovlhps_rvm::new(xmm1.clone(), xmm2.clone(), xmm3.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
6530
38
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
6531
6532
            // Return a type ISLE can work with.
6533
38
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
6534
38
            AssemblerOutputs::RetXmm { inst, xmm }
6535
38
        }
6536
8
        fn x64_movddup_a_raw(&mut self, xmm_m64: &XmmMem) -> AssemblerOutputs {
6537
            // Convert ISLE types to assembler types.
6538
8
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6539
8
            let xmm_m64 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6540
6541
            // Build the instruction.
6542
8
            let inst = cranelift_assembler_x64::inst::movddup_a::new(xmm1.clone(), xmm_m64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
6543
8
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
6544
6545
            // Return a type ISLE can work with.
6546
8
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
6547
8
            AssemblerOutputs::RetXmm { inst, xmm }
6548
8
        }
6549
51
        fn x64_vmovddup_a_raw(&mut self, xmm_m64: &XmmMem) -> AssemblerOutputs {
6550
            // Convert ISLE types to assembler types.
6551
51
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6552
51
            let xmm_m64 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6553
6554
            // Build the instruction.
6555
51
            let inst = cranelift_assembler_x64::inst::vmovddup_a::new(xmm1.clone(), xmm_m64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
6556
51
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
6557
6558
            // Return a type ISLE can work with.
6559
51
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
6560
51
            AssemblerOutputs::RetXmm { inst, xmm }
6561
51
        }
6562
0
        fn x64_pblendw_rmi_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned, imm8: u8) -> AssemblerOutputs {
6563
            // Convert ISLE types to assembler types.
6564
0
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6565
0
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6566
0
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6567
6568
            // Build the instruction.
6569
0
            let inst = cranelift_assembler_x64::inst::pblendw_rmi::new(xmm1.clone(), xmm_m128.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
6570
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
6571
6572
            // Return a type ISLE can work with.
6573
0
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
6574
0
            AssemblerOutputs::RetXmm { inst, xmm }
6575
0
        }
6576
10.3k
        fn x64_pblendvb_rm_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned, xmm0: Xmm) -> AssemblerOutputs {
6577
            // Convert ISLE types to assembler types.
6578
10.3k
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6579
10.3k
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6580
10.3k
            let xmm0 = cranelift_assembler_x64::Fixed(xmm0); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6581
6582
            // Build the instruction.
6583
10.3k
            let inst = cranelift_assembler_x64::inst::pblendvb_rm::new(xmm1.clone(), xmm_m128.clone(), xmm0.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
6584
10.3k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
6585
6586
            // Return a type ISLE can work with.
6587
10.3k
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
6588
10.3k
            AssemblerOutputs::RetXmm { inst, xmm }
6589
10.3k
        }
6590
0
        fn x64_blendvps_rm0_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned, xmm0: Xmm) -> AssemblerOutputs {
6591
            // Convert ISLE types to assembler types.
6592
0
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6593
0
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6594
0
            let xmm0 = cranelift_assembler_x64::Fixed(xmm0); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6595
6596
            // Build the instruction.
6597
0
            let inst = cranelift_assembler_x64::inst::blendvps_rm0::new(xmm1.clone(), xmm_m128.clone(), xmm0.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
6598
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
6599
6600
            // Return a type ISLE can work with.
6601
0
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
6602
0
            AssemblerOutputs::RetXmm { inst, xmm }
6603
0
        }
6604
1
        fn x64_blendvpd_rm0_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned, xmm0: Xmm) -> AssemblerOutputs {
6605
            // Convert ISLE types to assembler types.
6606
1
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6607
1
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6608
1
            let xmm0 = cranelift_assembler_x64::Fixed(xmm0); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6609
6610
            // Build the instruction.
6611
1
            let inst = cranelift_assembler_x64::inst::blendvpd_rm0::new(xmm1.clone(), xmm_m128.clone(), xmm0.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
6612
1
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
6613
6614
            // Return a type ISLE can work with.
6615
1
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
6616
1
            AssemblerOutputs::RetXmm { inst, xmm }
6617
1
        }
6618
0
        fn x64_vpblendw_rvmi_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem, imm8: u8) -> AssemblerOutputs {
6619
            // Convert ISLE types to assembler types.
6620
0
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6621
0
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6622
0
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6623
0
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6624
6625
            // Build the instruction.
6626
0
            let inst = cranelift_assembler_x64::inst::vpblendw_rvmi::new(xmm1.clone(), xmm2.clone(), xmm_m128.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
6627
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
6628
6629
            // Return a type ISLE can work with.
6630
0
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
6631
0
            AssemblerOutputs::RetXmm { inst, xmm }
6632
0
        }
6633
85.6k
        fn x64_vpblendvb_rvmr_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem, xmm3: Xmm) -> AssemblerOutputs {
6634
            // Convert ISLE types to assembler types.
6635
85.6k
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6636
85.6k
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6637
85.6k
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6638
85.6k
            let xmm3 = cranelift_assembler_x64::Xmm::new(xmm3); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6639
6640
            // Build the instruction.
6641
85.6k
            let inst = cranelift_assembler_x64::inst::vpblendvb_rvmr::new(xmm1.clone(), xmm2.clone(), xmm_m128.clone(), xmm3.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
6642
85.6k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
6643
6644
            // Return a type ISLE can work with.
6645
85.6k
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
6646
85.6k
            AssemblerOutputs::RetXmm { inst, xmm }
6647
85.6k
        }
6648
0
        fn x64_vblendvps_rvmr_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem, xmm3: Xmm) -> AssemblerOutputs {
6649
            // Convert ISLE types to assembler types.
6650
0
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6651
0
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6652
0
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6653
0
            let xmm3 = cranelift_assembler_x64::Xmm::new(xmm3); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6654
6655
            // Build the instruction.
6656
0
            let inst = cranelift_assembler_x64::inst::vblendvps_rvmr::new(xmm1.clone(), xmm2.clone(), xmm_m128.clone(), xmm3.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
6657
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
6658
6659
            // Return a type ISLE can work with.
6660
0
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
6661
0
            AssemblerOutputs::RetXmm { inst, xmm }
6662
0
        }
6663
93
        fn x64_vblendvpd_rvmr_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem, xmm3: Xmm) -> AssemblerOutputs {
6664
            // Convert ISLE types to assembler types.
6665
93
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6666
93
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6667
93
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6668
93
            let xmm3 = cranelift_assembler_x64::Xmm::new(xmm3); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6669
6670
            // Build the instruction.
6671
93
            let inst = cranelift_assembler_x64::inst::vblendvpd_rvmr::new(xmm1.clone(), xmm2.clone(), xmm_m128.clone(), xmm3.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
6672
93
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
6673
6674
            // Return a type ISLE can work with.
6675
93
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
6676
93
            AssemblerOutputs::RetXmm { inst, xmm }
6677
93
        }
6678
0
        fn x64_shufpd_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned, imm8: u8) -> AssemblerOutputs {
6679
            // Convert ISLE types to assembler types.
6680
0
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6681
0
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6682
0
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6683
6684
            // Build the instruction.
6685
0
            let inst = cranelift_assembler_x64::inst::shufpd_a::new(xmm1.clone(), xmm_m128.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
6686
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
6687
6688
            // Return a type ISLE can work with.
6689
0
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
6690
0
            AssemblerOutputs::RetXmm { inst, xmm }
6691
0
        }
6692
0
        fn x64_vshufpd_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem, imm8: u8) -> AssemblerOutputs {
6693
            // Convert ISLE types to assembler types.
6694
0
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6695
0
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6696
0
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6697
0
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6698
6699
            // Build the instruction.
6700
0
            let inst = cranelift_assembler_x64::inst::vshufpd_b::new(xmm1.clone(), xmm2.clone(), xmm_m128.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
6701
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
6702
6703
            // Return a type ISLE can work with.
6704
0
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
6705
0
            AssemblerOutputs::RetXmm { inst, xmm }
6706
0
        }
6707
1.56k
        fn x64_shufps_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned, imm8: u8) -> AssemblerOutputs {
6708
            // Convert ISLE types to assembler types.
6709
1.56k
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6710
1.56k
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6711
1.56k
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6712
6713
            // Build the instruction.
6714
1.56k
            let inst = cranelift_assembler_x64::inst::shufps_a::new(xmm1.clone(), xmm_m128.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
6715
1.56k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
6716
6717
            // Return a type ISLE can work with.
6718
1.56k
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
6719
1.56k
            AssemblerOutputs::RetXmm { inst, xmm }
6720
1.56k
        }
6721
278
        fn x64_vshufps_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem, imm8: u8) -> AssemblerOutputs {
6722
            // Convert ISLE types to assembler types.
6723
278
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6724
278
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6725
278
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6726
278
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6727
6728
            // Build the instruction.
6729
278
            let inst = cranelift_assembler_x64::inst::vshufps_b::new(xmm1.clone(), xmm2.clone(), xmm_m128.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
6730
278
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
6731
6732
            // Return a type ISLE can work with.
6733
278
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
6734
278
            AssemblerOutputs::RetXmm { inst, xmm }
6735
278
        }
6736
1.28k
        fn x64_pshufb_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned) -> AssemblerOutputs {
6737
            // Convert ISLE types to assembler types.
6738
1.28k
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6739
1.28k
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6740
6741
            // Build the instruction.
6742
1.28k
            let inst = cranelift_assembler_x64::inst::pshufb_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
6743
1.28k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
6744
6745
            // Return a type ISLE can work with.
6746
1.28k
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
6747
1.28k
            AssemblerOutputs::RetXmm { inst, xmm }
6748
1.28k
        }
6749
1.82k
        fn x64_pshufd_a_raw(&mut self, xmm_m128: &XmmMemAligned, imm8: u8) -> AssemblerOutputs {
6750
            // Convert ISLE types to assembler types.
6751
1.82k
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6752
1.82k
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6753
1.82k
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6754
6755
            // Build the instruction.
6756
1.82k
            let inst = cranelift_assembler_x64::inst::pshufd_a::new(xmm1.clone(), xmm_m128.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
6757
1.82k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
6758
6759
            // Return a type ISLE can work with.
6760
1.82k
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
6761
1.82k
            AssemblerOutputs::RetXmm { inst, xmm }
6762
1.82k
        }
6763
230
        fn x64_pshuflw_a_raw(&mut self, xmm_m128: &XmmMemAligned, imm8: u8) -> AssemblerOutputs {
6764
            // Convert ISLE types to assembler types.
6765
230
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6766
230
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6767
230
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6768
6769
            // Build the instruction.
6770
230
            let inst = cranelift_assembler_x64::inst::pshuflw_a::new(xmm1.clone(), xmm_m128.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
6771
230
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
6772
6773
            // Return a type ISLE can work with.
6774
230
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
6775
230
            AssemblerOutputs::RetXmm { inst, xmm }
6776
230
        }
6777
98
        fn x64_pshufhw_a_raw(&mut self, xmm_m128: &XmmMemAligned, imm8: u8) -> AssemblerOutputs {
6778
            // Convert ISLE types to assembler types.
6779
98
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6780
98
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6781
98
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6782
6783
            // Build the instruction.
6784
98
            let inst = cranelift_assembler_x64::inst::pshufhw_a::new(xmm1.clone(), xmm_m128.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
6785
98
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
6786
6787
            // Return a type ISLE can work with.
6788
98
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
6789
98
            AssemblerOutputs::RetXmm { inst, xmm }
6790
98
        }
6791
8.54k
        fn x64_vpshufb_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem) -> AssemblerOutputs {
6792
            // Convert ISLE types to assembler types.
6793
8.54k
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6794
8.54k
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6795
8.54k
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6796
6797
            // Build the instruction.
6798
8.54k
            let inst = cranelift_assembler_x64::inst::vpshufb_b::new(xmm1.clone(), xmm2.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
6799
8.54k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
6800
6801
            // Return a type ISLE can work with.
6802
8.54k
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
6803
8.54k
            AssemblerOutputs::RetXmm { inst, xmm }
6804
8.54k
        }
6805
5.26k
        fn x64_vpshufd_a_raw(&mut self, xmm_m128: &XmmMem, imm8: u8) -> AssemblerOutputs {
6806
            // Convert ISLE types to assembler types.
6807
5.26k
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6808
5.26k
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6809
5.26k
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6810
6811
            // Build the instruction.
6812
5.26k
            let inst = cranelift_assembler_x64::inst::vpshufd_a::new(xmm1.clone(), xmm_m128.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
6813
5.26k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
6814
6815
            // Return a type ISLE can work with.
6816
5.26k
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
6817
5.26k
            AssemblerOutputs::RetXmm { inst, xmm }
6818
5.26k
        }
6819
162
        fn x64_vpshuflw_a_raw(&mut self, xmm_m128: &XmmMem, imm8: u8) -> AssemblerOutputs {
6820
            // Convert ISLE types to assembler types.
6821
162
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6822
162
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6823
162
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6824
6825
            // Build the instruction.
6826
162
            let inst = cranelift_assembler_x64::inst::vpshuflw_a::new(xmm1.clone(), xmm_m128.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
6827
162
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
6828
6829
            // Return a type ISLE can work with.
6830
162
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
6831
162
            AssemblerOutputs::RetXmm { inst, xmm }
6832
162
        }
6833
156
        fn x64_vpshufhw_a_raw(&mut self, xmm_m128: &XmmMem, imm8: u8) -> AssemblerOutputs {
6834
            // Convert ISLE types to assembler types.
6835
156
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6836
156
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6837
156
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6838
6839
            // Build the instruction.
6840
156
            let inst = cranelift_assembler_x64::inst::vpshufhw_a::new(xmm1.clone(), xmm_m128.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
6841
156
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
6842
6843
            // Return a type ISLE can work with.
6844
156
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
6845
156
            AssemblerOutputs::RetXmm { inst, xmm }
6846
156
        }
6847
1.35k
        fn x64_vbroadcastss_a_m_raw(&mut self, m32: &SyntheticAmode) -> AssemblerOutputs {
6848
            // Convert ISLE types to assembler types.
6849
1.35k
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6850
1.35k
            let m32 = self.convert_amode_to_assembler_amode(m32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6851
6852
            // Build the instruction.
6853
1.35k
            let inst = cranelift_assembler_x64::inst::vbroadcastss_a_m::new(xmm1.clone(), m32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
6854
1.35k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
6855
6856
            // Return a type ISLE can work with.
6857
1.35k
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
6858
1.35k
            AssemblerOutputs::RetXmm { inst, xmm }
6859
1.35k
        }
6860
85
        fn x64_vbroadcastss_a_r_raw(&mut self, xmm2: Xmm) -> AssemblerOutputs {
6861
            // Convert ISLE types to assembler types.
6862
85
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6863
85
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6864
6865
            // Build the instruction.
6866
85
            let inst = cranelift_assembler_x64::inst::vbroadcastss_a_r::new(xmm1.clone(), xmm2.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
6867
85
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
6868
6869
            // Return a type ISLE can work with.
6870
85
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
6871
85
            AssemblerOutputs::RetXmm { inst, xmm }
6872
85
        }
6873
930
        fn x64_vpbroadcastb_a_raw(&mut self, xmm_m8: &XmmMem) -> AssemblerOutputs {
6874
            // Convert ISLE types to assembler types.
6875
930
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6876
930
            let xmm_m8 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6877
6878
            // Build the instruction.
6879
930
            let inst = cranelift_assembler_x64::inst::vpbroadcastb_a::new(xmm1.clone(), xmm_m8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
6880
930
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
6881
6882
            // Return a type ISLE can work with.
6883
930
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
6884
930
            AssemblerOutputs::RetXmm { inst, xmm }
6885
930
        }
6886
970
        fn x64_vpbroadcastw_a_raw(&mut self, xmm_m16: &XmmMem) -> AssemblerOutputs {
6887
            // Convert ISLE types to assembler types.
6888
970
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6889
970
            let xmm_m16 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6890
6891
            // Build the instruction.
6892
970
            let inst = cranelift_assembler_x64::inst::vpbroadcastw_a::new(xmm1.clone(), xmm_m16.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
6893
970
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
6894
6895
            // Return a type ISLE can work with.
6896
970
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
6897
970
            AssemblerOutputs::RetXmm { inst, xmm }
6898
970
        }
6899
642
        fn x64_vpbroadcastd_a_raw(&mut self, xmm_m32: &XmmMem) -> AssemblerOutputs {
6900
            // Convert ISLE types to assembler types.
6901
642
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6902
642
            let xmm_m32 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6903
6904
            // Build the instruction.
6905
642
            let inst = cranelift_assembler_x64::inst::vpbroadcastd_a::new(xmm1.clone(), xmm_m32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
6906
642
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
6907
6908
            // Return a type ISLE can work with.
6909
642
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
6910
642
            AssemblerOutputs::RetXmm { inst, xmm }
6911
642
        }
6912
0
        fn x64_vpbroadcastq_a_raw(&mut self, xmm_m64: &XmmMem) -> AssemblerOutputs {
6913
            // Convert ISLE types to assembler types.
6914
0
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6915
0
            let xmm_m64 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6916
6917
            // Build the instruction.
6918
0
            let inst = cranelift_assembler_x64::inst::vpbroadcastq_a::new(xmm1.clone(), xmm_m64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
6919
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
6920
6921
            // Return a type ISLE can work with.
6922
0
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
6923
0
            AssemblerOutputs::RetXmm { inst, xmm }
6924
0
        }
6925
0
        fn x64_vpermi2b_a_raw(&mut self, xmm1: Xmm, xmm2: Xmm, xmm_m128: &XmmMem) -> AssemblerOutputs {
6926
            // Convert ISLE types to assembler types.
6927
0
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6928
0
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6929
0
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6930
6931
            // Build the instruction.
6932
0
            let inst = cranelift_assembler_x64::inst::vpermi2b_a::new(xmm1.clone(), xmm2.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
6933
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
6934
6935
            // Return a type ISLE can work with.
6936
0
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
6937
0
            AssemblerOutputs::RetXmm { inst, xmm }
6938
0
        }
6939
0
        fn x64_maxss_a_raw(&mut self, xmm1: Xmm, xmm_m32: &XmmMem) -> AssemblerOutputs {
6940
            // Convert ISLE types to assembler types.
6941
0
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6942
0
            let xmm_m32 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6943
6944
            // Build the instruction.
6945
0
            let inst = cranelift_assembler_x64::inst::maxss_a::new(xmm1.clone(), xmm_m32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
6946
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
6947
6948
            // Return a type ISLE can work with.
6949
0
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
6950
0
            AssemblerOutputs::RetXmm { inst, xmm }
6951
0
        }
6952
0
        fn x64_maxsd_a_raw(&mut self, xmm1: Xmm, xmm_m64: &XmmMem) -> AssemblerOutputs {
6953
            // Convert ISLE types to assembler types.
6954
0
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6955
0
            let xmm_m64 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6956
6957
            // Build the instruction.
6958
0
            let inst = cranelift_assembler_x64::inst::maxsd_a::new(xmm1.clone(), xmm_m64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
6959
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
6960
6961
            // Return a type ISLE can work with.
6962
0
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
6963
0
            AssemblerOutputs::RetXmm { inst, xmm }
6964
0
        }
6965
48
        fn x64_maxps_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned) -> AssemblerOutputs {
6966
            // Convert ISLE types to assembler types.
6967
48
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6968
48
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6969
6970
            // Build the instruction.
6971
48
            let inst = cranelift_assembler_x64::inst::maxps_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
6972
48
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
6973
6974
            // Return a type ISLE can work with.
6975
48
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
6976
48
            AssemblerOutputs::RetXmm { inst, xmm }
6977
48
        }
6978
4
        fn x64_maxpd_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned) -> AssemblerOutputs {
6979
            // Convert ISLE types to assembler types.
6980
4
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6981
4
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6982
6983
            // Build the instruction.
6984
4
            let inst = cranelift_assembler_x64::inst::maxpd_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
6985
4
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
6986
6987
            // Return a type ISLE can work with.
6988
4
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
6989
4
            AssemblerOutputs::RetXmm { inst, xmm }
6990
4
        }
6991
0
        fn x64_vmaxss_b_raw(&mut self, xmm2: Xmm, xmm_m32: &XmmMem) -> AssemblerOutputs {
6992
            // Convert ISLE types to assembler types.
6993
0
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6994
0
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6995
0
            let xmm_m32 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
6996
6997
            // Build the instruction.
6998
0
            let inst = cranelift_assembler_x64::inst::vmaxss_b::new(xmm1.clone(), xmm2.clone(), xmm_m32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
6999
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
7000
7001
            // Return a type ISLE can work with.
7002
0
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
7003
0
            AssemblerOutputs::RetXmm { inst, xmm }
7004
0
        }
7005
0
        fn x64_vmaxsd_b_raw(&mut self, xmm2: Xmm, xmm_m64: &XmmMem) -> AssemblerOutputs {
7006
            // Convert ISLE types to assembler types.
7007
0
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
7008
0
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
7009
0
            let xmm_m64 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
7010
7011
            // Build the instruction.
7012
0
            let inst = cranelift_assembler_x64::inst::vmaxsd_b::new(xmm1.clone(), xmm2.clone(), xmm_m64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
7013
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
7014
7015
            // Return a type ISLE can work with.
7016
0
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
7017
0
            AssemblerOutputs::RetXmm { inst, xmm }
7018
0
        }
7019
228
        fn x64_vmaxps_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem) -> AssemblerOutputs {
7020
            // Convert ISLE types to assembler types.
7021
228
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
7022
228
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
7023
228
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
7024
7025
            // Build the instruction.
7026
228
            let inst = cranelift_assembler_x64::inst::vmaxps_b::new(xmm1.clone(), xmm2.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
7027
228
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
7028
7029
            // Return a type ISLE can work with.
7030
228
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
7031
228
            AssemblerOutputs::RetXmm { inst, xmm }
7032
228
        }
7033
130
        fn x64_vmaxpd_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem) -> AssemblerOutputs {
7034
            // Convert ISLE types to assembler types.
7035
130
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
7036
130
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
7037
130
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
7038
7039
            // Build the instruction.
7040
130
            let inst = cranelift_assembler_x64::inst::vmaxpd_b::new(xmm1.clone(), xmm2.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
7041
130
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
7042
7043
            // Return a type ISLE can work with.
7044
130
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
7045
130
            AssemblerOutputs::RetXmm { inst, xmm }
7046
130
        }
7047
8
        fn x64_pmaxsb_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned) -> AssemblerOutputs {
7048
            // Convert ISLE types to assembler types.
7049
8
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
7050
8
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
7051
7052
            // Build the instruction.
7053
8
            let inst = cranelift_assembler_x64::inst::pmaxsb_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
7054
8
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
7055
7056
            // Return a type ISLE can work with.
7057
8
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
7058
8
            AssemblerOutputs::RetXmm { inst, xmm }
7059
8
        }
7060
33
        fn x64_pmaxsw_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned) -> AssemblerOutputs {
7061
            // Convert ISLE types to assembler types.
7062
33
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
7063
33
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
7064
7065
            // Build the instruction.
7066
33
            let inst = cranelift_assembler_x64::inst::pmaxsw_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
7067
33
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
7068
7069
            // Return a type ISLE can work with.
7070
33
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
7071
33
            AssemblerOutputs::RetXmm { inst, xmm }
7072
33
        }
7073
501
        fn x64_pmaxsd_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned) -> AssemblerOutputs {
7074
            // Convert ISLE types to assembler types.
7075
501
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
7076
501
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
7077
7078
            // Build the instruction.
7079
501
            let inst = cranelift_assembler_x64::inst::pmaxsd_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
7080
501
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
7081
7082
            // Return a type ISLE can work with.
7083
501
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
7084
501
            AssemblerOutputs::RetXmm { inst, xmm }
7085
501
        }
7086
12
        fn x64_pmaxub_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned) -> AssemblerOutputs {
7087
            // Convert ISLE types to assembler types.
7088
12
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
7089
12
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
7090
7091
            // Build the instruction.
7092
12
            let inst = cranelift_assembler_x64::inst::pmaxub_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
7093
12
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
7094
7095
            // Return a type ISLE can work with.
7096
12
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
7097
12
            AssemblerOutputs::RetXmm { inst, xmm }
7098
12
        }
7099
3
        fn x64_pmaxuw_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned) -> AssemblerOutputs {
7100
            // Convert ISLE types to assembler types.
7101
3
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
7102
3
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
7103
7104
            // Build the instruction.
7105
3
            let inst = cranelift_assembler_x64::inst::pmaxuw_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
7106
3
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
7107
7108
            // Return a type ISLE can work with.
7109
3
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
7110
3
            AssemblerOutputs::RetXmm { inst, xmm }
7111
3
        }
7112
5
        fn x64_pmaxud_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned) -> AssemblerOutputs {
7113
            // Convert ISLE types to assembler types.
7114
5
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
7115
5
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
7116
7117
            // Build the instruction.
7118
5
            let inst = cranelift_assembler_x64::inst::pmaxud_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
7119
5
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
7120
7121
            // Return a type ISLE can work with.
7122
5
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
7123
5
            AssemblerOutputs::RetXmm { inst, xmm }
7124
5
        }
7125
26
        fn x64_vpmaxsb_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem) -> AssemblerOutputs {
7126
            // Convert ISLE types to assembler types.
7127
26
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
7128
26
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
7129
26
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
7130
7131
            // Build the instruction.
7132
26
            let inst = cranelift_assembler_x64::inst::vpmaxsb_b::new(xmm1.clone(), xmm2.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
7133
26
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
7134
7135
            // Return a type ISLE can work with.
7136
26
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
7137
26
            AssemblerOutputs::RetXmm { inst, xmm }
7138
26
        }
7139
31
        fn x64_vpmaxsw_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem) -> AssemblerOutputs {
7140
            // Convert ISLE types to assembler types.
7141
31
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
7142
31
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
7143
31
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
7144
7145
            // Build the instruction.
7146
31
            let inst = cranelift_assembler_x64::inst::vpmaxsw_b::new(xmm1.clone(), xmm2.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
7147
31
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
7148
7149
            // Return a type ISLE can work with.
7150
31
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
7151
31
            AssemblerOutputs::RetXmm { inst, xmm }
7152
31
        }
7153
1.20k
        fn x64_vpmaxsd_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem) -> AssemblerOutputs {
7154
            // Convert ISLE types to assembler types.
7155
1.20k
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
7156
1.20k
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
7157
1.20k
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
7158
7159
            // Build the instruction.
7160
1.20k
            let inst = cranelift_assembler_x64::inst::vpmaxsd_b::new(xmm1.clone(), xmm2.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
7161
1.20k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
7162
7163
            // Return a type ISLE can work with.
7164
1.20k
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
7165
1.20k
            AssemblerOutputs::RetXmm { inst, xmm }
7166
1.20k
        }
7167
24
        fn x64_vpmaxub_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem) -> AssemblerOutputs {
7168
            // Convert ISLE types to assembler types.
7169
24
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
7170
24
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
7171
24
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
7172
7173
            // Build the instruction.
7174
24
            let inst = cranelift_assembler_x64::inst::vpmaxub_b::new(xmm1.clone(), xmm2.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
7175
24
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
7176
7177
            // Return a type ISLE can work with.
7178
24
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
7179
24
            AssemblerOutputs::RetXmm { inst, xmm }
7180
24
        }
7181
38
        fn x64_vpmaxuw_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem) -> AssemblerOutputs {
7182
            // Convert ISLE types to assembler types.
7183
38
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
7184
38
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
7185
38
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
7186
7187
            // Build the instruction.
7188
38
            let inst = cranelift_assembler_x64::inst::vpmaxuw_b::new(xmm1.clone(), xmm2.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
7189
38
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
7190
7191
            // Return a type ISLE can work with.
7192
38
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
7193
38
            AssemblerOutputs::RetXmm { inst, xmm }
7194
38
        }
7195
42
        fn x64_vpmaxud_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem) -> AssemblerOutputs {
7196
            // Convert ISLE types to assembler types.
7197
42
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
7198
42
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
7199
42
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
7200
7201
            // Build the instruction.
7202
42
            let inst = cranelift_assembler_x64::inst::vpmaxud_b::new(xmm1.clone(), xmm2.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
7203
42
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
7204
7205
            // Return a type ISLE can work with.
7206
42
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
7207
42
            AssemblerOutputs::RetXmm { inst, xmm }
7208
42
        }
7209
0
        fn x64_minss_a_raw(&mut self, xmm1: Xmm, xmm_m32: &XmmMem) -> AssemblerOutputs {
7210
            // Convert ISLE types to assembler types.
7211
0
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
7212
0
            let xmm_m32 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
7213
7214
            // Build the instruction.
7215
0
            let inst = cranelift_assembler_x64::inst::minss_a::new(xmm1.clone(), xmm_m32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
7216
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
7217
7218
            // Return a type ISLE can work with.
7219
0
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
7220
0
            AssemblerOutputs::RetXmm { inst, xmm }
7221
0
        }
7222
0
        fn x64_minsd_a_raw(&mut self, xmm1: Xmm, xmm_m64: &XmmMem) -> AssemblerOutputs {
7223
            // Convert ISLE types to assembler types.
7224
0
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
7225
0
            let xmm_m64 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
7226
7227
            // Build the instruction.
7228
0
            let inst = cranelift_assembler_x64::inst::minsd_a::new(xmm1.clone(), xmm_m64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
7229
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
7230
7231
            // Return a type ISLE can work with.
7232
0
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
7233
0
            AssemblerOutputs::RetXmm { inst, xmm }
7234
0
        }
7235
3
        fn x64_minps_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned) -> AssemblerOutputs {
7236
            // Convert ISLE types to assembler types.
7237
3
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
7238
3
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
7239
7240
            // Build the instruction.
7241
3
            let inst = cranelift_assembler_x64::inst::minps_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
7242
3
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
7243
7244
            // Return a type ISLE can work with.
7245
3
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
7246
3
            AssemblerOutputs::RetXmm { inst, xmm }
7247
3
        }
7248
6
        fn x64_minpd_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned) -> AssemblerOutputs {
7249
            // Convert ISLE types to assembler types.
7250
6
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
7251
6
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
7252
7253
            // Build the instruction.
7254
6
            let inst = cranelift_assembler_x64::inst::minpd_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
7255
6
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
7256
7257
            // Return a type ISLE can work with.
7258
6
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
7259
6
            AssemblerOutputs::RetXmm { inst, xmm }
7260
6
        }
7261
0
        fn x64_vminss_b_raw(&mut self, xmm2: Xmm, xmm_m32: &XmmMem) -> AssemblerOutputs {
7262
            // Convert ISLE types to assembler types.
7263
0
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
7264
0
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
7265
0
            let xmm_m32 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
7266
7267
            // Build the instruction.
7268
0
            let inst = cranelift_assembler_x64::inst::vminss_b::new(xmm1.clone(), xmm2.clone(), xmm_m32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
7269
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
7270
7271
            // Return a type ISLE can work with.
7272
0
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
7273
0
            AssemblerOutputs::RetXmm { inst, xmm }
7274
0
        }
7275
0
        fn x64_vminsd_b_raw(&mut self, xmm2: Xmm, xmm_m64: &XmmMem) -> AssemblerOutputs {
7276
            // Convert ISLE types to assembler types.
7277
0
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
7278
0
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
7279
0
            let xmm_m64 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
7280
7281
            // Build the instruction.
7282
0
            let inst = cranelift_assembler_x64::inst::vminsd_b::new(xmm1.clone(), xmm2.clone(), xmm_m64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
7283
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
7284
7285
            // Return a type ISLE can work with.
7286
0
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
7287
0
            AssemblerOutputs::RetXmm { inst, xmm }
7288
0
        }
7289
35
        fn x64_vminps_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem) -> AssemblerOutputs {
7290
            // Convert ISLE types to assembler types.
7291
35
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
7292
35
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
7293
35
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
7294
7295
            // Build the instruction.
7296
35
            let inst = cranelift_assembler_x64::inst::vminps_b::new(xmm1.clone(), xmm2.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
7297
35
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
7298
7299
            // Return a type ISLE can work with.
7300
35
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
7301
35
            AssemblerOutputs::RetXmm { inst, xmm }
7302
35
        }
7303
218
        fn x64_vminpd_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem) -> AssemblerOutputs {
7304
            // Convert ISLE types to assembler types.
7305
218
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
7306
218
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
7307
218
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
7308
7309
            // Build the instruction.
7310
218
            let inst = cranelift_assembler_x64::inst::vminpd_b::new(xmm1.clone(), xmm2.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
7311
218
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
7312
7313
            // Return a type ISLE can work with.
7314
218
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
7315
218
            AssemblerOutputs::RetXmm { inst, xmm }
7316
218
        }
7317
16
        fn x64_pminsb_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned) -> AssemblerOutputs {
7318
            // Convert ISLE types to assembler types.
7319
16
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
7320
16
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
7321
7322
            // Build the instruction.
7323
16
            let inst = cranelift_assembler_x64::inst::pminsb_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
7324
16
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
7325
7326
            // Return a type ISLE can work with.
7327
16
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
7328
16
            AssemblerOutputs::RetXmm { inst, xmm }
7329
16
        }
7330
17
        fn x64_pminsw_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned) -> AssemblerOutputs {
7331
            // Convert ISLE types to assembler types.
7332
17
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
7333
17
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
7334
7335
            // Build the instruction.
7336
17
            let inst = cranelift_assembler_x64::inst::pminsw_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
7337
17
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
7338
7339
            // Return a type ISLE can work with.
7340
17
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
7341
17
            AssemblerOutputs::RetXmm { inst, xmm }
7342
17
        }
7343
8
        fn x64_pminsd_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned) -> AssemblerOutputs {
7344
            // Convert ISLE types to assembler types.
7345
8
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
7346
8
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
7347
7348
            // Build the instruction.
7349
8
            let inst = cranelift_assembler_x64::inst::pminsd_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
7350
8
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
7351
7352
            // Return a type ISLE can work with.
7353
8
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
7354
8
            AssemblerOutputs::RetXmm { inst, xmm }
7355
8
        }
7356
138
        fn x64_pminub_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned) -> AssemblerOutputs {
7357
            // Convert ISLE types to assembler types.
7358
138
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
7359
138
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
7360
7361
            // Build the instruction.
7362
138
            let inst = cranelift_assembler_x64::inst::pminub_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
7363
138
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
7364
7365
            // Return a type ISLE can work with.
7366
138
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
7367
138
            AssemblerOutputs::RetXmm { inst, xmm }
7368
138
        }
7369
3
        fn x64_pminuw_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned) -> AssemblerOutputs {
7370
            // Convert ISLE types to assembler types.
7371
3
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
7372
3
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
7373
7374
            // Build the instruction.
7375
3
            let inst = cranelift_assembler_x64::inst::pminuw_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
7376
3
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
7377
7378
            // Return a type ISLE can work with.
7379
3
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
7380
3
            AssemblerOutputs::RetXmm { inst, xmm }
7381
3
        }
7382
241
        fn x64_pminud_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned) -> AssemblerOutputs {
7383
            // Convert ISLE types to assembler types.
7384
241
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
7385
241
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
7386
7387
            // Build the instruction.
7388
241
            let inst = cranelift_assembler_x64::inst::pminud_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
7389
241
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
7390
7391
            // Return a type ISLE can work with.
7392
241
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
7393
241
            AssemblerOutputs::RetXmm { inst, xmm }
7394
241
        }
7395
37
        fn x64_vpminsb_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem) -> AssemblerOutputs {
7396
            // Convert ISLE types to assembler types.
7397
37
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
7398
37
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
7399
37
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
7400
7401
            // Build the instruction.
7402
37
            let inst = cranelift_assembler_x64::inst::vpminsb_b::new(xmm1.clone(), xmm2.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
7403
37
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
7404
7405
            // Return a type ISLE can work with.
7406
37
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
7407
37
            AssemblerOutputs::RetXmm { inst, xmm }
7408
37
        }
7409
406
        fn x64_vpminsw_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem) -> AssemblerOutputs {
7410
            // Convert ISLE types to assembler types.
7411
406
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
7412
406
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
7413
406
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
7414
7415
            // Build the instruction.
7416
406
            let inst = cranelift_assembler_x64::inst::vpminsw_b::new(xmm1.clone(), xmm2.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
7417
406
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
7418
7419
            // Return a type ISLE can work with.
7420
406
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
7421
406
            AssemblerOutputs::RetXmm { inst, xmm }
7422
406
        }
7423
112
        fn x64_vpminsd_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem) -> AssemblerOutputs {
7424
            // Convert ISLE types to assembler types.
7425
112
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
7426
112
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
7427
112
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
7428
7429
            // Build the instruction.
7430
112
            let inst = cranelift_assembler_x64::inst::vpminsd_b::new(xmm1.clone(), xmm2.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
7431
112
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
7432
7433
            // Return a type ISLE can work with.
7434
112
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
7435
112
            AssemblerOutputs::RetXmm { inst, xmm }
7436
112
        }
7437
46
        fn x64_vpminub_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem) -> AssemblerOutputs {
7438
            // Convert ISLE types to assembler types.
7439
46
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
7440
46
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
7441
46
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
7442
7443
            // Build the instruction.
7444
46
            let inst = cranelift_assembler_x64::inst::vpminub_b::new(xmm1.clone(), xmm2.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
7445
46
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
7446
7447
            // Return a type ISLE can work with.
7448
46
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
7449
46
            AssemblerOutputs::RetXmm { inst, xmm }
7450
46
        }
7451
112
        fn x64_vpminuw_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem) -> AssemblerOutputs {
7452
            // Convert ISLE types to assembler types.
7453
112
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
7454
112
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
7455
112
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
7456
7457
            // Build the instruction.
7458
112
            let inst = cranelift_assembler_x64::inst::vpminuw_b::new(xmm1.clone(), xmm2.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
7459
112
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
7460
7461
            // Return a type ISLE can work with.
7462
112
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
7463
112
            AssemblerOutputs::RetXmm { inst, xmm }
7464
112
        }
7465
388
        fn x64_vpminud_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem) -> AssemblerOutputs {
7466
            // Convert ISLE types to assembler types.
7467
388
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
7468
388
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
7469
388
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
7470
7471
            // Build the instruction.
7472
388
            let inst = cranelift_assembler_x64::inst::vpminud_b::new(xmm1.clone(), xmm2.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
7473
388
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
7474
7475
            // Return a type ISLE can work with.
7476
388
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
7477
388
            AssemblerOutputs::RetXmm { inst, xmm }
7478
388
        }
7479
1.77k
        fn x64_mfence_zo_raw(&mut self, ) -> AssemblerOutputs {
7480
            // Convert ISLE types to assembler types.
7481
7482
            // Build the instruction.
7483
1.77k
            let inst = cranelift_assembler_x64::inst::mfence_zo::new().into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
7484
1.77k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
7485
7486
            // Return a type ISLE can work with.
7487
1.77k
            AssemblerOutputs::SideEffect { inst }
7488
1.77k
        }
7489
0
        fn x64_sfence_zo_raw(&mut self, ) -> AssemblerOutputs {
7490
            // Convert ISLE types to assembler types.
7491
7492
            // Build the instruction.
7493
0
            let inst = cranelift_assembler_x64::inst::sfence_zo::new().into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
7494
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
7495
7496
            // Return a type ISLE can work with.
7497
0
            AssemblerOutputs::SideEffect { inst }
7498
0
        }
7499
0
        fn x64_lfence_zo_raw(&mut self, ) -> AssemblerOutputs {
7500
            // Convert ISLE types to assembler types.
7501
7502
            // Build the instruction.
7503
0
            let inst = cranelift_assembler_x64::inst::lfence_zo::new().into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
7504
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
7505
7506
            // Return a type ISLE can work with.
7507
0
            AssemblerOutputs::SideEffect { inst }
7508
0
        }
7509
0
        fn x64_hlt_zo_raw(&mut self, ) -> AssemblerOutputs {
7510
            // Convert ISLE types to assembler types.
7511
7512
            // Build the instruction.
7513
0
            let inst = cranelift_assembler_x64::inst::hlt_zo::new().into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
7514
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
7515
7516
            // Return a type ISLE can work with.
7517
0
            AssemblerOutputs::SideEffect { inst }
7518
0
        }
7519
1.54M
        fn x64_ud2_zo_raw(&mut self, trap: &TrapCode) -> AssemblerOutputs {
7520
            // Convert ISLE types to assembler types.
7521
7522
            // Build the instruction.
7523
1.54M
            let inst = cranelift_assembler_x64::inst::ud2_zo::new(cranelift_assembler_x64::TrapCode(trap.as_raw())).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
7524
1.54M
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
7525
7526
            // Return a type ISLE can work with.
7527
1.54M
            AssemblerOutputs::SideEffect { inst }
7528
1.54M
        }
7529
0
        fn x64_int3_zo_raw(&mut self, ) -> AssemblerOutputs {
7530
            // Convert ISLE types to assembler types.
7531
7532
            // Build the instruction.
7533
0
            let inst = cranelift_assembler_x64::inst::int3_zo::new().into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
7534
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
7535
7536
            // Return a type ISLE can work with.
7537
0
            AssemblerOutputs::SideEffect { inst }
7538
0
        }
7539
0
        fn x64_retq_zo_raw(&mut self, ) -> AssemblerOutputs {
7540
            // Convert ISLE types to assembler types.
7541
7542
            // Build the instruction.
7543
0
            let inst = cranelift_assembler_x64::inst::retq_zo::new().into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
7544
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
7545
7546
            // Return a type ISLE can work with.
7547
0
            AssemblerOutputs::SideEffect { inst }
7548
0
        }
7549
0
        fn x64_retq_i_raw(&mut self, imm16: u16) -> AssemblerOutputs {
7550
            // Convert ISLE types to assembler types.
7551
0
            let imm16 = cranelift_assembler_x64::Imm16::new(imm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
7552
7553
            // Build the instruction.
7554
0
            let inst = cranelift_assembler_x64::inst::retq_i::new(imm16.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
7555
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
7556
7557
            // Return a type ISLE can work with.
7558
0
            AssemblerOutputs::SideEffect { inst }
7559
0
        }
7560
0
        fn x64_leaw_rm_raw(&mut self, m16: &SyntheticAmode) -> AssemblerOutputs {
7561
            // Convert ISLE types to assembler types.
7562
0
            let r16 = cranelift_assembler_x64::Gpr::new(self.temp_writable_gpr()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
7563
0
            let m16 = self.convert_amode_to_assembler_amode(m16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
7564
7565
            // Build the instruction.
7566
0
            let inst = cranelift_assembler_x64::inst::leaw_rm::new(r16.clone(), m16.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
7567
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
7568
7569
            // Return a type ISLE can work with.
7570
0
            let gpr = r16.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
7571
0
            AssemblerOutputs::RetGpr { inst, gpr }
7572
0
        }
7573
497k
        fn x64_leal_rm_raw(&mut self, m32: &SyntheticAmode) -> AssemblerOutputs {
7574
            // Convert ISLE types to assembler types.
7575
497k
            let r32 = cranelift_assembler_x64::Gpr::new(self.temp_writable_gpr()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
7576
497k
            let m32 = self.convert_amode_to_assembler_amode(m32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
7577
7578
            // Build the instruction.
7579
497k
            let inst = cranelift_assembler_x64::inst::leal_rm::new(r32.clone(), m32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
7580
497k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
7581
7582
            // Return a type ISLE can work with.
7583
497k
            let gpr = r32.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
7584
497k
            AssemblerOutputs::RetGpr { inst, gpr }
7585
497k
        }
7586
1.93M
        fn x64_leaq_rm_raw(&mut self, m64: &SyntheticAmode) -> AssemblerOutputs {
7587
            // Convert ISLE types to assembler types.
7588
1.93M
            let r64 = cranelift_assembler_x64::Gpr::new(self.temp_writable_gpr()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
7589
1.93M
            let m64 = self.convert_amode_to_assembler_amode(m64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
7590
7591
            // Build the instruction.
7592
1.93M
            let inst = cranelift_assembler_x64::inst::leaq_rm::new(r64.clone(), m64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
7593
1.93M
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
7594
7595
            // Return a type ISLE can work with.
7596
1.93M
            let gpr = r64.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
7597
1.93M
            AssemblerOutputs::RetGpr { inst, gpr }
7598
1.93M
        }
7599
0
        fn x64_callq_d_raw(&mut self, imm32: i32) -> AssemblerOutputs {
7600
            // Convert ISLE types to assembler types.
7601
0
            let imm32 = cranelift_assembler_x64::Simm32::new(imm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
7602
7603
            // Build the instruction.
7604
0
            let inst = cranelift_assembler_x64::inst::callq_d::new(imm32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
7605
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
7606
7607
            // Return a type ISLE can work with.
7608
0
            AssemblerOutputs::SideEffect { inst }
7609
0
        }
7610
0
        fn x64_callq_m_raw(&mut self, rm64: &GprMem) -> AssemblerOutputs {
7611
            // Convert ISLE types to assembler types.
7612
0
            let rm64 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
7613
7614
            // Build the instruction.
7615
0
            let inst = cranelift_assembler_x64::inst::callq_m::new(rm64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
7616
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
7617
7618
            // Return a type ISLE can work with.
7619
0
            AssemblerOutputs::SideEffect { inst }
7620
0
        }
7621
198k
        fn x64_movb_mr_raw(&mut self, rm8: &GprMem, r8: Gpr) -> AssemblerOutputs {
7622
            // Convert ISLE types to assembler types.
7623
198k
            let rm8 = self.convert_gpr_mem_to_assembler_write_gpr_mem(rm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
7624
198k
            let r8 = cranelift_assembler_x64::Gpr::new(r8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
7625
7626
            // Build the instruction.
7627
198k
            let inst = cranelift_assembler_x64::inst::movb_mr::new(rm8.clone(), r8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
7628
198k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
7629
7630
            // Return a type ISLE can work with.
7631
198k
            match rm8 {
7632
0
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
7633
0
                    let gpr = reg.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
7634
0
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
7635
                }
7636
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
7637
198k
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
7638
                }
7639
            }
7640
198k
        }
7641
48.6k
        fn x64_movw_mr_raw(&mut self, rm16: &GprMem, r16: Gpr) -> AssemblerOutputs {
7642
            // Convert ISLE types to assembler types.
7643
48.6k
            let rm16 = self.convert_gpr_mem_to_assembler_write_gpr_mem(rm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
7644
48.6k
            let r16 = cranelift_assembler_x64::Gpr::new(r16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
7645
7646
            // Build the instruction.
7647
48.6k
            let inst = cranelift_assembler_x64::inst::movw_mr::new(rm16.clone(), r16.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
7648
48.6k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
7649
7650
            // Return a type ISLE can work with.
7651
48.6k
            match rm16 {
7652
0
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
7653
0
                    let gpr = reg.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
7654
0
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
7655
                }
7656
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
7657
48.6k
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
7658
                }
7659
            }
7660
48.6k
        }
7661
1.30M
        fn x64_movl_mr_raw(&mut self, rm32: &GprMem, r32: Gpr) -> AssemblerOutputs {
7662
            // Convert ISLE types to assembler types.
7663
1.30M
            let rm32 = self.convert_gpr_mem_to_assembler_write_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
7664
1.30M
            let r32 = cranelift_assembler_x64::Gpr::new(r32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
7665
7666
            // Build the instruction.
7667
1.30M
            let inst = cranelift_assembler_x64::inst::movl_mr::new(rm32.clone(), r32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
7668
1.30M
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
7669
7670
            // Return a type ISLE can work with.
7671
1.30M
            match rm32 {
7672
0
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
7673
0
                    let gpr = reg.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
7674
0
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
7675
                }
7676
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
7677
1.30M
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
7678
                }
7679
            }
7680
1.30M
        }
7681
3.31M
        fn x64_movq_mr_raw(&mut self, rm64: &GprMem, r64: Gpr) -> AssemblerOutputs {
7682
            // Convert ISLE types to assembler types.
7683
3.31M
            let rm64 = self.convert_gpr_mem_to_assembler_write_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
7684
3.31M
            let r64 = cranelift_assembler_x64::Gpr::new(r64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
7685
7686
            // Build the instruction.
7687
3.31M
            let inst = cranelift_assembler_x64::inst::movq_mr::new(rm64.clone(), r64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
7688
3.31M
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
7689
7690
            // Return a type ISLE can work with.
7691
3.31M
            match rm64 {
7692
0
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
7693
0
                    let gpr = reg.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
7694
0
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
7695
                }
7696
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
7697
3.31M
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
7698
                }
7699
            }
7700
3.31M
        }
7701
0
        fn x64_movb_rm_raw(&mut self, rm8: &GprMem) -> AssemblerOutputs {
7702
            // Convert ISLE types to assembler types.
7703
0
            let r8 = cranelift_assembler_x64::Gpr::new(self.temp_writable_gpr()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
7704
0
            let rm8 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
7705
7706
            // Build the instruction.
7707
0
            let inst = cranelift_assembler_x64::inst::movb_rm::new(r8.clone(), rm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
7708
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
7709
7710
            // Return a type ISLE can work with.
7711
0
            let gpr = r8.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
7712
0
            AssemblerOutputs::RetGpr { inst, gpr }
7713
0
        }
7714
0
        fn x64_movw_rm_raw(&mut self, rm16: &GprMem) -> AssemblerOutputs {
7715
            // Convert ISLE types to assembler types.
7716
0
            let r16 = cranelift_assembler_x64::Gpr::new(self.temp_writable_gpr()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
7717
0
            let rm16 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
7718
7719
            // Build the instruction.
7720
0
            let inst = cranelift_assembler_x64::inst::movw_rm::new(r16.clone(), rm16.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
7721
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
7722
7723
            // Return a type ISLE can work with.
7724
0
            let gpr = r16.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
7725
0
            AssemblerOutputs::RetGpr { inst, gpr }
7726
0
        }
7727
2.72M
        fn x64_movl_rm_raw(&mut self, rm32: &GprMem) -> AssemblerOutputs {
7728
            // Convert ISLE types to assembler types.
7729
2.72M
            let r32 = cranelift_assembler_x64::Gpr::new(self.temp_writable_gpr()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
7730
2.72M
            let rm32 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
7731
7732
            // Build the instruction.
7733
2.72M
            let inst = cranelift_assembler_x64::inst::movl_rm::new(r32.clone(), rm32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
7734
2.72M
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
7735
7736
            // Return a type ISLE can work with.
7737
2.72M
            let gpr = r32.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
7738
2.72M
            AssemblerOutputs::RetGpr { inst, gpr }
7739
2.72M
        }
7740
9.74M
        fn x64_movq_rm_raw(&mut self, rm64: &GprMem) -> AssemblerOutputs {
7741
            // Convert ISLE types to assembler types.
7742
9.74M
            let r64 = cranelift_assembler_x64::Gpr::new(self.temp_writable_gpr()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
7743
9.74M
            let rm64 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
7744
7745
            // Build the instruction.
7746
9.74M
            let inst = cranelift_assembler_x64::inst::movq_rm::new(r64.clone(), rm64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
7747
9.74M
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
7748
7749
            // Return a type ISLE can work with.
7750
9.74M
            let gpr = r64.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
7751
9.74M
            AssemblerOutputs::RetGpr { inst, gpr }
7752
9.74M
        }
7753
0
        fn x64_movb_oi_raw(&mut self, imm8: u8) -> AssemblerOutputs {
7754
            // Convert ISLE types to assembler types.
7755
0
            let r8 = cranelift_assembler_x64::Gpr::new(self.temp_writable_gpr()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
7756
0
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
7757
7758
            // Build the instruction.
7759
0
            let inst = cranelift_assembler_x64::inst::movb_oi::new(r8.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
7760
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
7761
7762
            // Return a type ISLE can work with.
7763
0
            let gpr = r8.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
7764
0
            AssemblerOutputs::RetGpr { inst, gpr }
7765
0
        }
7766
0
        fn x64_movw_oi_raw(&mut self, imm16: u16) -> AssemblerOutputs {
7767
            // Convert ISLE types to assembler types.
7768
0
            let r16 = cranelift_assembler_x64::Gpr::new(self.temp_writable_gpr()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
7769
0
            let imm16 = cranelift_assembler_x64::Imm16::new(imm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
7770
7771
            // Build the instruction.
7772
0
            let inst = cranelift_assembler_x64::inst::movw_oi::new(r16.clone(), imm16.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
7773
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
7774
7775
            // Return a type ISLE can work with.
7776
0
            let gpr = r16.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
7777
0
            AssemblerOutputs::RetGpr { inst, gpr }
7778
0
        }
7779
3.05M
        fn x64_movl_oi_raw(&mut self, imm32: u32) -> AssemblerOutputs {
7780
            // Convert ISLE types to assembler types.
7781
3.05M
            let r32 = cranelift_assembler_x64::Gpr::new(self.temp_writable_gpr()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
7782
3.05M
            let imm32 = cranelift_assembler_x64::Imm32::new(imm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
7783
7784
            // Build the instruction.
7785
3.05M
            let inst = cranelift_assembler_x64::inst::movl_oi::new(r32.clone(), imm32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
7786
3.05M
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
7787
7788
            // Return a type ISLE can work with.
7789
3.05M
            let gpr = r32.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
7790
3.05M
            AssemblerOutputs::RetGpr { inst, gpr }
7791
3.05M
        }
7792
438k
        fn x64_movabsq_oi_raw(&mut self, imm64: u64) -> AssemblerOutputs {
7793
            // Convert ISLE types to assembler types.
7794
438k
            let r64 = cranelift_assembler_x64::Gpr::new(self.temp_writable_gpr()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
7795
438k
            let imm64 = cranelift_assembler_x64::Imm64::new(imm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
7796
7797
            // Build the instruction.
7798
438k
            let inst = cranelift_assembler_x64::inst::movabsq_oi::new(r64.clone(), imm64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
7799
438k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
7800
7801
            // Return a type ISLE can work with.
7802
438k
            let gpr = r64.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
7803
438k
            AssemblerOutputs::RetGpr { inst, gpr }
7804
438k
        }
7805
21.7k
        fn x64_movb_mi_raw(&mut self, rm8: &GprMem, imm8: u8) -> AssemblerOutputs {
7806
            // Convert ISLE types to assembler types.
7807
21.7k
            let rm8 = self.convert_gpr_mem_to_assembler_write_gpr_mem(rm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
7808
21.7k
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
7809
7810
            // Build the instruction.
7811
21.7k
            let inst = cranelift_assembler_x64::inst::movb_mi::new(rm8.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
7812
21.7k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
7813
7814
            // Return a type ISLE can work with.
7815
21.7k
            match rm8 {
7816
0
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
7817
0
                    let gpr = reg.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
7818
0
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
7819
                }
7820
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
7821
21.7k
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
7822
                }
7823
            }
7824
21.7k
        }
7825
13.1k
        fn x64_movw_mi_raw(&mut self, rm16: &GprMem, imm16: u16) -> AssemblerOutputs {
7826
            // Convert ISLE types to assembler types.
7827
13.1k
            let rm16 = self.convert_gpr_mem_to_assembler_write_gpr_mem(rm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
7828
13.1k
            let imm16 = cranelift_assembler_x64::Imm16::new(imm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
7829
7830
            // Build the instruction.
7831
13.1k
            let inst = cranelift_assembler_x64::inst::movw_mi::new(rm16.clone(), imm16.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
7832
13.1k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
7833
7834
            // Return a type ISLE can work with.
7835
13.1k
            match rm16 {
7836
0
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
7837
0
                    let gpr = reg.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
7838
0
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
7839
                }
7840
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
7841
13.1k
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
7842
                }
7843
            }
7844
13.1k
        }
7845
280k
        fn x64_movl_mi_raw(&mut self, rm32: &GprMem, imm32: u32) -> AssemblerOutputs {
7846
            // Convert ISLE types to assembler types.
7847
280k
            let rm32 = self.convert_gpr_mem_to_assembler_write_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
7848
280k
            let imm32 = cranelift_assembler_x64::Imm32::new(imm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
7849
7850
            // Build the instruction.
7851
280k
            let inst = cranelift_assembler_x64::inst::movl_mi::new(rm32.clone(), imm32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
7852
280k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
7853
7854
            // Return a type ISLE can work with.
7855
280k
            match rm32 {
7856
0
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
7857
0
                    let gpr = reg.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
7858
0
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
7859
                }
7860
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
7861
280k
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
7862
                }
7863
            }
7864
280k
        }
7865
49.4k
        fn x64_movq_mi_sxl_raw(&mut self, rm64: &GprMem, imm32: i32) -> AssemblerOutputs {
7866
            // Convert ISLE types to assembler types.
7867
49.4k
            let rm64 = self.convert_gpr_mem_to_assembler_write_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
7868
49.4k
            let imm32 = cranelift_assembler_x64::Simm32::new(imm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
7869
7870
            // Build the instruction.
7871
49.4k
            let inst = cranelift_assembler_x64::inst::movq_mi_sxl::new(rm64.clone(), imm32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
7872
49.4k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
7873
7874
            // Return a type ISLE can work with.
7875
49.4k
            match rm64 {
7876
15.1k
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
7877
15.1k
                    let gpr = reg.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
7878
15.1k
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
7879
                }
7880
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
7881
34.3k
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
7882
                }
7883
            }
7884
49.4k
        }
7885
0
        fn x64_movsbw_rm_raw(&mut self, rm8: &GprMem) -> AssemblerOutputs {
7886
            // Convert ISLE types to assembler types.
7887
0
            let r16 = cranelift_assembler_x64::Gpr::new(self.temp_writable_gpr()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
7888
0
            let rm8 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
7889
7890
            // Build the instruction.
7891
0
            let inst = cranelift_assembler_x64::inst::movsbw_rm::new(r16.clone(), rm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
7892
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
7893
7894
            // Return a type ISLE can work with.
7895
0
            let gpr = r16.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
7896
0
            AssemblerOutputs::RetGpr { inst, gpr }
7897
0
        }
7898
10.3k
        fn x64_movsbl_rm_raw(&mut self, rm8: &GprMem) -> AssemblerOutputs {
7899
            // Convert ISLE types to assembler types.
7900
10.3k
            let r32 = cranelift_assembler_x64::Gpr::new(self.temp_writable_gpr()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
7901
10.3k
            let rm8 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
7902
7903
            // Build the instruction.
7904
10.3k
            let inst = cranelift_assembler_x64::inst::movsbl_rm::new(r32.clone(), rm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
7905
10.3k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
7906
7907
            // Return a type ISLE can work with.
7908
10.3k
            let gpr = r32.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
7909
10.3k
            AssemblerOutputs::RetGpr { inst, gpr }
7910
10.3k
        }
7911
71.9k
        fn x64_movsbq_rm_raw(&mut self, rm8: &GprMem) -> AssemblerOutputs {
7912
            // Convert ISLE types to assembler types.
7913
71.9k
            let r64 = cranelift_assembler_x64::Gpr::new(self.temp_writable_gpr()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
7914
71.9k
            let rm8 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
7915
7916
            // Build the instruction.
7917
71.9k
            let inst = cranelift_assembler_x64::inst::movsbq_rm::new(r64.clone(), rm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
7918
71.9k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
7919
7920
            // Return a type ISLE can work with.
7921
71.9k
            let gpr = r64.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
7922
71.9k
            AssemblerOutputs::RetGpr { inst, gpr }
7923
71.9k
        }
7924
0
        fn x64_movsww_rm_raw(&mut self, rm16: &GprMem) -> AssemblerOutputs {
7925
            // Convert ISLE types to assembler types.
7926
0
            let r16 = cranelift_assembler_x64::Gpr::new(self.temp_writable_gpr()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
7927
0
            let rm16 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
7928
7929
            // Build the instruction.
7930
0
            let inst = cranelift_assembler_x64::inst::movsww_rm::new(r16.clone(), rm16.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
7931
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
7932
7933
            // Return a type ISLE can work with.
7934
0
            let gpr = r16.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
7935
0
            AssemblerOutputs::RetGpr { inst, gpr }
7936
0
        }
7937
14.4k
        fn x64_movswl_rm_raw(&mut self, rm16: &GprMem) -> AssemblerOutputs {
7938
            // Convert ISLE types to assembler types.
7939
14.4k
            let r32 = cranelift_assembler_x64::Gpr::new(self.temp_writable_gpr()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
7940
14.4k
            let rm16 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
7941
7942
            // Build the instruction.
7943
14.4k
            let inst = cranelift_assembler_x64::inst::movswl_rm::new(r32.clone(), rm16.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
7944
14.4k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
7945
7946
            // Return a type ISLE can work with.
7947
14.4k
            let gpr = r32.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
7948
14.4k
            AssemblerOutputs::RetGpr { inst, gpr }
7949
14.4k
        }
7950
35.4k
        fn x64_movswq_rm_raw(&mut self, rm16: &GprMem) -> AssemblerOutputs {
7951
            // Convert ISLE types to assembler types.
7952
35.4k
            let r64 = cranelift_assembler_x64::Gpr::new(self.temp_writable_gpr()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
7953
35.4k
            let rm16 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
7954
7955
            // Build the instruction.
7956
35.4k
            let inst = cranelift_assembler_x64::inst::movswq_rm::new(r64.clone(), rm16.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
7957
35.4k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
7958
7959
            // Return a type ISLE can work with.
7960
35.4k
            let gpr = r64.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
7961
35.4k
            AssemblerOutputs::RetGpr { inst, gpr }
7962
35.4k
        }
7963
29.0k
        fn x64_movslq_rm_raw(&mut self, rm32: &GprMem) -> AssemblerOutputs {
7964
            // Convert ISLE types to assembler types.
7965
29.0k
            let r64 = cranelift_assembler_x64::Gpr::new(self.temp_writable_gpr()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
7966
29.0k
            let rm32 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
7967
7968
            // Build the instruction.
7969
29.0k
            let inst = cranelift_assembler_x64::inst::movslq_rm::new(r64.clone(), rm32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
7970
29.0k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
7971
7972
            // Return a type ISLE can work with.
7973
29.0k
            let gpr = r64.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
7974
29.0k
            AssemblerOutputs::RetGpr { inst, gpr }
7975
29.0k
        }
7976
0
        fn x64_movzbw_rm_raw(&mut self, rm8: &GprMem) -> AssemblerOutputs {
7977
            // Convert ISLE types to assembler types.
7978
0
            let r16 = cranelift_assembler_x64::Gpr::new(self.temp_writable_gpr()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
7979
0
            let rm8 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
7980
7981
            // Build the instruction.
7982
0
            let inst = cranelift_assembler_x64::inst::movzbw_rm::new(r16.clone(), rm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
7983
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
7984
7985
            // Return a type ISLE can work with.
7986
0
            let gpr = r16.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
7987
0
            AssemblerOutputs::RetGpr { inst, gpr }
7988
0
        }
7989
236k
        fn x64_movzbl_rm_raw(&mut self, rm8: &GprMem) -> AssemblerOutputs {
7990
            // Convert ISLE types to assembler types.
7991
236k
            let r32 = cranelift_assembler_x64::Gpr::new(self.temp_writable_gpr()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
7992
236k
            let rm8 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
7993
7994
            // Build the instruction.
7995
236k
            let inst = cranelift_assembler_x64::inst::movzbl_rm::new(r32.clone(), rm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
7996
236k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
7997
7998
            // Return a type ISLE can work with.
7999
236k
            let gpr = r32.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
8000
236k
            AssemblerOutputs::RetGpr { inst, gpr }
8001
236k
        }
8002
326k
        fn x64_movzbq_rm_raw(&mut self, rm8: &GprMem) -> AssemblerOutputs {
8003
            // Convert ISLE types to assembler types.
8004
326k
            let r64 = cranelift_assembler_x64::Gpr::new(self.temp_writable_gpr()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
8005
326k
            let rm8 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
8006
8007
            // Build the instruction.
8008
326k
            let inst = cranelift_assembler_x64::inst::movzbq_rm::new(r64.clone(), rm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
8009
326k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
8010
8011
            // Return a type ISLE can work with.
8012
326k
            let gpr = r64.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
8013
326k
            AssemblerOutputs::RetGpr { inst, gpr }
8014
326k
        }
8015
0
        fn x64_movzww_rm_raw(&mut self, rm16: &GprMem) -> AssemblerOutputs {
8016
            // Convert ISLE types to assembler types.
8017
0
            let r16 = cranelift_assembler_x64::Gpr::new(self.temp_writable_gpr()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
8018
0
            let rm16 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
8019
8020
            // Build the instruction.
8021
0
            let inst = cranelift_assembler_x64::inst::movzww_rm::new(r16.clone(), rm16.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
8022
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
8023
8024
            // Return a type ISLE can work with.
8025
0
            let gpr = r16.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
8026
0
            AssemblerOutputs::RetGpr { inst, gpr }
8027
0
        }
8028
10.9k
        fn x64_movzwl_rm_raw(&mut self, rm16: &GprMem) -> AssemblerOutputs {
8029
            // Convert ISLE types to assembler types.
8030
10.9k
            let r32 = cranelift_assembler_x64::Gpr::new(self.temp_writable_gpr()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
8031
10.9k
            let rm16 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
8032
8033
            // Build the instruction.
8034
10.9k
            let inst = cranelift_assembler_x64::inst::movzwl_rm::new(r32.clone(), rm16.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
8035
10.9k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
8036
8037
            // Return a type ISLE can work with.
8038
10.9k
            let gpr = r32.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
8039
10.9k
            AssemblerOutputs::RetGpr { inst, gpr }
8040
10.9k
        }
8041
81.0k
        fn x64_movzwq_rm_raw(&mut self, rm16: &GprMem) -> AssemblerOutputs {
8042
            // Convert ISLE types to assembler types.
8043
81.0k
            let r64 = cranelift_assembler_x64::Gpr::new(self.temp_writable_gpr()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
8044
81.0k
            let rm16 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
8045
8046
            // Build the instruction.
8047
81.0k
            let inst = cranelift_assembler_x64::inst::movzwq_rm::new(r64.clone(), rm16.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
8048
81.0k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
8049
8050
            // Return a type ISLE can work with.
8051
81.0k
            let gpr = r64.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
8052
81.0k
            AssemblerOutputs::RetGpr { inst, gpr }
8053
81.0k
        }
8054
28.9k
        fn x64_movd_a_raw(&mut self, rm32: &GprMem) -> AssemblerOutputs {
8055
            // Convert ISLE types to assembler types.
8056
28.9k
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
8057
28.9k
            let rm32 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
8058
8059
            // Build the instruction.
8060
28.9k
            let inst = cranelift_assembler_x64::inst::movd_a::new(xmm1.clone(), rm32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
8061
28.9k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
8062
8063
            // Return a type ISLE can work with.
8064
28.9k
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
8065
28.9k
            AssemblerOutputs::RetXmm { inst, xmm }
8066
28.9k
        }
8067
10.4k
        fn x64_movq_a_raw(&mut self, rm64: &GprMem) -> AssemblerOutputs {
8068
            // Convert ISLE types to assembler types.
8069
10.4k
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
8070
10.4k
            let rm64 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
8071
8072
            // Build the instruction.
8073
10.4k
            let inst = cranelift_assembler_x64::inst::movq_a::new(xmm1.clone(), rm64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
8074
10.4k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
8075
8076
            // Return a type ISLE can work with.
8077
10.4k
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
8078
10.4k
            AssemblerOutputs::RetXmm { inst, xmm }
8079
10.4k
        }
8080
814
        fn x64_movd_b_raw(&mut self, rm32: &GprMem, xmm2: Xmm) -> AssemblerOutputs {
8081
            // Convert ISLE types to assembler types.
8082
814
            let rm32 = self.convert_gpr_mem_to_assembler_write_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
8083
814
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
8084
8085
            // Build the instruction.
8086
814
            let inst = cranelift_assembler_x64::inst::movd_b::new(rm32.clone(), xmm2.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
8087
814
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
8088
8089
            // Return a type ISLE can work with.
8090
814
            match rm32 {
8091
814
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
8092
814
                    let gpr = reg.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
8093
814
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
8094
                }
8095
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
8096
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
8097
                }
8098
            }
8099
814
        }
8100
1.21k
        fn x64_movq_b_raw(&mut self, rm64: &GprMem, xmm2: Xmm) -> AssemblerOutputs {
8101
            // Convert ISLE types to assembler types.
8102
1.21k
            let rm64 = self.convert_gpr_mem_to_assembler_write_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
8103
1.21k
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
8104
8105
            // Build the instruction.
8106
1.21k
            let inst = cranelift_assembler_x64::inst::movq_b::new(rm64.clone(), xmm2.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
8107
1.21k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
8108
8109
            // Return a type ISLE can work with.
8110
1.21k
            match rm64 {
8111
1.21k
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
8112
1.21k
                    let gpr = reg.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
8113
1.21k
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
8114
                }
8115
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
8116
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
8117
                }
8118
            }
8119
1.21k
        }
8120
182k
        fn x64_vmovd_a_raw(&mut self, rm32: &GprMem) -> AssemblerOutputs {
8121
            // Convert ISLE types to assembler types.
8122
182k
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
8123
182k
            let rm32 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
8124
8125
            // Build the instruction.
8126
182k
            let inst = cranelift_assembler_x64::inst::vmovd_a::new(xmm1.clone(), rm32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
8127
182k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
8128
8129
            // Return a type ISLE can work with.
8130
182k
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
8131
182k
            AssemblerOutputs::RetXmm { inst, xmm }
8132
182k
        }
8133
237k
        fn x64_vmovq_a_raw(&mut self, rm64: &GprMem) -> AssemblerOutputs {
8134
            // Convert ISLE types to assembler types.
8135
237k
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
8136
237k
            let rm64 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
8137
8138
            // Build the instruction.
8139
237k
            let inst = cranelift_assembler_x64::inst::vmovq_a::new(xmm1.clone(), rm64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
8140
237k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
8141
8142
            // Return a type ISLE can work with.
8143
237k
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
8144
237k
            AssemblerOutputs::RetXmm { inst, xmm }
8145
237k
        }
8146
32.6k
        fn x64_vmovd_b_raw(&mut self, rm32: &GprMem, xmm2: Xmm) -> AssemblerOutputs {
8147
            // Convert ISLE types to assembler types.
8148
32.6k
            let rm32 = self.convert_gpr_mem_to_assembler_write_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
8149
32.6k
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
8150
8151
            // Build the instruction.
8152
32.6k
            let inst = cranelift_assembler_x64::inst::vmovd_b::new(rm32.clone(), xmm2.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
8153
32.6k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
8154
8155
            // Return a type ISLE can work with.
8156
32.6k
            match rm32 {
8157
32.6k
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
8158
32.6k
                    let gpr = reg.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
8159
32.6k
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
8160
                }
8161
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
8162
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
8163
                }
8164
            }
8165
32.6k
        }
8166
66.2k
        fn x64_vmovq_b_raw(&mut self, rm64: &GprMem, xmm2: Xmm) -> AssemblerOutputs {
8167
            // Convert ISLE types to assembler types.
8168
66.2k
            let rm64 = self.convert_gpr_mem_to_assembler_write_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
8169
66.2k
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
8170
8171
            // Build the instruction.
8172
66.2k
            let inst = cranelift_assembler_x64::inst::vmovq_b::new(rm64.clone(), xmm2.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
8173
66.2k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
8174
8175
            // Return a type ISLE can work with.
8176
66.2k
            match rm64 {
8177
66.2k
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
8178
66.2k
                    let gpr = reg.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
8179
66.2k
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
8180
                }
8181
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
8182
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
8183
                }
8184
            }
8185
66.2k
        }
8186
8.43k
        fn x64_movss_a_m_raw(&mut self, m32: &SyntheticAmode) -> AssemblerOutputs {
8187
            // Convert ISLE types to assembler types.
8188
8.43k
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
8189
8.43k
            let m32 = self.convert_amode_to_assembler_amode(m32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
8190
8191
            // Build the instruction.
8192
8.43k
            let inst = cranelift_assembler_x64::inst::movss_a_m::new(xmm1.clone(), m32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
8193
8.43k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
8194
8195
            // Return a type ISLE can work with.
8196
8.43k
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
8197
8.43k
            AssemblerOutputs::RetXmm { inst, xmm }
8198
8.43k
        }
8199
10.1k
        fn x64_movss_a_r_raw(&mut self, xmm1: Xmm, xmm2: Xmm) -> AssemblerOutputs {
8200
            // Convert ISLE types to assembler types.
8201
10.1k
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
8202
10.1k
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
8203
8204
            // Build the instruction.
8205
10.1k
            let inst = cranelift_assembler_x64::inst::movss_a_r::new(xmm1.clone(), xmm2.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
8206
10.1k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
8207
8208
            // Return a type ISLE can work with.
8209
10.1k
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
8210
10.1k
            AssemblerOutputs::RetXmm { inst, xmm }
8211
10.1k
        }
8212
8.73k
        fn x64_movss_c_m_raw(&mut self, m32: &SyntheticAmode, xmm1: Xmm) -> AssemblerOutputs {
8213
            // Convert ISLE types to assembler types.
8214
8.73k
            let m32 = self.convert_amode_to_assembler_amode(m32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
8215
8.73k
            let xmm1 = cranelift_assembler_x64::Xmm::new(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
8216
8217
            // Build the instruction.
8218
8.73k
            let inst = cranelift_assembler_x64::inst::movss_c_m::new(m32.clone(), xmm1.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
8219
8.73k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
8220
8221
            // Return a type ISLE can work with.
8222
8.73k
            AssemblerOutputs::SideEffect { inst }
8223
8.73k
        }
8224
14.4k
        fn x64_movsd_a_m_raw(&mut self, m64: &SyntheticAmode) -> AssemblerOutputs {
8225
            // Convert ISLE types to assembler types.
8226
14.4k
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
8227
14.4k
            let m64 = self.convert_amode_to_assembler_amode(m64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
8228
8229
            // Build the instruction.
8230
14.4k
            let inst = cranelift_assembler_x64::inst::movsd_a_m::new(xmm1.clone(), m64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
8231
14.4k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
8232
8233
            // Return a type ISLE can work with.
8234
14.4k
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
8235
14.4k
            AssemblerOutputs::RetXmm { inst, xmm }
8236
14.4k
        }
8237
3.45k
        fn x64_movsd_a_r_raw(&mut self, xmm1: Xmm, xmm2: Xmm) -> AssemblerOutputs {
8238
            // Convert ISLE types to assembler types.
8239
3.45k
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
8240
3.45k
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
8241
8242
            // Build the instruction.
8243
3.45k
            let inst = cranelift_assembler_x64::inst::movsd_a_r::new(xmm1.clone(), xmm2.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
8244
3.45k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
8245
8246
            // Return a type ISLE can work with.
8247
3.45k
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
8248
3.45k
            AssemblerOutputs::RetXmm { inst, xmm }
8249
3.45k
        }
8250
8.07k
        fn x64_movsd_c_m_raw(&mut self, m64: &SyntheticAmode, xmm1: Xmm) -> AssemblerOutputs {
8251
            // Convert ISLE types to assembler types.
8252
8.07k
            let m64 = self.convert_amode_to_assembler_amode(m64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
8253
8.07k
            let xmm1 = cranelift_assembler_x64::Xmm::new(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
8254
8255
            // Build the instruction.
8256
8.07k
            let inst = cranelift_assembler_x64::inst::movsd_c_m::new(m64.clone(), xmm1.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
8257
8.07k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
8258
8259
            // Return a type ISLE can work with.
8260
8.07k
            AssemblerOutputs::SideEffect { inst }
8261
8.07k
        }
8262
106k
        fn x64_vmovss_d_raw(&mut self, m32: &SyntheticAmode) -> AssemblerOutputs {
8263
            // Convert ISLE types to assembler types.
8264
106k
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
8265
106k
            let m32 = self.convert_amode_to_assembler_amode(m32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
8266
8267
            // Build the instruction.
8268
106k
            let inst = cranelift_assembler_x64::inst::vmovss_d::new(xmm1.clone(), m32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
8269
106k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
8270
8271
            // Return a type ISLE can work with.
8272
106k
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
8273
106k
            AssemblerOutputs::RetXmm { inst, xmm }
8274
106k
        }
8275
56.3k
        fn x64_vmovss_b_raw(&mut self, xmm2: Xmm, xmm3: Xmm) -> AssemblerOutputs {
8276
            // Convert ISLE types to assembler types.
8277
56.3k
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
8278
56.3k
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
8279
56.3k
            let xmm3 = cranelift_assembler_x64::Xmm::new(xmm3); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
8280
8281
            // Build the instruction.
8282
56.3k
            let inst = cranelift_assembler_x64::inst::vmovss_b::new(xmm1.clone(), xmm2.clone(), xmm3.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
8283
56.3k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
8284
8285
            // Return a type ISLE can work with.
8286
56.3k
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
8287
56.3k
            AssemblerOutputs::RetXmm { inst, xmm }
8288
56.3k
        }
8289
84.9k
        fn x64_vmovss_c_m_raw(&mut self, m32: &SyntheticAmode, xmm1: Xmm) -> AssemblerOutputs {
8290
            // Convert ISLE types to assembler types.
8291
84.9k
            let m32 = self.convert_amode_to_assembler_amode(m32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
8292
84.9k
            let xmm1 = cranelift_assembler_x64::Xmm::new(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
8293
8294
            // Build the instruction.
8295
84.9k
            let inst = cranelift_assembler_x64::inst::vmovss_c_m::new(m32.clone(), xmm1.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
8296
84.9k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
8297
8298
            // Return a type ISLE can work with.
8299
84.9k
            AssemblerOutputs::SideEffect { inst }
8300
84.9k
        }
8301
149k
        fn x64_vmovsd_d_raw(&mut self, m64: &SyntheticAmode) -> AssemblerOutputs {
8302
            // Convert ISLE types to assembler types.
8303
149k
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
8304
149k
            let m64 = self.convert_amode_to_assembler_amode(m64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
8305
8306
            // Build the instruction.
8307
149k
            let inst = cranelift_assembler_x64::inst::vmovsd_d::new(xmm1.clone(), m64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
8308
149k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
8309
8310
            // Return a type ISLE can work with.
8311
149k
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
8312
149k
            AssemblerOutputs::RetXmm { inst, xmm }
8313
149k
        }
8314
44.4k
        fn x64_vmovsd_b_raw(&mut self, xmm2: Xmm, xmm3: Xmm) -> AssemblerOutputs {
8315
            // Convert ISLE types to assembler types.
8316
44.4k
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
8317
44.4k
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
8318
44.4k
            let xmm3 = cranelift_assembler_x64::Xmm::new(xmm3); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
8319
8320
            // Build the instruction.
8321
44.4k
            let inst = cranelift_assembler_x64::inst::vmovsd_b::new(xmm1.clone(), xmm2.clone(), xmm3.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
8322
44.4k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
8323
8324
            // Return a type ISLE can work with.
8325
44.4k
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
8326
44.4k
            AssemblerOutputs::RetXmm { inst, xmm }
8327
44.4k
        }
8328
137k
        fn x64_vmovsd_c_m_raw(&mut self, m64: &SyntheticAmode, xmm1: Xmm) -> AssemblerOutputs {
8329
            // Convert ISLE types to assembler types.
8330
137k
            let m64 = self.convert_amode_to_assembler_amode(m64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
8331
137k
            let xmm1 = cranelift_assembler_x64::Xmm::new(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
8332
8333
            // Build the instruction.
8334
137k
            let inst = cranelift_assembler_x64::inst::vmovsd_c_m::new(m64.clone(), xmm1.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
8335
137k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
8336
8337
            // Return a type ISLE can work with.
8338
137k
            AssemblerOutputs::SideEffect { inst }
8339
137k
        }
8340
0
        fn x64_movapd_a_raw(&mut self, xmm_m128: &XmmMemAligned) -> AssemblerOutputs {
8341
            // Convert ISLE types to assembler types.
8342
0
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
8343
0
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
8344
8345
            // Build the instruction.
8346
0
            let inst = cranelift_assembler_x64::inst::movapd_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
8347
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
8348
8349
            // Return a type ISLE can work with.
8350
0
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
8351
0
            AssemblerOutputs::RetXmm { inst, xmm }
8352
0
        }
8353
0
        fn x64_movapd_b_raw(&mut self, xmm_m128: &XmmMemAligned, xmm1: Xmm) -> AssemblerOutputs {
8354
            // Convert ISLE types to assembler types.
8355
0
            let xmm_m128 = self.convert_xmm_mem_to_assembler_write_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
8356
0
            let xmm1 = cranelift_assembler_x64::Xmm::new(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
8357
8358
            // Build the instruction.
8359
0
            let inst = cranelift_assembler_x64::inst::movapd_b::new(xmm_m128.clone(), xmm1.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
8360
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
8361
8362
            // Return a type ISLE can work with.
8363
0
            match xmm_m128 {
8364
0
                cranelift_assembler_x64::XmmMem::Xmm(reg) =>  {
8365
0
                    let xmm = reg.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
8366
0
                    AssemblerOutputs::RetXmm { inst, xmm }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
8367
                }
8368
                cranelift_assembler_x64::XmmMem::Mem(_) =>  {
8369
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
8370
                }
8371
            }
8372
0
        }
8373
0
        fn x64_movaps_a_raw(&mut self, xmm_m128: &XmmMemAligned) -> AssemblerOutputs {
8374
            // Convert ISLE types to assembler types.
8375
0
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
8376
0
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
8377
8378
            // Build the instruction.
8379
0
            let inst = cranelift_assembler_x64::inst::movaps_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
8380
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
8381
8382
            // Return a type ISLE can work with.
8383
0
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
8384
0
            AssemblerOutputs::RetXmm { inst, xmm }
8385
0
        }
8386
0
        fn x64_movaps_b_raw(&mut self, xmm_m128: &XmmMemAligned, xmm1: Xmm) -> AssemblerOutputs {
8387
            // Convert ISLE types to assembler types.
8388
0
            let xmm_m128 = self.convert_xmm_mem_to_assembler_write_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
8389
0
            let xmm1 = cranelift_assembler_x64::Xmm::new(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
8390
8391
            // Build the instruction.
8392
0
            let inst = cranelift_assembler_x64::inst::movaps_b::new(xmm_m128.clone(), xmm1.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
8393
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
8394
8395
            // Return a type ISLE can work with.
8396
0
            match xmm_m128 {
8397
0
                cranelift_assembler_x64::XmmMem::Xmm(reg) =>  {
8398
0
                    let xmm = reg.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
8399
0
                    AssemblerOutputs::RetXmm { inst, xmm }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
8400
                }
8401
                cranelift_assembler_x64::XmmMem::Mem(_) =>  {
8402
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
8403
                }
8404
            }
8405
0
        }
8406
0
        fn x64_movdqa_a_raw(&mut self, xmm_m128: &XmmMemAligned) -> AssemblerOutputs {
8407
            // Convert ISLE types to assembler types.
8408
0
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
8409
0
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
8410
8411
            // Build the instruction.
8412
0
            let inst = cranelift_assembler_x64::inst::movdqa_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
8413
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
8414
8415
            // Return a type ISLE can work with.
8416
0
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
8417
0
            AssemblerOutputs::RetXmm { inst, xmm }
8418
0
        }
8419
0
        fn x64_movdqa_b_raw(&mut self, xmm_m128: &XmmMemAligned, xmm1: Xmm) -> AssemblerOutputs {
8420
            // Convert ISLE types to assembler types.
8421
0
            let xmm_m128 = self.convert_xmm_mem_to_assembler_write_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
8422
0
            let xmm1 = cranelift_assembler_x64::Xmm::new(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
8423
8424
            // Build the instruction.
8425
0
            let inst = cranelift_assembler_x64::inst::movdqa_b::new(xmm_m128.clone(), xmm1.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
8426
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
8427
8428
            // Return a type ISLE can work with.
8429
0
            match xmm_m128 {
8430
0
                cranelift_assembler_x64::XmmMem::Xmm(reg) =>  {
8431
0
                    let xmm = reg.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
8432
0
                    AssemblerOutputs::RetXmm { inst, xmm }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
8433
                }
8434
                cranelift_assembler_x64::XmmMem::Mem(_) =>  {
8435
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
8436
                }
8437
            }
8438
0
        }
8439
0
        fn x64_vmovapd_a_raw(&mut self, xmm_m128: &XmmMemAligned) -> AssemblerOutputs {
8440
            // Convert ISLE types to assembler types.
8441
0
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
8442
0
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
8443
8444
            // Build the instruction.
8445
0
            let inst = cranelift_assembler_x64::inst::vmovapd_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
8446
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
8447
8448
            // Return a type ISLE can work with.
8449
0
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
8450
0
            AssemblerOutputs::RetXmm { inst, xmm }
8451
0
        }
8452
0
        fn x64_vmovapd_b_raw(&mut self, xmm_m128: &XmmMemAligned, xmm1: Xmm) -> AssemblerOutputs {
8453
            // Convert ISLE types to assembler types.
8454
0
            let xmm_m128 = self.convert_xmm_mem_to_assembler_write_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
8455
0
            let xmm1 = cranelift_assembler_x64::Xmm::new(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
8456
8457
            // Build the instruction.
8458
0
            let inst = cranelift_assembler_x64::inst::vmovapd_b::new(xmm_m128.clone(), xmm1.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
8459
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
8460
8461
            // Return a type ISLE can work with.
8462
0
            match xmm_m128 {
8463
0
                cranelift_assembler_x64::XmmMem::Xmm(reg) =>  {
8464
0
                    let xmm = reg.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
8465
0
                    AssemblerOutputs::RetXmm { inst, xmm }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
8466
                }
8467
                cranelift_assembler_x64::XmmMem::Mem(_) =>  {
8468
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
8469
                }
8470
            }
8471
0
        }
8472
0
        fn x64_vmovaps_a_raw(&mut self, xmm_m128: &XmmMemAligned) -> AssemblerOutputs {
8473
            // Convert ISLE types to assembler types.
8474
0
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
8475
0
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
8476
8477
            // Build the instruction.
8478
0
            let inst = cranelift_assembler_x64::inst::vmovaps_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
8479
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
8480
8481
            // Return a type ISLE can work with.
8482
0
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
8483
0
            AssemblerOutputs::RetXmm { inst, xmm }
8484
0
        }
8485
0
        fn x64_vmovaps_b_raw(&mut self, xmm_m128: &XmmMemAligned, xmm1: Xmm) -> AssemblerOutputs {
8486
            // Convert ISLE types to assembler types.
8487
0
            let xmm_m128 = self.convert_xmm_mem_to_assembler_write_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
8488
0
            let xmm1 = cranelift_assembler_x64::Xmm::new(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
8489
8490
            // Build the instruction.
8491
0
            let inst = cranelift_assembler_x64::inst::vmovaps_b::new(xmm_m128.clone(), xmm1.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
8492
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
8493
8494
            // Return a type ISLE can work with.
8495
0
            match xmm_m128 {
8496
0
                cranelift_assembler_x64::XmmMem::Xmm(reg) =>  {
8497
0
                    let xmm = reg.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
8498
0
                    AssemblerOutputs::RetXmm { inst, xmm }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
8499
                }
8500
                cranelift_assembler_x64::XmmMem::Mem(_) =>  {
8501
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
8502
                }
8503
            }
8504
0
        }
8505
0
        fn x64_vmovdqa_a_raw(&mut self, xmm_m128: &XmmMemAligned) -> AssemblerOutputs {
8506
            // Convert ISLE types to assembler types.
8507
0
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
8508
0
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
8509
8510
            // Build the instruction.
8511
0
            let inst = cranelift_assembler_x64::inst::vmovdqa_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
8512
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
8513
8514
            // Return a type ISLE can work with.
8515
0
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
8516
0
            AssemblerOutputs::RetXmm { inst, xmm }
8517
0
        }
8518
0
        fn x64_vmovdqa_b_raw(&mut self, xmm_m128: &XmmMemAligned, xmm1: Xmm) -> AssemblerOutputs {
8519
            // Convert ISLE types to assembler types.
8520
0
            let xmm_m128 = self.convert_xmm_mem_to_assembler_write_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
8521
0
            let xmm1 = cranelift_assembler_x64::Xmm::new(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
8522
8523
            // Build the instruction.
8524
0
            let inst = cranelift_assembler_x64::inst::vmovdqa_b::new(xmm_m128.clone(), xmm1.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
8525
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
8526
8527
            // Return a type ISLE can work with.
8528
0
            match xmm_m128 {
8529
0
                cranelift_assembler_x64::XmmMem::Xmm(reg) =>  {
8530
0
                    let xmm = reg.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
8531
0
                    AssemblerOutputs::RetXmm { inst, xmm }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
8532
                }
8533
                cranelift_assembler_x64::XmmMem::Mem(_) =>  {
8534
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
8535
                }
8536
            }
8537
0
        }
8538
4.17k
        fn x64_movupd_a_raw(&mut self, xmm_m128: &XmmMem) -> AssemblerOutputs {
8539
            // Convert ISLE types to assembler types.
8540
4.17k
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
8541
4.17k
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
8542
8543
            // Build the instruction.
8544
4.17k
            let inst = cranelift_assembler_x64::inst::movupd_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
8545
4.17k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
8546
8547
            // Return a type ISLE can work with.
8548
4.17k
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
8549
4.17k
            AssemblerOutputs::RetXmm { inst, xmm }
8550
4.17k
        }
8551
1.31k
        fn x64_movupd_b_raw(&mut self, xmm_m128: &XmmMem, xmm1: Xmm) -> AssemblerOutputs {
8552
            // Convert ISLE types to assembler types.
8553
1.31k
            let xmm_m128 = self.convert_xmm_mem_to_assembler_write_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
8554
1.31k
            let xmm1 = cranelift_assembler_x64::Xmm::new(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
8555
8556
            // Build the instruction.
8557
1.31k
            let inst = cranelift_assembler_x64::inst::movupd_b::new(xmm_m128.clone(), xmm1.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
8558
1.31k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
8559
8560
            // Return a type ISLE can work with.
8561
1.31k
            match xmm_m128 {
8562
0
                cranelift_assembler_x64::XmmMem::Xmm(reg) =>  {
8563
0
                    let xmm = reg.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
8564
0
                    AssemblerOutputs::RetXmm { inst, xmm }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
8565
                }
8566
                cranelift_assembler_x64::XmmMem::Mem(_) =>  {
8567
1.31k
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
8568
                }
8569
            }
8570
1.31k
        }
8571
11.8k
        fn x64_movups_a_raw(&mut self, xmm_m128: &XmmMem) -> AssemblerOutputs {
8572
            // Convert ISLE types to assembler types.
8573
11.8k
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
8574
11.8k
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
8575
8576
            // Build the instruction.
8577
11.8k
            let inst = cranelift_assembler_x64::inst::movups_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
8578
11.8k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
8579
8580
            // Return a type ISLE can work with.
8581
11.8k
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
8582
11.8k
            AssemblerOutputs::RetXmm { inst, xmm }
8583
11.8k
        }
8584
1.26k
        fn x64_movups_b_raw(&mut self, xmm_m128: &XmmMem, xmm1: Xmm) -> AssemblerOutputs {
8585
            // Convert ISLE types to assembler types.
8586
1.26k
            let xmm_m128 = self.convert_xmm_mem_to_assembler_write_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
8587
1.26k
            let xmm1 = cranelift_assembler_x64::Xmm::new(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
8588
8589
            // Build the instruction.
8590
1.26k
            let inst = cranelift_assembler_x64::inst::movups_b::new(xmm_m128.clone(), xmm1.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
8591
1.26k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
8592
8593
            // Return a type ISLE can work with.
8594
1.26k
            match xmm_m128 {
8595
0
                cranelift_assembler_x64::XmmMem::Xmm(reg) =>  {
8596
0
                    let xmm = reg.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
8597
0
                    AssemblerOutputs::RetXmm { inst, xmm }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
8598
                }
8599
                cranelift_assembler_x64::XmmMem::Mem(_) =>  {
8600
1.26k
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
8601
                }
8602
            }
8603
1.26k
        }
8604
19.6k
        fn x64_movdqu_a_raw(&mut self, xmm_m128: &XmmMem) -> AssemblerOutputs {
8605
            // Convert ISLE types to assembler types.
8606
19.6k
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
8607
19.6k
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
8608
8609
            // Build the instruction.
8610
19.6k
            let inst = cranelift_assembler_x64::inst::movdqu_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
8611
19.6k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
8612
8613
            // Return a type ISLE can work with.
8614
19.6k
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
8615
19.6k
            AssemblerOutputs::RetXmm { inst, xmm }
8616
19.6k
        }
8617
17.3k
        fn x64_movdqu_b_raw(&mut self, xmm_m128: &XmmMem, xmm1: Xmm) -> AssemblerOutputs {
8618
            // Convert ISLE types to assembler types.
8619
17.3k
            let xmm_m128 = self.convert_xmm_mem_to_assembler_write_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
8620
17.3k
            let xmm1 = cranelift_assembler_x64::Xmm::new(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
8621
8622
            // Build the instruction.
8623
17.3k
            let inst = cranelift_assembler_x64::inst::movdqu_b::new(xmm_m128.clone(), xmm1.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
8624
17.3k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
8625
8626
            // Return a type ISLE can work with.
8627
17.3k
            match xmm_m128 {
8628
0
                cranelift_assembler_x64::XmmMem::Xmm(reg) =>  {
8629
0
                    let xmm = reg.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
8630
0
                    AssemblerOutputs::RetXmm { inst, xmm }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
8631
                }
8632
                cranelift_assembler_x64::XmmMem::Mem(_) =>  {
8633
17.3k
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
8634
                }
8635
            }
8636
17.3k
        }
8637
5.31k
        fn x64_vmovupd_a_raw(&mut self, xmm_m128: &XmmMem) -> AssemblerOutputs {
8638
            // Convert ISLE types to assembler types.
8639
5.31k
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
8640
5.31k
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
8641
8642
            // Build the instruction.
8643
5.31k
            let inst = cranelift_assembler_x64::inst::vmovupd_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
8644
5.31k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
8645
8646
            // Return a type ISLE can work with.
8647
5.31k
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
8648
5.31k
            AssemblerOutputs::RetXmm { inst, xmm }
8649
5.31k
        }
8650
2.70k
        fn x64_vmovupd_b_raw(&mut self, xmm_m128: &XmmMem, xmm1: Xmm) -> AssemblerOutputs {
8651
            // Convert ISLE types to assembler types.
8652
2.70k
            let xmm_m128 = self.convert_xmm_mem_to_assembler_write_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
8653
2.70k
            let xmm1 = cranelift_assembler_x64::Xmm::new(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
8654
8655
            // Build the instruction.
8656
2.70k
            let inst = cranelift_assembler_x64::inst::vmovupd_b::new(xmm_m128.clone(), xmm1.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
8657
2.70k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
8658
8659
            // Return a type ISLE can work with.
8660
2.70k
            match xmm_m128 {
8661
0
                cranelift_assembler_x64::XmmMem::Xmm(reg) =>  {
8662
0
                    let xmm = reg.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
8663
0
                    AssemblerOutputs::RetXmm { inst, xmm }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
8664
                }
8665
                cranelift_assembler_x64::XmmMem::Mem(_) =>  {
8666
2.70k
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
8667
                }
8668
            }
8669
2.70k
        }
8670
30.3k
        fn x64_vmovups_a_raw(&mut self, xmm_m128: &XmmMem) -> AssemblerOutputs {
8671
            // Convert ISLE types to assembler types.
8672
30.3k
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
8673
30.3k
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
8674
8675
            // Build the instruction.
8676
30.3k
            let inst = cranelift_assembler_x64::inst::vmovups_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
8677
30.3k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
8678
8679
            // Return a type ISLE can work with.
8680
30.3k
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
8681
30.3k
            AssemblerOutputs::RetXmm { inst, xmm }
8682
30.3k
        }
8683
13.1k
        fn x64_vmovups_b_raw(&mut self, xmm_m128: &XmmMem, xmm1: Xmm) -> AssemblerOutputs {
8684
            // Convert ISLE types to assembler types.
8685
13.1k
            let xmm_m128 = self.convert_xmm_mem_to_assembler_write_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
8686
13.1k
            let xmm1 = cranelift_assembler_x64::Xmm::new(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
8687
8688
            // Build the instruction.
8689
13.1k
            let inst = cranelift_assembler_x64::inst::vmovups_b::new(xmm_m128.clone(), xmm1.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
8690
13.1k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
8691
8692
            // Return a type ISLE can work with.
8693
13.1k
            match xmm_m128 {
8694
0
                cranelift_assembler_x64::XmmMem::Xmm(reg) =>  {
8695
0
                    let xmm = reg.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
8696
0
                    AssemblerOutputs::RetXmm { inst, xmm }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
8697
                }
8698
                cranelift_assembler_x64::XmmMem::Mem(_) =>  {
8699
13.1k
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
8700
                }
8701
            }
8702
13.1k
        }
8703
265k
        fn x64_vmovdqu_a_raw(&mut self, xmm_m128: &XmmMem) -> AssemblerOutputs {
8704
            // Convert ISLE types to assembler types.
8705
265k
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
8706
265k
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
8707
8708
            // Build the instruction.
8709
265k
            let inst = cranelift_assembler_x64::inst::vmovdqu_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
8710
265k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
8711
8712
            // Return a type ISLE can work with.
8713
265k
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
8714
265k
            AssemblerOutputs::RetXmm { inst, xmm }
8715
265k
        }
8716
192k
        fn x64_vmovdqu_b_raw(&mut self, xmm_m128: &XmmMem, xmm1: Xmm) -> AssemblerOutputs {
8717
            // Convert ISLE types to assembler types.
8718
192k
            let xmm_m128 = self.convert_xmm_mem_to_assembler_write_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
8719
192k
            let xmm1 = cranelift_assembler_x64::Xmm::new(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
8720
8721
            // Build the instruction.
8722
192k
            let inst = cranelift_assembler_x64::inst::vmovdqu_b::new(xmm_m128.clone(), xmm1.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
8723
192k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
8724
8725
            // Return a type ISLE can work with.
8726
192k
            match xmm_m128 {
8727
0
                cranelift_assembler_x64::XmmMem::Xmm(reg) =>  {
8728
0
                    let xmm = reg.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
8729
0
                    AssemblerOutputs::RetXmm { inst, xmm }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
8730
                }
8731
                cranelift_assembler_x64::XmmMem::Mem(_) =>  {
8732
192k
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
8733
                }
8734
            }
8735
192k
        }
8736
4
        fn x64_pmovsxbw_a_raw(&mut self, xmm_m64: &XmmMem) -> AssemblerOutputs {
8737
            // Convert ISLE types to assembler types.
8738
4
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
8739
4
            let xmm_m64 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
8740
8741
            // Build the instruction.
8742
4
            let inst = cranelift_assembler_x64::inst::pmovsxbw_a::new(xmm1.clone(), xmm_m64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
8743
4
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
8744
8745
            // Return a type ISLE can work with.
8746
4
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
8747
4
            AssemblerOutputs::RetXmm { inst, xmm }
8748
4
        }
8749
0
        fn x64_pmovsxbd_a_raw(&mut self, xmm_m32: &XmmMem) -> AssemblerOutputs {
8750
            // Convert ISLE types to assembler types.
8751
0
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
8752
0
            let xmm_m32 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
8753
8754
            // Build the instruction.
8755
0
            let inst = cranelift_assembler_x64::inst::pmovsxbd_a::new(xmm1.clone(), xmm_m32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
8756
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
8757
8758
            // Return a type ISLE can work with.
8759
0
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
8760
0
            AssemblerOutputs::RetXmm { inst, xmm }
8761
0
        }
8762
0
        fn x64_pmovsxbq_a_raw(&mut self, xmm_m16: &XmmMem) -> AssemblerOutputs {
8763
            // Convert ISLE types to assembler types.
8764
0
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
8765
0
            let xmm_m16 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
8766
8767
            // Build the instruction.
8768
0
            let inst = cranelift_assembler_x64::inst::pmovsxbq_a::new(xmm1.clone(), xmm_m16.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
8769
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
8770
8771
            // Return a type ISLE can work with.
8772
0
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
8773
0
            AssemblerOutputs::RetXmm { inst, xmm }
8774
0
        }
8775
1
        fn x64_pmovsxwd_a_raw(&mut self, xmm_m64: &XmmMem) -> AssemblerOutputs {
8776
            // Convert ISLE types to assembler types.
8777
1
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
8778
1
            let xmm_m64 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
8779
8780
            // Build the instruction.
8781
1
            let inst = cranelift_assembler_x64::inst::pmovsxwd_a::new(xmm1.clone(), xmm_m64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
8782
1
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
8783
8784
            // Return a type ISLE can work with.
8785
1
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
8786
1
            AssemblerOutputs::RetXmm { inst, xmm }
8787
1
        }
8788
0
        fn x64_pmovsxwq_a_raw(&mut self, xmm_m32: &XmmMem) -> AssemblerOutputs {
8789
            // Convert ISLE types to assembler types.
8790
0
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
8791
0
            let xmm_m32 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
8792
8793
            // Build the instruction.
8794
0
            let inst = cranelift_assembler_x64::inst::pmovsxwq_a::new(xmm1.clone(), xmm_m32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
8795
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
8796
8797
            // Return a type ISLE can work with.
8798
0
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
8799
0
            AssemblerOutputs::RetXmm { inst, xmm }
8800
0
        }
8801
10
        fn x64_pmovsxdq_a_raw(&mut self, xmm_m64: &XmmMem) -> AssemblerOutputs {
8802
            // Convert ISLE types to assembler types.
8803
10
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
8804
10
            let xmm_m64 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
8805
8806
            // Build the instruction.
8807
10
            let inst = cranelift_assembler_x64::inst::pmovsxdq_a::new(xmm1.clone(), xmm_m64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
8808
10
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
8809
8810
            // Return a type ISLE can work with.
8811
10
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
8812
10
            AssemblerOutputs::RetXmm { inst, xmm }
8813
10
        }
8814
814
        fn x64_vpmovsxbw_a_raw(&mut self, xmm_m64: &XmmMem) -> AssemblerOutputs {
8815
            // Convert ISLE types to assembler types.
8816
814
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
8817
814
            let xmm_m64 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
8818
8819
            // Build the instruction.
8820
814
            let inst = cranelift_assembler_x64::inst::vpmovsxbw_a::new(xmm1.clone(), xmm_m64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
8821
814
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
8822
8823
            // Return a type ISLE can work with.
8824
814
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
8825
814
            AssemblerOutputs::RetXmm { inst, xmm }
8826
814
        }
8827
0
        fn x64_vpmovsxbd_a_raw(&mut self, xmm_m32: &XmmMem) -> AssemblerOutputs {
8828
            // Convert ISLE types to assembler types.
8829
0
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
8830
0
            let xmm_m32 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
8831
8832
            // Build the instruction.
8833
0
            let inst = cranelift_assembler_x64::inst::vpmovsxbd_a::new(xmm1.clone(), xmm_m32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
8834
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
8835
8836
            // Return a type ISLE can work with.
8837
0
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
8838
0
            AssemblerOutputs::RetXmm { inst, xmm }
8839
0
        }
8840
0
        fn x64_vpmovsxbq_a_raw(&mut self, xmm_m16: &XmmMem) -> AssemblerOutputs {
8841
            // Convert ISLE types to assembler types.
8842
0
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
8843
0
            let xmm_m16 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
8844
8845
            // Build the instruction.
8846
0
            let inst = cranelift_assembler_x64::inst::vpmovsxbq_a::new(xmm1.clone(), xmm_m16.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
8847
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
8848
8849
            // Return a type ISLE can work with.
8850
0
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
8851
0
            AssemblerOutputs::RetXmm { inst, xmm }
8852
0
        }
8853
784
        fn x64_vpmovsxwd_a_raw(&mut self, xmm_m64: &XmmMem) -> AssemblerOutputs {
8854
            // Convert ISLE types to assembler types.
8855
784
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
8856
784
            let xmm_m64 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
8857
8858
            // Build the instruction.
8859
784
            let inst = cranelift_assembler_x64::inst::vpmovsxwd_a::new(xmm1.clone(), xmm_m64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
8860
784
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
8861
8862
            // Return a type ISLE can work with.
8863
784
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
8864
784
            AssemblerOutputs::RetXmm { inst, xmm }
8865
784
        }
8866
0
        fn x64_vpmovsxwq_a_raw(&mut self, xmm_m32: &XmmMem) -> AssemblerOutputs {
8867
            // Convert ISLE types to assembler types.
8868
0
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
8869
0
            let xmm_m32 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
8870
8871
            // Build the instruction.
8872
0
            let inst = cranelift_assembler_x64::inst::vpmovsxwq_a::new(xmm1.clone(), xmm_m32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
8873
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
8874
8875
            // Return a type ISLE can work with.
8876
0
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
8877
0
            AssemblerOutputs::RetXmm { inst, xmm }
8878
0
        }
8879
452
        fn x64_vpmovsxdq_a_raw(&mut self, xmm_m64: &XmmMem) -> AssemblerOutputs {
8880
            // Convert ISLE types to assembler types.
8881
452
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
8882
452
            let xmm_m64 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
8883
8884
            // Build the instruction.
8885
452
            let inst = cranelift_assembler_x64::inst::vpmovsxdq_a::new(xmm1.clone(), xmm_m64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
8886
452
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
8887
8888
            // Return a type ISLE can work with.
8889
452
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
8890
452
            AssemblerOutputs::RetXmm { inst, xmm }
8891
452
        }
8892
6
        fn x64_pmovzxbw_a_raw(&mut self, xmm_m64: &XmmMem) -> AssemblerOutputs {
8893
            // Convert ISLE types to assembler types.
8894
6
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
8895
6
            let xmm_m64 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
8896
8897
            // Build the instruction.
8898
6
            let inst = cranelift_assembler_x64::inst::pmovzxbw_a::new(xmm1.clone(), xmm_m64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
8899
6
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
8900
8901
            // Return a type ISLE can work with.
8902
6
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
8903
6
            AssemblerOutputs::RetXmm { inst, xmm }
8904
6
        }
8905
0
        fn x64_pmovzxbd_a_raw(&mut self, xmm_m32: &XmmMem) -> AssemblerOutputs {
8906
            // Convert ISLE types to assembler types.
8907
0
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
8908
0
            let xmm_m32 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
8909
8910
            // Build the instruction.
8911
0
            let inst = cranelift_assembler_x64::inst::pmovzxbd_a::new(xmm1.clone(), xmm_m32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
8912
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
8913
8914
            // Return a type ISLE can work with.
8915
0
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
8916
0
            AssemblerOutputs::RetXmm { inst, xmm }
8917
0
        }
8918
0
        fn x64_pmovzxbq_a_raw(&mut self, xmm_m16: &XmmMem) -> AssemblerOutputs {
8919
            // Convert ISLE types to assembler types.
8920
0
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
8921
0
            let xmm_m16 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
8922
8923
            // Build the instruction.
8924
0
            let inst = cranelift_assembler_x64::inst::pmovzxbq_a::new(xmm1.clone(), xmm_m16.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
8925
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
8926
8927
            // Return a type ISLE can work with.
8928
0
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
8929
0
            AssemblerOutputs::RetXmm { inst, xmm }
8930
0
        }
8931
117
        fn x64_pmovzxwd_a_raw(&mut self, xmm_m64: &XmmMem) -> AssemblerOutputs {
8932
            // Convert ISLE types to assembler types.
8933
117
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
8934
117
            let xmm_m64 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
8935
8936
            // Build the instruction.
8937
117
            let inst = cranelift_assembler_x64::inst::pmovzxwd_a::new(xmm1.clone(), xmm_m64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
8938
117
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
8939
8940
            // Return a type ISLE can work with.
8941
117
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
8942
117
            AssemblerOutputs::RetXmm { inst, xmm }
8943
117
        }
8944
0
        fn x64_pmovzxwq_a_raw(&mut self, xmm_m32: &XmmMem) -> AssemblerOutputs {
8945
            // Convert ISLE types to assembler types.
8946
0
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
8947
0
            let xmm_m32 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
8948
8949
            // Build the instruction.
8950
0
            let inst = cranelift_assembler_x64::inst::pmovzxwq_a::new(xmm1.clone(), xmm_m32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
8951
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
8952
8953
            // Return a type ISLE can work with.
8954
0
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
8955
0
            AssemblerOutputs::RetXmm { inst, xmm }
8956
0
        }
8957
4
        fn x64_pmovzxdq_a_raw(&mut self, xmm_m64: &XmmMem) -> AssemblerOutputs {
8958
            // Convert ISLE types to assembler types.
8959
4
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
8960
4
            let xmm_m64 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
8961
8962
            // Build the instruction.
8963
4
            let inst = cranelift_assembler_x64::inst::pmovzxdq_a::new(xmm1.clone(), xmm_m64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
8964
4
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
8965
8966
            // Return a type ISLE can work with.
8967
4
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
8968
4
            AssemblerOutputs::RetXmm { inst, xmm }
8969
4
        }
8970
1.09k
        fn x64_vpmovzxbw_a_raw(&mut self, xmm_m64: &XmmMem) -> AssemblerOutputs {
8971
            // Convert ISLE types to assembler types.
8972
1.09k
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
8973
1.09k
            let xmm_m64 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
8974
8975
            // Build the instruction.
8976
1.09k
            let inst = cranelift_assembler_x64::inst::vpmovzxbw_a::new(xmm1.clone(), xmm_m64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
8977
1.09k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
8978
8979
            // Return a type ISLE can work with.
8980
1.09k
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
8981
1.09k
            AssemblerOutputs::RetXmm { inst, xmm }
8982
1.09k
        }
8983
0
        fn x64_vpmovzxbd_a_raw(&mut self, xmm_m32: &XmmMem) -> AssemblerOutputs {
8984
            // Convert ISLE types to assembler types.
8985
0
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
8986
0
            let xmm_m32 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
8987
8988
            // Build the instruction.
8989
0
            let inst = cranelift_assembler_x64::inst::vpmovzxbd_a::new(xmm1.clone(), xmm_m32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
8990
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
8991
8992
            // Return a type ISLE can work with.
8993
0
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
8994
0
            AssemblerOutputs::RetXmm { inst, xmm }
8995
0
        }
8996
0
        fn x64_vpmovzxbq_a_raw(&mut self, xmm_m16: &XmmMem) -> AssemblerOutputs {
8997
            // Convert ISLE types to assembler types.
8998
0
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
8999
0
            let xmm_m16 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
9000
9001
            // Build the instruction.
9002
0
            let inst = cranelift_assembler_x64::inst::vpmovzxbq_a::new(xmm1.clone(), xmm_m16.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
9003
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
9004
9005
            // Return a type ISLE can work with.
9006
0
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
9007
0
            AssemblerOutputs::RetXmm { inst, xmm }
9008
0
        }
9009
1.68k
        fn x64_vpmovzxwd_a_raw(&mut self, xmm_m64: &XmmMem) -> AssemblerOutputs {
9010
            // Convert ISLE types to assembler types.
9011
1.68k
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
9012
1.68k
            let xmm_m64 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
9013
9014
            // Build the instruction.
9015
1.68k
            let inst = cranelift_assembler_x64::inst::vpmovzxwd_a::new(xmm1.clone(), xmm_m64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
9016
1.68k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
9017
9018
            // Return a type ISLE can work with.
9019
1.68k
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
9020
1.68k
            AssemblerOutputs::RetXmm { inst, xmm }
9021
1.68k
        }
9022
0
        fn x64_vpmovzxwq_a_raw(&mut self, xmm_m32: &XmmMem) -> AssemblerOutputs {
9023
            // Convert ISLE types to assembler types.
9024
0
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
9025
0
            let xmm_m32 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
9026
9027
            // Build the instruction.
9028
0
            let inst = cranelift_assembler_x64::inst::vpmovzxwq_a::new(xmm1.clone(), xmm_m32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
9029
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
9030
9031
            // Return a type ISLE can work with.
9032
0
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
9033
0
            AssemblerOutputs::RetXmm { inst, xmm }
9034
0
        }
9035
227
        fn x64_vpmovzxdq_a_raw(&mut self, xmm_m64: &XmmMem) -> AssemblerOutputs {
9036
            // Convert ISLE types to assembler types.
9037
227
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
9038
227
            let xmm_m64 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
9039
9040
            // Build the instruction.
9041
227
            let inst = cranelift_assembler_x64::inst::vpmovzxdq_a::new(xmm1.clone(), xmm_m64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
9042
227
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
9043
9044
            // Return a type ISLE can work with.
9045
227
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
9046
227
            AssemblerOutputs::RetXmm { inst, xmm }
9047
227
        }
9048
4.86k
        fn x64_mulb_m_raw(&mut self, ax: Gpr, rm8: &GprMem) -> AssemblerOutputs {
9049
            // Convert ISLE types to assembler types.
9050
4.86k
            let ax = self.convert_gpr_to_assembler_fixed_read_write_gpr(ax); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
9051
4.86k
            let rm8 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
9052
9053
            // Build the instruction.
9054
4.86k
            let inst = cranelift_assembler_x64::inst::mulb_m::new(ax.clone(), rm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
9055
4.86k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
9056
9057
            // Return a type ISLE can work with.
9058
4.86k
            let gpr = ax.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
9059
4.86k
            AssemblerOutputs::RetGpr { inst, gpr }
9060
4.86k
        }
9061
573
        fn x64_mulw_m_raw(&mut self, ax: Gpr, rm16: &GprMem) -> AssemblerOutputs {
9062
            // Convert ISLE types to assembler types.
9063
573
            let ax = self.convert_gpr_to_assembler_fixed_read_write_gpr(ax); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
9064
573
            let dx = cranelift_assembler_x64::Fixed(self.temp_writable_gpr()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
9065
573
            let rm16 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
9066
9067
            // Build the instruction.
9068
573
            let inst = cranelift_assembler_x64::inst::mulw_m::new(ax.clone(), dx.clone(), rm16.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
9069
573
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
9070
9071
            // Return a type ISLE can work with.
9072
573
            let one = ax.as_ref().write.to_reg().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:194
9073
573
            let two = dx.as_ref().to_reg().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:195
9074
573
            let regs = ValueRegs::two(one, two); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:196
9075
573
            AssemblerOutputs::RetValueRegs { inst, regs }
9076
573
        }
9077
424
        fn x64_mull_m_raw(&mut self, eax: Gpr, rm32: &GprMem) -> AssemblerOutputs {
9078
            // Convert ISLE types to assembler types.
9079
424
            let eax = self.convert_gpr_to_assembler_fixed_read_write_gpr(eax); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
9080
424
            let edx = cranelift_assembler_x64::Fixed(self.temp_writable_gpr()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
9081
424
            let rm32 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
9082
9083
            // Build the instruction.
9084
424
            let inst = cranelift_assembler_x64::inst::mull_m::new(eax.clone(), edx.clone(), rm32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
9085
424
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
9086
9087
            // Return a type ISLE can work with.
9088
424
            let one = eax.as_ref().write.to_reg().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:194
9089
424
            let two = edx.as_ref().to_reg().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:195
9090
424
            let regs = ValueRegs::two(one, two); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:196
9091
424
            AssemblerOutputs::RetValueRegs { inst, regs }
9092
424
        }
9093
146
        fn x64_mulq_m_raw(&mut self, rax: Gpr, rm64: &GprMem) -> AssemblerOutputs {
9094
            // Convert ISLE types to assembler types.
9095
146
            let rax = self.convert_gpr_to_assembler_fixed_read_write_gpr(rax); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
9096
146
            let rdx = cranelift_assembler_x64::Fixed(self.temp_writable_gpr()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
9097
146
            let rm64 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
9098
9099
            // Build the instruction.
9100
146
            let inst = cranelift_assembler_x64::inst::mulq_m::new(rax.clone(), rdx.clone(), rm64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
9101
146
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
9102
9103
            // Return a type ISLE can work with.
9104
146
            let one = rax.as_ref().write.to_reg().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:194
9105
146
            let two = rdx.as_ref().to_reg().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:195
9106
146
            let regs = ValueRegs::two(one, two); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:196
9107
146
            AssemblerOutputs::RetValueRegs { inst, regs }
9108
146
        }
9109
73
        fn x64_imulb_m_raw(&mut self, ax: Gpr, rm8: &GprMem) -> AssemblerOutputs {
9110
            // Convert ISLE types to assembler types.
9111
73
            let ax = self.convert_gpr_to_assembler_fixed_read_write_gpr(ax); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
9112
73
            let rm8 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
9113
9114
            // Build the instruction.
9115
73
            let inst = cranelift_assembler_x64::inst::imulb_m::new(ax.clone(), rm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
9116
73
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
9117
9118
            // Return a type ISLE can work with.
9119
73
            let gpr = ax.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
9120
73
            AssemblerOutputs::RetGpr { inst, gpr }
9121
73
        }
9122
345
        fn x64_imulw_m_raw(&mut self, ax: Gpr, rm16: &GprMem) -> AssemblerOutputs {
9123
            // Convert ISLE types to assembler types.
9124
345
            let ax = self.convert_gpr_to_assembler_fixed_read_write_gpr(ax); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
9125
345
            let dx = cranelift_assembler_x64::Fixed(self.temp_writable_gpr()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
9126
345
            let rm16 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
9127
9128
            // Build the instruction.
9129
345
            let inst = cranelift_assembler_x64::inst::imulw_m::new(ax.clone(), dx.clone(), rm16.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
9130
345
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
9131
9132
            // Return a type ISLE can work with.
9133
345
            let one = ax.as_ref().write.to_reg().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:194
9134
345
            let two = dx.as_ref().to_reg().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:195
9135
345
            let regs = ValueRegs::two(one, two); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:196
9136
345
            AssemblerOutputs::RetValueRegs { inst, regs }
9137
345
        }
9138
2.34k
        fn x64_imull_m_raw(&mut self, eax: Gpr, rm32: &GprMem) -> AssemblerOutputs {
9139
            // Convert ISLE types to assembler types.
9140
2.34k
            let eax = self.convert_gpr_to_assembler_fixed_read_write_gpr(eax); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
9141
2.34k
            let edx = cranelift_assembler_x64::Fixed(self.temp_writable_gpr()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
9142
2.34k
            let rm32 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
9143
9144
            // Build the instruction.
9145
2.34k
            let inst = cranelift_assembler_x64::inst::imull_m::new(eax.clone(), edx.clone(), rm32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
9146
2.34k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
9147
9148
            // Return a type ISLE can work with.
9149
2.34k
            let one = eax.as_ref().write.to_reg().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:194
9150
2.34k
            let two = edx.as_ref().to_reg().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:195
9151
2.34k
            let regs = ValueRegs::two(one, two); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:196
9152
2.34k
            AssemblerOutputs::RetValueRegs { inst, regs }
9153
2.34k
        }
9154
7.41k
        fn x64_imulq_m_raw(&mut self, rax: Gpr, rm64: &GprMem) -> AssemblerOutputs {
9155
            // Convert ISLE types to assembler types.
9156
7.41k
            let rax = self.convert_gpr_to_assembler_fixed_read_write_gpr(rax); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
9157
7.41k
            let rdx = cranelift_assembler_x64::Fixed(self.temp_writable_gpr()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
9158
7.41k
            let rm64 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
9159
9160
            // Build the instruction.
9161
7.41k
            let inst = cranelift_assembler_x64::inst::imulq_m::new(rax.clone(), rdx.clone(), rm64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
9162
7.41k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
9163
9164
            // Return a type ISLE can work with.
9165
7.41k
            let one = rax.as_ref().write.to_reg().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:194
9166
7.41k
            let two = rdx.as_ref().to_reg().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:195
9167
7.41k
            let regs = ValueRegs::two(one, two); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:196
9168
7.41k
            AssemblerOutputs::RetValueRegs { inst, regs }
9169
7.41k
        }
9170
1.30k
        fn x64_imulw_rm_raw(&mut self, r16: Gpr, rm16: &GprMem) -> AssemblerOutputs {
9171
            // Convert ISLE types to assembler types.
9172
1.30k
            let r16 = self.convert_gpr_to_assembler_read_write_gpr(r16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
9173
1.30k
            let rm16 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
9174
9175
            // Build the instruction.
9176
1.30k
            let inst = cranelift_assembler_x64::inst::imulw_rm::new(r16.clone(), rm16.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
9177
1.30k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
9178
9179
            // Return a type ISLE can work with.
9180
1.30k
            let gpr = r16.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
9181
1.30k
            AssemblerOutputs::RetGpr { inst, gpr }
9182
1.30k
        }
9183
5.63k
        fn x64_imull_rm_raw(&mut self, r32: Gpr, rm32: &GprMem) -> AssemblerOutputs {
9184
            // Convert ISLE types to assembler types.
9185
5.63k
            let r32 = self.convert_gpr_to_assembler_read_write_gpr(r32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
9186
5.63k
            let rm32 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
9187
9188
            // Build the instruction.
9189
5.63k
            let inst = cranelift_assembler_x64::inst::imull_rm::new(r32.clone(), rm32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
9190
5.63k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
9191
9192
            // Return a type ISLE can work with.
9193
5.63k
            let gpr = r32.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
9194
5.63k
            AssemblerOutputs::RetGpr { inst, gpr }
9195
5.63k
        }
9196
19.0k
        fn x64_imulq_rm_raw(&mut self, r64: Gpr, rm64: &GprMem) -> AssemblerOutputs {
9197
            // Convert ISLE types to assembler types.
9198
19.0k
            let r64 = self.convert_gpr_to_assembler_read_write_gpr(r64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
9199
19.0k
            let rm64 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
9200
9201
            // Build the instruction.
9202
19.0k
            let inst = cranelift_assembler_x64::inst::imulq_rm::new(r64.clone(), rm64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
9203
19.0k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
9204
9205
            // Return a type ISLE can work with.
9206
19.0k
            let gpr = r64.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
9207
19.0k
            AssemblerOutputs::RetGpr { inst, gpr }
9208
19.0k
        }
9209
6
        fn x64_imulw_rmi_sxb_raw(&mut self, rm16: &GprMem, imm8: i8) -> AssemblerOutputs {
9210
            // Convert ISLE types to assembler types.
9211
6
            let r16 = cranelift_assembler_x64::Gpr::new(self.temp_writable_gpr()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
9212
6
            let rm16 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
9213
6
            let imm8 = cranelift_assembler_x64::Simm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
9214
9215
            // Build the instruction.
9216
6
            let inst = cranelift_assembler_x64::inst::imulw_rmi_sxb::new(r16.clone(), rm16.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
9217
6
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
9218
9219
            // Return a type ISLE can work with.
9220
6
            let gpr = r16.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
9221
6
            AssemblerOutputs::RetGpr { inst, gpr }
9222
6
        }
9223
6.95k
        fn x64_imull_rmi_sxb_raw(&mut self, rm32: &GprMem, imm8: i8) -> AssemblerOutputs {
9224
            // Convert ISLE types to assembler types.
9225
6.95k
            let r32 = cranelift_assembler_x64::Gpr::new(self.temp_writable_gpr()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
9226
6.95k
            let rm32 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
9227
6.95k
            let imm8 = cranelift_assembler_x64::Simm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
9228
9229
            // Build the instruction.
9230
6.95k
            let inst = cranelift_assembler_x64::inst::imull_rmi_sxb::new(r32.clone(), rm32.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
9231
6.95k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
9232
9233
            // Return a type ISLE can work with.
9234
6.95k
            let gpr = r32.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
9235
6.95k
            AssemblerOutputs::RetGpr { inst, gpr }
9236
6.95k
        }
9237
12.1k
        fn x64_imulq_rmi_sxb_raw(&mut self, rm64: &GprMem, imm8: i8) -> AssemblerOutputs {
9238
            // Convert ISLE types to assembler types.
9239
12.1k
            let r64 = cranelift_assembler_x64::Gpr::new(self.temp_writable_gpr()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
9240
12.1k
            let rm64 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
9241
12.1k
            let imm8 = cranelift_assembler_x64::Simm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
9242
9243
            // Build the instruction.
9244
12.1k
            let inst = cranelift_assembler_x64::inst::imulq_rmi_sxb::new(r64.clone(), rm64.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
9245
12.1k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
9246
9247
            // Return a type ISLE can work with.
9248
12.1k
            let gpr = r64.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
9249
12.1k
            AssemblerOutputs::RetGpr { inst, gpr }
9250
12.1k
        }
9251
49
        fn x64_imulw_rmi_raw(&mut self, rm16: &GprMem, imm16: u16) -> AssemblerOutputs {
9252
            // Convert ISLE types to assembler types.
9253
49
            let r16 = cranelift_assembler_x64::Gpr::new(self.temp_writable_gpr()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
9254
49
            let rm16 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
9255
49
            let imm16 = cranelift_assembler_x64::Imm16::new(imm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
9256
9257
            // Build the instruction.
9258
49
            let inst = cranelift_assembler_x64::inst::imulw_rmi::new(r16.clone(), rm16.clone(), imm16.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
9259
49
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
9260
9261
            // Return a type ISLE can work with.
9262
49
            let gpr = r16.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
9263
49
            AssemblerOutputs::RetGpr { inst, gpr }
9264
49
        }
9265
29.2k
        fn x64_imull_rmi_raw(&mut self, rm32: &GprMem, imm32: u32) -> AssemblerOutputs {
9266
            // Convert ISLE types to assembler types.
9267
29.2k
            let r32 = cranelift_assembler_x64::Gpr::new(self.temp_writable_gpr()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
9268
29.2k
            let rm32 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
9269
29.2k
            let imm32 = cranelift_assembler_x64::Imm32::new(imm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
9270
9271
            // Build the instruction.
9272
29.2k
            let inst = cranelift_assembler_x64::inst::imull_rmi::new(r32.clone(), rm32.clone(), imm32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
9273
29.2k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
9274
9275
            // Return a type ISLE can work with.
9276
29.2k
            let gpr = r32.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
9277
29.2k
            AssemblerOutputs::RetGpr { inst, gpr }
9278
29.2k
        }
9279
1.16k
        fn x64_imulq_rmi_sxl_raw(&mut self, rm64: &GprMem, imm32: i32) -> AssemblerOutputs {
9280
            // Convert ISLE types to assembler types.
9281
1.16k
            let r64 = cranelift_assembler_x64::Gpr::new(self.temp_writable_gpr()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
9282
1.16k
            let rm64 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
9283
1.16k
            let imm32 = cranelift_assembler_x64::Simm32::new(imm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
9284
9285
            // Build the instruction.
9286
1.16k
            let inst = cranelift_assembler_x64::inst::imulq_rmi_sxl::new(r64.clone(), rm64.clone(), imm32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
9287
1.16k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
9288
9289
            // Return a type ISLE can work with.
9290
1.16k
            let gpr = r64.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
9291
1.16k
            AssemblerOutputs::RetGpr { inst, gpr }
9292
1.16k
        }
9293
0
        fn x64_mulxl_rvm_raw(&mut self, rm32: &GprMem, edx: Gpr) -> AssemblerOutputs {
9294
            // Convert ISLE types to assembler types.
9295
0
            let r32a = cranelift_assembler_x64::Gpr::new(self.temp_writable_gpr()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
9296
0
            let r32b = cranelift_assembler_x64::Gpr::new(self.temp_writable_gpr()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
9297
0
            let rm32 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
9298
0
            let edx = cranelift_assembler_x64::Fixed(edx); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
9299
9300
            // Build the instruction.
9301
0
            let inst = cranelift_assembler_x64::inst::mulxl_rvm::new(r32a.clone(), r32b.clone(), rm32.clone(), edx.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
9302
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
9303
9304
            // Return a type ISLE can work with.
9305
0
            let one = r32a.as_ref().to_reg().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:194
9306
0
            let two = r32b.as_ref().to_reg().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:195
9307
0
            let regs = ValueRegs::two(one, two); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:196
9308
0
            AssemblerOutputs::RetValueRegs { inst, regs }
9309
0
        }
9310
294
        fn x64_mulxq_rvm_raw(&mut self, rm64: &GprMem, rdx: Gpr) -> AssemblerOutputs {
9311
            // Convert ISLE types to assembler types.
9312
294
            let r64a = cranelift_assembler_x64::Gpr::new(self.temp_writable_gpr()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
9313
294
            let r64b = cranelift_assembler_x64::Gpr::new(self.temp_writable_gpr()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
9314
294
            let rm64 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
9315
294
            let rdx = cranelift_assembler_x64::Fixed(rdx); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
9316
9317
            // Build the instruction.
9318
294
            let inst = cranelift_assembler_x64::inst::mulxq_rvm::new(r64a.clone(), r64b.clone(), rm64.clone(), rdx.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
9319
294
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
9320
9321
            // Return a type ISLE can work with.
9322
294
            let one = r64a.as_ref().to_reg().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:194
9323
294
            let two = r64b.as_ref().to_reg().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:195
9324
294
            let regs = ValueRegs::two(one, two); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:196
9325
294
            AssemblerOutputs::RetValueRegs { inst, regs }
9326
294
        }
9327
25
        fn x64_mulss_a_raw(&mut self, xmm1: Xmm, xmm_m32: &XmmMem) -> AssemblerOutputs {
9328
            // Convert ISLE types to assembler types.
9329
25
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
9330
25
            let xmm_m32 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
9331
9332
            // Build the instruction.
9333
25
            let inst = cranelift_assembler_x64::inst::mulss_a::new(xmm1.clone(), xmm_m32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
9334
25
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
9335
9336
            // Return a type ISLE can work with.
9337
25
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
9338
25
            AssemblerOutputs::RetXmm { inst, xmm }
9339
25
        }
9340
31
        fn x64_mulsd_a_raw(&mut self, xmm1: Xmm, xmm_m64: &XmmMem) -> AssemblerOutputs {
9341
            // Convert ISLE types to assembler types.
9342
31
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
9343
31
            let xmm_m64 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
9344
9345
            // Build the instruction.
9346
31
            let inst = cranelift_assembler_x64::inst::mulsd_a::new(xmm1.clone(), xmm_m64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
9347
31
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
9348
9349
            // Return a type ISLE can work with.
9350
31
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
9351
31
            AssemblerOutputs::RetXmm { inst, xmm }
9352
31
        }
9353
667
        fn x64_mulps_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned) -> AssemblerOutputs {
9354
            // Convert ISLE types to assembler types.
9355
667
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
9356
667
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
9357
9358
            // Build the instruction.
9359
667
            let inst = cranelift_assembler_x64::inst::mulps_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
9360
667
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
9361
9362
            // Return a type ISLE can work with.
9363
667
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
9364
667
            AssemblerOutputs::RetXmm { inst, xmm }
9365
667
        }
9366
7
        fn x64_mulpd_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned) -> AssemblerOutputs {
9367
            // Convert ISLE types to assembler types.
9368
7
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
9369
7
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
9370
9371
            // Build the instruction.
9372
7
            let inst = cranelift_assembler_x64::inst::mulpd_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
9373
7
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
9374
9375
            // Return a type ISLE can work with.
9376
7
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
9377
7
            AssemblerOutputs::RetXmm { inst, xmm }
9378
7
        }
9379
3
        fn x64_pmuldq_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned) -> AssemblerOutputs {
9380
            // Convert ISLE types to assembler types.
9381
3
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
9382
3
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
9383
9384
            // Build the instruction.
9385
3
            let inst = cranelift_assembler_x64::inst::pmuldq_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
9386
3
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
9387
9388
            // Return a type ISLE can work with.
9389
3
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
9390
3
            AssemblerOutputs::RetXmm { inst, xmm }
9391
3
        }
9392
18
        fn x64_pmulhrsw_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned) -> AssemblerOutputs {
9393
            // Convert ISLE types to assembler types.
9394
18
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
9395
18
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
9396
9397
            // Build the instruction.
9398
18
            let inst = cranelift_assembler_x64::inst::pmulhrsw_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
9399
18
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
9400
9401
            // Return a type ISLE can work with.
9402
18
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
9403
18
            AssemblerOutputs::RetXmm { inst, xmm }
9404
18
        }
9405
1
        fn x64_pmulhuw_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned) -> AssemblerOutputs {
9406
            // Convert ISLE types to assembler types.
9407
1
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
9408
1
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
9409
9410
            // Build the instruction.
9411
1
            let inst = cranelift_assembler_x64::inst::pmulhuw_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
9412
1
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
9413
9414
            // Return a type ISLE can work with.
9415
1
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
9416
1
            AssemblerOutputs::RetXmm { inst, xmm }
9417
1
        }
9418
22
        fn x64_pmulhw_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned) -> AssemblerOutputs {
9419
            // Convert ISLE types to assembler types.
9420
22
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
9421
22
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
9422
9423
            // Build the instruction.
9424
22
            let inst = cranelift_assembler_x64::inst::pmulhw_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
9425
22
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
9426
9427
            // Return a type ISLE can work with.
9428
22
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
9429
22
            AssemblerOutputs::RetXmm { inst, xmm }
9430
22
        }
9431
26
        fn x64_pmulld_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned) -> AssemblerOutputs {
9432
            // Convert ISLE types to assembler types.
9433
26
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
9434
26
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
9435
9436
            // Build the instruction.
9437
26
            let inst = cranelift_assembler_x64::inst::pmulld_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
9438
26
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
9439
9440
            // Return a type ISLE can work with.
9441
26
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
9442
26
            AssemblerOutputs::RetXmm { inst, xmm }
9443
26
        }
9444
99
        fn x64_pmullw_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned) -> AssemblerOutputs {
9445
            // Convert ISLE types to assembler types.
9446
99
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
9447
99
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
9448
9449
            // Build the instruction.
9450
99
            let inst = cranelift_assembler_x64::inst::pmullw_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
9451
99
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
9452
9453
            // Return a type ISLE can work with.
9454
99
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
9455
99
            AssemblerOutputs::RetXmm { inst, xmm }
9456
99
        }
9457
431
        fn x64_pmuludq_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned) -> AssemblerOutputs {
9458
            // Convert ISLE types to assembler types.
9459
431
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
9460
431
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
9461
9462
            // Build the instruction.
9463
431
            let inst = cranelift_assembler_x64::inst::pmuludq_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
9464
431
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
9465
9466
            // Return a type ISLE can work with.
9467
431
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
9468
431
            AssemblerOutputs::RetXmm { inst, xmm }
9469
431
        }
9470
536
        fn x64_vmulss_b_raw(&mut self, xmm2: Xmm, xmm_m32: &XmmMem) -> AssemblerOutputs {
9471
            // Convert ISLE types to assembler types.
9472
536
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
9473
536
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
9474
536
            let xmm_m32 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
9475
9476
            // Build the instruction.
9477
536
            let inst = cranelift_assembler_x64::inst::vmulss_b::new(xmm1.clone(), xmm2.clone(), xmm_m32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
9478
536
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
9479
9480
            // Return a type ISLE can work with.
9481
536
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
9482
536
            AssemblerOutputs::RetXmm { inst, xmm }
9483
536
        }
9484
693
        fn x64_vmulsd_b_raw(&mut self, xmm2: Xmm, xmm_m64: &XmmMem) -> AssemblerOutputs {
9485
            // Convert ISLE types to assembler types.
9486
693
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
9487
693
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
9488
693
            let xmm_m64 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
9489
9490
            // Build the instruction.
9491
693
            let inst = cranelift_assembler_x64::inst::vmulsd_b::new(xmm1.clone(), xmm2.clone(), xmm_m64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
9492
693
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
9493
9494
            // Return a type ISLE can work with.
9495
693
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
9496
693
            AssemblerOutputs::RetXmm { inst, xmm }
9497
693
        }
9498
2.57k
        fn x64_vmulps_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem) -> AssemblerOutputs {
9499
            // Convert ISLE types to assembler types.
9500
2.57k
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
9501
2.57k
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
9502
2.57k
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
9503
9504
            // Build the instruction.
9505
2.57k
            let inst = cranelift_assembler_x64::inst::vmulps_b::new(xmm1.clone(), xmm2.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
9506
2.57k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
9507
9508
            // Return a type ISLE can work with.
9509
2.57k
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
9510
2.57k
            AssemblerOutputs::RetXmm { inst, xmm }
9511
2.57k
        }
9512
1.49k
        fn x64_vmulpd_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem) -> AssemblerOutputs {
9513
            // Convert ISLE types to assembler types.
9514
1.49k
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
9515
1.49k
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
9516
1.49k
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
9517
9518
            // Build the instruction.
9519
1.49k
            let inst = cranelift_assembler_x64::inst::vmulpd_b::new(xmm1.clone(), xmm2.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
9520
1.49k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
9521
9522
            // Return a type ISLE can work with.
9523
1.49k
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
9524
1.49k
            AssemblerOutputs::RetXmm { inst, xmm }
9525
1.49k
        }
9526
18
        fn x64_vpmuldq_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem) -> AssemblerOutputs {
9527
            // Convert ISLE types to assembler types.
9528
18
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
9529
18
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
9530
18
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
9531
9532
            // Build the instruction.
9533
18
            let inst = cranelift_assembler_x64::inst::vpmuldq_b::new(xmm1.clone(), xmm2.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
9534
18
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
9535
9536
            // Return a type ISLE can work with.
9537
18
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
9538
18
            AssemblerOutputs::RetXmm { inst, xmm }
9539
18
        }
9540
46
        fn x64_vpmulhrsw_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem) -> AssemblerOutputs {
9541
            // Convert ISLE types to assembler types.
9542
46
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
9543
46
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
9544
46
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
9545
9546
            // Build the instruction.
9547
46
            let inst = cranelift_assembler_x64::inst::vpmulhrsw_b::new(xmm1.clone(), xmm2.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
9548
46
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
9549
9550
            // Return a type ISLE can work with.
9551
46
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
9552
46
            AssemblerOutputs::RetXmm { inst, xmm }
9553
46
        }
9554
11
        fn x64_vpmulhuw_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem) -> AssemblerOutputs {
9555
            // Convert ISLE types to assembler types.
9556
11
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
9557
11
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
9558
11
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
9559
9560
            // Build the instruction.
9561
11
            let inst = cranelift_assembler_x64::inst::vpmulhuw_b::new(xmm1.clone(), xmm2.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
9562
11
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
9563
9564
            // Return a type ISLE can work with.
9565
11
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
9566
11
            AssemblerOutputs::RetXmm { inst, xmm }
9567
11
        }
9568
17
        fn x64_vpmulhw_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem) -> AssemblerOutputs {
9569
            // Convert ISLE types to assembler types.
9570
17
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
9571
17
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
9572
17
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
9573
9574
            // Build the instruction.
9575
17
            let inst = cranelift_assembler_x64::inst::vpmulhw_b::new(xmm1.clone(), xmm2.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
9576
17
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
9577
9578
            // Return a type ISLE can work with.
9579
17
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
9580
17
            AssemblerOutputs::RetXmm { inst, xmm }
9581
17
        }
9582
11
        fn x64_vpmulld_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem) -> AssemblerOutputs {
9583
            // Convert ISLE types to assembler types.
9584
11
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
9585
11
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
9586
11
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
9587
9588
            // Build the instruction.
9589
11
            let inst = cranelift_assembler_x64::inst::vpmulld_b::new(xmm1.clone(), xmm2.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
9590
11
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
9591
9592
            // Return a type ISLE can work with.
9593
11
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
9594
11
            AssemblerOutputs::RetXmm { inst, xmm }
9595
11
        }
9596
107
        fn x64_vpmullw_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem) -> AssemblerOutputs {
9597
            // Convert ISLE types to assembler types.
9598
107
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
9599
107
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
9600
107
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
9601
9602
            // Build the instruction.
9603
107
            let inst = cranelift_assembler_x64::inst::vpmullw_b::new(xmm1.clone(), xmm2.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
9604
107
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
9605
9606
            // Return a type ISLE can work with.
9607
107
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
9608
107
            AssemblerOutputs::RetXmm { inst, xmm }
9609
107
        }
9610
116
        fn x64_vpmuludq_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem) -> AssemblerOutputs {
9611
            // Convert ISLE types to assembler types.
9612
116
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
9613
116
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
9614
116
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
9615
9616
            // Build the instruction.
9617
116
            let inst = cranelift_assembler_x64::inst::vpmuludq_b::new(xmm1.clone(), xmm2.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
9618
116
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
9619
9620
            // Return a type ISLE can work with.
9621
116
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
9622
116
            AssemblerOutputs::RetXmm { inst, xmm }
9623
116
        }
9624
0
        fn x64_vpmulld_c_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem) -> AssemblerOutputs {
9625
            // Convert ISLE types to assembler types.
9626
0
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
9627
0
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
9628
0
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
9629
9630
            // Build the instruction.
9631
0
            let inst = cranelift_assembler_x64::inst::vpmulld_c::new(xmm1.clone(), xmm2.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
9632
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
9633
9634
            // Return a type ISLE can work with.
9635
0
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
9636
0
            AssemblerOutputs::RetXmm { inst, xmm }
9637
0
        }
9638
0
        fn x64_vpmullq_c_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem) -> AssemblerOutputs {
9639
            // Convert ISLE types to assembler types.
9640
0
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
9641
0
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
9642
0
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
9643
9644
            // Build the instruction.
9645
0
            let inst = cranelift_assembler_x64::inst::vpmullq_c::new(xmm1.clone(), xmm2.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
9646
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
9647
9648
            // Return a type ISLE can work with.
9649
0
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
9650
0
            AssemblerOutputs::RetXmm { inst, xmm }
9651
0
        }
9652
2.25k
        fn x64_negb_m_raw(&mut self, rm8: &GprMem) -> AssemblerOutputs {
9653
            // Convert ISLE types to assembler types.
9654
2.25k
            let rm8 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
9655
9656
            // Build the instruction.
9657
2.25k
            let inst = cranelift_assembler_x64::inst::negb_m::new(rm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
9658
2.25k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
9659
9660
            // Return a type ISLE can work with.
9661
2.25k
            match rm8 {
9662
2.25k
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
9663
2.25k
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
9664
2.25k
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
9665
                }
9666
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
9667
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
9668
                }
9669
            }
9670
2.25k
        }
9671
403
        fn x64_negw_m_raw(&mut self, rm16: &GprMem) -> AssemblerOutputs {
9672
            // Convert ISLE types to assembler types.
9673
403
            let rm16 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
9674
9675
            // Build the instruction.
9676
403
            let inst = cranelift_assembler_x64::inst::negw_m::new(rm16.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
9677
403
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
9678
9679
            // Return a type ISLE can work with.
9680
403
            match rm16 {
9681
403
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
9682
403
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
9683
403
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
9684
                }
9685
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
9686
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
9687
                }
9688
            }
9689
403
        }
9690
3.37k
        fn x64_negl_m_raw(&mut self, rm32: &GprMem) -> AssemblerOutputs {
9691
            // Convert ISLE types to assembler types.
9692
3.37k
            let rm32 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
9693
9694
            // Build the instruction.
9695
3.37k
            let inst = cranelift_assembler_x64::inst::negl_m::new(rm32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
9696
3.37k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
9697
9698
            // Return a type ISLE can work with.
9699
3.37k
            match rm32 {
9700
3.37k
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
9701
3.37k
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
9702
3.37k
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
9703
                }
9704
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
9705
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
9706
                }
9707
            }
9708
3.37k
        }
9709
2.11k
        fn x64_negq_m_raw(&mut self, rm64: &GprMem) -> AssemblerOutputs {
9710
            // Convert ISLE types to assembler types.
9711
2.11k
            let rm64 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
9712
9713
            // Build the instruction.
9714
2.11k
            let inst = cranelift_assembler_x64::inst::negq_m::new(rm64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
9715
2.11k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
9716
9717
            // Return a type ISLE can work with.
9718
2.11k
            match rm64 {
9719
2.11k
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
9720
2.11k
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
9721
2.11k
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
9722
                }
9723
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
9724
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
9725
                }
9726
            }
9727
2.11k
        }
9728
1.75k
        fn x64_notb_m_raw(&mut self, rm8: &GprMem) -> AssemblerOutputs {
9729
            // Convert ISLE types to assembler types.
9730
1.75k
            let rm8 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
9731
9732
            // Build the instruction.
9733
1.75k
            let inst = cranelift_assembler_x64::inst::notb_m::new(rm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
9734
1.75k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
9735
9736
            // Return a type ISLE can work with.
9737
1.75k
            match rm8 {
9738
1.75k
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
9739
1.75k
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
9740
1.75k
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
9741
                }
9742
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
9743
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
9744
                }
9745
            }
9746
1.75k
        }
9747
1.39k
        fn x64_notw_m_raw(&mut self, rm16: &GprMem) -> AssemblerOutputs {
9748
            // Convert ISLE types to assembler types.
9749
1.39k
            let rm16 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
9750
9751
            // Build the instruction.
9752
1.39k
            let inst = cranelift_assembler_x64::inst::notw_m::new(rm16.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
9753
1.39k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
9754
9755
            // Return a type ISLE can work with.
9756
1.39k
            match rm16 {
9757
1.39k
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
9758
1.39k
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
9759
1.39k
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
9760
                }
9761
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
9762
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
9763
                }
9764
            }
9765
1.39k
        }
9766
3.03k
        fn x64_notl_m_raw(&mut self, rm32: &GprMem) -> AssemblerOutputs {
9767
            // Convert ISLE types to assembler types.
9768
3.03k
            let rm32 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
9769
9770
            // Build the instruction.
9771
3.03k
            let inst = cranelift_assembler_x64::inst::notl_m::new(rm32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
9772
3.03k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
9773
9774
            // Return a type ISLE can work with.
9775
3.03k
            match rm32 {
9776
3.03k
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
9777
3.03k
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
9778
3.03k
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
9779
                }
9780
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
9781
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
9782
                }
9783
            }
9784
3.03k
        }
9785
3.13k
        fn x64_notq_m_raw(&mut self, rm64: &GprMem) -> AssemblerOutputs {
9786
            // Convert ISLE types to assembler types.
9787
3.13k
            let rm64 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
9788
9789
            // Build the instruction.
9790
3.13k
            let inst = cranelift_assembler_x64::inst::notq_m::new(rm64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
9791
3.13k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
9792
9793
            // Return a type ISLE can work with.
9794
3.13k
            match rm64 {
9795
3.13k
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
9796
3.13k
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
9797
3.13k
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
9798
                }
9799
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
9800
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
9801
                }
9802
            }
9803
3.13k
        }
9804
0
        fn x64_nop_zo_raw(&mut self, ) -> AssemblerOutputs {
9805
            // Convert ISLE types to assembler types.
9806
9807
            // Build the instruction.
9808
0
            let inst = cranelift_assembler_x64::inst::nop_zo::new().into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
9809
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
9810
9811
            // Return a type ISLE can work with.
9812
0
            AssemblerOutputs::SideEffect { inst }
9813
0
        }
9814
0
        fn x64_nopl_m_raw(&mut self, rm32: &GprMem) -> AssemblerOutputs {
9815
            // Convert ISLE types to assembler types.
9816
0
            let rm32 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
9817
9818
            // Build the instruction.
9819
0
            let inst = cranelift_assembler_x64::inst::nopl_m::new(rm32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
9820
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
9821
9822
            // Return a type ISLE can work with.
9823
0
            AssemblerOutputs::SideEffect { inst }
9824
0
        }
9825
0
        fn x64_nop_1b_raw(&mut self, ) -> AssemblerOutputs {
9826
            // Convert ISLE types to assembler types.
9827
9828
            // Build the instruction.
9829
0
            let inst = cranelift_assembler_x64::inst::nop_1b::new().into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
9830
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
9831
9832
            // Return a type ISLE can work with.
9833
0
            AssemblerOutputs::SideEffect { inst }
9834
0
        }
9835
0
        fn x64_nop_2b_raw(&mut self, ) -> AssemblerOutputs {
9836
            // Convert ISLE types to assembler types.
9837
9838
            // Build the instruction.
9839
0
            let inst = cranelift_assembler_x64::inst::nop_2b::new().into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
9840
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
9841
9842
            // Return a type ISLE can work with.
9843
0
            AssemblerOutputs::SideEffect { inst }
9844
0
        }
9845
0
        fn x64_nop_3b_raw(&mut self, ) -> AssemblerOutputs {
9846
            // Convert ISLE types to assembler types.
9847
9848
            // Build the instruction.
9849
0
            let inst = cranelift_assembler_x64::inst::nop_3b::new().into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
9850
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
9851
9852
            // Return a type ISLE can work with.
9853
0
            AssemblerOutputs::SideEffect { inst }
9854
0
        }
9855
0
        fn x64_nop_4b_raw(&mut self, ) -> AssemblerOutputs {
9856
            // Convert ISLE types to assembler types.
9857
9858
            // Build the instruction.
9859
0
            let inst = cranelift_assembler_x64::inst::nop_4b::new().into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
9860
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
9861
9862
            // Return a type ISLE can work with.
9863
0
            AssemblerOutputs::SideEffect { inst }
9864
0
        }
9865
0
        fn x64_nop_5b_raw(&mut self, ) -> AssemblerOutputs {
9866
            // Convert ISLE types to assembler types.
9867
9868
            // Build the instruction.
9869
0
            let inst = cranelift_assembler_x64::inst::nop_5b::new().into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
9870
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
9871
9872
            // Return a type ISLE can work with.
9873
0
            AssemblerOutputs::SideEffect { inst }
9874
0
        }
9875
0
        fn x64_nop_6b_raw(&mut self, ) -> AssemblerOutputs {
9876
            // Convert ISLE types to assembler types.
9877
9878
            // Build the instruction.
9879
0
            let inst = cranelift_assembler_x64::inst::nop_6b::new().into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
9880
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
9881
9882
            // Return a type ISLE can work with.
9883
0
            AssemblerOutputs::SideEffect { inst }
9884
0
        }
9885
0
        fn x64_nop_7b_raw(&mut self, ) -> AssemblerOutputs {
9886
            // Convert ISLE types to assembler types.
9887
9888
            // Build the instruction.
9889
0
            let inst = cranelift_assembler_x64::inst::nop_7b::new().into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
9890
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
9891
9892
            // Return a type ISLE can work with.
9893
0
            AssemblerOutputs::SideEffect { inst }
9894
0
        }
9895
0
        fn x64_nop_8b_raw(&mut self, ) -> AssemblerOutputs {
9896
            // Convert ISLE types to assembler types.
9897
9898
            // Build the instruction.
9899
0
            let inst = cranelift_assembler_x64::inst::nop_8b::new().into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
9900
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
9901
9902
            // Return a type ISLE can work with.
9903
0
            AssemblerOutputs::SideEffect { inst }
9904
0
        }
9905
0
        fn x64_nop_9b_raw(&mut self, ) -> AssemblerOutputs {
9906
            // Convert ISLE types to assembler types.
9907
9908
            // Build the instruction.
9909
0
            let inst = cranelift_assembler_x64::inst::nop_9b::new().into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
9910
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
9911
9912
            // Return a type ISLE can work with.
9913
0
            AssemblerOutputs::SideEffect { inst }
9914
0
        }
9915
0
        fn x64_orb_i_raw(&mut self, al: Gpr, imm8: u8) -> AssemblerOutputs {
9916
            // Convert ISLE types to assembler types.
9917
0
            let al = self.convert_gpr_to_assembler_fixed_read_write_gpr(al); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
9918
0
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
9919
9920
            // Build the instruction.
9921
0
            let inst = cranelift_assembler_x64::inst::orb_i::new(al.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
9922
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
9923
9924
            // Return a type ISLE can work with.
9925
0
            let gpr = al.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
9926
0
            AssemblerOutputs::RetGpr { inst, gpr }
9927
0
        }
9928
0
        fn x64_orw_i_raw(&mut self, ax: Gpr, imm16: u16) -> AssemblerOutputs {
9929
            // Convert ISLE types to assembler types.
9930
0
            let ax = self.convert_gpr_to_assembler_fixed_read_write_gpr(ax); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
9931
0
            let imm16 = cranelift_assembler_x64::Imm16::new(imm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
9932
9933
            // Build the instruction.
9934
0
            let inst = cranelift_assembler_x64::inst::orw_i::new(ax.clone(), imm16.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
9935
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
9936
9937
            // Return a type ISLE can work with.
9938
0
            let gpr = ax.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
9939
0
            AssemblerOutputs::RetGpr { inst, gpr }
9940
0
        }
9941
0
        fn x64_orl_i_raw(&mut self, eax: Gpr, imm32: u32) -> AssemblerOutputs {
9942
            // Convert ISLE types to assembler types.
9943
0
            let eax = self.convert_gpr_to_assembler_fixed_read_write_gpr(eax); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
9944
0
            let imm32 = cranelift_assembler_x64::Imm32::new(imm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
9945
9946
            // Build the instruction.
9947
0
            let inst = cranelift_assembler_x64::inst::orl_i::new(eax.clone(), imm32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
9948
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
9949
9950
            // Return a type ISLE can work with.
9951
0
            let gpr = eax.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
9952
0
            AssemblerOutputs::RetGpr { inst, gpr }
9953
0
        }
9954
0
        fn x64_orq_i_sxl_raw(&mut self, rax: Gpr, imm32: i32) -> AssemblerOutputs {
9955
            // Convert ISLE types to assembler types.
9956
0
            let rax = self.convert_gpr_to_assembler_fixed_read_write_gpr(rax); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
9957
0
            let imm32 = cranelift_assembler_x64::Simm32::new(imm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
9958
9959
            // Build the instruction.
9960
0
            let inst = cranelift_assembler_x64::inst::orq_i_sxl::new(rax.clone(), imm32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
9961
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
9962
9963
            // Return a type ISLE can work with.
9964
0
            let gpr = rax.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
9965
0
            AssemblerOutputs::RetGpr { inst, gpr }
9966
0
        }
9967
30
        fn x64_orb_mi_raw(&mut self, rm8: &GprMem, imm8: u8) -> AssemblerOutputs {
9968
            // Convert ISLE types to assembler types.
9969
30
            let rm8 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
9970
30
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
9971
9972
            // Build the instruction.
9973
30
            let inst = cranelift_assembler_x64::inst::orb_mi::new(rm8.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
9974
30
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
9975
9976
            // Return a type ISLE can work with.
9977
30
            match rm8 {
9978
30
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
9979
30
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
9980
30
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
9981
                }
9982
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
9983
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
9984
                }
9985
            }
9986
30
        }
9987
707
        fn x64_orw_mi_raw(&mut self, rm16: &GprMem, imm16: u16) -> AssemblerOutputs {
9988
            // Convert ISLE types to assembler types.
9989
707
            let rm16 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
9990
707
            let imm16 = cranelift_assembler_x64::Imm16::new(imm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
9991
9992
            // Build the instruction.
9993
707
            let inst = cranelift_assembler_x64::inst::orw_mi::new(rm16.clone(), imm16.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
9994
707
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
9995
9996
            // Return a type ISLE can work with.
9997
707
            match rm16 {
9998
707
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
9999
707
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
10000
707
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
10001
                }
10002
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
10003
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
10004
                }
10005
            }
10006
707
        }
10007
16.5k
        fn x64_orl_mi_raw(&mut self, rm32: &GprMem, imm32: u32) -> AssemblerOutputs {
10008
            // Convert ISLE types to assembler types.
10009
16.5k
            let rm32 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
10010
16.5k
            let imm32 = cranelift_assembler_x64::Imm32::new(imm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
10011
10012
            // Build the instruction.
10013
16.5k
            let inst = cranelift_assembler_x64::inst::orl_mi::new(rm32.clone(), imm32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
10014
16.5k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
10015
10016
            // Return a type ISLE can work with.
10017
16.5k
            match rm32 {
10018
16.5k
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
10019
16.5k
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
10020
16.5k
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
10021
                }
10022
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
10023
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
10024
                }
10025
            }
10026
16.5k
        }
10027
130
        fn x64_orq_mi_sxl_raw(&mut self, rm64: &GprMem, imm32: i32) -> AssemblerOutputs {
10028
            // Convert ISLE types to assembler types.
10029
130
            let rm64 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
10030
130
            let imm32 = cranelift_assembler_x64::Simm32::new(imm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
10031
10032
            // Build the instruction.
10033
130
            let inst = cranelift_assembler_x64::inst::orq_mi_sxl::new(rm64.clone(), imm32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
10034
130
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
10035
10036
            // Return a type ISLE can work with.
10037
130
            match rm64 {
10038
130
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
10039
130
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
10040
130
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
10041
                }
10042
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
10043
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
10044
                }
10045
            }
10046
130
        }
10047
27.8k
        fn x64_orl_mi_sxb_raw(&mut self, rm32: &GprMem, imm8: i8) -> AssemblerOutputs {
10048
            // Convert ISLE types to assembler types.
10049
27.8k
            let rm32 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
10050
27.8k
            let imm8 = cranelift_assembler_x64::Simm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
10051
10052
            // Build the instruction.
10053
27.8k
            let inst = cranelift_assembler_x64::inst::orl_mi_sxb::new(rm32.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
10054
27.8k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
10055
10056
            // Return a type ISLE can work with.
10057
27.8k
            match rm32 {
10058
26.6k
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
10059
26.6k
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
10060
26.6k
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
10061
                }
10062
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
10063
1.16k
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
10064
                }
10065
            }
10066
27.8k
        }
10067
367
        fn x64_orq_mi_sxb_raw(&mut self, rm64: &GprMem, imm8: i8) -> AssemblerOutputs {
10068
            // Convert ISLE types to assembler types.
10069
367
            let rm64 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
10070
367
            let imm8 = cranelift_assembler_x64::Simm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
10071
10072
            // Build the instruction.
10073
367
            let inst = cranelift_assembler_x64::inst::orq_mi_sxb::new(rm64.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
10074
367
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
10075
10076
            // Return a type ISLE can work with.
10077
367
            match rm64 {
10078
364
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
10079
364
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
10080
364
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
10081
                }
10082
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
10083
3
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
10084
                }
10085
            }
10086
367
        }
10087
0
        fn x64_orb_mr_raw(&mut self, rm8: &GprMem, r8: Gpr) -> AssemblerOutputs {
10088
            // Convert ISLE types to assembler types.
10089
0
            let rm8 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
10090
0
            let r8 = cranelift_assembler_x64::Gpr::new(r8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
10091
10092
            // Build the instruction.
10093
0
            let inst = cranelift_assembler_x64::inst::orb_mr::new(rm8.clone(), r8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
10094
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
10095
10096
            // Return a type ISLE can work with.
10097
0
            match rm8 {
10098
0
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
10099
0
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
10100
0
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
10101
                }
10102
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
10103
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
10104
                }
10105
            }
10106
0
        }
10107
0
        fn x64_orw_mr_raw(&mut self, rm16: &GprMem, r16: Gpr) -> AssemblerOutputs {
10108
            // Convert ISLE types to assembler types.
10109
0
            let rm16 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
10110
0
            let r16 = cranelift_assembler_x64::Gpr::new(r16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
10111
10112
            // Build the instruction.
10113
0
            let inst = cranelift_assembler_x64::inst::orw_mr::new(rm16.clone(), r16.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
10114
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
10115
10116
            // Return a type ISLE can work with.
10117
0
            match rm16 {
10118
0
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
10119
0
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
10120
0
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
10121
                }
10122
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
10123
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
10124
                }
10125
            }
10126
0
        }
10127
30
        fn x64_orl_mr_raw(&mut self, rm32: &GprMem, r32: Gpr) -> AssemblerOutputs {
10128
            // Convert ISLE types to assembler types.
10129
30
            let rm32 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
10130
30
            let r32 = cranelift_assembler_x64::Gpr::new(r32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
10131
10132
            // Build the instruction.
10133
30
            let inst = cranelift_assembler_x64::inst::orl_mr::new(rm32.clone(), r32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
10134
30
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
10135
10136
            // Return a type ISLE can work with.
10137
30
            match rm32 {
10138
0
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
10139
0
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
10140
0
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
10141
                }
10142
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
10143
30
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
10144
                }
10145
            }
10146
30
        }
10147
25
        fn x64_orq_mr_raw(&mut self, rm64: &GprMem, r64: Gpr) -> AssemblerOutputs {
10148
            // Convert ISLE types to assembler types.
10149
25
            let rm64 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
10150
25
            let r64 = cranelift_assembler_x64::Gpr::new(r64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
10151
10152
            // Build the instruction.
10153
25
            let inst = cranelift_assembler_x64::inst::orq_mr::new(rm64.clone(), r64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
10154
25
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
10155
10156
            // Return a type ISLE can work with.
10157
25
            match rm64 {
10158
0
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
10159
0
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
10160
0
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
10161
                }
10162
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
10163
25
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
10164
                }
10165
            }
10166
25
        }
10167
0
        fn x64_orb_rm_raw(&mut self, r8: Gpr, rm8: &GprMem) -> AssemblerOutputs {
10168
            // Convert ISLE types to assembler types.
10169
0
            let r8 = self.convert_gpr_to_assembler_read_write_gpr(r8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
10170
0
            let rm8 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
10171
10172
            // Build the instruction.
10173
0
            let inst = cranelift_assembler_x64::inst::orb_rm::new(r8.clone(), rm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
10174
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
10175
10176
            // Return a type ISLE can work with.
10177
0
            let gpr = r8.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
10178
0
            AssemblerOutputs::RetGpr { inst, gpr }
10179
0
        }
10180
0
        fn x64_orw_rm_raw(&mut self, r16: Gpr, rm16: &GprMem) -> AssemblerOutputs {
10181
            // Convert ISLE types to assembler types.
10182
0
            let r16 = self.convert_gpr_to_assembler_read_write_gpr(r16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
10183
0
            let rm16 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
10184
10185
            // Build the instruction.
10186
0
            let inst = cranelift_assembler_x64::inst::orw_rm::new(r16.clone(), rm16.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
10187
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
10188
10189
            // Return a type ISLE can work with.
10190
0
            let gpr = r16.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
10191
0
            AssemblerOutputs::RetGpr { inst, gpr }
10192
0
        }
10193
171k
        fn x64_orl_rm_raw(&mut self, r32: Gpr, rm32: &GprMem) -> AssemblerOutputs {
10194
            // Convert ISLE types to assembler types.
10195
171k
            let r32 = self.convert_gpr_to_assembler_read_write_gpr(r32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
10196
171k
            let rm32 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
10197
10198
            // Build the instruction.
10199
171k
            let inst = cranelift_assembler_x64::inst::orl_rm::new(r32.clone(), rm32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
10200
171k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
10201
10202
            // Return a type ISLE can work with.
10203
171k
            let gpr = r32.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
10204
171k
            AssemblerOutputs::RetGpr { inst, gpr }
10205
171k
        }
10206
42.0k
        fn x64_orq_rm_raw(&mut self, r64: Gpr, rm64: &GprMem) -> AssemblerOutputs {
10207
            // Convert ISLE types to assembler types.
10208
42.0k
            let r64 = self.convert_gpr_to_assembler_read_write_gpr(r64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
10209
42.0k
            let rm64 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
10210
10211
            // Build the instruction.
10212
42.0k
            let inst = cranelift_assembler_x64::inst::orq_rm::new(r64.clone(), rm64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
10213
42.0k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
10214
10215
            // Return a type ISLE can work with.
10216
42.0k
            let gpr = r64.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
10217
42.0k
            AssemblerOutputs::RetGpr { inst, gpr }
10218
42.0k
        }
10219
0
        fn x64_lock_orb_mi_raw(&mut self, m8: &SyntheticAmode, imm8: u8) -> AssemblerOutputs {
10220
            // Convert ISLE types to assembler types.
10221
0
            let m8 = self.convert_amode_to_assembler_amode(m8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
10222
0
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
10223
10224
            // Build the instruction.
10225
0
            let inst = cranelift_assembler_x64::inst::lock_orb_mi::new(m8.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
10226
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
10227
10228
            // Return a type ISLE can work with.
10229
0
            AssemblerOutputs::SideEffect { inst }
10230
0
        }
10231
0
        fn x64_lock_orw_mi_raw(&mut self, m16: &SyntheticAmode, imm16: u16) -> AssemblerOutputs {
10232
            // Convert ISLE types to assembler types.
10233
0
            let m16 = self.convert_amode_to_assembler_amode(m16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
10234
0
            let imm16 = cranelift_assembler_x64::Imm16::new(imm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
10235
10236
            // Build the instruction.
10237
0
            let inst = cranelift_assembler_x64::inst::lock_orw_mi::new(m16.clone(), imm16.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
10238
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
10239
10240
            // Return a type ISLE can work with.
10241
0
            AssemblerOutputs::SideEffect { inst }
10242
0
        }
10243
0
        fn x64_lock_orl_mi_raw(&mut self, m32: &SyntheticAmode, imm32: u32) -> AssemblerOutputs {
10244
            // Convert ISLE types to assembler types.
10245
0
            let m32 = self.convert_amode_to_assembler_amode(m32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
10246
0
            let imm32 = cranelift_assembler_x64::Imm32::new(imm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
10247
10248
            // Build the instruction.
10249
0
            let inst = cranelift_assembler_x64::inst::lock_orl_mi::new(m32.clone(), imm32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
10250
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
10251
10252
            // Return a type ISLE can work with.
10253
0
            AssemblerOutputs::SideEffect { inst }
10254
0
        }
10255
0
        fn x64_lock_orq_mi_sxl_raw(&mut self, m64: &SyntheticAmode, imm32: i32) -> AssemblerOutputs {
10256
            // Convert ISLE types to assembler types.
10257
0
            let m64 = self.convert_amode_to_assembler_amode(m64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
10258
0
            let imm32 = cranelift_assembler_x64::Simm32::new(imm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
10259
10260
            // Build the instruction.
10261
0
            let inst = cranelift_assembler_x64::inst::lock_orq_mi_sxl::new(m64.clone(), imm32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
10262
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
10263
10264
            // Return a type ISLE can work with.
10265
0
            AssemblerOutputs::SideEffect { inst }
10266
0
        }
10267
0
        fn x64_lock_orl_mi_sxb_raw(&mut self, m32: &SyntheticAmode, imm8: i8) -> AssemblerOutputs {
10268
            // Convert ISLE types to assembler types.
10269
0
            let m32 = self.convert_amode_to_assembler_amode(m32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
10270
0
            let imm8 = cranelift_assembler_x64::Simm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
10271
10272
            // Build the instruction.
10273
0
            let inst = cranelift_assembler_x64::inst::lock_orl_mi_sxb::new(m32.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
10274
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
10275
10276
            // Return a type ISLE can work with.
10277
0
            AssemblerOutputs::SideEffect { inst }
10278
0
        }
10279
0
        fn x64_lock_orq_mi_sxb_raw(&mut self, m64: &SyntheticAmode, imm8: i8) -> AssemblerOutputs {
10280
            // Convert ISLE types to assembler types.
10281
0
            let m64 = self.convert_amode_to_assembler_amode(m64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
10282
0
            let imm8 = cranelift_assembler_x64::Simm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
10283
10284
            // Build the instruction.
10285
0
            let inst = cranelift_assembler_x64::inst::lock_orq_mi_sxb::new(m64.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
10286
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
10287
10288
            // Return a type ISLE can work with.
10289
0
            AssemblerOutputs::SideEffect { inst }
10290
0
        }
10291
0
        fn x64_lock_orb_mr_raw(&mut self, m8: &SyntheticAmode, r8: Gpr) -> AssemblerOutputs {
10292
            // Convert ISLE types to assembler types.
10293
0
            let m8 = self.convert_amode_to_assembler_amode(m8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
10294
0
            let r8 = cranelift_assembler_x64::Gpr::new(r8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
10295
10296
            // Build the instruction.
10297
0
            let inst = cranelift_assembler_x64::inst::lock_orb_mr::new(m8.clone(), r8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
10298
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
10299
10300
            // Return a type ISLE can work with.
10301
0
            AssemblerOutputs::SideEffect { inst }
10302
0
        }
10303
3
        fn x64_lock_orw_mr_raw(&mut self, m16: &SyntheticAmode, r16: Gpr) -> AssemblerOutputs {
10304
            // Convert ISLE types to assembler types.
10305
3
            let m16 = self.convert_amode_to_assembler_amode(m16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
10306
3
            let r16 = cranelift_assembler_x64::Gpr::new(r16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
10307
10308
            // Build the instruction.
10309
3
            let inst = cranelift_assembler_x64::inst::lock_orw_mr::new(m16.clone(), r16.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
10310
3
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
10311
10312
            // Return a type ISLE can work with.
10313
3
            AssemblerOutputs::SideEffect { inst }
10314
3
        }
10315
22
        fn x64_lock_orl_mr_raw(&mut self, m32: &SyntheticAmode, r32: Gpr) -> AssemblerOutputs {
10316
            // Convert ISLE types to assembler types.
10317
22
            let m32 = self.convert_amode_to_assembler_amode(m32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
10318
22
            let r32 = cranelift_assembler_x64::Gpr::new(r32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
10319
10320
            // Build the instruction.
10321
22
            let inst = cranelift_assembler_x64::inst::lock_orl_mr::new(m32.clone(), r32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
10322
22
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
10323
10324
            // Return a type ISLE can work with.
10325
22
            AssemblerOutputs::SideEffect { inst }
10326
22
        }
10327
0
        fn x64_lock_orq_mr_raw(&mut self, m64: &SyntheticAmode, r64: Gpr) -> AssemblerOutputs {
10328
            // Convert ISLE types to assembler types.
10329
0
            let m64 = self.convert_amode_to_assembler_amode(m64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
10330
0
            let r64 = cranelift_assembler_x64::Gpr::new(r64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
10331
10332
            // Build the instruction.
10333
0
            let inst = cranelift_assembler_x64::inst::lock_orq_mr::new(m64.clone(), r64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
10334
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
10335
10336
            // Return a type ISLE can work with.
10337
0
            AssemblerOutputs::SideEffect { inst }
10338
0
        }
10339
2.78k
        fn x64_orps_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned) -> AssemblerOutputs {
10340
            // Convert ISLE types to assembler types.
10341
2.78k
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
10342
2.78k
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
10343
10344
            // Build the instruction.
10345
2.78k
            let inst = cranelift_assembler_x64::inst::orps_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
10346
2.78k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
10347
10348
            // Return a type ISLE can work with.
10349
2.78k
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
10350
2.78k
            AssemblerOutputs::RetXmm { inst, xmm }
10351
2.78k
        }
10352
634
        fn x64_orpd_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned) -> AssemblerOutputs {
10353
            // Convert ISLE types to assembler types.
10354
634
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
10355
634
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
10356
10357
            // Build the instruction.
10358
634
            let inst = cranelift_assembler_x64::inst::orpd_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
10359
634
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
10360
10361
            // Return a type ISLE can work with.
10362
634
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
10363
634
            AssemblerOutputs::RetXmm { inst, xmm }
10364
634
        }
10365
2.12k
        fn x64_por_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned) -> AssemblerOutputs {
10366
            // Convert ISLE types to assembler types.
10367
2.12k
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
10368
2.12k
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
10369
10370
            // Build the instruction.
10371
2.12k
            let inst = cranelift_assembler_x64::inst::por_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
10372
2.12k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
10373
10374
            // Return a type ISLE can work with.
10375
2.12k
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
10376
2.12k
            AssemblerOutputs::RetXmm { inst, xmm }
10377
2.12k
        }
10378
4.75k
        fn x64_vorps_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem) -> AssemblerOutputs {
10379
            // Convert ISLE types to assembler types.
10380
4.75k
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
10381
4.75k
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
10382
4.75k
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
10383
10384
            // Build the instruction.
10385
4.75k
            let inst = cranelift_assembler_x64::inst::vorps_b::new(xmm1.clone(), xmm2.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
10386
4.75k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
10387
10388
            // Return a type ISLE can work with.
10389
4.75k
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
10390
4.75k
            AssemblerOutputs::RetXmm { inst, xmm }
10391
4.75k
        }
10392
17.3k
        fn x64_vorpd_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem) -> AssemblerOutputs {
10393
            // Convert ISLE types to assembler types.
10394
17.3k
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
10395
17.3k
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
10396
17.3k
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
10397
10398
            // Build the instruction.
10399
17.3k
            let inst = cranelift_assembler_x64::inst::vorpd_b::new(xmm1.clone(), xmm2.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
10400
17.3k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
10401
10402
            // Return a type ISLE can work with.
10403
17.3k
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
10404
17.3k
            AssemblerOutputs::RetXmm { inst, xmm }
10405
17.3k
        }
10406
4.10k
        fn x64_vpor_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem) -> AssemblerOutputs {
10407
            // Convert ISLE types to assembler types.
10408
4.10k
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
10409
4.10k
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
10410
4.10k
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
10411
10412
            // Build the instruction.
10413
4.10k
            let inst = cranelift_assembler_x64::inst::vpor_b::new(xmm1.clone(), xmm2.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
10414
4.10k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
10415
10416
            // Return a type ISLE can work with.
10417
4.10k
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
10418
4.10k
            AssemblerOutputs::RetXmm { inst, xmm }
10419
4.10k
        }
10420
3.49k
        fn x64_packsswb_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned) -> AssemblerOutputs {
10421
            // Convert ISLE types to assembler types.
10422
3.49k
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
10423
3.49k
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
10424
10425
            // Build the instruction.
10426
3.49k
            let inst = cranelift_assembler_x64::inst::packsswb_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
10427
3.49k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
10428
10429
            // Return a type ISLE can work with.
10430
3.49k
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
10431
3.49k
            AssemblerOutputs::RetXmm { inst, xmm }
10432
3.49k
        }
10433
72
        fn x64_packssdw_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned) -> AssemblerOutputs {
10434
            // Convert ISLE types to assembler types.
10435
72
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
10436
72
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
10437
10438
            // Build the instruction.
10439
72
            let inst = cranelift_assembler_x64::inst::packssdw_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
10440
72
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
10441
10442
            // Return a type ISLE can work with.
10443
72
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
10444
72
            AssemblerOutputs::RetXmm { inst, xmm }
10445
72
        }
10446
8.79k
        fn x64_vpacksswb_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem) -> AssemblerOutputs {
10447
            // Convert ISLE types to assembler types.
10448
8.79k
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
10449
8.79k
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
10450
8.79k
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
10451
10452
            // Build the instruction.
10453
8.79k
            let inst = cranelift_assembler_x64::inst::vpacksswb_b::new(xmm1.clone(), xmm2.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
10454
8.79k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
10455
10456
            // Return a type ISLE can work with.
10457
8.79k
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
10458
8.79k
            AssemblerOutputs::RetXmm { inst, xmm }
10459
8.79k
        }
10460
103
        fn x64_vpackssdw_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem) -> AssemblerOutputs {
10461
            // Convert ISLE types to assembler types.
10462
103
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
10463
103
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
10464
103
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
10465
10466
            // Build the instruction.
10467
103
            let inst = cranelift_assembler_x64::inst::vpackssdw_b::new(xmm1.clone(), xmm2.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
10468
103
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
10469
10470
            // Return a type ISLE can work with.
10471
103
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
10472
103
            AssemblerOutputs::RetXmm { inst, xmm }
10473
103
        }
10474
4
        fn x64_packuswb_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned) -> AssemblerOutputs {
10475
            // Convert ISLE types to assembler types.
10476
4
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
10477
4
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
10478
10479
            // Build the instruction.
10480
4
            let inst = cranelift_assembler_x64::inst::packuswb_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
10481
4
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
10482
10483
            // Return a type ISLE can work with.
10484
4
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
10485
4
            AssemblerOutputs::RetXmm { inst, xmm }
10486
4
        }
10487
1
        fn x64_packusdw_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned) -> AssemblerOutputs {
10488
            // Convert ISLE types to assembler types.
10489
1
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
10490
1
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
10491
10492
            // Build the instruction.
10493
1
            let inst = cranelift_assembler_x64::inst::packusdw_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
10494
1
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
10495
10496
            // Return a type ISLE can work with.
10497
1
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
10498
1
            AssemblerOutputs::RetXmm { inst, xmm }
10499
1
        }
10500
445
        fn x64_vpackuswb_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem) -> AssemblerOutputs {
10501
            // Convert ISLE types to assembler types.
10502
445
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
10503
445
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
10504
445
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
10505
10506
            // Build the instruction.
10507
445
            let inst = cranelift_assembler_x64::inst::vpackuswb_b::new(xmm1.clone(), xmm2.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
10508
445
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
10509
10510
            // Return a type ISLE can work with.
10511
445
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
10512
445
            AssemblerOutputs::RetXmm { inst, xmm }
10513
445
        }
10514
56
        fn x64_vpackusdw_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem) -> AssemblerOutputs {
10515
            // Convert ISLE types to assembler types.
10516
56
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
10517
56
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
10518
56
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
10519
10520
            // Build the instruction.
10521
56
            let inst = cranelift_assembler_x64::inst::vpackusdw_b::new(xmm1.clone(), xmm2.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
10522
56
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
10523
10524
            // Return a type ISLE can work with.
10525
56
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
10526
56
            AssemblerOutputs::RetXmm { inst, xmm }
10527
56
        }
10528
329
        fn x64_pmaddwd_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned) -> AssemblerOutputs {
10529
            // Convert ISLE types to assembler types.
10530
329
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
10531
329
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
10532
10533
            // Build the instruction.
10534
329
            let inst = cranelift_assembler_x64::inst::pmaddwd_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
10535
329
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
10536
10537
            // Return a type ISLE can work with.
10538
329
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
10539
329
            AssemblerOutputs::RetXmm { inst, xmm }
10540
329
        }
10541
1.23k
        fn x64_vpmaddwd_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem) -> AssemblerOutputs {
10542
            // Convert ISLE types to assembler types.
10543
1.23k
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
10544
1.23k
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
10545
1.23k
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
10546
10547
            // Build the instruction.
10548
1.23k
            let inst = cranelift_assembler_x64::inst::vpmaddwd_b::new(xmm1.clone(), xmm2.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
10549
1.23k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
10550
10551
            // Return a type ISLE can work with.
10552
1.23k
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
10553
1.23k
            AssemblerOutputs::RetXmm { inst, xmm }
10554
1.23k
        }
10555
28
        fn x64_pmaddubsw_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned) -> AssemblerOutputs {
10556
            // Convert ISLE types to assembler types.
10557
28
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
10558
28
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
10559
10560
            // Build the instruction.
10561
28
            let inst = cranelift_assembler_x64::inst::pmaddubsw_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
10562
28
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
10563
10564
            // Return a type ISLE can work with.
10565
28
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
10566
28
            AssemblerOutputs::RetXmm { inst, xmm }
10567
28
        }
10568
1.12k
        fn x64_vpmaddubsw_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem) -> AssemblerOutputs {
10569
            // Convert ISLE types to assembler types.
10570
1.12k
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
10571
1.12k
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
10572
1.12k
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
10573
10574
            // Build the instruction.
10575
1.12k
            let inst = cranelift_assembler_x64::inst::vpmaddubsw_b::new(xmm1.clone(), xmm2.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
10576
1.12k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
10577
10578
            // Return a type ISLE can work with.
10579
1.12k
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
10580
1.12k
            AssemblerOutputs::RetXmm { inst, xmm }
10581
1.12k
        }
10582
0
        fn x64_rcpps_rm_raw(&mut self, xmm_m128: &XmmMemAligned) -> AssemblerOutputs {
10583
            // Convert ISLE types to assembler types.
10584
0
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
10585
0
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
10586
10587
            // Build the instruction.
10588
0
            let inst = cranelift_assembler_x64::inst::rcpps_rm::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
10589
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
10590
10591
            // Return a type ISLE can work with.
10592
0
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
10593
0
            AssemblerOutputs::RetXmm { inst, xmm }
10594
0
        }
10595
0
        fn x64_rcpss_rm_raw(&mut self, xmm_m32: &XmmMem) -> AssemblerOutputs {
10596
            // Convert ISLE types to assembler types.
10597
0
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
10598
0
            let xmm_m32 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
10599
10600
            // Build the instruction.
10601
0
            let inst = cranelift_assembler_x64::inst::rcpss_rm::new(xmm1.clone(), xmm_m32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
10602
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
10603
10604
            // Return a type ISLE can work with.
10605
0
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
10606
0
            AssemblerOutputs::RetXmm { inst, xmm }
10607
0
        }
10608
0
        fn x64_rsqrtps_rm_raw(&mut self, xmm_m128: &XmmMemAligned) -> AssemblerOutputs {
10609
            // Convert ISLE types to assembler types.
10610
0
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
10611
0
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
10612
10613
            // Build the instruction.
10614
0
            let inst = cranelift_assembler_x64::inst::rsqrtps_rm::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
10615
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
10616
10617
            // Return a type ISLE can work with.
10618
0
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
10619
0
            AssemblerOutputs::RetXmm { inst, xmm }
10620
0
        }
10621
0
        fn x64_rsqrtss_rm_raw(&mut self, xmm_m32: &XmmMem) -> AssemblerOutputs {
10622
            // Convert ISLE types to assembler types.
10623
0
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
10624
0
            let xmm_m32 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
10625
10626
            // Build the instruction.
10627
0
            let inst = cranelift_assembler_x64::inst::rsqrtss_rm::new(xmm1.clone(), xmm_m32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
10628
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
10629
10630
            // Return a type ISLE can work with.
10631
0
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
10632
0
            AssemblerOutputs::RetXmm { inst, xmm }
10633
0
        }
10634
0
        fn x64_vrcpps_rm_raw(&mut self, xmm_m128: &XmmMem) -> AssemblerOutputs {
10635
            // Convert ISLE types to assembler types.
10636
0
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
10637
0
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
10638
10639
            // Build the instruction.
10640
0
            let inst = cranelift_assembler_x64::inst::vrcpps_rm::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
10641
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
10642
10643
            // Return a type ISLE can work with.
10644
0
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
10645
0
            AssemblerOutputs::RetXmm { inst, xmm }
10646
0
        }
10647
0
        fn x64_vrcpss_rvm_raw(&mut self, xmm2: Xmm, xmm_m32: &XmmMem) -> AssemblerOutputs {
10648
            // Convert ISLE types to assembler types.
10649
0
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
10650
0
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
10651
0
            let xmm_m32 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
10652
10653
            // Build the instruction.
10654
0
            let inst = cranelift_assembler_x64::inst::vrcpss_rvm::new(xmm1.clone(), xmm2.clone(), xmm_m32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
10655
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
10656
10657
            // Return a type ISLE can work with.
10658
0
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
10659
0
            AssemblerOutputs::RetXmm { inst, xmm }
10660
0
        }
10661
0
        fn x64_vrsqrtps_rm_raw(&mut self, xmm_m128: &XmmMem) -> AssemblerOutputs {
10662
            // Convert ISLE types to assembler types.
10663
0
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
10664
0
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
10665
10666
            // Build the instruction.
10667
0
            let inst = cranelift_assembler_x64::inst::vrsqrtps_rm::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
10668
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
10669
10670
            // Return a type ISLE can work with.
10671
0
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
10672
0
            AssemblerOutputs::RetXmm { inst, xmm }
10673
0
        }
10674
0
        fn x64_vrsqrtss_rvm_raw(&mut self, xmm2: Xmm, xmm_m32: &XmmMem) -> AssemblerOutputs {
10675
            // Convert ISLE types to assembler types.
10676
0
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
10677
0
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
10678
0
            let xmm_m32 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
10679
10680
            // Build the instruction.
10681
0
            let inst = cranelift_assembler_x64::inst::vrsqrtss_rvm::new(xmm1.clone(), xmm2.clone(), xmm_m32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
10682
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
10683
10684
            // Return a type ISLE can work with.
10685
0
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
10686
0
            AssemblerOutputs::RetXmm { inst, xmm }
10687
0
        }
10688
137
        fn x64_roundpd_rmi_raw(&mut self, xmm_m128: &XmmMemAligned, imm8: u8) -> AssemblerOutputs {
10689
            // Convert ISLE types to assembler types.
10690
137
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
10691
137
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
10692
137
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
10693
10694
            // Build the instruction.
10695
137
            let inst = cranelift_assembler_x64::inst::roundpd_rmi::new(xmm1.clone(), xmm_m128.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
10696
137
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
10697
10698
            // Return a type ISLE can work with.
10699
137
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
10700
137
            AssemblerOutputs::RetXmm { inst, xmm }
10701
137
        }
10702
11
        fn x64_roundps_rmi_raw(&mut self, xmm_m128: &XmmMemAligned, imm8: u8) -> AssemblerOutputs {
10703
            // Convert ISLE types to assembler types.
10704
11
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
10705
11
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
10706
11
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
10707
10708
            // Build the instruction.
10709
11
            let inst = cranelift_assembler_x64::inst::roundps_rmi::new(xmm1.clone(), xmm_m128.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
10710
11
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
10711
10712
            // Return a type ISLE can work with.
10713
11
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
10714
11
            AssemblerOutputs::RetXmm { inst, xmm }
10715
11
        }
10716
976
        fn x64_roundsd_rmi_raw(&mut self, xmm_m64: &XmmMem, imm8: u8) -> AssemblerOutputs {
10717
            // Convert ISLE types to assembler types.
10718
976
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
10719
976
            let xmm_m64 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
10720
976
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
10721
10722
            // Build the instruction.
10723
976
            let inst = cranelift_assembler_x64::inst::roundsd_rmi::new(xmm1.clone(), xmm_m64.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
10724
976
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
10725
10726
            // Return a type ISLE can work with.
10727
976
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
10728
976
            AssemblerOutputs::RetXmm { inst, xmm }
10729
976
        }
10730
8.15k
        fn x64_roundss_rmi_raw(&mut self, xmm_m32: &XmmMem, imm8: u8) -> AssemblerOutputs {
10731
            // Convert ISLE types to assembler types.
10732
8.15k
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
10733
8.15k
            let xmm_m32 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
10734
8.15k
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
10735
10736
            // Build the instruction.
10737
8.15k
            let inst = cranelift_assembler_x64::inst::roundss_rmi::new(xmm1.clone(), xmm_m32.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
10738
8.15k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
10739
10740
            // Return a type ISLE can work with.
10741
8.15k
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
10742
8.15k
            AssemblerOutputs::RetXmm { inst, xmm }
10743
8.15k
        }
10744
939
        fn x64_vroundpd_rmi_raw(&mut self, xmm_m128: &XmmMem, imm8: u8) -> AssemblerOutputs {
10745
            // Convert ISLE types to assembler types.
10746
939
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
10747
939
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
10748
939
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
10749
10750
            // Build the instruction.
10751
939
            let inst = cranelift_assembler_x64::inst::vroundpd_rmi::new(xmm1.clone(), xmm_m128.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
10752
939
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
10753
10754
            // Return a type ISLE can work with.
10755
939
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
10756
939
            AssemblerOutputs::RetXmm { inst, xmm }
10757
939
        }
10758
586
        fn x64_vroundps_rmi_raw(&mut self, xmm_m128: &XmmMem, imm8: u8) -> AssemblerOutputs {
10759
            // Convert ISLE types to assembler types.
10760
586
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
10761
586
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
10762
586
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
10763
10764
            // Build the instruction.
10765
586
            let inst = cranelift_assembler_x64::inst::vroundps_rmi::new(xmm1.clone(), xmm_m128.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
10766
586
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
10767
10768
            // Return a type ISLE can work with.
10769
586
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
10770
586
            AssemblerOutputs::RetXmm { inst, xmm }
10771
586
        }
10772
37.8k
        fn x64_vroundsd_rvmi_raw(&mut self, xmm2: Xmm, xmm_m64: &XmmMem, imm8: u8) -> AssemblerOutputs {
10773
            // Convert ISLE types to assembler types.
10774
37.8k
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
10775
37.8k
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
10776
37.8k
            let xmm_m64 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
10777
37.8k
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
10778
10779
            // Build the instruction.
10780
37.8k
            let inst = cranelift_assembler_x64::inst::vroundsd_rvmi::new(xmm1.clone(), xmm2.clone(), xmm_m64.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
10781
37.8k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
10782
10783
            // Return a type ISLE can work with.
10784
37.8k
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
10785
37.8k
            AssemblerOutputs::RetXmm { inst, xmm }
10786
37.8k
        }
10787
26.3k
        fn x64_vroundss_rvmi_raw(&mut self, xmm2: Xmm, xmm_m32: &XmmMem, imm8: u8) -> AssemblerOutputs {
10788
            // Convert ISLE types to assembler types.
10789
26.3k
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
10790
26.3k
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
10791
26.3k
            let xmm_m32 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
10792
26.3k
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
10793
10794
            // Build the instruction.
10795
26.3k
            let inst = cranelift_assembler_x64::inst::vroundss_rvmi::new(xmm1.clone(), xmm2.clone(), xmm_m32.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
10796
26.3k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
10797
10798
            // Return a type ISLE can work with.
10799
26.3k
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
10800
26.3k
            AssemblerOutputs::RetXmm { inst, xmm }
10801
26.3k
        }
10802
136k
        fn x64_seta_m_raw(&mut self, rm8: &GprMem) -> AssemblerOutputs {
10803
            // Convert ISLE types to assembler types.
10804
136k
            let rm8 = self.convert_gpr_mem_to_assembler_write_gpr_mem(rm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
10805
10806
            // Build the instruction.
10807
136k
            let inst = cranelift_assembler_x64::inst::seta_m::new(rm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
10808
136k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
10809
10810
            // Return a type ISLE can work with.
10811
136k
            match rm8 {
10812
136k
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
10813
136k
                    let gpr = reg.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
10814
136k
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
10815
                }
10816
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
10817
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
10818
                }
10819
            }
10820
136k
        }
10821
38.0k
        fn x64_setae_m_raw(&mut self, rm8: &GprMem) -> AssemblerOutputs {
10822
            // Convert ISLE types to assembler types.
10823
38.0k
            let rm8 = self.convert_gpr_mem_to_assembler_write_gpr_mem(rm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
10824
10825
            // Build the instruction.
10826
38.0k
            let inst = cranelift_assembler_x64::inst::setae_m::new(rm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
10827
38.0k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
10828
10829
            // Return a type ISLE can work with.
10830
38.0k
            match rm8 {
10831
38.0k
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
10832
38.0k
                    let gpr = reg.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
10833
38.0k
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
10834
                }
10835
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
10836
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
10837
                }
10838
            }
10839
38.0k
        }
10840
538k
        fn x64_setb_m_raw(&mut self, rm8: &GprMem) -> AssemblerOutputs {
10841
            // Convert ISLE types to assembler types.
10842
538k
            let rm8 = self.convert_gpr_mem_to_assembler_write_gpr_mem(rm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
10843
10844
            // Build the instruction.
10845
538k
            let inst = cranelift_assembler_x64::inst::setb_m::new(rm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
10846
538k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
10847
10848
            // Return a type ISLE can work with.
10849
538k
            match rm8 {
10850
538k
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
10851
538k
                    let gpr = reg.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
10852
538k
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
10853
                }
10854
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
10855
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
10856
                }
10857
            }
10858
538k
        }
10859
6.94k
        fn x64_setbe_m_raw(&mut self, rm8: &GprMem) -> AssemblerOutputs {
10860
            // Convert ISLE types to assembler types.
10861
6.94k
            let rm8 = self.convert_gpr_mem_to_assembler_write_gpr_mem(rm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
10862
10863
            // Build the instruction.
10864
6.94k
            let inst = cranelift_assembler_x64::inst::setbe_m::new(rm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
10865
6.94k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
10866
10867
            // Return a type ISLE can work with.
10868
6.94k
            match rm8 {
10869
6.94k
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
10870
6.94k
                    let gpr = reg.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
10871
6.94k
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
10872
                }
10873
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
10874
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
10875
                }
10876
            }
10877
6.94k
        }
10878
210k
        fn x64_sete_m_raw(&mut self, rm8: &GprMem) -> AssemblerOutputs {
10879
            // Convert ISLE types to assembler types.
10880
210k
            let rm8 = self.convert_gpr_mem_to_assembler_write_gpr_mem(rm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
10881
10882
            // Build the instruction.
10883
210k
            let inst = cranelift_assembler_x64::inst::sete_m::new(rm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
10884
210k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
10885
10886
            // Return a type ISLE can work with.
10887
210k
            match rm8 {
10888
210k
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
10889
210k
                    let gpr = reg.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
10890
210k
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
10891
                }
10892
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
10893
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
10894
                }
10895
            }
10896
210k
        }
10897
3.06k
        fn x64_setg_m_raw(&mut self, rm8: &GprMem) -> AssemblerOutputs {
10898
            // Convert ISLE types to assembler types.
10899
3.06k
            let rm8 = self.convert_gpr_mem_to_assembler_write_gpr_mem(rm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
10900
10901
            // Build the instruction.
10902
3.06k
            let inst = cranelift_assembler_x64::inst::setg_m::new(rm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
10903
3.06k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
10904
10905
            // Return a type ISLE can work with.
10906
3.06k
            match rm8 {
10907
3.06k
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
10908
3.06k
                    let gpr = reg.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
10909
3.06k
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
10910
                }
10911
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
10912
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
10913
                }
10914
            }
10915
3.06k
        }
10916
9.00k
        fn x64_setge_m_raw(&mut self, rm8: &GprMem) -> AssemblerOutputs {
10917
            // Convert ISLE types to assembler types.
10918
9.00k
            let rm8 = self.convert_gpr_mem_to_assembler_write_gpr_mem(rm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
10919
10920
            // Build the instruction.
10921
9.00k
            let inst = cranelift_assembler_x64::inst::setge_m::new(rm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
10922
9.00k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
10923
10924
            // Return a type ISLE can work with.
10925
9.00k
            match rm8 {
10926
9.00k
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
10927
9.00k
                    let gpr = reg.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
10928
9.00k
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
10929
                }
10930
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
10931
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
10932
                }
10933
            }
10934
9.00k
        }
10935
3.62k
        fn x64_setl_m_raw(&mut self, rm8: &GprMem) -> AssemblerOutputs {
10936
            // Convert ISLE types to assembler types.
10937
3.62k
            let rm8 = self.convert_gpr_mem_to_assembler_write_gpr_mem(rm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
10938
10939
            // Build the instruction.
10940
3.62k
            let inst = cranelift_assembler_x64::inst::setl_m::new(rm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
10941
3.62k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
10942
10943
            // Return a type ISLE can work with.
10944
3.62k
            match rm8 {
10945
3.62k
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
10946
3.62k
                    let gpr = reg.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
10947
3.62k
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
10948
                }
10949
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
10950
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
10951
                }
10952
            }
10953
3.62k
        }
10954
4.10k
        fn x64_setle_m_raw(&mut self, rm8: &GprMem) -> AssemblerOutputs {
10955
            // Convert ISLE types to assembler types.
10956
4.10k
            let rm8 = self.convert_gpr_mem_to_assembler_write_gpr_mem(rm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
10957
10958
            // Build the instruction.
10959
4.10k
            let inst = cranelift_assembler_x64::inst::setle_m::new(rm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
10960
4.10k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
10961
10962
            // Return a type ISLE can work with.
10963
4.10k
            match rm8 {
10964
4.10k
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
10965
4.10k
                    let gpr = reg.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
10966
4.10k
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
10967
                }
10968
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
10969
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
10970
                }
10971
            }
10972
4.10k
        }
10973
36.6k
        fn x64_setne_m_raw(&mut self, rm8: &GprMem) -> AssemblerOutputs {
10974
            // Convert ISLE types to assembler types.
10975
36.6k
            let rm8 = self.convert_gpr_mem_to_assembler_write_gpr_mem(rm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
10976
10977
            // Build the instruction.
10978
36.6k
            let inst = cranelift_assembler_x64::inst::setne_m::new(rm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
10979
36.6k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
10980
10981
            // Return a type ISLE can work with.
10982
36.6k
            match rm8 {
10983
36.6k
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
10984
36.6k
                    let gpr = reg.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
10985
36.6k
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
10986
                }
10987
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
10988
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
10989
                }
10990
            }
10991
36.6k
        }
10992
0
        fn x64_setno_m_raw(&mut self, rm8: &GprMem) -> AssemblerOutputs {
10993
            // Convert ISLE types to assembler types.
10994
0
            let rm8 = self.convert_gpr_mem_to_assembler_write_gpr_mem(rm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
10995
10996
            // Build the instruction.
10997
0
            let inst = cranelift_assembler_x64::inst::setno_m::new(rm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
10998
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
10999
11000
            // Return a type ISLE can work with.
11001
0
            match rm8 {
11002
0
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
11003
0
                    let gpr = reg.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
11004
0
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
11005
                }
11006
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
11007
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
11008
                }
11009
            }
11010
0
        }
11011
33.8k
        fn x64_setnp_m_raw(&mut self, rm8: &GprMem) -> AssemblerOutputs {
11012
            // Convert ISLE types to assembler types.
11013
33.8k
            let rm8 = self.convert_gpr_mem_to_assembler_write_gpr_mem(rm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
11014
11015
            // Build the instruction.
11016
33.8k
            let inst = cranelift_assembler_x64::inst::setnp_m::new(rm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
11017
33.8k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
11018
11019
            // Return a type ISLE can work with.
11020
33.8k
            match rm8 {
11021
33.8k
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
11022
33.8k
                    let gpr = reg.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
11023
33.8k
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
11024
                }
11025
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
11026
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
11027
                }
11028
            }
11029
33.8k
        }
11030
0
        fn x64_setns_m_raw(&mut self, rm8: &GprMem) -> AssemblerOutputs {
11031
            // Convert ISLE types to assembler types.
11032
0
            let rm8 = self.convert_gpr_mem_to_assembler_write_gpr_mem(rm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
11033
11034
            // Build the instruction.
11035
0
            let inst = cranelift_assembler_x64::inst::setns_m::new(rm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
11036
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
11037
11038
            // Return a type ISLE can work with.
11039
0
            match rm8 {
11040
0
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
11041
0
                    let gpr = reg.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
11042
0
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
11043
                }
11044
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
11045
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
11046
                }
11047
            }
11048
0
        }
11049
2.60k
        fn x64_seto_m_raw(&mut self, rm8: &GprMem) -> AssemblerOutputs {
11050
            // Convert ISLE types to assembler types.
11051
2.60k
            let rm8 = self.convert_gpr_mem_to_assembler_write_gpr_mem(rm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
11052
11053
            // Build the instruction.
11054
2.60k
            let inst = cranelift_assembler_x64::inst::seto_m::new(rm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
11055
2.60k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
11056
11057
            // Return a type ISLE can work with.
11058
2.60k
            match rm8 {
11059
2.60k
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
11060
2.60k
                    let gpr = reg.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
11061
2.60k
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
11062
                }
11063
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
11064
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
11065
                }
11066
            }
11067
2.60k
        }
11068
26.6k
        fn x64_setp_m_raw(&mut self, rm8: &GprMem) -> AssemblerOutputs {
11069
            // Convert ISLE types to assembler types.
11070
26.6k
            let rm8 = self.convert_gpr_mem_to_assembler_write_gpr_mem(rm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
11071
11072
            // Build the instruction.
11073
26.6k
            let inst = cranelift_assembler_x64::inst::setp_m::new(rm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
11074
26.6k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
11075
11076
            // Return a type ISLE can work with.
11077
26.6k
            match rm8 {
11078
26.6k
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
11079
26.6k
                    let gpr = reg.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
11080
26.6k
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
11081
                }
11082
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
11083
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
11084
                }
11085
            }
11086
26.6k
        }
11087
0
        fn x64_sets_m_raw(&mut self, rm8: &GprMem) -> AssemblerOutputs {
11088
            // Convert ISLE types to assembler types.
11089
0
            let rm8 = self.convert_gpr_mem_to_assembler_write_gpr_mem(rm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
11090
11091
            // Build the instruction.
11092
0
            let inst = cranelift_assembler_x64::inst::sets_m::new(rm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
11093
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
11094
11095
            // Return a type ISLE can work with.
11096
0
            match rm8 {
11097
0
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
11098
0
                    let gpr = reg.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
11099
0
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
11100
                }
11101
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
11102
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
11103
                }
11104
            }
11105
0
        }
11106
234
        fn x64_sarb_mc_raw(&mut self, rm8: &GprMem, cl: Gpr) -> AssemblerOutputs {
11107
            // Convert ISLE types to assembler types.
11108
234
            let rm8 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
11109
234
            let cl = cranelift_assembler_x64::Fixed(cl); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
11110
11111
            // Build the instruction.
11112
234
            let inst = cranelift_assembler_x64::inst::sarb_mc::new(rm8.clone(), cl.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
11113
234
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
11114
11115
            // Return a type ISLE can work with.
11116
234
            match rm8 {
11117
234
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
11118
234
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
11119
234
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
11120
                }
11121
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
11122
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
11123
                }
11124
            }
11125
234
        }
11126
9
        fn x64_sarb_mi_raw(&mut self, rm8: &GprMem, imm8: u8) -> AssemblerOutputs {
11127
            // Convert ISLE types to assembler types.
11128
9
            let rm8 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
11129
9
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
11130
11131
            // Build the instruction.
11132
9
            let inst = cranelift_assembler_x64::inst::sarb_mi::new(rm8.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
11133
9
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
11134
11135
            // Return a type ISLE can work with.
11136
9
            match rm8 {
11137
9
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
11138
9
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
11139
9
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
11140
                }
11141
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
11142
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
11143
                }
11144
            }
11145
9
        }
11146
0
        fn x64_sarb_m1_raw(&mut self, rm8: &GprMem) -> AssemblerOutputs {
11147
            // Convert ISLE types to assembler types.
11148
0
            let rm8 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
11149
11150
            // Build the instruction.
11151
0
            let inst = cranelift_assembler_x64::inst::sarb_m1::new(rm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
11152
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
11153
11154
            // Return a type ISLE can work with.
11155
0
            match rm8 {
11156
0
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
11157
0
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
11158
0
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
11159
                }
11160
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
11161
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
11162
                }
11163
            }
11164
0
        }
11165
1.91k
        fn x64_sarw_mc_raw(&mut self, rm16: &GprMem, cl: Gpr) -> AssemblerOutputs {
11166
            // Convert ISLE types to assembler types.
11167
1.91k
            let rm16 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
11168
1.91k
            let cl = cranelift_assembler_x64::Fixed(cl); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
11169
11170
            // Build the instruction.
11171
1.91k
            let inst = cranelift_assembler_x64::inst::sarw_mc::new(rm16.clone(), cl.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
11172
1.91k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
11173
11174
            // Return a type ISLE can work with.
11175
1.91k
            match rm16 {
11176
1.91k
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
11177
1.91k
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
11178
1.91k
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
11179
                }
11180
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
11181
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
11182
                }
11183
            }
11184
1.91k
        }
11185
89
        fn x64_sarw_mi_raw(&mut self, rm16: &GprMem, imm8: u8) -> AssemblerOutputs {
11186
            // Convert ISLE types to assembler types.
11187
89
            let rm16 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
11188
89
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
11189
11190
            // Build the instruction.
11191
89
            let inst = cranelift_assembler_x64::inst::sarw_mi::new(rm16.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
11192
89
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
11193
11194
            // Return a type ISLE can work with.
11195
89
            match rm16 {
11196
89
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
11197
89
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
11198
89
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
11199
                }
11200
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
11201
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
11202
                }
11203
            }
11204
89
        }
11205
6
        fn x64_sarw_m1_raw(&mut self, rm16: &GprMem) -> AssemblerOutputs {
11206
            // Convert ISLE types to assembler types.
11207
6
            let rm16 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
11208
11209
            // Build the instruction.
11210
6
            let inst = cranelift_assembler_x64::inst::sarw_m1::new(rm16.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
11211
6
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
11212
11213
            // Return a type ISLE can work with.
11214
6
            match rm16 {
11215
6
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
11216
6
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
11217
6
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
11218
                }
11219
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
11220
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
11221
                }
11222
            }
11223
6
        }
11224
49
        fn x64_sarl_mc_raw(&mut self, rm32: &GprMem, cl: Gpr) -> AssemblerOutputs {
11225
            // Convert ISLE types to assembler types.
11226
49
            let rm32 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
11227
49
            let cl = cranelift_assembler_x64::Fixed(cl); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
11228
11229
            // Build the instruction.
11230
49
            let inst = cranelift_assembler_x64::inst::sarl_mc::new(rm32.clone(), cl.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
11231
49
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
11232
11233
            // Return a type ISLE can work with.
11234
49
            match rm32 {
11235
49
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
11236
49
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
11237
49
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
11238
                }
11239
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
11240
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
11241
                }
11242
            }
11243
49
        }
11244
1.86k
        fn x64_sarl_mi_raw(&mut self, rm32: &GprMem, imm8: u8) -> AssemblerOutputs {
11245
            // Convert ISLE types to assembler types.
11246
1.86k
            let rm32 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
11247
1.86k
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
11248
11249
            // Build the instruction.
11250
1.86k
            let inst = cranelift_assembler_x64::inst::sarl_mi::new(rm32.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
11251
1.86k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
11252
11253
            // Return a type ISLE can work with.
11254
1.86k
            match rm32 {
11255
1.86k
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
11256
1.86k
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
11257
1.86k
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
11258
                }
11259
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
11260
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
11261
                }
11262
            }
11263
1.86k
        }
11264
148
        fn x64_sarl_m1_raw(&mut self, rm32: &GprMem) -> AssemblerOutputs {
11265
            // Convert ISLE types to assembler types.
11266
148
            let rm32 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
11267
11268
            // Build the instruction.
11269
148
            let inst = cranelift_assembler_x64::inst::sarl_m1::new(rm32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
11270
148
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
11271
11272
            // Return a type ISLE can work with.
11273
148
            match rm32 {
11274
148
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
11275
148
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
11276
148
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
11277
                }
11278
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
11279
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
11280
                }
11281
            }
11282
148
        }
11283
229
        fn x64_sarq_mc_raw(&mut self, rm64: &GprMem, cl: Gpr) -> AssemblerOutputs {
11284
            // Convert ISLE types to assembler types.
11285
229
            let rm64 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
11286
229
            let cl = cranelift_assembler_x64::Fixed(cl); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
11287
11288
            // Build the instruction.
11289
229
            let inst = cranelift_assembler_x64::inst::sarq_mc::new(rm64.clone(), cl.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
11290
229
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
11291
11292
            // Return a type ISLE can work with.
11293
229
            match rm64 {
11294
229
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
11295
229
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
11296
229
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
11297
                }
11298
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
11299
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
11300
                }
11301
            }
11302
229
        }
11303
23.2k
        fn x64_sarq_mi_raw(&mut self, rm64: &GprMem, imm8: u8) -> AssemblerOutputs {
11304
            // Convert ISLE types to assembler types.
11305
23.2k
            let rm64 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
11306
23.2k
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
11307
11308
            // Build the instruction.
11309
23.2k
            let inst = cranelift_assembler_x64::inst::sarq_mi::new(rm64.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
11310
23.2k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
11311
11312
            // Return a type ISLE can work with.
11313
23.2k
            match rm64 {
11314
23.2k
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
11315
23.2k
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
11316
23.2k
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
11317
                }
11318
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
11319
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
11320
                }
11321
            }
11322
23.2k
        }
11323
105
        fn x64_sarq_m1_raw(&mut self, rm64: &GprMem) -> AssemblerOutputs {
11324
            // Convert ISLE types to assembler types.
11325
105
            let rm64 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
11326
11327
            // Build the instruction.
11328
105
            let inst = cranelift_assembler_x64::inst::sarq_m1::new(rm64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
11329
105
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
11330
11331
            // Return a type ISLE can work with.
11332
105
            match rm64 {
11333
105
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
11334
105
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
11335
105
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
11336
                }
11337
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
11338
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
11339
                }
11340
            }
11341
105
        }
11342
1.81k
        fn x64_shlb_mc_raw(&mut self, rm8: &GprMem, cl: Gpr) -> AssemblerOutputs {
11343
            // Convert ISLE types to assembler types.
11344
1.81k
            let rm8 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
11345
1.81k
            let cl = cranelift_assembler_x64::Fixed(cl); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
11346
11347
            // Build the instruction.
11348
1.81k
            let inst = cranelift_assembler_x64::inst::shlb_mc::new(rm8.clone(), cl.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
11349
1.81k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
11350
11351
            // Return a type ISLE can work with.
11352
1.81k
            match rm8 {
11353
1.81k
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
11354
1.81k
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
11355
1.81k
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
11356
                }
11357
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
11358
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
11359
                }
11360
            }
11361
1.81k
        }
11362
70
        fn x64_shlb_mi_raw(&mut self, rm8: &GprMem, imm8: u8) -> AssemblerOutputs {
11363
            // Convert ISLE types to assembler types.
11364
70
            let rm8 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
11365
70
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
11366
11367
            // Build the instruction.
11368
70
            let inst = cranelift_assembler_x64::inst::shlb_mi::new(rm8.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
11369
70
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
11370
11371
            // Return a type ISLE can work with.
11372
70
            match rm8 {
11373
70
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
11374
70
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
11375
70
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
11376
                }
11377
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
11378
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
11379
                }
11380
            }
11381
70
        }
11382
9
        fn x64_shlb_m1_raw(&mut self, rm8: &GprMem) -> AssemblerOutputs {
11383
            // Convert ISLE types to assembler types.
11384
9
            let rm8 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
11385
11386
            // Build the instruction.
11387
9
            let inst = cranelift_assembler_x64::inst::shlb_m1::new(rm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
11388
9
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
11389
11390
            // Return a type ISLE can work with.
11391
9
            match rm8 {
11392
9
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
11393
9
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
11394
9
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
11395
                }
11396
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
11397
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
11398
                }
11399
            }
11400
9
        }
11401
176
        fn x64_shlw_mc_raw(&mut self, rm16: &GprMem, cl: Gpr) -> AssemblerOutputs {
11402
            // Convert ISLE types to assembler types.
11403
176
            let rm16 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
11404
176
            let cl = cranelift_assembler_x64::Fixed(cl); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
11405
11406
            // Build the instruction.
11407
176
            let inst = cranelift_assembler_x64::inst::shlw_mc::new(rm16.clone(), cl.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
11408
176
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
11409
11410
            // Return a type ISLE can work with.
11411
176
            match rm16 {
11412
176
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
11413
176
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
11414
176
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
11415
                }
11416
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
11417
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
11418
                }
11419
            }
11420
176
        }
11421
39
        fn x64_shlw_mi_raw(&mut self, rm16: &GprMem, imm8: u8) -> AssemblerOutputs {
11422
            // Convert ISLE types to assembler types.
11423
39
            let rm16 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
11424
39
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
11425
11426
            // Build the instruction.
11427
39
            let inst = cranelift_assembler_x64::inst::shlw_mi::new(rm16.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
11428
39
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
11429
11430
            // Return a type ISLE can work with.
11431
39
            match rm16 {
11432
39
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
11433
39
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
11434
39
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
11435
                }
11436
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
11437
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
11438
                }
11439
            }
11440
39
        }
11441
9
        fn x64_shlw_m1_raw(&mut self, rm16: &GprMem) -> AssemblerOutputs {
11442
            // Convert ISLE types to assembler types.
11443
9
            let rm16 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
11444
11445
            // Build the instruction.
11446
9
            let inst = cranelift_assembler_x64::inst::shlw_m1::new(rm16.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
11447
9
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
11448
11449
            // Return a type ISLE can work with.
11450
9
            match rm16 {
11451
9
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
11452
9
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
11453
9
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
11454
                }
11455
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
11456
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
11457
                }
11458
            }
11459
9
        }
11460
75
        fn x64_shll_mc_raw(&mut self, rm32: &GprMem, cl: Gpr) -> AssemblerOutputs {
11461
            // Convert ISLE types to assembler types.
11462
75
            let rm32 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
11463
75
            let cl = cranelift_assembler_x64::Fixed(cl); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
11464
11465
            // Build the instruction.
11466
75
            let inst = cranelift_assembler_x64::inst::shll_mc::new(rm32.clone(), cl.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
11467
75
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
11468
11469
            // Return a type ISLE can work with.
11470
75
            match rm32 {
11471
75
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
11472
75
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
11473
75
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
11474
                }
11475
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
11476
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
11477
                }
11478
            }
11479
75
        }
11480
30.7k
        fn x64_shll_mi_raw(&mut self, rm32: &GprMem, imm8: u8) -> AssemblerOutputs {
11481
            // Convert ISLE types to assembler types.
11482
30.7k
            let rm32 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
11483
30.7k
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
11484
11485
            // Build the instruction.
11486
30.7k
            let inst = cranelift_assembler_x64::inst::shll_mi::new(rm32.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
11487
30.7k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
11488
11489
            // Return a type ISLE can work with.
11490
30.7k
            match rm32 {
11491
30.7k
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
11492
30.7k
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
11493
30.7k
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
11494
                }
11495
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
11496
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
11497
                }
11498
            }
11499
30.7k
        }
11500
6.64k
        fn x64_shll_m1_raw(&mut self, rm32: &GprMem) -> AssemblerOutputs {
11501
            // Convert ISLE types to assembler types.
11502
6.64k
            let rm32 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
11503
11504
            // Build the instruction.
11505
6.64k
            let inst = cranelift_assembler_x64::inst::shll_m1::new(rm32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
11506
6.64k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
11507
11508
            // Return a type ISLE can work with.
11509
6.64k
            match rm32 {
11510
6.64k
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
11511
6.64k
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
11512
6.64k
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
11513
                }
11514
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
11515
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
11516
                }
11517
            }
11518
6.64k
        }
11519
405
        fn x64_shlq_mc_raw(&mut self, rm64: &GprMem, cl: Gpr) -> AssemblerOutputs {
11520
            // Convert ISLE types to assembler types.
11521
405
            let rm64 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
11522
405
            let cl = cranelift_assembler_x64::Fixed(cl); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
11523
11524
            // Build the instruction.
11525
405
            let inst = cranelift_assembler_x64::inst::shlq_mc::new(rm64.clone(), cl.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
11526
405
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
11527
11528
            // Return a type ISLE can work with.
11529
405
            match rm64 {
11530
405
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
11531
405
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
11532
405
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
11533
                }
11534
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
11535
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
11536
                }
11537
            }
11538
405
        }
11539
67.6k
        fn x64_shlq_mi_raw(&mut self, rm64: &GprMem, imm8: u8) -> AssemblerOutputs {
11540
            // Convert ISLE types to assembler types.
11541
67.6k
            let rm64 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
11542
67.6k
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
11543
11544
            // Build the instruction.
11545
67.6k
            let inst = cranelift_assembler_x64::inst::shlq_mi::new(rm64.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
11546
67.6k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
11547
11548
            // Return a type ISLE can work with.
11549
67.6k
            match rm64 {
11550
67.6k
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
11551
67.6k
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
11552
67.6k
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
11553
                }
11554
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
11555
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
11556
                }
11557
            }
11558
67.6k
        }
11559
686
        fn x64_shlq_m1_raw(&mut self, rm64: &GprMem) -> AssemblerOutputs {
11560
            // Convert ISLE types to assembler types.
11561
686
            let rm64 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
11562
11563
            // Build the instruction.
11564
686
            let inst = cranelift_assembler_x64::inst::shlq_m1::new(rm64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
11565
686
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
11566
11567
            // Return a type ISLE can work with.
11568
686
            match rm64 {
11569
686
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
11570
686
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
11571
686
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
11572
                }
11573
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
11574
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
11575
                }
11576
            }
11577
686
        }
11578
914
        fn x64_shrb_mc_raw(&mut self, rm8: &GprMem, cl: Gpr) -> AssemblerOutputs {
11579
            // Convert ISLE types to assembler types.
11580
914
            let rm8 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
11581
914
            let cl = cranelift_assembler_x64::Fixed(cl); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
11582
11583
            // Build the instruction.
11584
914
            let inst = cranelift_assembler_x64::inst::shrb_mc::new(rm8.clone(), cl.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
11585
914
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
11586
11587
            // Return a type ISLE can work with.
11588
914
            match rm8 {
11589
914
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
11590
914
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
11591
914
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
11592
                }
11593
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
11594
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
11595
                }
11596
            }
11597
914
        }
11598
63
        fn x64_shrb_mi_raw(&mut self, rm8: &GprMem, imm8: u8) -> AssemblerOutputs {
11599
            // Convert ISLE types to assembler types.
11600
63
            let rm8 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
11601
63
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
11602
11603
            // Build the instruction.
11604
63
            let inst = cranelift_assembler_x64::inst::shrb_mi::new(rm8.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
11605
63
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
11606
11607
            // Return a type ISLE can work with.
11608
63
            match rm8 {
11609
63
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
11610
63
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
11611
63
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
11612
                }
11613
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
11614
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
11615
                }
11616
            }
11617
63
        }
11618
3
        fn x64_shrb_m1_raw(&mut self, rm8: &GprMem) -> AssemblerOutputs {
11619
            // Convert ISLE types to assembler types.
11620
3
            let rm8 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
11621
11622
            // Build the instruction.
11623
3
            let inst = cranelift_assembler_x64::inst::shrb_m1::new(rm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
11624
3
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
11625
11626
            // Return a type ISLE can work with.
11627
3
            match rm8 {
11628
3
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
11629
3
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
11630
3
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
11631
                }
11632
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
11633
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
11634
                }
11635
            }
11636
3
        }
11637
451
        fn x64_shrw_mc_raw(&mut self, rm16: &GprMem, cl: Gpr) -> AssemblerOutputs {
11638
            // Convert ISLE types to assembler types.
11639
451
            let rm16 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
11640
451
            let cl = cranelift_assembler_x64::Fixed(cl); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
11641
11642
            // Build the instruction.
11643
451
            let inst = cranelift_assembler_x64::inst::shrw_mc::new(rm16.clone(), cl.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
11644
451
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
11645
11646
            // Return a type ISLE can work with.
11647
451
            match rm16 {
11648
451
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
11649
451
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
11650
451
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
11651
                }
11652
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
11653
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
11654
                }
11655
            }
11656
451
        }
11657
3.73k
        fn x64_shrw_mi_raw(&mut self, rm16: &GprMem, imm8: u8) -> AssemblerOutputs {
11658
            // Convert ISLE types to assembler types.
11659
3.73k
            let rm16 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
11660
3.73k
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
11661
11662
            // Build the instruction.
11663
3.73k
            let inst = cranelift_assembler_x64::inst::shrw_mi::new(rm16.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
11664
3.73k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
11665
11666
            // Return a type ISLE can work with.
11667
3.73k
            match rm16 {
11668
3.73k
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
11669
3.73k
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
11670
3.73k
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
11671
                }
11672
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
11673
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
11674
                }
11675
            }
11676
3.73k
        }
11677
9
        fn x64_shrw_m1_raw(&mut self, rm16: &GprMem) -> AssemblerOutputs {
11678
            // Convert ISLE types to assembler types.
11679
9
            let rm16 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
11680
11681
            // Build the instruction.
11682
9
            let inst = cranelift_assembler_x64::inst::shrw_m1::new(rm16.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
11683
9
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
11684
11685
            // Return a type ISLE can work with.
11686
9
            match rm16 {
11687
9
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
11688
9
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
11689
9
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
11690
                }
11691
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
11692
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
11693
                }
11694
            }
11695
9
        }
11696
754
        fn x64_shrl_mc_raw(&mut self, rm32: &GprMem, cl: Gpr) -> AssemblerOutputs {
11697
            // Convert ISLE types to assembler types.
11698
754
            let rm32 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
11699
754
            let cl = cranelift_assembler_x64::Fixed(cl); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
11700
11701
            // Build the instruction.
11702
754
            let inst = cranelift_assembler_x64::inst::shrl_mc::new(rm32.clone(), cl.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
11703
754
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
11704
11705
            // Return a type ISLE can work with.
11706
754
            match rm32 {
11707
754
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
11708
754
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
11709
754
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
11710
                }
11711
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
11712
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
11713
                }
11714
            }
11715
754
        }
11716
28.7k
        fn x64_shrl_mi_raw(&mut self, rm32: &GprMem, imm8: u8) -> AssemblerOutputs {
11717
            // Convert ISLE types to assembler types.
11718
28.7k
            let rm32 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
11719
28.7k
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
11720
11721
            // Build the instruction.
11722
28.7k
            let inst = cranelift_assembler_x64::inst::shrl_mi::new(rm32.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
11723
28.7k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
11724
11725
            // Return a type ISLE can work with.
11726
28.7k
            match rm32 {
11727
28.7k
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
11728
28.7k
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
11729
28.7k
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
11730
                }
11731
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
11732
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
11733
                }
11734
            }
11735
28.7k
        }
11736
1.98k
        fn x64_shrl_m1_raw(&mut self, rm32: &GprMem) -> AssemblerOutputs {
11737
            // Convert ISLE types to assembler types.
11738
1.98k
            let rm32 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
11739
11740
            // Build the instruction.
11741
1.98k
            let inst = cranelift_assembler_x64::inst::shrl_m1::new(rm32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
11742
1.98k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
11743
11744
            // Return a type ISLE can work with.
11745
1.98k
            match rm32 {
11746
1.98k
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
11747
1.98k
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
11748
1.98k
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
11749
                }
11750
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
11751
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
11752
                }
11753
            }
11754
1.98k
        }
11755
421
        fn x64_shrq_mc_raw(&mut self, rm64: &GprMem, cl: Gpr) -> AssemblerOutputs {
11756
            // Convert ISLE types to assembler types.
11757
421
            let rm64 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
11758
421
            let cl = cranelift_assembler_x64::Fixed(cl); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
11759
11760
            // Build the instruction.
11761
421
            let inst = cranelift_assembler_x64::inst::shrq_mc::new(rm64.clone(), cl.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
11762
421
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
11763
11764
            // Return a type ISLE can work with.
11765
421
            match rm64 {
11766
421
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
11767
421
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
11768
421
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
11769
                }
11770
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
11771
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
11772
                }
11773
            }
11774
421
        }
11775
205k
        fn x64_shrq_mi_raw(&mut self, rm64: &GprMem, imm8: u8) -> AssemblerOutputs {
11776
            // Convert ISLE types to assembler types.
11777
205k
            let rm64 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
11778
205k
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
11779
11780
            // Build the instruction.
11781
205k
            let inst = cranelift_assembler_x64::inst::shrq_mi::new(rm64.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
11782
205k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
11783
11784
            // Return a type ISLE can work with.
11785
205k
            match rm64 {
11786
205k
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
11787
205k
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
11788
205k
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
11789
                }
11790
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
11791
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
11792
                }
11793
            }
11794
205k
        }
11795
421
        fn x64_shrq_m1_raw(&mut self, rm64: &GprMem) -> AssemblerOutputs {
11796
            // Convert ISLE types to assembler types.
11797
421
            let rm64 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
11798
11799
            // Build the instruction.
11800
421
            let inst = cranelift_assembler_x64::inst::shrq_m1::new(rm64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
11801
421
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
11802
11803
            // Return a type ISLE can work with.
11804
421
            match rm64 {
11805
421
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
11806
421
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
11807
421
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
11808
                }
11809
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
11810
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
11811
                }
11812
            }
11813
421
        }
11814
407
        fn x64_rolb_mc_raw(&mut self, rm8: &GprMem, cl: Gpr) -> AssemblerOutputs {
11815
            // Convert ISLE types to assembler types.
11816
407
            let rm8 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
11817
407
            let cl = cranelift_assembler_x64::Fixed(cl); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
11818
11819
            // Build the instruction.
11820
407
            let inst = cranelift_assembler_x64::inst::rolb_mc::new(rm8.clone(), cl.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
11821
407
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
11822
11823
            // Return a type ISLE can work with.
11824
407
            match rm8 {
11825
407
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
11826
407
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
11827
407
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
11828
                }
11829
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
11830
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
11831
                }
11832
            }
11833
407
        }
11834
12
        fn x64_rolb_mi_raw(&mut self, rm8: &GprMem, imm8: u8) -> AssemblerOutputs {
11835
            // Convert ISLE types to assembler types.
11836
12
            let rm8 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
11837
12
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
11838
11839
            // Build the instruction.
11840
12
            let inst = cranelift_assembler_x64::inst::rolb_mi::new(rm8.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
11841
12
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
11842
11843
            // Return a type ISLE can work with.
11844
12
            match rm8 {
11845
12
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
11846
12
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
11847
12
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
11848
                }
11849
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
11850
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
11851
                }
11852
            }
11853
12
        }
11854
30
        fn x64_rolb_m1_raw(&mut self, rm8: &GprMem) -> AssemblerOutputs {
11855
            // Convert ISLE types to assembler types.
11856
30
            let rm8 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
11857
11858
            // Build the instruction.
11859
30
            let inst = cranelift_assembler_x64::inst::rolb_m1::new(rm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
11860
30
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
11861
11862
            // Return a type ISLE can work with.
11863
30
            match rm8 {
11864
30
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
11865
30
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
11866
30
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
11867
                }
11868
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
11869
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
11870
                }
11871
            }
11872
30
        }
11873
6.69k
        fn x64_rolw_mc_raw(&mut self, rm16: &GprMem, cl: Gpr) -> AssemblerOutputs {
11874
            // Convert ISLE types to assembler types.
11875
6.69k
            let rm16 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
11876
6.69k
            let cl = cranelift_assembler_x64::Fixed(cl); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
11877
11878
            // Build the instruction.
11879
6.69k
            let inst = cranelift_assembler_x64::inst::rolw_mc::new(rm16.clone(), cl.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
11880
6.69k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
11881
11882
            // Return a type ISLE can work with.
11883
6.69k
            match rm16 {
11884
6.69k
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
11885
6.69k
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
11886
6.69k
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
11887
                }
11888
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
11889
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
11890
                }
11891
            }
11892
6.69k
        }
11893
408
        fn x64_rolw_mi_raw(&mut self, rm16: &GprMem, imm8: u8) -> AssemblerOutputs {
11894
            // Convert ISLE types to assembler types.
11895
408
            let rm16 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
11896
408
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
11897
11898
            // Build the instruction.
11899
408
            let inst = cranelift_assembler_x64::inst::rolw_mi::new(rm16.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
11900
408
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
11901
11902
            // Return a type ISLE can work with.
11903
408
            match rm16 {
11904
408
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
11905
408
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
11906
408
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
11907
                }
11908
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
11909
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
11910
                }
11911
            }
11912
408
        }
11913
151
        fn x64_rolw_m1_raw(&mut self, rm16: &GprMem) -> AssemblerOutputs {
11914
            // Convert ISLE types to assembler types.
11915
151
            let rm16 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
11916
11917
            // Build the instruction.
11918
151
            let inst = cranelift_assembler_x64::inst::rolw_m1::new(rm16.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
11919
151
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
11920
11921
            // Return a type ISLE can work with.
11922
151
            match rm16 {
11923
151
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
11924
151
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
11925
151
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
11926
                }
11927
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
11928
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
11929
                }
11930
            }
11931
151
        }
11932
1.49k
        fn x64_roll_mc_raw(&mut self, rm32: &GprMem, cl: Gpr) -> AssemblerOutputs {
11933
            // Convert ISLE types to assembler types.
11934
1.49k
            let rm32 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
11935
1.49k
            let cl = cranelift_assembler_x64::Fixed(cl); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
11936
11937
            // Build the instruction.
11938
1.49k
            let inst = cranelift_assembler_x64::inst::roll_mc::new(rm32.clone(), cl.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
11939
1.49k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
11940
11941
            // Return a type ISLE can work with.
11942
1.49k
            match rm32 {
11943
1.49k
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
11944
1.49k
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
11945
1.49k
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
11946
                }
11947
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
11948
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
11949
                }
11950
            }
11951
1.49k
        }
11952
29
        fn x64_roll_mi_raw(&mut self, rm32: &GprMem, imm8: u8) -> AssemblerOutputs {
11953
            // Convert ISLE types to assembler types.
11954
29
            let rm32 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
11955
29
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
11956
11957
            // Build the instruction.
11958
29
            let inst = cranelift_assembler_x64::inst::roll_mi::new(rm32.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
11959
29
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
11960
11961
            // Return a type ISLE can work with.
11962
29
            match rm32 {
11963
29
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
11964
29
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
11965
29
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
11966
                }
11967
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
11968
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
11969
                }
11970
            }
11971
29
        }
11972
6
        fn x64_roll_m1_raw(&mut self, rm32: &GprMem) -> AssemblerOutputs {
11973
            // Convert ISLE types to assembler types.
11974
6
            let rm32 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
11975
11976
            // Build the instruction.
11977
6
            let inst = cranelift_assembler_x64::inst::roll_m1::new(rm32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
11978
6
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
11979
11980
            // Return a type ISLE can work with.
11981
6
            match rm32 {
11982
6
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
11983
6
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
11984
6
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
11985
                }
11986
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
11987
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
11988
                }
11989
            }
11990
6
        }
11991
2.17k
        fn x64_rolq_mc_raw(&mut self, rm64: &GprMem, cl: Gpr) -> AssemblerOutputs {
11992
            // Convert ISLE types to assembler types.
11993
2.17k
            let rm64 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
11994
2.17k
            let cl = cranelift_assembler_x64::Fixed(cl); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
11995
11996
            // Build the instruction.
11997
2.17k
            let inst = cranelift_assembler_x64::inst::rolq_mc::new(rm64.clone(), cl.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
11998
2.17k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
11999
12000
            // Return a type ISLE can work with.
12001
2.17k
            match rm64 {
12002
2.17k
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
12003
2.17k
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
12004
2.17k
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
12005
                }
12006
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
12007
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
12008
                }
12009
            }
12010
2.17k
        }
12011
33
        fn x64_rolq_mi_raw(&mut self, rm64: &GprMem, imm8: u8) -> AssemblerOutputs {
12012
            // Convert ISLE types to assembler types.
12013
33
            let rm64 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
12014
33
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
12015
12016
            // Build the instruction.
12017
33
            let inst = cranelift_assembler_x64::inst::rolq_mi::new(rm64.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
12018
33
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
12019
12020
            // Return a type ISLE can work with.
12021
33
            match rm64 {
12022
33
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
12023
33
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
12024
33
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
12025
                }
12026
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
12027
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
12028
                }
12029
            }
12030
33
        }
12031
1
        fn x64_rolq_m1_raw(&mut self, rm64: &GprMem) -> AssemblerOutputs {
12032
            // Convert ISLE types to assembler types.
12033
1
            let rm64 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
12034
12035
            // Build the instruction.
12036
1
            let inst = cranelift_assembler_x64::inst::rolq_m1::new(rm64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
12037
1
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
12038
12039
            // Return a type ISLE can work with.
12040
1
            match rm64 {
12041
1
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
12042
1
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
12043
1
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
12044
                }
12045
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
12046
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
12047
                }
12048
            }
12049
1
        }
12050
471
        fn x64_rorb_mc_raw(&mut self, rm8: &GprMem, cl: Gpr) -> AssemblerOutputs {
12051
            // Convert ISLE types to assembler types.
12052
471
            let rm8 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
12053
471
            let cl = cranelift_assembler_x64::Fixed(cl); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
12054
12055
            // Build the instruction.
12056
471
            let inst = cranelift_assembler_x64::inst::rorb_mc::new(rm8.clone(), cl.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
12057
471
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
12058
12059
            // Return a type ISLE can work with.
12060
471
            match rm8 {
12061
471
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
12062
471
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
12063
471
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
12064
                }
12065
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
12066
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
12067
                }
12068
            }
12069
471
        }
12070
15
        fn x64_rorb_mi_raw(&mut self, rm8: &GprMem, imm8: u8) -> AssemblerOutputs {
12071
            // Convert ISLE types to assembler types.
12072
15
            let rm8 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
12073
15
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
12074
12075
            // Build the instruction.
12076
15
            let inst = cranelift_assembler_x64::inst::rorb_mi::new(rm8.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
12077
15
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
12078
12079
            // Return a type ISLE can work with.
12080
15
            match rm8 {
12081
15
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
12082
15
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
12083
15
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
12084
                }
12085
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
12086
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
12087
                }
12088
            }
12089
15
        }
12090
0
        fn x64_rorb_m1_raw(&mut self, rm8: &GprMem) -> AssemblerOutputs {
12091
            // Convert ISLE types to assembler types.
12092
0
            let rm8 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
12093
12094
            // Build the instruction.
12095
0
            let inst = cranelift_assembler_x64::inst::rorb_m1::new(rm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
12096
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
12097
12098
            // Return a type ISLE can work with.
12099
0
            match rm8 {
12100
0
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
12101
0
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
12102
0
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
12103
                }
12104
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
12105
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
12106
                }
12107
            }
12108
0
        }
12109
3.78k
        fn x64_rorw_mc_raw(&mut self, rm16: &GprMem, cl: Gpr) -> AssemblerOutputs {
12110
            // Convert ISLE types to assembler types.
12111
3.78k
            let rm16 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
12112
3.78k
            let cl = cranelift_assembler_x64::Fixed(cl); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
12113
12114
            // Build the instruction.
12115
3.78k
            let inst = cranelift_assembler_x64::inst::rorw_mc::new(rm16.clone(), cl.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
12116
3.78k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
12117
12118
            // Return a type ISLE can work with.
12119
3.78k
            match rm16 {
12120
3.78k
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
12121
3.78k
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
12122
3.78k
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
12123
                }
12124
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
12125
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
12126
                }
12127
            }
12128
3.78k
        }
12129
628
        fn x64_rorw_mi_raw(&mut self, rm16: &GprMem, imm8: u8) -> AssemblerOutputs {
12130
            // Convert ISLE types to assembler types.
12131
628
            let rm16 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
12132
628
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
12133
12134
            // Build the instruction.
12135
628
            let inst = cranelift_assembler_x64::inst::rorw_mi::new(rm16.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
12136
628
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
12137
12138
            // Return a type ISLE can work with.
12139
628
            match rm16 {
12140
628
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
12141
628
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
12142
628
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
12143
                }
12144
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
12145
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
12146
                }
12147
            }
12148
628
        }
12149
15
        fn x64_rorw_m1_raw(&mut self, rm16: &GprMem) -> AssemblerOutputs {
12150
            // Convert ISLE types to assembler types.
12151
15
            let rm16 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
12152
12153
            // Build the instruction.
12154
15
            let inst = cranelift_assembler_x64::inst::rorw_m1::new(rm16.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
12155
15
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
12156
12157
            // Return a type ISLE can work with.
12158
15
            match rm16 {
12159
15
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
12160
15
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
12161
15
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
12162
                }
12163
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
12164
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
12165
                }
12166
            }
12167
15
        }
12168
1.18k
        fn x64_rorl_mc_raw(&mut self, rm32: &GprMem, cl: Gpr) -> AssemblerOutputs {
12169
            // Convert ISLE types to assembler types.
12170
1.18k
            let rm32 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
12171
1.18k
            let cl = cranelift_assembler_x64::Fixed(cl); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
12172
12173
            // Build the instruction.
12174
1.18k
            let inst = cranelift_assembler_x64::inst::rorl_mc::new(rm32.clone(), cl.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
12175
1.18k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
12176
12177
            // Return a type ISLE can work with.
12178
1.18k
            match rm32 {
12179
1.18k
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
12180
1.18k
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
12181
1.18k
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
12182
                }
12183
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
12184
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
12185
                }
12186
            }
12187
1.18k
        }
12188
15
        fn x64_rorl_mi_raw(&mut self, rm32: &GprMem, imm8: u8) -> AssemblerOutputs {
12189
            // Convert ISLE types to assembler types.
12190
15
            let rm32 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
12191
15
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
12192
12193
            // Build the instruction.
12194
15
            let inst = cranelift_assembler_x64::inst::rorl_mi::new(rm32.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
12195
15
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
12196
12197
            // Return a type ISLE can work with.
12198
15
            match rm32 {
12199
15
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
12200
15
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
12201
15
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
12202
                }
12203
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
12204
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
12205
                }
12206
            }
12207
15
        }
12208
1
        fn x64_rorl_m1_raw(&mut self, rm32: &GprMem) -> AssemblerOutputs {
12209
            // Convert ISLE types to assembler types.
12210
1
            let rm32 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
12211
12212
            // Build the instruction.
12213
1
            let inst = cranelift_assembler_x64::inst::rorl_m1::new(rm32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
12214
1
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
12215
12216
            // Return a type ISLE can work with.
12217
1
            match rm32 {
12218
1
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
12219
1
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
12220
1
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
12221
                }
12222
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
12223
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
12224
                }
12225
            }
12226
1
        }
12227
1.30k
        fn x64_rorq_mc_raw(&mut self, rm64: &GprMem, cl: Gpr) -> AssemblerOutputs {
12228
            // Convert ISLE types to assembler types.
12229
1.30k
            let rm64 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
12230
1.30k
            let cl = cranelift_assembler_x64::Fixed(cl); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
12231
12232
            // Build the instruction.
12233
1.30k
            let inst = cranelift_assembler_x64::inst::rorq_mc::new(rm64.clone(), cl.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
12234
1.30k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
12235
12236
            // Return a type ISLE can work with.
12237
1.30k
            match rm64 {
12238
1.30k
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
12239
1.30k
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
12240
1.30k
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
12241
                }
12242
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
12243
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
12244
                }
12245
            }
12246
1.30k
        }
12247
23
        fn x64_rorq_mi_raw(&mut self, rm64: &GprMem, imm8: u8) -> AssemblerOutputs {
12248
            // Convert ISLE types to assembler types.
12249
23
            let rm64 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
12250
23
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
12251
12252
            // Build the instruction.
12253
23
            let inst = cranelift_assembler_x64::inst::rorq_mi::new(rm64.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
12254
23
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
12255
12256
            // Return a type ISLE can work with.
12257
23
            match rm64 {
12258
23
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
12259
23
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
12260
23
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
12261
                }
12262
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
12263
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
12264
                }
12265
            }
12266
23
        }
12267
0
        fn x64_rorq_m1_raw(&mut self, rm64: &GprMem) -> AssemblerOutputs {
12268
            // Convert ISLE types to assembler types.
12269
0
            let rm64 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
12270
12271
            // Build the instruction.
12272
0
            let inst = cranelift_assembler_x64::inst::rorq_m1::new(rm64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
12273
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
12274
12275
            // Return a type ISLE can work with.
12276
0
            match rm64 {
12277
0
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
12278
0
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
12279
0
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
12280
                }
12281
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
12282
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
12283
                }
12284
            }
12285
0
        }
12286
0
        fn x64_shldw_mri_raw(&mut self, rm16: &GprMem, r16: Gpr, imm8: u8) -> AssemblerOutputs {
12287
            // Convert ISLE types to assembler types.
12288
0
            let rm16 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
12289
0
            let r16 = cranelift_assembler_x64::Gpr::new(r16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
12290
0
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
12291
12292
            // Build the instruction.
12293
0
            let inst = cranelift_assembler_x64::inst::shldw_mri::new(rm16.clone(), r16.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
12294
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
12295
12296
            // Return a type ISLE can work with.
12297
0
            match rm16 {
12298
0
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
12299
0
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
12300
0
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
12301
                }
12302
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
12303
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
12304
                }
12305
            }
12306
0
        }
12307
0
        fn x64_shldw_mrc_raw(&mut self, rm16: &GprMem, r16: Gpr, cl: Gpr) -> AssemblerOutputs {
12308
            // Convert ISLE types to assembler types.
12309
0
            let rm16 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
12310
0
            let r16 = cranelift_assembler_x64::Gpr::new(r16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
12311
0
            let cl = cranelift_assembler_x64::Fixed(cl); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
12312
12313
            // Build the instruction.
12314
0
            let inst = cranelift_assembler_x64::inst::shldw_mrc::new(rm16.clone(), r16.clone(), cl.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
12315
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
12316
12317
            // Return a type ISLE can work with.
12318
0
            match rm16 {
12319
0
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
12320
0
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
12321
0
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
12322
                }
12323
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
12324
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
12325
                }
12326
            }
12327
0
        }
12328
0
        fn x64_shldl_mri_raw(&mut self, rm32: &GprMem, r32: Gpr, imm8: u8) -> AssemblerOutputs {
12329
            // Convert ISLE types to assembler types.
12330
0
            let rm32 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
12331
0
            let r32 = cranelift_assembler_x64::Gpr::new(r32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
12332
0
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
12333
12334
            // Build the instruction.
12335
0
            let inst = cranelift_assembler_x64::inst::shldl_mri::new(rm32.clone(), r32.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
12336
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
12337
12338
            // Return a type ISLE can work with.
12339
0
            match rm32 {
12340
0
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
12341
0
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
12342
0
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
12343
                }
12344
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
12345
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
12346
                }
12347
            }
12348
0
        }
12349
12
        fn x64_shldq_mri_raw(&mut self, rm64: &GprMem, r64: Gpr, imm8: u8) -> AssemblerOutputs {
12350
            // Convert ISLE types to assembler types.
12351
12
            let rm64 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
12352
12
            let r64 = cranelift_assembler_x64::Gpr::new(r64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
12353
12
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
12354
12355
            // Build the instruction.
12356
12
            let inst = cranelift_assembler_x64::inst::shldq_mri::new(rm64.clone(), r64.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
12357
12
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
12358
12359
            // Return a type ISLE can work with.
12360
12
            match rm64 {
12361
12
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
12362
12
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
12363
12
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
12364
                }
12365
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
12366
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
12367
                }
12368
            }
12369
12
        }
12370
0
        fn x64_shldl_mrc_raw(&mut self, rm32: &GprMem, r32: Gpr, cl: Gpr) -> AssemblerOutputs {
12371
            // Convert ISLE types to assembler types.
12372
0
            let rm32 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
12373
0
            let r32 = cranelift_assembler_x64::Gpr::new(r32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
12374
0
            let cl = cranelift_assembler_x64::Fixed(cl); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
12375
12376
            // Build the instruction.
12377
0
            let inst = cranelift_assembler_x64::inst::shldl_mrc::new(rm32.clone(), r32.clone(), cl.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
12378
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
12379
12380
            // Return a type ISLE can work with.
12381
0
            match rm32 {
12382
0
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
12383
0
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
12384
0
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
12385
                }
12386
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
12387
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
12388
                }
12389
            }
12390
0
        }
12391
0
        fn x64_shldq_mrc_raw(&mut self, rm64: &GprMem, r64: Gpr, cl: Gpr) -> AssemblerOutputs {
12392
            // Convert ISLE types to assembler types.
12393
0
            let rm64 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
12394
0
            let r64 = cranelift_assembler_x64::Gpr::new(r64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
12395
0
            let cl = cranelift_assembler_x64::Fixed(cl); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
12396
12397
            // Build the instruction.
12398
0
            let inst = cranelift_assembler_x64::inst::shldq_mrc::new(rm64.clone(), r64.clone(), cl.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
12399
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
12400
12401
            // Return a type ISLE can work with.
12402
0
            match rm64 {
12403
0
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
12404
0
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
12405
0
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
12406
                }
12407
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
12408
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
12409
                }
12410
            }
12411
0
        }
12412
57.0k
        fn x64_sarxl_rmv_raw(&mut self, rm32: &GprMem, r32b: Gpr) -> AssemblerOutputs {
12413
            // Convert ISLE types to assembler types.
12414
57.0k
            let r32a = cranelift_assembler_x64::Gpr::new(self.temp_writable_gpr()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
12415
57.0k
            let rm32 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
12416
57.0k
            let r32b = cranelift_assembler_x64::Gpr::new(r32b); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
12417
12418
            // Build the instruction.
12419
57.0k
            let inst = cranelift_assembler_x64::inst::sarxl_rmv::new(r32a.clone(), rm32.clone(), r32b.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
12420
57.0k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
12421
12422
            // Return a type ISLE can work with.
12423
57.0k
            let gpr = r32a.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
12424
57.0k
            AssemblerOutputs::RetGpr { inst, gpr }
12425
57.0k
        }
12426
8.24k
        fn x64_shlxl_rmv_raw(&mut self, rm32: &GprMem, r32b: Gpr) -> AssemblerOutputs {
12427
            // Convert ISLE types to assembler types.
12428
8.24k
            let r32a = cranelift_assembler_x64::Gpr::new(self.temp_writable_gpr()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
12429
8.24k
            let rm32 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
12430
8.24k
            let r32b = cranelift_assembler_x64::Gpr::new(r32b); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
12431
12432
            // Build the instruction.
12433
8.24k
            let inst = cranelift_assembler_x64::inst::shlxl_rmv::new(r32a.clone(), rm32.clone(), r32b.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
12434
8.24k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
12435
12436
            // Return a type ISLE can work with.
12437
8.24k
            let gpr = r32a.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
12438
8.24k
            AssemblerOutputs::RetGpr { inst, gpr }
12439
8.24k
        }
12440
5.08k
        fn x64_shrxl_rmv_raw(&mut self, rm32: &GprMem, r32b: Gpr) -> AssemblerOutputs {
12441
            // Convert ISLE types to assembler types.
12442
5.08k
            let r32a = cranelift_assembler_x64::Gpr::new(self.temp_writable_gpr()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
12443
5.08k
            let rm32 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
12444
5.08k
            let r32b = cranelift_assembler_x64::Gpr::new(r32b); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
12445
12446
            // Build the instruction.
12447
5.08k
            let inst = cranelift_assembler_x64::inst::shrxl_rmv::new(r32a.clone(), rm32.clone(), r32b.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
12448
5.08k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
12449
12450
            // Return a type ISLE can work with.
12451
5.08k
            let gpr = r32a.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
12452
5.08k
            AssemblerOutputs::RetGpr { inst, gpr }
12453
5.08k
        }
12454
38.4k
        fn x64_sarxq_rmv_raw(&mut self, rm64: &GprMem, r64b: Gpr) -> AssemblerOutputs {
12455
            // Convert ISLE types to assembler types.
12456
38.4k
            let r64a = cranelift_assembler_x64::Gpr::new(self.temp_writable_gpr()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
12457
38.4k
            let rm64 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
12458
38.4k
            let r64b = cranelift_assembler_x64::Gpr::new(r64b); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
12459
12460
            // Build the instruction.
12461
38.4k
            let inst = cranelift_assembler_x64::inst::sarxq_rmv::new(r64a.clone(), rm64.clone(), r64b.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
12462
38.4k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
12463
12464
            // Return a type ISLE can work with.
12465
38.4k
            let gpr = r64a.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
12466
38.4k
            AssemblerOutputs::RetGpr { inst, gpr }
12467
38.4k
        }
12468
16.8k
        fn x64_shlxq_rmv_raw(&mut self, rm64: &GprMem, r64b: Gpr) -> AssemblerOutputs {
12469
            // Convert ISLE types to assembler types.
12470
16.8k
            let r64a = cranelift_assembler_x64::Gpr::new(self.temp_writable_gpr()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
12471
16.8k
            let rm64 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
12472
16.8k
            let r64b = cranelift_assembler_x64::Gpr::new(r64b); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
12473
12474
            // Build the instruction.
12475
16.8k
            let inst = cranelift_assembler_x64::inst::shlxq_rmv::new(r64a.clone(), rm64.clone(), r64b.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
12476
16.8k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
12477
12478
            // Return a type ISLE can work with.
12479
16.8k
            let gpr = r64a.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
12480
16.8k
            AssemblerOutputs::RetGpr { inst, gpr }
12481
16.8k
        }
12482
26.0k
        fn x64_shrxq_rmv_raw(&mut self, rm64: &GprMem, r64b: Gpr) -> AssemblerOutputs {
12483
            // Convert ISLE types to assembler types.
12484
26.0k
            let r64a = cranelift_assembler_x64::Gpr::new(self.temp_writable_gpr()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
12485
26.0k
            let rm64 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
12486
26.0k
            let r64b = cranelift_assembler_x64::Gpr::new(r64b); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
12487
12488
            // Build the instruction.
12489
26.0k
            let inst = cranelift_assembler_x64::inst::shrxq_rmv::new(r64a.clone(), rm64.clone(), r64b.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
12490
26.0k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
12491
12492
            // Return a type ISLE can work with.
12493
26.0k
            let gpr = r64a.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
12494
26.0k
            AssemblerOutputs::RetGpr { inst, gpr }
12495
26.0k
        }
12496
2.90k
        fn x64_rorxl_rmi_raw(&mut self, rm32: &GprMem, imm8: u8) -> AssemblerOutputs {
12497
            // Convert ISLE types to assembler types.
12498
2.90k
            let r32 = cranelift_assembler_x64::Gpr::new(self.temp_writable_gpr()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
12499
2.90k
            let rm32 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
12500
2.90k
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
12501
12502
            // Build the instruction.
12503
2.90k
            let inst = cranelift_assembler_x64::inst::rorxl_rmi::new(r32.clone(), rm32.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
12504
2.90k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
12505
12506
            // Return a type ISLE can work with.
12507
2.90k
            let gpr = r32.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
12508
2.90k
            AssemblerOutputs::RetGpr { inst, gpr }
12509
2.90k
        }
12510
4.52k
        fn x64_rorxq_rmi_raw(&mut self, rm64: &GprMem, imm8: u8) -> AssemblerOutputs {
12511
            // Convert ISLE types to assembler types.
12512
4.52k
            let r64 = cranelift_assembler_x64::Gpr::new(self.temp_writable_gpr()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
12513
4.52k
            let rm64 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
12514
4.52k
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
12515
12516
            // Build the instruction.
12517
4.52k
            let inst = cranelift_assembler_x64::inst::rorxq_rmi::new(r64.clone(), rm64.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
12518
4.52k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
12519
12520
            // Return a type ISLE can work with.
12521
4.52k
            let gpr = r64.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
12522
4.52k
            AssemblerOutputs::RetGpr { inst, gpr }
12523
4.52k
        }
12524
391
        fn x64_psllw_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned) -> AssemblerOutputs {
12525
            // Convert ISLE types to assembler types.
12526
391
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
12527
391
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
12528
12529
            // Build the instruction.
12530
391
            let inst = cranelift_assembler_x64::inst::psllw_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
12531
391
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
12532
12533
            // Return a type ISLE can work with.
12534
391
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
12535
391
            AssemblerOutputs::RetXmm { inst, xmm }
12536
391
        }
12537
86
        fn x64_psllw_b_raw(&mut self, xmm1: Xmm, imm8: u8) -> AssemblerOutputs {
12538
            // Convert ISLE types to assembler types.
12539
86
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
12540
86
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
12541
12542
            // Build the instruction.
12543
86
            let inst = cranelift_assembler_x64::inst::psllw_b::new(xmm1.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
12544
86
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
12545
12546
            // Return a type ISLE can work with.
12547
86
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
12548
86
            AssemblerOutputs::RetXmm { inst, xmm }
12549
86
        }
12550
11
        fn x64_pslld_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned) -> AssemblerOutputs {
12551
            // Convert ISLE types to assembler types.
12552
11
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
12553
11
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
12554
12555
            // Build the instruction.
12556
11
            let inst = cranelift_assembler_x64::inst::pslld_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
12557
11
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
12558
12559
            // Return a type ISLE can work with.
12560
11
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
12561
11
            AssemblerOutputs::RetXmm { inst, xmm }
12562
11
        }
12563
52
        fn x64_pslld_b_raw(&mut self, xmm1: Xmm, imm8: u8) -> AssemblerOutputs {
12564
            // Convert ISLE types to assembler types.
12565
52
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
12566
52
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
12567
12568
            // Build the instruction.
12569
52
            let inst = cranelift_assembler_x64::inst::pslld_b::new(xmm1.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
12570
52
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
12571
12572
            // Return a type ISLE can work with.
12573
52
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
12574
52
            AssemblerOutputs::RetXmm { inst, xmm }
12575
52
        }
12576
59
        fn x64_psllq_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned) -> AssemblerOutputs {
12577
            // Convert ISLE types to assembler types.
12578
59
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
12579
59
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
12580
12581
            // Build the instruction.
12582
59
            let inst = cranelift_assembler_x64::inst::psllq_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
12583
59
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
12584
12585
            // Return a type ISLE can work with.
12586
59
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
12587
59
            AssemblerOutputs::RetXmm { inst, xmm }
12588
59
        }
12589
8
        fn x64_psllq_b_raw(&mut self, xmm1: Xmm, imm8: u8) -> AssemblerOutputs {
12590
            // Convert ISLE types to assembler types.
12591
8
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
12592
8
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
12593
12594
            // Build the instruction.
12595
8
            let inst = cranelift_assembler_x64::inst::psllq_b::new(xmm1.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
12596
8
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
12597
12598
            // Return a type ISLE can work with.
12599
8
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
12600
8
            AssemblerOutputs::RetXmm { inst, xmm }
12601
8
        }
12602
3.84k
        fn x64_vpsllw_c_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem) -> AssemblerOutputs {
12603
            // Convert ISLE types to assembler types.
12604
3.84k
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
12605
3.84k
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
12606
3.84k
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
12607
12608
            // Build the instruction.
12609
3.84k
            let inst = cranelift_assembler_x64::inst::vpsllw_c::new(xmm1.clone(), xmm2.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
12610
3.84k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
12611
12612
            // Return a type ISLE can work with.
12613
3.84k
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
12614
3.84k
            AssemblerOutputs::RetXmm { inst, xmm }
12615
3.84k
        }
12616
598
        fn x64_vpsllw_d_raw(&mut self, xmm2: Xmm, imm8: u8) -> AssemblerOutputs {
12617
            // Convert ISLE types to assembler types.
12618
598
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
12619
598
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
12620
598
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
12621
12622
            // Build the instruction.
12623
598
            let inst = cranelift_assembler_x64::inst::vpsllw_d::new(xmm1.clone(), xmm2.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
12624
598
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
12625
12626
            // Return a type ISLE can work with.
12627
598
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
12628
598
            AssemblerOutputs::RetXmm { inst, xmm }
12629
598
        }
12630
74
        fn x64_vpslld_c_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem) -> AssemblerOutputs {
12631
            // Convert ISLE types to assembler types.
12632
74
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
12633
74
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
12634
74
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
12635
12636
            // Build the instruction.
12637
74
            let inst = cranelift_assembler_x64::inst::vpslld_c::new(xmm1.clone(), xmm2.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
12638
74
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
12639
12640
            // Return a type ISLE can work with.
12641
74
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
12642
74
            AssemblerOutputs::RetXmm { inst, xmm }
12643
74
        }
12644
336
        fn x64_vpslld_d_raw(&mut self, xmm2: Xmm, imm8: u8) -> AssemblerOutputs {
12645
            // Convert ISLE types to assembler types.
12646
336
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
12647
336
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
12648
336
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
12649
12650
            // Build the instruction.
12651
336
            let inst = cranelift_assembler_x64::inst::vpslld_d::new(xmm1.clone(), xmm2.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
12652
336
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
12653
12654
            // Return a type ISLE can work with.
12655
336
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
12656
336
            AssemblerOutputs::RetXmm { inst, xmm }
12657
336
        }
12658
123
        fn x64_vpsllq_c_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem) -> AssemblerOutputs {
12659
            // Convert ISLE types to assembler types.
12660
123
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
12661
123
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
12662
123
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
12663
12664
            // Build the instruction.
12665
123
            let inst = cranelift_assembler_x64::inst::vpsllq_c::new(xmm1.clone(), xmm2.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
12666
123
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
12667
12668
            // Return a type ISLE can work with.
12669
123
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
12670
123
            AssemblerOutputs::RetXmm { inst, xmm }
12671
123
        }
12672
180
        fn x64_vpsllq_d_raw(&mut self, xmm2: Xmm, imm8: u8) -> AssemblerOutputs {
12673
            // Convert ISLE types to assembler types.
12674
180
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
12675
180
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
12676
180
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
12677
12678
            // Build the instruction.
12679
180
            let inst = cranelift_assembler_x64::inst::vpsllq_d::new(xmm1.clone(), xmm2.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
12680
180
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
12681
12682
            // Return a type ISLE can work with.
12683
180
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
12684
180
            AssemblerOutputs::RetXmm { inst, xmm }
12685
180
        }
12686
0
        fn x64_vpslld_g_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem) -> AssemblerOutputs {
12687
            // Convert ISLE types to assembler types.
12688
0
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
12689
0
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
12690
0
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
12691
12692
            // Build the instruction.
12693
0
            let inst = cranelift_assembler_x64::inst::vpslld_g::new(xmm1.clone(), xmm2.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
12694
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
12695
12696
            // Return a type ISLE can work with.
12697
0
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
12698
0
            AssemblerOutputs::RetXmm { inst, xmm }
12699
0
        }
12700
0
        fn x64_vpslld_f_raw(&mut self, xmm_m128: &XmmMem, imm8: u8) -> AssemblerOutputs {
12701
            // Convert ISLE types to assembler types.
12702
0
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
12703
0
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
12704
0
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
12705
12706
            // Build the instruction.
12707
0
            let inst = cranelift_assembler_x64::inst::vpslld_f::new(xmm1.clone(), xmm_m128.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
12708
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
12709
12710
            // Return a type ISLE can work with.
12711
0
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
12712
0
            AssemblerOutputs::RetXmm { inst, xmm }
12713
0
        }
12714
0
        fn x64_vpsllq_g_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem) -> AssemblerOutputs {
12715
            // Convert ISLE types to assembler types.
12716
0
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
12717
0
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
12718
0
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
12719
12720
            // Build the instruction.
12721
0
            let inst = cranelift_assembler_x64::inst::vpsllq_g::new(xmm1.clone(), xmm2.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
12722
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
12723
12724
            // Return a type ISLE can work with.
12725
0
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
12726
0
            AssemblerOutputs::RetXmm { inst, xmm }
12727
0
        }
12728
0
        fn x64_vpsllq_f_raw(&mut self, xmm_m128: &XmmMem, imm8: u8) -> AssemblerOutputs {
12729
            // Convert ISLE types to assembler types.
12730
0
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
12731
0
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
12732
0
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
12733
12734
            // Build the instruction.
12735
0
            let inst = cranelift_assembler_x64::inst::vpsllq_f::new(xmm1.clone(), xmm_m128.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
12736
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
12737
12738
            // Return a type ISLE can work with.
12739
0
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
12740
0
            AssemblerOutputs::RetXmm { inst, xmm }
12741
0
        }
12742
6.89k
        fn x64_psraw_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned) -> AssemblerOutputs {
12743
            // Convert ISLE types to assembler types.
12744
6.89k
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
12745
6.89k
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
12746
12747
            // Build the instruction.
12748
6.89k
            let inst = cranelift_assembler_x64::inst::psraw_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
12749
6.89k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
12750
12751
            // Return a type ISLE can work with.
12752
6.89k
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
12753
6.89k
            AssemblerOutputs::RetXmm { inst, xmm }
12754
6.89k
        }
12755
139
        fn x64_psraw_b_raw(&mut self, xmm1: Xmm, imm8: u8) -> AssemblerOutputs {
12756
            // Convert ISLE types to assembler types.
12757
139
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
12758
139
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
12759
12760
            // Build the instruction.
12761
139
            let inst = cranelift_assembler_x64::inst::psraw_b::new(xmm1.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
12762
139
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
12763
12764
            // Return a type ISLE can work with.
12765
139
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
12766
139
            AssemblerOutputs::RetXmm { inst, xmm }
12767
139
        }
12768
8
        fn x64_psrad_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned) -> AssemblerOutputs {
12769
            // Convert ISLE types to assembler types.
12770
8
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
12771
8
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
12772
12773
            // Build the instruction.
12774
8
            let inst = cranelift_assembler_x64::inst::psrad_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
12775
8
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
12776
12777
            // Return a type ISLE can work with.
12778
8
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
12779
8
            AssemblerOutputs::RetXmm { inst, xmm }
12780
8
        }
12781
430
        fn x64_psrad_b_raw(&mut self, xmm1: Xmm, imm8: u8) -> AssemblerOutputs {
12782
            // Convert ISLE types to assembler types.
12783
430
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
12784
430
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
12785
12786
            // Build the instruction.
12787
430
            let inst = cranelift_assembler_x64::inst::psrad_b::new(xmm1.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
12788
430
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
12789
12790
            // Return a type ISLE can work with.
12791
430
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
12792
430
            AssemblerOutputs::RetXmm { inst, xmm }
12793
430
        }
12794
492
        fn x64_psrlw_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned) -> AssemblerOutputs {
12795
            // Convert ISLE types to assembler types.
12796
492
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
12797
492
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
12798
12799
            // Build the instruction.
12800
492
            let inst = cranelift_assembler_x64::inst::psrlw_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
12801
492
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
12802
12803
            // Return a type ISLE can work with.
12804
492
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
12805
492
            AssemblerOutputs::RetXmm { inst, xmm }
12806
492
        }
12807
765
        fn x64_psrlw_b_raw(&mut self, xmm1: Xmm, imm8: u8) -> AssemblerOutputs {
12808
            // Convert ISLE types to assembler types.
12809
765
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
12810
765
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
12811
12812
            // Build the instruction.
12813
765
            let inst = cranelift_assembler_x64::inst::psrlw_b::new(xmm1.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
12814
765
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
12815
12816
            // Return a type ISLE can work with.
12817
765
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
12818
765
            AssemblerOutputs::RetXmm { inst, xmm }
12819
765
        }
12820
5
        fn x64_psrld_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned) -> AssemblerOutputs {
12821
            // Convert ISLE types to assembler types.
12822
5
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
12823
5
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
12824
12825
            // Build the instruction.
12826
5
            let inst = cranelift_assembler_x64::inst::psrld_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
12827
5
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
12828
12829
            // Return a type ISLE can work with.
12830
5
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
12831
5
            AssemblerOutputs::RetXmm { inst, xmm }
12832
5
        }
12833
1.28k
        fn x64_psrld_b_raw(&mut self, xmm1: Xmm, imm8: u8) -> AssemblerOutputs {
12834
            // Convert ISLE types to assembler types.
12835
1.28k
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
12836
1.28k
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
12837
12838
            // Build the instruction.
12839
1.28k
            let inst = cranelift_assembler_x64::inst::psrld_b::new(xmm1.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
12840
1.28k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
12841
12842
            // Return a type ISLE can work with.
12843
1.28k
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
12844
1.28k
            AssemblerOutputs::RetXmm { inst, xmm }
12845
1.28k
        }
12846
175
        fn x64_psrlq_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned) -> AssemblerOutputs {
12847
            // Convert ISLE types to assembler types.
12848
175
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
12849
175
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
12850
12851
            // Build the instruction.
12852
175
            let inst = cranelift_assembler_x64::inst::psrlq_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
12853
175
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
12854
12855
            // Return a type ISLE can work with.
12856
175
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
12857
175
            AssemblerOutputs::RetXmm { inst, xmm }
12858
175
        }
12859
181
        fn x64_psrlq_b_raw(&mut self, xmm1: Xmm, imm8: u8) -> AssemblerOutputs {
12860
            // Convert ISLE types to assembler types.
12861
181
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
12862
181
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
12863
12864
            // Build the instruction.
12865
181
            let inst = cranelift_assembler_x64::inst::psrlq_b::new(xmm1.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
12866
181
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
12867
12868
            // Return a type ISLE can work with.
12869
181
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
12870
181
            AssemblerOutputs::RetXmm { inst, xmm }
12871
181
        }
12872
16.3k
        fn x64_vpsraw_c_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem) -> AssemblerOutputs {
12873
            // Convert ISLE types to assembler types.
12874
16.3k
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
12875
16.3k
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
12876
16.3k
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
12877
12878
            // Build the instruction.
12879
16.3k
            let inst = cranelift_assembler_x64::inst::vpsraw_c::new(xmm1.clone(), xmm2.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
12880
16.3k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
12881
12882
            // Return a type ISLE can work with.
12883
16.3k
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
12884
16.3k
            AssemblerOutputs::RetXmm { inst, xmm }
12885
16.3k
        }
12886
452
        fn x64_vpsraw_d_raw(&mut self, xmm2: Xmm, imm8: u8) -> AssemblerOutputs {
12887
            // Convert ISLE types to assembler types.
12888
452
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
12889
452
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
12890
452
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
12891
12892
            // Build the instruction.
12893
452
            let inst = cranelift_assembler_x64::inst::vpsraw_d::new(xmm1.clone(), xmm2.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
12894
452
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
12895
12896
            // Return a type ISLE can work with.
12897
452
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
12898
452
            AssemblerOutputs::RetXmm { inst, xmm }
12899
452
        }
12900
278
        fn x64_vpsrad_c_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem) -> AssemblerOutputs {
12901
            // Convert ISLE types to assembler types.
12902
278
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
12903
278
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
12904
278
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
12905
12906
            // Build the instruction.
12907
278
            let inst = cranelift_assembler_x64::inst::vpsrad_c::new(xmm1.clone(), xmm2.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
12908
278
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
12909
12910
            // Return a type ISLE can work with.
12911
278
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
12912
278
            AssemblerOutputs::RetXmm { inst, xmm }
12913
278
        }
12914
300
        fn x64_vpsrad_d_raw(&mut self, xmm2: Xmm, imm8: u8) -> AssemblerOutputs {
12915
            // Convert ISLE types to assembler types.
12916
300
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
12917
300
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
12918
300
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
12919
12920
            // Build the instruction.
12921
300
            let inst = cranelift_assembler_x64::inst::vpsrad_d::new(xmm1.clone(), xmm2.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
12922
300
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
12923
12924
            // Return a type ISLE can work with.
12925
300
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
12926
300
            AssemblerOutputs::RetXmm { inst, xmm }
12927
300
        }
12928
2.97k
        fn x64_vpsrlw_c_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem) -> AssemblerOutputs {
12929
            // Convert ISLE types to assembler types.
12930
2.97k
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
12931
2.97k
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
12932
2.97k
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
12933
12934
            // Build the instruction.
12935
2.97k
            let inst = cranelift_assembler_x64::inst::vpsrlw_c::new(xmm1.clone(), xmm2.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
12936
2.97k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
12937
12938
            // Return a type ISLE can work with.
12939
2.97k
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
12940
2.97k
            AssemblerOutputs::RetXmm { inst, xmm }
12941
2.97k
        }
12942
4.31k
        fn x64_vpsrlw_d_raw(&mut self, xmm2: Xmm, imm8: u8) -> AssemblerOutputs {
12943
            // Convert ISLE types to assembler types.
12944
4.31k
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
12945
4.31k
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
12946
4.31k
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
12947
12948
            // Build the instruction.
12949
4.31k
            let inst = cranelift_assembler_x64::inst::vpsrlw_d::new(xmm1.clone(), xmm2.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
12950
4.31k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
12951
12952
            // Return a type ISLE can work with.
12953
4.31k
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
12954
4.31k
            AssemblerOutputs::RetXmm { inst, xmm }
12955
4.31k
        }
12956
59
        fn x64_vpsrld_c_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem) -> AssemblerOutputs {
12957
            // Convert ISLE types to assembler types.
12958
59
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
12959
59
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
12960
59
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
12961
12962
            // Build the instruction.
12963
59
            let inst = cranelift_assembler_x64::inst::vpsrld_c::new(xmm1.clone(), xmm2.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
12964
59
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
12965
12966
            // Return a type ISLE can work with.
12967
59
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
12968
59
            AssemblerOutputs::RetXmm { inst, xmm }
12969
59
        }
12970
1.72k
        fn x64_vpsrld_d_raw(&mut self, xmm2: Xmm, imm8: u8) -> AssemblerOutputs {
12971
            // Convert ISLE types to assembler types.
12972
1.72k
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
12973
1.72k
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
12974
1.72k
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
12975
12976
            // Build the instruction.
12977
1.72k
            let inst = cranelift_assembler_x64::inst::vpsrld_d::new(xmm1.clone(), xmm2.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
12978
1.72k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
12979
12980
            // Return a type ISLE can work with.
12981
1.72k
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
12982
1.72k
            AssemblerOutputs::RetXmm { inst, xmm }
12983
1.72k
        }
12984
1.15k
        fn x64_vpsrlq_c_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem) -> AssemblerOutputs {
12985
            // Convert ISLE types to assembler types.
12986
1.15k
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
12987
1.15k
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
12988
1.15k
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
12989
12990
            // Build the instruction.
12991
1.15k
            let inst = cranelift_assembler_x64::inst::vpsrlq_c::new(xmm1.clone(), xmm2.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
12992
1.15k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
12993
12994
            // Return a type ISLE can work with.
12995
1.15k
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
12996
1.15k
            AssemblerOutputs::RetXmm { inst, xmm }
12997
1.15k
        }
12998
392
        fn x64_vpsrlq_d_raw(&mut self, xmm2: Xmm, imm8: u8) -> AssemblerOutputs {
12999
            // Convert ISLE types to assembler types.
13000
392
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
13001
392
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
13002
392
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
13003
13004
            // Build the instruction.
13005
392
            let inst = cranelift_assembler_x64::inst::vpsrlq_d::new(xmm1.clone(), xmm2.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
13006
392
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
13007
13008
            // Return a type ISLE can work with.
13009
392
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
13010
392
            AssemblerOutputs::RetXmm { inst, xmm }
13011
392
        }
13012
0
        fn x64_vpsrad_g_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem) -> AssemblerOutputs {
13013
            // Convert ISLE types to assembler types.
13014
0
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
13015
0
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
13016
0
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
13017
13018
            // Build the instruction.
13019
0
            let inst = cranelift_assembler_x64::inst::vpsrad_g::new(xmm1.clone(), xmm2.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
13020
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
13021
13022
            // Return a type ISLE can work with.
13023
0
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
13024
0
            AssemblerOutputs::RetXmm { inst, xmm }
13025
0
        }
13026
0
        fn x64_vpsrad_f_raw(&mut self, xmm_m128: &XmmMem, imm8: u8) -> AssemblerOutputs {
13027
            // Convert ISLE types to assembler types.
13028
0
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
13029
0
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
13030
0
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
13031
13032
            // Build the instruction.
13033
0
            let inst = cranelift_assembler_x64::inst::vpsrad_f::new(xmm1.clone(), xmm_m128.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
13034
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
13035
13036
            // Return a type ISLE can work with.
13037
0
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
13038
0
            AssemblerOutputs::RetXmm { inst, xmm }
13039
0
        }
13040
12
        fn x64_vpsraq_g_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem) -> AssemblerOutputs {
13041
            // Convert ISLE types to assembler types.
13042
12
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
13043
12
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
13044
12
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
13045
13046
            // Build the instruction.
13047
12
            let inst = cranelift_assembler_x64::inst::vpsraq_g::new(xmm1.clone(), xmm2.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
13048
12
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
13049
13050
            // Return a type ISLE can work with.
13051
12
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
13052
12
            AssemblerOutputs::RetXmm { inst, xmm }
13053
12
        }
13054
0
        fn x64_vpsraq_f_raw(&mut self, xmm_m128: &XmmMem, imm8: u8) -> AssemblerOutputs {
13055
            // Convert ISLE types to assembler types.
13056
0
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
13057
0
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
13058
0
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
13059
13060
            // Build the instruction.
13061
0
            let inst = cranelift_assembler_x64::inst::vpsraq_f::new(xmm1.clone(), xmm_m128.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
13062
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
13063
13064
            // Return a type ISLE can work with.
13065
0
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
13066
0
            AssemblerOutputs::RetXmm { inst, xmm }
13067
0
        }
13068
0
        fn x64_vpsrld_g_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem) -> AssemblerOutputs {
13069
            // Convert ISLE types to assembler types.
13070
0
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
13071
0
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
13072
0
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
13073
13074
            // Build the instruction.
13075
0
            let inst = cranelift_assembler_x64::inst::vpsrld_g::new(xmm1.clone(), xmm2.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
13076
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
13077
13078
            // Return a type ISLE can work with.
13079
0
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
13080
0
            AssemblerOutputs::RetXmm { inst, xmm }
13081
0
        }
13082
0
        fn x64_vpsrld_f_raw(&mut self, xmm_m128: &XmmMem, imm8: u8) -> AssemblerOutputs {
13083
            // Convert ISLE types to assembler types.
13084
0
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
13085
0
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
13086
0
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
13087
13088
            // Build the instruction.
13089
0
            let inst = cranelift_assembler_x64::inst::vpsrld_f::new(xmm1.clone(), xmm_m128.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
13090
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
13091
13092
            // Return a type ISLE can work with.
13093
0
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
13094
0
            AssemblerOutputs::RetXmm { inst, xmm }
13095
0
        }
13096
0
        fn x64_vpsrlq_g_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem) -> AssemblerOutputs {
13097
            // Convert ISLE types to assembler types.
13098
0
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
13099
0
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
13100
0
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
13101
13102
            // Build the instruction.
13103
0
            let inst = cranelift_assembler_x64::inst::vpsrlq_g::new(xmm1.clone(), xmm2.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
13104
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
13105
13106
            // Return a type ISLE can work with.
13107
0
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
13108
0
            AssemblerOutputs::RetXmm { inst, xmm }
13109
0
        }
13110
0
        fn x64_vpsrlq_f_raw(&mut self, xmm_m128: &XmmMem, imm8: u8) -> AssemblerOutputs {
13111
            // Convert ISLE types to assembler types.
13112
0
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
13113
0
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
13114
0
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
13115
13116
            // Build the instruction.
13117
0
            let inst = cranelift_assembler_x64::inst::vpsrlq_f::new(xmm1.clone(), xmm_m128.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
13118
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
13119
13120
            // Return a type ISLE can work with.
13121
0
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
13122
0
            AssemblerOutputs::RetXmm { inst, xmm }
13123
0
        }
13124
7.42k
        fn x64_sqrtss_a_raw(&mut self, xmm1: Xmm, xmm_m32: &XmmMem) -> AssemblerOutputs {
13125
            // Convert ISLE types to assembler types.
13126
7.42k
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
13127
7.42k
            let xmm_m32 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
13128
13129
            // Build the instruction.
13130
7.42k
            let inst = cranelift_assembler_x64::inst::sqrtss_a::new(xmm1.clone(), xmm_m32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
13131
7.42k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
13132
13133
            // Return a type ISLE can work with.
13134
7.42k
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
13135
7.42k
            AssemblerOutputs::RetXmm { inst, xmm }
13136
7.42k
        }
13137
547
        fn x64_sqrtsd_a_raw(&mut self, xmm1: Xmm, xmm_m64: &XmmMem) -> AssemblerOutputs {
13138
            // Convert ISLE types to assembler types.
13139
547
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
13140
547
            let xmm_m64 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
13141
13142
            // Build the instruction.
13143
547
            let inst = cranelift_assembler_x64::inst::sqrtsd_a::new(xmm1.clone(), xmm_m64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
13144
547
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
13145
13146
            // Return a type ISLE can work with.
13147
547
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
13148
547
            AssemblerOutputs::RetXmm { inst, xmm }
13149
547
        }
13150
3
        fn x64_sqrtps_a_raw(&mut self, xmm_m128: &XmmMemAligned) -> AssemblerOutputs {
13151
            // Convert ISLE types to assembler types.
13152
3
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
13153
3
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
13154
13155
            // Build the instruction.
13156
3
            let inst = cranelift_assembler_x64::inst::sqrtps_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
13157
3
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
13158
13159
            // Return a type ISLE can work with.
13160
3
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
13161
3
            AssemblerOutputs::RetXmm { inst, xmm }
13162
3
        }
13163
344
        fn x64_sqrtpd_a_raw(&mut self, xmm_m128: &XmmMemAligned) -> AssemblerOutputs {
13164
            // Convert ISLE types to assembler types.
13165
344
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
13166
344
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
13167
13168
            // Build the instruction.
13169
344
            let inst = cranelift_assembler_x64::inst::sqrtpd_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
13170
344
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
13171
13172
            // Return a type ISLE can work with.
13173
344
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
13174
344
            AssemblerOutputs::RetXmm { inst, xmm }
13175
344
        }
13176
5.49k
        fn x64_vsqrtss_b_raw(&mut self, xmm2: Xmm, xmm_m32: &XmmMem) -> AssemblerOutputs {
13177
            // Convert ISLE types to assembler types.
13178
5.49k
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
13179
5.49k
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
13180
5.49k
            let xmm_m32 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
13181
13182
            // Build the instruction.
13183
5.49k
            let inst = cranelift_assembler_x64::inst::vsqrtss_b::new(xmm1.clone(), xmm2.clone(), xmm_m32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
13184
5.49k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
13185
13186
            // Return a type ISLE can work with.
13187
5.49k
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
13188
5.49k
            AssemblerOutputs::RetXmm { inst, xmm }
13189
5.49k
        }
13190
40.2k
        fn x64_vsqrtsd_b_raw(&mut self, xmm2: Xmm, xmm_m64: &XmmMem) -> AssemblerOutputs {
13191
            // Convert ISLE types to assembler types.
13192
40.2k
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
13193
40.2k
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
13194
40.2k
            let xmm_m64 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
13195
13196
            // Build the instruction.
13197
40.2k
            let inst = cranelift_assembler_x64::inst::vsqrtsd_b::new(xmm1.clone(), xmm2.clone(), xmm_m64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
13198
40.2k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
13199
13200
            // Return a type ISLE can work with.
13201
40.2k
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
13202
40.2k
            AssemblerOutputs::RetXmm { inst, xmm }
13203
40.2k
        }
13204
150
        fn x64_vsqrtps_b_raw(&mut self, xmm_m128: &XmmMem) -> AssemblerOutputs {
13205
            // Convert ISLE types to assembler types.
13206
150
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
13207
150
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
13208
13209
            // Build the instruction.
13210
150
            let inst = cranelift_assembler_x64::inst::vsqrtps_b::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
13211
150
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
13212
13213
            // Return a type ISLE can work with.
13214
150
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
13215
150
            AssemblerOutputs::RetXmm { inst, xmm }
13216
150
        }
13217
375
        fn x64_vsqrtpd_b_raw(&mut self, xmm_m128: &XmmMem) -> AssemblerOutputs {
13218
            // Convert ISLE types to assembler types.
13219
375
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
13220
375
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
13221
13222
            // Build the instruction.
13223
375
            let inst = cranelift_assembler_x64::inst::vsqrtpd_b::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
13224
375
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
13225
13226
            // Return a type ISLE can work with.
13227
375
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
13228
375
            AssemblerOutputs::RetXmm { inst, xmm }
13229
375
        }
13230
0
        fn x64_popw_m_raw(&mut self, rm16: &GprMem) -> AssemblerOutputs {
13231
            // Convert ISLE types to assembler types.
13232
0
            let rm16 = self.convert_gpr_mem_to_assembler_write_gpr_mem(rm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
13233
13234
            // Build the instruction.
13235
0
            let inst = cranelift_assembler_x64::inst::popw_m::new(rm16.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
13236
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
13237
13238
            // Return a type ISLE can work with.
13239
0
            match rm16 {
13240
0
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
13241
0
                    let gpr = reg.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
13242
0
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
13243
                }
13244
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
13245
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
13246
                }
13247
            }
13248
0
        }
13249
0
        fn x64_popq_m_raw(&mut self, rm64: &GprMem) -> AssemblerOutputs {
13250
            // Convert ISLE types to assembler types.
13251
0
            let rm64 = self.convert_gpr_mem_to_assembler_write_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
13252
13253
            // Build the instruction.
13254
0
            let inst = cranelift_assembler_x64::inst::popq_m::new(rm64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
13255
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
13256
13257
            // Return a type ISLE can work with.
13258
0
            match rm64 {
13259
0
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
13260
0
                    let gpr = reg.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
13261
0
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
13262
                }
13263
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
13264
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
13265
                }
13266
            }
13267
0
        }
13268
0
        fn x64_popw_o_raw(&mut self, ) -> AssemblerOutputs {
13269
            // Convert ISLE types to assembler types.
13270
0
            let r16 = cranelift_assembler_x64::Gpr::new(self.temp_writable_gpr()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
13271
13272
            // Build the instruction.
13273
0
            let inst = cranelift_assembler_x64::inst::popw_o::new(r16.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
13274
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
13275
13276
            // Return a type ISLE can work with.
13277
0
            let gpr = r16.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
13278
0
            AssemblerOutputs::RetGpr { inst, gpr }
13279
0
        }
13280
0
        fn x64_popq_o_raw(&mut self, ) -> AssemblerOutputs {
13281
            // Convert ISLE types to assembler types.
13282
0
            let r64 = cranelift_assembler_x64::Gpr::new(self.temp_writable_gpr()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
13283
13284
            // Build the instruction.
13285
0
            let inst = cranelift_assembler_x64::inst::popq_o::new(r64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
13286
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
13287
13288
            // Return a type ISLE can work with.
13289
0
            let gpr = r64.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
13290
0
            AssemblerOutputs::RetGpr { inst, gpr }
13291
0
        }
13292
0
        fn x64_subb_i_raw(&mut self, al: Gpr, imm8: u8) -> AssemblerOutputs {
13293
            // Convert ISLE types to assembler types.
13294
0
            let al = self.convert_gpr_to_assembler_fixed_read_write_gpr(al); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
13295
0
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
13296
13297
            // Build the instruction.
13298
0
            let inst = cranelift_assembler_x64::inst::subb_i::new(al.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
13299
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
13300
13301
            // Return a type ISLE can work with.
13302
0
            let gpr = al.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
13303
0
            AssemblerOutputs::RetGpr { inst, gpr }
13304
0
        }
13305
0
        fn x64_subw_i_raw(&mut self, ax: Gpr, imm16: u16) -> AssemblerOutputs {
13306
            // Convert ISLE types to assembler types.
13307
0
            let ax = self.convert_gpr_to_assembler_fixed_read_write_gpr(ax); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
13308
0
            let imm16 = cranelift_assembler_x64::Imm16::new(imm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
13309
13310
            // Build the instruction.
13311
0
            let inst = cranelift_assembler_x64::inst::subw_i::new(ax.clone(), imm16.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
13312
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
13313
13314
            // Return a type ISLE can work with.
13315
0
            let gpr = ax.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
13316
0
            AssemblerOutputs::RetGpr { inst, gpr }
13317
0
        }
13318
0
        fn x64_subl_i_raw(&mut self, eax: Gpr, imm32: u32) -> AssemblerOutputs {
13319
            // Convert ISLE types to assembler types.
13320
0
            let eax = self.convert_gpr_to_assembler_fixed_read_write_gpr(eax); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
13321
0
            let imm32 = cranelift_assembler_x64::Imm32::new(imm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
13322
13323
            // Build the instruction.
13324
0
            let inst = cranelift_assembler_x64::inst::subl_i::new(eax.clone(), imm32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
13325
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
13326
13327
            // Return a type ISLE can work with.
13328
0
            let gpr = eax.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
13329
0
            AssemblerOutputs::RetGpr { inst, gpr }
13330
0
        }
13331
0
        fn x64_subq_i_sxl_raw(&mut self, rax: Gpr, imm32: i32) -> AssemblerOutputs {
13332
            // Convert ISLE types to assembler types.
13333
0
            let rax = self.convert_gpr_to_assembler_fixed_read_write_gpr(rax); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
13334
0
            let imm32 = cranelift_assembler_x64::Simm32::new(imm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
13335
13336
            // Build the instruction.
13337
0
            let inst = cranelift_assembler_x64::inst::subq_i_sxl::new(rax.clone(), imm32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
13338
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
13339
13340
            // Return a type ISLE can work with.
13341
0
            let gpr = rax.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
13342
0
            AssemblerOutputs::RetGpr { inst, gpr }
13343
0
        }
13344
136
        fn x64_subb_mi_raw(&mut self, rm8: &GprMem, imm8: u8) -> AssemblerOutputs {
13345
            // Convert ISLE types to assembler types.
13346
136
            let rm8 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
13347
136
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
13348
13349
            // Build the instruction.
13350
136
            let inst = cranelift_assembler_x64::inst::subb_mi::new(rm8.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
13351
136
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
13352
13353
            // Return a type ISLE can work with.
13354
136
            match rm8 {
13355
136
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
13356
136
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
13357
136
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
13358
                }
13359
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
13360
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
13361
                }
13362
            }
13363
136
        }
13364
58
        fn x64_subw_mi_raw(&mut self, rm16: &GprMem, imm16: u16) -> AssemblerOutputs {
13365
            // Convert ISLE types to assembler types.
13366
58
            let rm16 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
13367
58
            let imm16 = cranelift_assembler_x64::Imm16::new(imm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
13368
13369
            // Build the instruction.
13370
58
            let inst = cranelift_assembler_x64::inst::subw_mi::new(rm16.clone(), imm16.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
13371
58
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
13372
13373
            // Return a type ISLE can work with.
13374
58
            match rm16 {
13375
58
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
13376
58
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
13377
58
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
13378
                }
13379
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
13380
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
13381
                }
13382
            }
13383
58
        }
13384
5.62k
        fn x64_subl_mi_raw(&mut self, rm32: &GprMem, imm32: u32) -> AssemblerOutputs {
13385
            // Convert ISLE types to assembler types.
13386
5.62k
            let rm32 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
13387
5.62k
            let imm32 = cranelift_assembler_x64::Imm32::new(imm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
13388
13389
            // Build the instruction.
13390
5.62k
            let inst = cranelift_assembler_x64::inst::subl_mi::new(rm32.clone(), imm32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
13391
5.62k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
13392
13393
            // Return a type ISLE can work with.
13394
5.62k
            match rm32 {
13395
5.62k
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
13396
5.62k
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
13397
5.62k
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
13398
                }
13399
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
13400
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
13401
                }
13402
            }
13403
5.62k
        }
13404
25.1k
        fn x64_subq_mi_sxl_raw(&mut self, rm64: &GprMem, imm32: i32) -> AssemblerOutputs {
13405
            // Convert ISLE types to assembler types.
13406
25.1k
            let rm64 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
13407
25.1k
            let imm32 = cranelift_assembler_x64::Simm32::new(imm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
13408
13409
            // Build the instruction.
13410
25.1k
            let inst = cranelift_assembler_x64::inst::subq_mi_sxl::new(rm64.clone(), imm32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
13411
25.1k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
13412
13413
            // Return a type ISLE can work with.
13414
25.1k
            match rm64 {
13415
25.1k
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
13416
25.1k
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
13417
25.1k
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
13418
                }
13419
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
13420
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
13421
                }
13422
            }
13423
25.1k
        }
13424
186k
        fn x64_subl_mi_sxb_raw(&mut self, rm32: &GprMem, imm8: i8) -> AssemblerOutputs {
13425
            // Convert ISLE types to assembler types.
13426
186k
            let rm32 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
13427
186k
            let imm8 = cranelift_assembler_x64::Simm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
13428
13429
            // Build the instruction.
13430
186k
            let inst = cranelift_assembler_x64::inst::subl_mi_sxb::new(rm32.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
13431
186k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
13432
13433
            // Return a type ISLE can work with.
13434
186k
            match rm32 {
13435
54.6k
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
13436
54.6k
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
13437
54.6k
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
13438
                }
13439
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
13440
132k
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
13441
                }
13442
            }
13443
186k
        }
13444
13.9k
        fn x64_subq_mi_sxb_raw(&mut self, rm64: &GprMem, imm8: i8) -> AssemblerOutputs {
13445
            // Convert ISLE types to assembler types.
13446
13.9k
            let rm64 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
13447
13.9k
            let imm8 = cranelift_assembler_x64::Simm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
13448
13449
            // Build the instruction.
13450
13.9k
            let inst = cranelift_assembler_x64::inst::subq_mi_sxb::new(rm64.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
13451
13.9k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
13452
13453
            // Return a type ISLE can work with.
13454
13.9k
            match rm64 {
13455
13.9k
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
13456
13.9k
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
13457
13.9k
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
13458
                }
13459
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
13460
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
13461
                }
13462
            }
13463
13.9k
        }
13464
0
        fn x64_subb_mr_raw(&mut self, rm8: &GprMem, r8: Gpr) -> AssemblerOutputs {
13465
            // Convert ISLE types to assembler types.
13466
0
            let rm8 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
13467
0
            let r8 = cranelift_assembler_x64::Gpr::new(r8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
13468
13469
            // Build the instruction.
13470
0
            let inst = cranelift_assembler_x64::inst::subb_mr::new(rm8.clone(), r8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
13471
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
13472
13473
            // Return a type ISLE can work with.
13474
0
            match rm8 {
13475
0
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
13476
0
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
13477
0
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
13478
                }
13479
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
13480
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
13481
                }
13482
            }
13483
0
        }
13484
0
        fn x64_subw_mr_raw(&mut self, rm16: &GprMem, r16: Gpr) -> AssemblerOutputs {
13485
            // Convert ISLE types to assembler types.
13486
0
            let rm16 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
13487
0
            let r16 = cranelift_assembler_x64::Gpr::new(r16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
13488
13489
            // Build the instruction.
13490
0
            let inst = cranelift_assembler_x64::inst::subw_mr::new(rm16.clone(), r16.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
13491
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
13492
13493
            // Return a type ISLE can work with.
13494
0
            match rm16 {
13495
0
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
13496
0
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
13497
0
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
13498
                }
13499
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
13500
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
13501
                }
13502
            }
13503
0
        }
13504
124
        fn x64_subl_mr_raw(&mut self, rm32: &GprMem, r32: Gpr) -> AssemblerOutputs {
13505
            // Convert ISLE types to assembler types.
13506
124
            let rm32 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
13507
124
            let r32 = cranelift_assembler_x64::Gpr::new(r32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
13508
13509
            // Build the instruction.
13510
124
            let inst = cranelift_assembler_x64::inst::subl_mr::new(rm32.clone(), r32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
13511
124
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
13512
13513
            // Return a type ISLE can work with.
13514
124
            match rm32 {
13515
0
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
13516
0
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
13517
0
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
13518
                }
13519
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
13520
124
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
13521
                }
13522
            }
13523
124
        }
13524
7
        fn x64_subq_mr_raw(&mut self, rm64: &GprMem, r64: Gpr) -> AssemblerOutputs {
13525
            // Convert ISLE types to assembler types.
13526
7
            let rm64 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
13527
7
            let r64 = cranelift_assembler_x64::Gpr::new(r64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
13528
13529
            // Build the instruction.
13530
7
            let inst = cranelift_assembler_x64::inst::subq_mr::new(rm64.clone(), r64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
13531
7
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
13532
13533
            // Return a type ISLE can work with.
13534
7
            match rm64 {
13535
0
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
13536
0
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
13537
0
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
13538
                }
13539
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
13540
7
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
13541
                }
13542
            }
13543
7
        }
13544
99.4k
        fn x64_subb_rm_raw(&mut self, r8: Gpr, rm8: &GprMem) -> AssemblerOutputs {
13545
            // Convert ISLE types to assembler types.
13546
99.4k
            let r8 = self.convert_gpr_to_assembler_read_write_gpr(r8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
13547
99.4k
            let rm8 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
13548
13549
            // Build the instruction.
13550
99.4k
            let inst = cranelift_assembler_x64::inst::subb_rm::new(r8.clone(), rm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
13551
99.4k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
13552
13553
            // Return a type ISLE can work with.
13554
99.4k
            let gpr = r8.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
13555
99.4k
            AssemblerOutputs::RetGpr { inst, gpr }
13556
99.4k
        }
13557
867
        fn x64_subw_rm_raw(&mut self, r16: Gpr, rm16: &GprMem) -> AssemblerOutputs {
13558
            // Convert ISLE types to assembler types.
13559
867
            let r16 = self.convert_gpr_to_assembler_read_write_gpr(r16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
13560
867
            let rm16 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
13561
13562
            // Build the instruction.
13563
867
            let inst = cranelift_assembler_x64::inst::subw_rm::new(r16.clone(), rm16.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
13564
867
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
13565
13566
            // Return a type ISLE can work with.
13567
867
            let gpr = r16.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
13568
867
            AssemblerOutputs::RetGpr { inst, gpr }
13569
867
        }
13570
25.1k
        fn x64_subl_rm_raw(&mut self, r32: Gpr, rm32: &GprMem) -> AssemblerOutputs {
13571
            // Convert ISLE types to assembler types.
13572
25.1k
            let r32 = self.convert_gpr_to_assembler_read_write_gpr(r32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
13573
25.1k
            let rm32 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
13574
13575
            // Build the instruction.
13576
25.1k
            let inst = cranelift_assembler_x64::inst::subl_rm::new(r32.clone(), rm32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
13577
25.1k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
13578
13579
            // Return a type ISLE can work with.
13580
25.1k
            let gpr = r32.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
13581
25.1k
            AssemblerOutputs::RetGpr { inst, gpr }
13582
25.1k
        }
13583
96.5k
        fn x64_subq_rm_raw(&mut self, r64: Gpr, rm64: &GprMem) -> AssemblerOutputs {
13584
            // Convert ISLE types to assembler types.
13585
96.5k
            let r64 = self.convert_gpr_to_assembler_read_write_gpr(r64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
13586
96.5k
            let rm64 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
13587
13588
            // Build the instruction.
13589
96.5k
            let inst = cranelift_assembler_x64::inst::subq_rm::new(r64.clone(), rm64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
13590
96.5k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
13591
13592
            // Return a type ISLE can work with.
13593
96.5k
            let gpr = r64.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
13594
96.5k
            AssemblerOutputs::RetGpr { inst, gpr }
13595
96.5k
        }
13596
0
        fn x64_sbbb_i_raw(&mut self, al: Gpr, imm8: u8) -> AssemblerOutputs {
13597
            // Convert ISLE types to assembler types.
13598
0
            let al = self.convert_gpr_to_assembler_fixed_read_write_gpr(al); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
13599
0
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
13600
13601
            // Build the instruction.
13602
0
            let inst = cranelift_assembler_x64::inst::sbbb_i::new(al.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
13603
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
13604
13605
            // Return a type ISLE can work with.
13606
0
            let gpr = al.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
13607
0
            AssemblerOutputs::RetGpr { inst, gpr }
13608
0
        }
13609
0
        fn x64_sbbw_i_raw(&mut self, ax: Gpr, imm16: u16) -> AssemblerOutputs {
13610
            // Convert ISLE types to assembler types.
13611
0
            let ax = self.convert_gpr_to_assembler_fixed_read_write_gpr(ax); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
13612
0
            let imm16 = cranelift_assembler_x64::Imm16::new(imm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
13613
13614
            // Build the instruction.
13615
0
            let inst = cranelift_assembler_x64::inst::sbbw_i::new(ax.clone(), imm16.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
13616
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
13617
13618
            // Return a type ISLE can work with.
13619
0
            let gpr = ax.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
13620
0
            AssemblerOutputs::RetGpr { inst, gpr }
13621
0
        }
13622
0
        fn x64_sbbl_i_raw(&mut self, eax: Gpr, imm32: u32) -> AssemblerOutputs {
13623
            // Convert ISLE types to assembler types.
13624
0
            let eax = self.convert_gpr_to_assembler_fixed_read_write_gpr(eax); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
13625
0
            let imm32 = cranelift_assembler_x64::Imm32::new(imm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
13626
13627
            // Build the instruction.
13628
0
            let inst = cranelift_assembler_x64::inst::sbbl_i::new(eax.clone(), imm32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
13629
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
13630
13631
            // Return a type ISLE can work with.
13632
0
            let gpr = eax.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
13633
0
            AssemblerOutputs::RetGpr { inst, gpr }
13634
0
        }
13635
0
        fn x64_sbbq_i_sxl_raw(&mut self, rax: Gpr, imm32: i32) -> AssemblerOutputs {
13636
            // Convert ISLE types to assembler types.
13637
0
            let rax = self.convert_gpr_to_assembler_fixed_read_write_gpr(rax); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
13638
0
            let imm32 = cranelift_assembler_x64::Simm32::new(imm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
13639
13640
            // Build the instruction.
13641
0
            let inst = cranelift_assembler_x64::inst::sbbq_i_sxl::new(rax.clone(), imm32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
13642
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
13643
13644
            // Return a type ISLE can work with.
13645
0
            let gpr = rax.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
13646
0
            AssemblerOutputs::RetGpr { inst, gpr }
13647
0
        }
13648
0
        fn x64_sbbb_mi_raw(&mut self, rm8: &GprMem, imm8: u8) -> AssemblerOutputs {
13649
            // Convert ISLE types to assembler types.
13650
0
            let rm8 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
13651
0
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
13652
13653
            // Build the instruction.
13654
0
            let inst = cranelift_assembler_x64::inst::sbbb_mi::new(rm8.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
13655
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
13656
13657
            // Return a type ISLE can work with.
13658
0
            match rm8 {
13659
0
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
13660
0
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
13661
0
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
13662
                }
13663
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
13664
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
13665
                }
13666
            }
13667
0
        }
13668
0
        fn x64_sbbw_mi_raw(&mut self, rm16: &GprMem, imm16: u16) -> AssemblerOutputs {
13669
            // Convert ISLE types to assembler types.
13670
0
            let rm16 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
13671
0
            let imm16 = cranelift_assembler_x64::Imm16::new(imm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
13672
13673
            // Build the instruction.
13674
0
            let inst = cranelift_assembler_x64::inst::sbbw_mi::new(rm16.clone(), imm16.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
13675
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
13676
13677
            // Return a type ISLE can work with.
13678
0
            match rm16 {
13679
0
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
13680
0
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
13681
0
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
13682
                }
13683
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
13684
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
13685
                }
13686
            }
13687
0
        }
13688
0
        fn x64_sbbl_mi_raw(&mut self, rm32: &GprMem, imm32: u32) -> AssemblerOutputs {
13689
            // Convert ISLE types to assembler types.
13690
0
            let rm32 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
13691
0
            let imm32 = cranelift_assembler_x64::Imm32::new(imm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
13692
13693
            // Build the instruction.
13694
0
            let inst = cranelift_assembler_x64::inst::sbbl_mi::new(rm32.clone(), imm32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
13695
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
13696
13697
            // Return a type ISLE can work with.
13698
0
            match rm32 {
13699
0
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
13700
0
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
13701
0
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
13702
                }
13703
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
13704
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
13705
                }
13706
            }
13707
0
        }
13708
1.15k
        fn x64_sbbq_mi_sxl_raw(&mut self, rm64: &GprMem, imm32: i32) -> AssemblerOutputs {
13709
            // Convert ISLE types to assembler types.
13710
1.15k
            let rm64 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
13711
1.15k
            let imm32 = cranelift_assembler_x64::Simm32::new(imm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
13712
13713
            // Build the instruction.
13714
1.15k
            let inst = cranelift_assembler_x64::inst::sbbq_mi_sxl::new(rm64.clone(), imm32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
13715
1.15k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
13716
13717
            // Return a type ISLE can work with.
13718
1.15k
            match rm64 {
13719
1.15k
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
13720
1.15k
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
13721
1.15k
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
13722
                }
13723
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
13724
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
13725
                }
13726
            }
13727
1.15k
        }
13728
0
        fn x64_sbbl_mi_sxb_raw(&mut self, rm32: &GprMem, imm8: i8) -> AssemblerOutputs {
13729
            // Convert ISLE types to assembler types.
13730
0
            let rm32 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
13731
0
            let imm8 = cranelift_assembler_x64::Simm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
13732
13733
            // Build the instruction.
13734
0
            let inst = cranelift_assembler_x64::inst::sbbl_mi_sxb::new(rm32.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
13735
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
13736
13737
            // Return a type ISLE can work with.
13738
0
            match rm32 {
13739
0
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
13740
0
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
13741
0
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
13742
                }
13743
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
13744
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
13745
                }
13746
            }
13747
0
        }
13748
458
        fn x64_sbbq_mi_sxb_raw(&mut self, rm64: &GprMem, imm8: i8) -> AssemblerOutputs {
13749
            // Convert ISLE types to assembler types.
13750
458
            let rm64 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
13751
458
            let imm8 = cranelift_assembler_x64::Simm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
13752
13753
            // Build the instruction.
13754
458
            let inst = cranelift_assembler_x64::inst::sbbq_mi_sxb::new(rm64.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
13755
458
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
13756
13757
            // Return a type ISLE can work with.
13758
458
            match rm64 {
13759
458
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
13760
458
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
13761
458
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
13762
                }
13763
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
13764
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
13765
                }
13766
            }
13767
458
        }
13768
0
        fn x64_sbbb_mr_raw(&mut self, rm8: &GprMem, r8: Gpr) -> AssemblerOutputs {
13769
            // Convert ISLE types to assembler types.
13770
0
            let rm8 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
13771
0
            let r8 = cranelift_assembler_x64::Gpr::new(r8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
13772
13773
            // Build the instruction.
13774
0
            let inst = cranelift_assembler_x64::inst::sbbb_mr::new(rm8.clone(), r8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
13775
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
13776
13777
            // Return a type ISLE can work with.
13778
0
            match rm8 {
13779
0
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
13780
0
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
13781
0
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
13782
                }
13783
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
13784
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
13785
                }
13786
            }
13787
0
        }
13788
0
        fn x64_sbbw_mr_raw(&mut self, rm16: &GprMem, r16: Gpr) -> AssemblerOutputs {
13789
            // Convert ISLE types to assembler types.
13790
0
            let rm16 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
13791
0
            let r16 = cranelift_assembler_x64::Gpr::new(r16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
13792
13793
            // Build the instruction.
13794
0
            let inst = cranelift_assembler_x64::inst::sbbw_mr::new(rm16.clone(), r16.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
13795
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
13796
13797
            // Return a type ISLE can work with.
13798
0
            match rm16 {
13799
0
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
13800
0
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
13801
0
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
13802
                }
13803
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
13804
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
13805
                }
13806
            }
13807
0
        }
13808
0
        fn x64_sbbl_mr_raw(&mut self, rm32: &GprMem, r32: Gpr) -> AssemblerOutputs {
13809
            // Convert ISLE types to assembler types.
13810
0
            let rm32 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
13811
0
            let r32 = cranelift_assembler_x64::Gpr::new(r32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
13812
13813
            // Build the instruction.
13814
0
            let inst = cranelift_assembler_x64::inst::sbbl_mr::new(rm32.clone(), r32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
13815
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
13816
13817
            // Return a type ISLE can work with.
13818
0
            match rm32 {
13819
0
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
13820
0
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
13821
0
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
13822
                }
13823
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
13824
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
13825
                }
13826
            }
13827
0
        }
13828
0
        fn x64_sbbq_mr_raw(&mut self, rm64: &GprMem, r64: Gpr) -> AssemblerOutputs {
13829
            // Convert ISLE types to assembler types.
13830
0
            let rm64 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
13831
0
            let r64 = cranelift_assembler_x64::Gpr::new(r64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
13832
13833
            // Build the instruction.
13834
0
            let inst = cranelift_assembler_x64::inst::sbbq_mr::new(rm64.clone(), r64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
13835
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
13836
13837
            // Return a type ISLE can work with.
13838
0
            match rm64 {
13839
0
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
13840
0
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
13841
0
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
13842
                }
13843
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
13844
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
13845
                }
13846
            }
13847
0
        }
13848
0
        fn x64_sbbb_rm_raw(&mut self, r8: Gpr, rm8: &GprMem) -> AssemblerOutputs {
13849
            // Convert ISLE types to assembler types.
13850
0
            let r8 = self.convert_gpr_to_assembler_read_write_gpr(r8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
13851
0
            let rm8 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
13852
13853
            // Build the instruction.
13854
0
            let inst = cranelift_assembler_x64::inst::sbbb_rm::new(r8.clone(), rm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
13855
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
13856
13857
            // Return a type ISLE can work with.
13858
0
            let gpr = r8.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
13859
0
            AssemblerOutputs::RetGpr { inst, gpr }
13860
0
        }
13861
0
        fn x64_sbbw_rm_raw(&mut self, r16: Gpr, rm16: &GprMem) -> AssemblerOutputs {
13862
            // Convert ISLE types to assembler types.
13863
0
            let r16 = self.convert_gpr_to_assembler_read_write_gpr(r16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
13864
0
            let rm16 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
13865
13866
            // Build the instruction.
13867
0
            let inst = cranelift_assembler_x64::inst::sbbw_rm::new(r16.clone(), rm16.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
13868
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
13869
13870
            // Return a type ISLE can work with.
13871
0
            let gpr = r16.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
13872
0
            AssemblerOutputs::RetGpr { inst, gpr }
13873
0
        }
13874
1.39k
        fn x64_sbbl_rm_raw(&mut self, r32: Gpr, rm32: &GprMem) -> AssemblerOutputs {
13875
            // Convert ISLE types to assembler types.
13876
1.39k
            let r32 = self.convert_gpr_to_assembler_read_write_gpr(r32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
13877
1.39k
            let rm32 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
13878
13879
            // Build the instruction.
13880
1.39k
            let inst = cranelift_assembler_x64::inst::sbbl_rm::new(r32.clone(), rm32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
13881
1.39k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
13882
13883
            // Return a type ISLE can work with.
13884
1.39k
            let gpr = r32.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
13885
1.39k
            AssemblerOutputs::RetGpr { inst, gpr }
13886
1.39k
        }
13887
81.3k
        fn x64_sbbq_rm_raw(&mut self, r64: Gpr, rm64: &GprMem) -> AssemblerOutputs {
13888
            // Convert ISLE types to assembler types.
13889
81.3k
            let r64 = self.convert_gpr_to_assembler_read_write_gpr(r64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
13890
81.3k
            let rm64 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
13891
13892
            // Build the instruction.
13893
81.3k
            let inst = cranelift_assembler_x64::inst::sbbq_rm::new(r64.clone(), rm64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
13894
81.3k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
13895
13896
            // Return a type ISLE can work with.
13897
81.3k
            let gpr = r64.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
13898
81.3k
            AssemblerOutputs::RetGpr { inst, gpr }
13899
81.3k
        }
13900
0
        fn x64_lock_subb_mi_raw(&mut self, m8: &SyntheticAmode, imm8: u8) -> AssemblerOutputs {
13901
            // Convert ISLE types to assembler types.
13902
0
            let m8 = self.convert_amode_to_assembler_amode(m8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
13903
0
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
13904
13905
            // Build the instruction.
13906
0
            let inst = cranelift_assembler_x64::inst::lock_subb_mi::new(m8.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
13907
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
13908
13909
            // Return a type ISLE can work with.
13910
0
            AssemblerOutputs::SideEffect { inst }
13911
0
        }
13912
0
        fn x64_lock_subw_mi_raw(&mut self, m16: &SyntheticAmode, imm16: u16) -> AssemblerOutputs {
13913
            // Convert ISLE types to assembler types.
13914
0
            let m16 = self.convert_amode_to_assembler_amode(m16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
13915
0
            let imm16 = cranelift_assembler_x64::Imm16::new(imm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
13916
13917
            // Build the instruction.
13918
0
            let inst = cranelift_assembler_x64::inst::lock_subw_mi::new(m16.clone(), imm16.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
13919
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
13920
13921
            // Return a type ISLE can work with.
13922
0
            AssemblerOutputs::SideEffect { inst }
13923
0
        }
13924
0
        fn x64_lock_subl_mi_raw(&mut self, m32: &SyntheticAmode, imm32: u32) -> AssemblerOutputs {
13925
            // Convert ISLE types to assembler types.
13926
0
            let m32 = self.convert_amode_to_assembler_amode(m32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
13927
0
            let imm32 = cranelift_assembler_x64::Imm32::new(imm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
13928
13929
            // Build the instruction.
13930
0
            let inst = cranelift_assembler_x64::inst::lock_subl_mi::new(m32.clone(), imm32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
13931
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
13932
13933
            // Return a type ISLE can work with.
13934
0
            AssemblerOutputs::SideEffect { inst }
13935
0
        }
13936
0
        fn x64_lock_subq_mi_sxl_raw(&mut self, m64: &SyntheticAmode, imm32: i32) -> AssemblerOutputs {
13937
            // Convert ISLE types to assembler types.
13938
0
            let m64 = self.convert_amode_to_assembler_amode(m64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
13939
0
            let imm32 = cranelift_assembler_x64::Simm32::new(imm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
13940
13941
            // Build the instruction.
13942
0
            let inst = cranelift_assembler_x64::inst::lock_subq_mi_sxl::new(m64.clone(), imm32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
13943
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
13944
13945
            // Return a type ISLE can work with.
13946
0
            AssemblerOutputs::SideEffect { inst }
13947
0
        }
13948
0
        fn x64_lock_subl_mi_sxb_raw(&mut self, m32: &SyntheticAmode, imm8: i8) -> AssemblerOutputs {
13949
            // Convert ISLE types to assembler types.
13950
0
            let m32 = self.convert_amode_to_assembler_amode(m32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
13951
0
            let imm8 = cranelift_assembler_x64::Simm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
13952
13953
            // Build the instruction.
13954
0
            let inst = cranelift_assembler_x64::inst::lock_subl_mi_sxb::new(m32.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
13955
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
13956
13957
            // Return a type ISLE can work with.
13958
0
            AssemblerOutputs::SideEffect { inst }
13959
0
        }
13960
0
        fn x64_lock_subq_mi_sxb_raw(&mut self, m64: &SyntheticAmode, imm8: i8) -> AssemblerOutputs {
13961
            // Convert ISLE types to assembler types.
13962
0
            let m64 = self.convert_amode_to_assembler_amode(m64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
13963
0
            let imm8 = cranelift_assembler_x64::Simm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
13964
13965
            // Build the instruction.
13966
0
            let inst = cranelift_assembler_x64::inst::lock_subq_mi_sxb::new(m64.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
13967
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
13968
13969
            // Return a type ISLE can work with.
13970
0
            AssemblerOutputs::SideEffect { inst }
13971
0
        }
13972
5
        fn x64_lock_subb_mr_raw(&mut self, m8: &SyntheticAmode, r8: Gpr) -> AssemblerOutputs {
13973
            // Convert ISLE types to assembler types.
13974
5
            let m8 = self.convert_amode_to_assembler_amode(m8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
13975
5
            let r8 = cranelift_assembler_x64::Gpr::new(r8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
13976
13977
            // Build the instruction.
13978
5
            let inst = cranelift_assembler_x64::inst::lock_subb_mr::new(m8.clone(), r8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
13979
5
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
13980
13981
            // Return a type ISLE can work with.
13982
5
            AssemblerOutputs::SideEffect { inst }
13983
5
        }
13984
0
        fn x64_lock_subw_mr_raw(&mut self, m16: &SyntheticAmode, r16: Gpr) -> AssemblerOutputs {
13985
            // Convert ISLE types to assembler types.
13986
0
            let m16 = self.convert_amode_to_assembler_amode(m16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
13987
0
            let r16 = cranelift_assembler_x64::Gpr::new(r16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
13988
13989
            // Build the instruction.
13990
0
            let inst = cranelift_assembler_x64::inst::lock_subw_mr::new(m16.clone(), r16.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
13991
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
13992
13993
            // Return a type ISLE can work with.
13994
0
            AssemblerOutputs::SideEffect { inst }
13995
0
        }
13996
2
        fn x64_lock_subl_mr_raw(&mut self, m32: &SyntheticAmode, r32: Gpr) -> AssemblerOutputs {
13997
            // Convert ISLE types to assembler types.
13998
2
            let m32 = self.convert_amode_to_assembler_amode(m32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
13999
2
            let r32 = cranelift_assembler_x64::Gpr::new(r32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
14000
14001
            // Build the instruction.
14002
2
            let inst = cranelift_assembler_x64::inst::lock_subl_mr::new(m32.clone(), r32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
14003
2
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
14004
14005
            // Return a type ISLE can work with.
14006
2
            AssemblerOutputs::SideEffect { inst }
14007
2
        }
14008
2
        fn x64_lock_subq_mr_raw(&mut self, m64: &SyntheticAmode, r64: Gpr) -> AssemblerOutputs {
14009
            // Convert ISLE types to assembler types.
14010
2
            let m64 = self.convert_amode_to_assembler_amode(m64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
14011
2
            let r64 = cranelift_assembler_x64::Gpr::new(r64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
14012
14013
            // Build the instruction.
14014
2
            let inst = cranelift_assembler_x64::inst::lock_subq_mr::new(m64.clone(), r64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
14015
2
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
14016
14017
            // Return a type ISLE can work with.
14018
2
            AssemblerOutputs::SideEffect { inst }
14019
2
        }
14020
0
        fn x64_lock_sbbb_mi_raw(&mut self, m8: &SyntheticAmode, imm8: u8) -> AssemblerOutputs {
14021
            // Convert ISLE types to assembler types.
14022
0
            let m8 = self.convert_amode_to_assembler_amode(m8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
14023
0
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
14024
14025
            // Build the instruction.
14026
0
            let inst = cranelift_assembler_x64::inst::lock_sbbb_mi::new(m8.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
14027
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
14028
14029
            // Return a type ISLE can work with.
14030
0
            AssemblerOutputs::SideEffect { inst }
14031
0
        }
14032
0
        fn x64_lock_sbbw_mi_raw(&mut self, m16: &SyntheticAmode, imm16: u16) -> AssemblerOutputs {
14033
            // Convert ISLE types to assembler types.
14034
0
            let m16 = self.convert_amode_to_assembler_amode(m16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
14035
0
            let imm16 = cranelift_assembler_x64::Imm16::new(imm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
14036
14037
            // Build the instruction.
14038
0
            let inst = cranelift_assembler_x64::inst::lock_sbbw_mi::new(m16.clone(), imm16.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
14039
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
14040
14041
            // Return a type ISLE can work with.
14042
0
            AssemblerOutputs::SideEffect { inst }
14043
0
        }
14044
0
        fn x64_lock_sbbl_mi_raw(&mut self, m32: &SyntheticAmode, imm32: u32) -> AssemblerOutputs {
14045
            // Convert ISLE types to assembler types.
14046
0
            let m32 = self.convert_amode_to_assembler_amode(m32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
14047
0
            let imm32 = cranelift_assembler_x64::Imm32::new(imm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
14048
14049
            // Build the instruction.
14050
0
            let inst = cranelift_assembler_x64::inst::lock_sbbl_mi::new(m32.clone(), imm32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
14051
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
14052
14053
            // Return a type ISLE can work with.
14054
0
            AssemblerOutputs::SideEffect { inst }
14055
0
        }
14056
0
        fn x64_lock_sbbq_mi_sxl_raw(&mut self, m64: &SyntheticAmode, imm32: i32) -> AssemblerOutputs {
14057
            // Convert ISLE types to assembler types.
14058
0
            let m64 = self.convert_amode_to_assembler_amode(m64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
14059
0
            let imm32 = cranelift_assembler_x64::Simm32::new(imm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
14060
14061
            // Build the instruction.
14062
0
            let inst = cranelift_assembler_x64::inst::lock_sbbq_mi_sxl::new(m64.clone(), imm32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
14063
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
14064
14065
            // Return a type ISLE can work with.
14066
0
            AssemblerOutputs::SideEffect { inst }
14067
0
        }
14068
0
        fn x64_lock_sbbl_mi_sxb_raw(&mut self, m32: &SyntheticAmode, imm8: i8) -> AssemblerOutputs {
14069
            // Convert ISLE types to assembler types.
14070
0
            let m32 = self.convert_amode_to_assembler_amode(m32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
14071
0
            let imm8 = cranelift_assembler_x64::Simm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
14072
14073
            // Build the instruction.
14074
0
            let inst = cranelift_assembler_x64::inst::lock_sbbl_mi_sxb::new(m32.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
14075
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
14076
14077
            // Return a type ISLE can work with.
14078
0
            AssemblerOutputs::SideEffect { inst }
14079
0
        }
14080
0
        fn x64_lock_sbbq_mi_sxb_raw(&mut self, m64: &SyntheticAmode, imm8: i8) -> AssemblerOutputs {
14081
            // Convert ISLE types to assembler types.
14082
0
            let m64 = self.convert_amode_to_assembler_amode(m64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
14083
0
            let imm8 = cranelift_assembler_x64::Simm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
14084
14085
            // Build the instruction.
14086
0
            let inst = cranelift_assembler_x64::inst::lock_sbbq_mi_sxb::new(m64.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
14087
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
14088
14089
            // Return a type ISLE can work with.
14090
0
            AssemblerOutputs::SideEffect { inst }
14091
0
        }
14092
0
        fn x64_lock_sbbb_mr_raw(&mut self, m8: &SyntheticAmode, r8: Gpr) -> AssemblerOutputs {
14093
            // Convert ISLE types to assembler types.
14094
0
            let m8 = self.convert_amode_to_assembler_amode(m8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
14095
0
            let r8 = cranelift_assembler_x64::Gpr::new(r8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
14096
14097
            // Build the instruction.
14098
0
            let inst = cranelift_assembler_x64::inst::lock_sbbb_mr::new(m8.clone(), r8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
14099
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
14100
14101
            // Return a type ISLE can work with.
14102
0
            AssemblerOutputs::SideEffect { inst }
14103
0
        }
14104
0
        fn x64_lock_sbbw_mr_raw(&mut self, m16: &SyntheticAmode, r16: Gpr) -> AssemblerOutputs {
14105
            // Convert ISLE types to assembler types.
14106
0
            let m16 = self.convert_amode_to_assembler_amode(m16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
14107
0
            let r16 = cranelift_assembler_x64::Gpr::new(r16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
14108
14109
            // Build the instruction.
14110
0
            let inst = cranelift_assembler_x64::inst::lock_sbbw_mr::new(m16.clone(), r16.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
14111
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
14112
14113
            // Return a type ISLE can work with.
14114
0
            AssemblerOutputs::SideEffect { inst }
14115
0
        }
14116
0
        fn x64_lock_sbbl_mr_raw(&mut self, m32: &SyntheticAmode, r32: Gpr) -> AssemblerOutputs {
14117
            // Convert ISLE types to assembler types.
14118
0
            let m32 = self.convert_amode_to_assembler_amode(m32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
14119
0
            let r32 = cranelift_assembler_x64::Gpr::new(r32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
14120
14121
            // Build the instruction.
14122
0
            let inst = cranelift_assembler_x64::inst::lock_sbbl_mr::new(m32.clone(), r32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
14123
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
14124
14125
            // Return a type ISLE can work with.
14126
0
            AssemblerOutputs::SideEffect { inst }
14127
0
        }
14128
0
        fn x64_lock_sbbq_mr_raw(&mut self, m64: &SyntheticAmode, r64: Gpr) -> AssemblerOutputs {
14129
            // Convert ISLE types to assembler types.
14130
0
            let m64 = self.convert_amode_to_assembler_amode(m64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
14131
0
            let r64 = cranelift_assembler_x64::Gpr::new(r64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
14132
14133
            // Build the instruction.
14134
0
            let inst = cranelift_assembler_x64::inst::lock_sbbq_mr::new(m64.clone(), r64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
14135
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
14136
14137
            // Return a type ISLE can work with.
14138
0
            AssemblerOutputs::SideEffect { inst }
14139
0
        }
14140
59
        fn x64_subss_a_raw(&mut self, xmm1: Xmm, xmm_m32: &XmmMem) -> AssemblerOutputs {
14141
            // Convert ISLE types to assembler types.
14142
59
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
14143
59
            let xmm_m32 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
14144
14145
            // Build the instruction.
14146
59
            let inst = cranelift_assembler_x64::inst::subss_a::new(xmm1.clone(), xmm_m32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
14147
59
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
14148
14149
            // Return a type ISLE can work with.
14150
59
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
14151
59
            AssemblerOutputs::RetXmm { inst, xmm }
14152
59
        }
14153
80
        fn x64_subsd_a_raw(&mut self, xmm1: Xmm, xmm_m64: &XmmMem) -> AssemblerOutputs {
14154
            // Convert ISLE types to assembler types.
14155
80
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
14156
80
            let xmm_m64 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
14157
14158
            // Build the instruction.
14159
80
            let inst = cranelift_assembler_x64::inst::subsd_a::new(xmm1.clone(), xmm_m64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
14160
80
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
14161
14162
            // Return a type ISLE can work with.
14163
80
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
14164
80
            AssemblerOutputs::RetXmm { inst, xmm }
14165
80
        }
14166
47
        fn x64_subps_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned) -> AssemblerOutputs {
14167
            // Convert ISLE types to assembler types.
14168
47
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
14169
47
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
14170
14171
            // Build the instruction.
14172
47
            let inst = cranelift_assembler_x64::inst::subps_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
14173
47
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
14174
14175
            // Return a type ISLE can work with.
14176
47
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
14177
47
            AssemblerOutputs::RetXmm { inst, xmm }
14178
47
        }
14179
10
        fn x64_subpd_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned) -> AssemblerOutputs {
14180
            // Convert ISLE types to assembler types.
14181
10
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
14182
10
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
14183
14184
            // Build the instruction.
14185
10
            let inst = cranelift_assembler_x64::inst::subpd_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
14186
10
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
14187
14188
            // Return a type ISLE can work with.
14189
10
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
14190
10
            AssemblerOutputs::RetXmm { inst, xmm }
14191
10
        }
14192
621
        fn x64_psubb_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned) -> AssemblerOutputs {
14193
            // Convert ISLE types to assembler types.
14194
621
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
14195
621
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
14196
14197
            // Build the instruction.
14198
621
            let inst = cranelift_assembler_x64::inst::psubb_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
14199
621
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
14200
14201
            // Return a type ISLE can work with.
14202
621
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
14203
621
            AssemblerOutputs::RetXmm { inst, xmm }
14204
621
        }
14205
313
        fn x64_psubw_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned) -> AssemblerOutputs {
14206
            // Convert ISLE types to assembler types.
14207
313
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
14208
313
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
14209
14210
            // Build the instruction.
14211
313
            let inst = cranelift_assembler_x64::inst::psubw_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
14212
313
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
14213
14214
            // Return a type ISLE can work with.
14215
313
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
14216
313
            AssemblerOutputs::RetXmm { inst, xmm }
14217
313
        }
14218
252
        fn x64_psubd_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned) -> AssemblerOutputs {
14219
            // Convert ISLE types to assembler types.
14220
252
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
14221
252
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
14222
14223
            // Build the instruction.
14224
252
            let inst = cranelift_assembler_x64::inst::psubd_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
14225
252
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
14226
14227
            // Return a type ISLE can work with.
14228
252
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
14229
252
            AssemblerOutputs::RetXmm { inst, xmm }
14230
252
        }
14231
333
        fn x64_psubq_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned) -> AssemblerOutputs {
14232
            // Convert ISLE types to assembler types.
14233
333
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
14234
333
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
14235
14236
            // Build the instruction.
14237
333
            let inst = cranelift_assembler_x64::inst::psubq_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
14238
333
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
14239
14240
            // Return a type ISLE can work with.
14241
333
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
14242
333
            AssemblerOutputs::RetXmm { inst, xmm }
14243
333
        }
14244
11
        fn x64_psubsb_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned) -> AssemblerOutputs {
14245
            // Convert ISLE types to assembler types.
14246
11
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
14247
11
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
14248
14249
            // Build the instruction.
14250
11
            let inst = cranelift_assembler_x64::inst::psubsb_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
14251
11
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
14252
14253
            // Return a type ISLE can work with.
14254
11
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
14255
11
            AssemblerOutputs::RetXmm { inst, xmm }
14256
11
        }
14257
17
        fn x64_psubsw_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned) -> AssemblerOutputs {
14258
            // Convert ISLE types to assembler types.
14259
17
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
14260
17
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
14261
14262
            // Build the instruction.
14263
17
            let inst = cranelift_assembler_x64::inst::psubsw_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
14264
17
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
14265
14266
            // Return a type ISLE can work with.
14267
17
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
14268
17
            AssemblerOutputs::RetXmm { inst, xmm }
14269
17
        }
14270
147
        fn x64_psubusb_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned) -> AssemblerOutputs {
14271
            // Convert ISLE types to assembler types.
14272
147
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
14273
147
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
14274
14275
            // Build the instruction.
14276
147
            let inst = cranelift_assembler_x64::inst::psubusb_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
14277
147
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
14278
14279
            // Return a type ISLE can work with.
14280
147
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
14281
147
            AssemblerOutputs::RetXmm { inst, xmm }
14282
147
        }
14283
11.0k
        fn x64_psubusw_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned) -> AssemblerOutputs {
14284
            // Convert ISLE types to assembler types.
14285
11.0k
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
14286
11.0k
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
14287
14288
            // Build the instruction.
14289
11.0k
            let inst = cranelift_assembler_x64::inst::psubusw_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
14290
11.0k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
14291
14292
            // Return a type ISLE can work with.
14293
11.0k
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
14294
11.0k
            AssemblerOutputs::RetXmm { inst, xmm }
14295
11.0k
        }
14296
453
        fn x64_vsubss_b_raw(&mut self, xmm2: Xmm, xmm_m32: &XmmMem) -> AssemblerOutputs {
14297
            // Convert ISLE types to assembler types.
14298
453
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
14299
453
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
14300
453
            let xmm_m32 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
14301
14302
            // Build the instruction.
14303
453
            let inst = cranelift_assembler_x64::inst::vsubss_b::new(xmm1.clone(), xmm2.clone(), xmm_m32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
14304
453
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
14305
14306
            // Return a type ISLE can work with.
14307
453
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
14308
453
            AssemblerOutputs::RetXmm { inst, xmm }
14309
453
        }
14310
485
        fn x64_vsubsd_b_raw(&mut self, xmm2: Xmm, xmm_m64: &XmmMem) -> AssemblerOutputs {
14311
            // Convert ISLE types to assembler types.
14312
485
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
14313
485
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
14314
485
            let xmm_m64 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
14315
14316
            // Build the instruction.
14317
485
            let inst = cranelift_assembler_x64::inst::vsubsd_b::new(xmm1.clone(), xmm2.clone(), xmm_m64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
14318
485
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
14319
14320
            // Return a type ISLE can work with.
14321
485
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
14322
485
            AssemblerOutputs::RetXmm { inst, xmm }
14323
485
        }
14324
239
        fn x64_vsubps_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem) -> AssemblerOutputs {
14325
            // Convert ISLE types to assembler types.
14326
239
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
14327
239
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
14328
239
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
14329
14330
            // Build the instruction.
14331
239
            let inst = cranelift_assembler_x64::inst::vsubps_b::new(xmm1.clone(), xmm2.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
14332
239
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
14333
14334
            // Return a type ISLE can work with.
14335
239
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
14336
239
            AssemblerOutputs::RetXmm { inst, xmm }
14337
239
        }
14338
211
        fn x64_vsubpd_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem) -> AssemblerOutputs {
14339
            // Convert ISLE types to assembler types.
14340
211
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
14341
211
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
14342
211
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
14343
14344
            // Build the instruction.
14345
211
            let inst = cranelift_assembler_x64::inst::vsubpd_b::new(xmm1.clone(), xmm2.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
14346
211
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
14347
14348
            // Return a type ISLE can work with.
14349
211
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
14350
211
            AssemblerOutputs::RetXmm { inst, xmm }
14351
211
        }
14352
692
        fn x64_vpsubb_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem) -> AssemblerOutputs {
14353
            // Convert ISLE types to assembler types.
14354
692
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
14355
692
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
14356
692
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
14357
14358
            // Build the instruction.
14359
692
            let inst = cranelift_assembler_x64::inst::vpsubb_b::new(xmm1.clone(), xmm2.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
14360
692
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
14361
14362
            // Return a type ISLE can work with.
14363
692
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
14364
692
            AssemblerOutputs::RetXmm { inst, xmm }
14365
692
        }
14366
774
        fn x64_vpsubw_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem) -> AssemblerOutputs {
14367
            // Convert ISLE types to assembler types.
14368
774
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
14369
774
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
14370
774
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
14371
14372
            // Build the instruction.
14373
774
            let inst = cranelift_assembler_x64::inst::vpsubw_b::new(xmm1.clone(), xmm2.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
14374
774
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
14375
14376
            // Return a type ISLE can work with.
14377
774
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
14378
774
            AssemblerOutputs::RetXmm { inst, xmm }
14379
774
        }
14380
1.33k
        fn x64_vpsubd_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem) -> AssemblerOutputs {
14381
            // Convert ISLE types to assembler types.
14382
1.33k
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
14383
1.33k
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
14384
1.33k
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
14385
14386
            // Build the instruction.
14387
1.33k
            let inst = cranelift_assembler_x64::inst::vpsubd_b::new(xmm1.clone(), xmm2.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
14388
1.33k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
14389
14390
            // Return a type ISLE can work with.
14391
1.33k
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
14392
1.33k
            AssemblerOutputs::RetXmm { inst, xmm }
14393
1.33k
        }
14394
728
        fn x64_vpsubq_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem) -> AssemblerOutputs {
14395
            // Convert ISLE types to assembler types.
14396
728
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
14397
728
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
14398
728
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
14399
14400
            // Build the instruction.
14401
728
            let inst = cranelift_assembler_x64::inst::vpsubq_b::new(xmm1.clone(), xmm2.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
14402
728
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
14403
14404
            // Return a type ISLE can work with.
14405
728
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
14406
728
            AssemblerOutputs::RetXmm { inst, xmm }
14407
728
        }
14408
83
        fn x64_vpsubsb_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem) -> AssemblerOutputs {
14409
            // Convert ISLE types to assembler types.
14410
83
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
14411
83
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
14412
83
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
14413
14414
            // Build the instruction.
14415
83
            let inst = cranelift_assembler_x64::inst::vpsubsb_b::new(xmm1.clone(), xmm2.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
14416
83
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
14417
14418
            // Return a type ISLE can work with.
14419
83
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
14420
83
            AssemblerOutputs::RetXmm { inst, xmm }
14421
83
        }
14422
79
        fn x64_vpsubsw_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem) -> AssemblerOutputs {
14423
            // Convert ISLE types to assembler types.
14424
79
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
14425
79
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
14426
79
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
14427
14428
            // Build the instruction.
14429
79
            let inst = cranelift_assembler_x64::inst::vpsubsw_b::new(xmm1.clone(), xmm2.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
14430
79
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
14431
14432
            // Return a type ISLE can work with.
14433
79
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
14434
79
            AssemblerOutputs::RetXmm { inst, xmm }
14435
79
        }
14436
670
        fn x64_vpsubusb_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem) -> AssemblerOutputs {
14437
            // Convert ISLE types to assembler types.
14438
670
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
14439
670
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
14440
670
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
14441
14442
            // Build the instruction.
14443
670
            let inst = cranelift_assembler_x64::inst::vpsubusb_b::new(xmm1.clone(), xmm2.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
14444
670
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
14445
14446
            // Return a type ISLE can work with.
14447
670
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
14448
670
            AssemblerOutputs::RetXmm { inst, xmm }
14449
670
        }
14450
27.2k
        fn x64_vpsubusw_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem) -> AssemblerOutputs {
14451
            // Convert ISLE types to assembler types.
14452
27.2k
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
14453
27.2k
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
14454
27.2k
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
14455
14456
            // Build the instruction.
14457
27.2k
            let inst = cranelift_assembler_x64::inst::vpsubusw_b::new(xmm1.clone(), xmm2.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
14458
27.2k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
14459
14460
            // Return a type ISLE can work with.
14461
27.2k
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
14462
27.2k
            AssemblerOutputs::RetXmm { inst, xmm }
14463
27.2k
        }
14464
63
        fn x64_unpcklps_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned) -> AssemblerOutputs {
14465
            // Convert ISLE types to assembler types.
14466
63
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
14467
63
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
14468
14469
            // Build the instruction.
14470
63
            let inst = cranelift_assembler_x64::inst::unpcklps_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
14471
63
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
14472
14473
            // Return a type ISLE can work with.
14474
63
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
14475
63
            AssemblerOutputs::RetXmm { inst, xmm }
14476
63
        }
14477
0
        fn x64_unpcklpd_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned) -> AssemblerOutputs {
14478
            // Convert ISLE types to assembler types.
14479
0
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
14480
0
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
14481
14482
            // Build the instruction.
14483
0
            let inst = cranelift_assembler_x64::inst::unpcklpd_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
14484
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
14485
14486
            // Return a type ISLE can work with.
14487
0
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
14488
0
            AssemblerOutputs::RetXmm { inst, xmm }
14489
0
        }
14490
33
        fn x64_unpckhps_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned) -> AssemblerOutputs {
14491
            // Convert ISLE types to assembler types.
14492
33
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
14493
33
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
14494
14495
            // Build the instruction.
14496
33
            let inst = cranelift_assembler_x64::inst::unpckhps_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
14497
33
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
14498
14499
            // Return a type ISLE can work with.
14500
33
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
14501
33
            AssemblerOutputs::RetXmm { inst, xmm }
14502
33
        }
14503
75
        fn x64_vunpcklps_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem) -> AssemblerOutputs {
14504
            // Convert ISLE types to assembler types.
14505
75
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
14506
75
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
14507
75
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
14508
14509
            // Build the instruction.
14510
75
            let inst = cranelift_assembler_x64::inst::vunpcklps_b::new(xmm1.clone(), xmm2.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
14511
75
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
14512
14513
            // Return a type ISLE can work with.
14514
75
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
14515
75
            AssemblerOutputs::RetXmm { inst, xmm }
14516
75
        }
14517
0
        fn x64_vunpcklpd_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem) -> AssemblerOutputs {
14518
            // Convert ISLE types to assembler types.
14519
0
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
14520
0
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
14521
0
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
14522
14523
            // Build the instruction.
14524
0
            let inst = cranelift_assembler_x64::inst::vunpcklpd_b::new(xmm1.clone(), xmm2.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
14525
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
14526
14527
            // Return a type ISLE can work with.
14528
0
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
14529
0
            AssemblerOutputs::RetXmm { inst, xmm }
14530
0
        }
14531
96
        fn x64_vunpckhps_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem) -> AssemblerOutputs {
14532
            // Convert ISLE types to assembler types.
14533
96
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
14534
96
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
14535
96
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
14536
14537
            // Build the instruction.
14538
96
            let inst = cranelift_assembler_x64::inst::vunpckhps_b::new(xmm1.clone(), xmm2.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
14539
96
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
14540
14541
            // Return a type ISLE can work with.
14542
96
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
14543
96
            AssemblerOutputs::RetXmm { inst, xmm }
14544
96
        }
14545
3.60k
        fn x64_punpckhbw_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned) -> AssemblerOutputs {
14546
            // Convert ISLE types to assembler types.
14547
3.60k
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
14548
3.60k
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
14549
14550
            // Build the instruction.
14551
3.60k
            let inst = cranelift_assembler_x64::inst::punpckhbw_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
14552
3.60k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
14553
14554
            // Return a type ISLE can work with.
14555
3.60k
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
14556
3.60k
            AssemblerOutputs::RetXmm { inst, xmm }
14557
3.60k
        }
14558
5.59k
        fn x64_punpckhwd_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned) -> AssemblerOutputs {
14559
            // Convert ISLE types to assembler types.
14560
5.59k
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
14561
5.59k
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
14562
14563
            // Build the instruction.
14564
5.59k
            let inst = cranelift_assembler_x64::inst::punpckhwd_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
14565
5.59k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
14566
14567
            // Return a type ISLE can work with.
14568
5.59k
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
14569
5.59k
            AssemblerOutputs::RetXmm { inst, xmm }
14570
5.59k
        }
14571
0
        fn x64_punpckhdq_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned) -> AssemblerOutputs {
14572
            // Convert ISLE types to assembler types.
14573
0
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
14574
0
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
14575
14576
            // Build the instruction.
14577
0
            let inst = cranelift_assembler_x64::inst::punpckhdq_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
14578
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
14579
14580
            // Return a type ISLE can work with.
14581
0
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
14582
0
            AssemblerOutputs::RetXmm { inst, xmm }
14583
0
        }
14584
0
        fn x64_punpckhqdq_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned) -> AssemblerOutputs {
14585
            // Convert ISLE types to assembler types.
14586
0
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
14587
0
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
14588
14589
            // Build the instruction.
14590
0
            let inst = cranelift_assembler_x64::inst::punpckhqdq_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
14591
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
14592
14593
            // Return a type ISLE can work with.
14594
0
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
14595
0
            AssemblerOutputs::RetXmm { inst, xmm }
14596
0
        }
14597
154
        fn x64_punpcklwd_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned) -> AssemblerOutputs {
14598
            // Convert ISLE types to assembler types.
14599
154
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
14600
154
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
14601
14602
            // Build the instruction.
14603
154
            let inst = cranelift_assembler_x64::inst::punpcklwd_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
14604
154
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
14605
14606
            // Return a type ISLE can work with.
14607
154
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
14608
154
            AssemblerOutputs::RetXmm { inst, xmm }
14609
154
        }
14610
3.61k
        fn x64_punpcklbw_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned) -> AssemblerOutputs {
14611
            // Convert ISLE types to assembler types.
14612
3.61k
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
14613
3.61k
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
14614
14615
            // Build the instruction.
14616
3.61k
            let inst = cranelift_assembler_x64::inst::punpcklbw_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
14617
3.61k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
14618
14619
            // Return a type ISLE can work with.
14620
3.61k
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
14621
3.61k
            AssemblerOutputs::RetXmm { inst, xmm }
14622
3.61k
        }
14623
278
        fn x64_punpckldq_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned) -> AssemblerOutputs {
14624
            // Convert ISLE types to assembler types.
14625
278
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
14626
278
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
14627
14628
            // Build the instruction.
14629
278
            let inst = cranelift_assembler_x64::inst::punpckldq_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
14630
278
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
14631
14632
            // Return a type ISLE can work with.
14633
278
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
14634
278
            AssemblerOutputs::RetXmm { inst, xmm }
14635
278
        }
14636
53
        fn x64_punpcklqdq_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned) -> AssemblerOutputs {
14637
            // Convert ISLE types to assembler types.
14638
53
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
14639
53
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
14640
14641
            // Build the instruction.
14642
53
            let inst = cranelift_assembler_x64::inst::punpcklqdq_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
14643
53
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
14644
14645
            // Return a type ISLE can work with.
14646
53
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
14647
53
            AssemblerOutputs::RetXmm { inst, xmm }
14648
53
        }
14649
9.13k
        fn x64_vpunpckhbw_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem) -> AssemblerOutputs {
14650
            // Convert ISLE types to assembler types.
14651
9.13k
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
14652
9.13k
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
14653
9.13k
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
14654
14655
            // Build the instruction.
14656
9.13k
            let inst = cranelift_assembler_x64::inst::vpunpckhbw_b::new(xmm1.clone(), xmm2.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
14657
9.13k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
14658
14659
            // Return a type ISLE can work with.
14660
9.13k
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
14661
9.13k
            AssemblerOutputs::RetXmm { inst, xmm }
14662
9.13k
        }
14663
106
        fn x64_vpunpckhwd_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem) -> AssemblerOutputs {
14664
            // Convert ISLE types to assembler types.
14665
106
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
14666
106
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
14667
106
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
14668
14669
            // Build the instruction.
14670
106
            let inst = cranelift_assembler_x64::inst::vpunpckhwd_b::new(xmm1.clone(), xmm2.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
14671
106
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
14672
14673
            // Return a type ISLE can work with.
14674
106
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
14675
106
            AssemblerOutputs::RetXmm { inst, xmm }
14676
106
        }
14677
0
        fn x64_vpunpckhdq_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem) -> AssemblerOutputs {
14678
            // Convert ISLE types to assembler types.
14679
0
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
14680
0
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
14681
0
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
14682
14683
            // Build the instruction.
14684
0
            let inst = cranelift_assembler_x64::inst::vpunpckhdq_b::new(xmm1.clone(), xmm2.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
14685
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
14686
14687
            // Return a type ISLE can work with.
14688
0
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
14689
0
            AssemblerOutputs::RetXmm { inst, xmm }
14690
0
        }
14691
0
        fn x64_vpunpckhqdq_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem) -> AssemblerOutputs {
14692
            // Convert ISLE types to assembler types.
14693
0
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
14694
0
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
14695
0
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
14696
14697
            // Build the instruction.
14698
0
            let inst = cranelift_assembler_x64::inst::vpunpckhqdq_b::new(xmm1.clone(), xmm2.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
14699
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
14700
14701
            // Return a type ISLE can work with.
14702
0
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
14703
0
            AssemblerOutputs::RetXmm { inst, xmm }
14704
0
        }
14705
24
        fn x64_vpunpcklwd_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem) -> AssemblerOutputs {
14706
            // Convert ISLE types to assembler types.
14707
24
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
14708
24
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
14709
24
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
14710
14711
            // Build the instruction.
14712
24
            let inst = cranelift_assembler_x64::inst::vpunpcklwd_b::new(xmm1.clone(), xmm2.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
14713
24
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
14714
14715
            // Return a type ISLE can work with.
14716
24
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
14717
24
            AssemblerOutputs::RetXmm { inst, xmm }
14718
24
        }
14719
8.30k
        fn x64_vpunpcklbw_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem) -> AssemblerOutputs {
14720
            // Convert ISLE types to assembler types.
14721
8.30k
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
14722
8.30k
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
14723
8.30k
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
14724
14725
            // Build the instruction.
14726
8.30k
            let inst = cranelift_assembler_x64::inst::vpunpcklbw_b::new(xmm1.clone(), xmm2.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
14727
8.30k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
14728
14729
            // Return a type ISLE can work with.
14730
8.30k
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
14731
8.30k
            AssemblerOutputs::RetXmm { inst, xmm }
14732
8.30k
        }
14733
35
        fn x64_vpunpckldq_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem) -> AssemblerOutputs {
14734
            // Convert ISLE types to assembler types.
14735
35
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
14736
35
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
14737
35
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
14738
14739
            // Build the instruction.
14740
35
            let inst = cranelift_assembler_x64::inst::vpunpckldq_b::new(xmm1.clone(), xmm2.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
14741
35
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
14742
14743
            // Return a type ISLE can work with.
14744
35
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
14745
35
            AssemblerOutputs::RetXmm { inst, xmm }
14746
35
        }
14747
78
        fn x64_vpunpcklqdq_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem) -> AssemblerOutputs {
14748
            // Convert ISLE types to assembler types.
14749
78
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
14750
78
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
14751
78
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
14752
14753
            // Build the instruction.
14754
78
            let inst = cranelift_assembler_x64::inst::vpunpcklqdq_b::new(xmm1.clone(), xmm2.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
14755
78
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
14756
14757
            // Return a type ISLE can work with.
14758
78
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
14759
78
            AssemblerOutputs::RetXmm { inst, xmm }
14760
78
        }
14761
0
        fn x64_xorb_i_raw(&mut self, al: Gpr, imm8: u8) -> AssemblerOutputs {
14762
            // Convert ISLE types to assembler types.
14763
0
            let al = self.convert_gpr_to_assembler_fixed_read_write_gpr(al); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
14764
0
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
14765
14766
            // Build the instruction.
14767
0
            let inst = cranelift_assembler_x64::inst::xorb_i::new(al.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
14768
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
14769
14770
            // Return a type ISLE can work with.
14771
0
            let gpr = al.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
14772
0
            AssemblerOutputs::RetGpr { inst, gpr }
14773
0
        }
14774
0
        fn x64_xorw_i_raw(&mut self, ax: Gpr, imm16: u16) -> AssemblerOutputs {
14775
            // Convert ISLE types to assembler types.
14776
0
            let ax = self.convert_gpr_to_assembler_fixed_read_write_gpr(ax); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
14777
0
            let imm16 = cranelift_assembler_x64::Imm16::new(imm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
14778
14779
            // Build the instruction.
14780
0
            let inst = cranelift_assembler_x64::inst::xorw_i::new(ax.clone(), imm16.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
14781
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
14782
14783
            // Return a type ISLE can work with.
14784
0
            let gpr = ax.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
14785
0
            AssemblerOutputs::RetGpr { inst, gpr }
14786
0
        }
14787
0
        fn x64_xorl_i_raw(&mut self, eax: Gpr, imm32: u32) -> AssemblerOutputs {
14788
            // Convert ISLE types to assembler types.
14789
0
            let eax = self.convert_gpr_to_assembler_fixed_read_write_gpr(eax); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
14790
0
            let imm32 = cranelift_assembler_x64::Imm32::new(imm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
14791
14792
            // Build the instruction.
14793
0
            let inst = cranelift_assembler_x64::inst::xorl_i::new(eax.clone(), imm32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
14794
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
14795
14796
            // Return a type ISLE can work with.
14797
0
            let gpr = eax.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
14798
0
            AssemblerOutputs::RetGpr { inst, gpr }
14799
0
        }
14800
0
        fn x64_xorq_i_sxl_raw(&mut self, rax: Gpr, imm32: i32) -> AssemblerOutputs {
14801
            // Convert ISLE types to assembler types.
14802
0
            let rax = self.convert_gpr_to_assembler_fixed_read_write_gpr(rax); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
14803
0
            let imm32 = cranelift_assembler_x64::Simm32::new(imm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
14804
14805
            // Build the instruction.
14806
0
            let inst = cranelift_assembler_x64::inst::xorq_i_sxl::new(rax.clone(), imm32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
14807
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
14808
14809
            // Return a type ISLE can work with.
14810
0
            let gpr = rax.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
14811
0
            AssemblerOutputs::RetGpr { inst, gpr }
14812
0
        }
14813
101
        fn x64_xorb_mi_raw(&mut self, rm8: &GprMem, imm8: u8) -> AssemblerOutputs {
14814
            // Convert ISLE types to assembler types.
14815
101
            let rm8 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
14816
101
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
14817
14818
            // Build the instruction.
14819
101
            let inst = cranelift_assembler_x64::inst::xorb_mi::new(rm8.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
14820
101
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
14821
14822
            // Return a type ISLE can work with.
14823
101
            match rm8 {
14824
101
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
14825
101
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
14826
101
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
14827
                }
14828
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
14829
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
14830
                }
14831
            }
14832
101
        }
14833
49
        fn x64_xorw_mi_raw(&mut self, rm16: &GprMem, imm16: u16) -> AssemblerOutputs {
14834
            // Convert ISLE types to assembler types.
14835
49
            let rm16 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
14836
49
            let imm16 = cranelift_assembler_x64::Imm16::new(imm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
14837
14838
            // Build the instruction.
14839
49
            let inst = cranelift_assembler_x64::inst::xorw_mi::new(rm16.clone(), imm16.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
14840
49
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
14841
14842
            // Return a type ISLE can work with.
14843
49
            match rm16 {
14844
49
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
14845
49
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
14846
49
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
14847
                }
14848
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
14849
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
14850
                }
14851
            }
14852
49
        }
14853
20.1k
        fn x64_xorl_mi_raw(&mut self, rm32: &GprMem, imm32: u32) -> AssemblerOutputs {
14854
            // Convert ISLE types to assembler types.
14855
20.1k
            let rm32 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
14856
20.1k
            let imm32 = cranelift_assembler_x64::Imm32::new(imm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
14857
14858
            // Build the instruction.
14859
20.1k
            let inst = cranelift_assembler_x64::inst::xorl_mi::new(rm32.clone(), imm32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
14860
20.1k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
14861
14862
            // Return a type ISLE can work with.
14863
20.1k
            match rm32 {
14864
10.3k
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
14865
10.3k
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
14866
10.3k
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
14867
                }
14868
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
14869
9.78k
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
14870
                }
14871
            }
14872
20.1k
        }
14873
14.3k
        fn x64_xorq_mi_sxl_raw(&mut self, rm64: &GprMem, imm32: i32) -> AssemblerOutputs {
14874
            // Convert ISLE types to assembler types.
14875
14.3k
            let rm64 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
14876
14.3k
            let imm32 = cranelift_assembler_x64::Simm32::new(imm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
14877
14878
            // Build the instruction.
14879
14.3k
            let inst = cranelift_assembler_x64::inst::xorq_mi_sxl::new(rm64.clone(), imm32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
14880
14.3k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
14881
14882
            // Return a type ISLE can work with.
14883
14.3k
            match rm64 {
14884
956
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
14885
956
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
14886
956
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
14887
                }
14888
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
14889
13.4k
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
14890
                }
14891
            }
14892
14.3k
        }
14893
8.62k
        fn x64_xorl_mi_sxb_raw(&mut self, rm32: &GprMem, imm8: i8) -> AssemblerOutputs {
14894
            // Convert ISLE types to assembler types.
14895
8.62k
            let rm32 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
14896
8.62k
            let imm8 = cranelift_assembler_x64::Simm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
14897
14898
            // Build the instruction.
14899
8.62k
            let inst = cranelift_assembler_x64::inst::xorl_mi_sxb::new(rm32.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
14900
8.62k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
14901
14902
            // Return a type ISLE can work with.
14903
8.62k
            match rm32 {
14904
3.96k
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
14905
3.96k
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
14906
3.96k
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
14907
                }
14908
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
14909
4.66k
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
14910
                }
14911
            }
14912
8.62k
        }
14913
7.08k
        fn x64_xorq_mi_sxb_raw(&mut self, rm64: &GprMem, imm8: i8) -> AssemblerOutputs {
14914
            // Convert ISLE types to assembler types.
14915
7.08k
            let rm64 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
14916
7.08k
            let imm8 = cranelift_assembler_x64::Simm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
14917
14918
            // Build the instruction.
14919
7.08k
            let inst = cranelift_assembler_x64::inst::xorq_mi_sxb::new(rm64.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
14920
7.08k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
14921
14922
            // Return a type ISLE can work with.
14923
7.08k
            match rm64 {
14924
388
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
14925
388
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
14926
388
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
14927
                }
14928
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
14929
6.70k
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
14930
                }
14931
            }
14932
7.08k
        }
14933
0
        fn x64_xorb_mr_raw(&mut self, rm8: &GprMem, r8: Gpr) -> AssemblerOutputs {
14934
            // Convert ISLE types to assembler types.
14935
0
            let rm8 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
14936
0
            let r8 = cranelift_assembler_x64::Gpr::new(r8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
14937
14938
            // Build the instruction.
14939
0
            let inst = cranelift_assembler_x64::inst::xorb_mr::new(rm8.clone(), r8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
14940
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
14941
14942
            // Return a type ISLE can work with.
14943
0
            match rm8 {
14944
0
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
14945
0
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
14946
0
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
14947
                }
14948
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
14949
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
14950
                }
14951
            }
14952
0
        }
14953
0
        fn x64_xorw_mr_raw(&mut self, rm16: &GprMem, r16: Gpr) -> AssemblerOutputs {
14954
            // Convert ISLE types to assembler types.
14955
0
            let rm16 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
14956
0
            let r16 = cranelift_assembler_x64::Gpr::new(r16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
14957
14958
            // Build the instruction.
14959
0
            let inst = cranelift_assembler_x64::inst::xorw_mr::new(rm16.clone(), r16.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
14960
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
14961
14962
            // Return a type ISLE can work with.
14963
0
            match rm16 {
14964
0
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
14965
0
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
14966
0
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
14967
                }
14968
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
14969
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
14970
                }
14971
            }
14972
0
        }
14973
49.6k
        fn x64_xorl_mr_raw(&mut self, rm32: &GprMem, r32: Gpr) -> AssemblerOutputs {
14974
            // Convert ISLE types to assembler types.
14975
49.6k
            let rm32 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
14976
49.6k
            let r32 = cranelift_assembler_x64::Gpr::new(r32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
14977
14978
            // Build the instruction.
14979
49.6k
            let inst = cranelift_assembler_x64::inst::xorl_mr::new(rm32.clone(), r32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
14980
49.6k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
14981
14982
            // Return a type ISLE can work with.
14983
49.6k
            match rm32 {
14984
0
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
14985
0
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
14986
0
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
14987
                }
14988
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
14989
49.6k
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
14990
                }
14991
            }
14992
49.6k
        }
14993
61.0k
        fn x64_xorq_mr_raw(&mut self, rm64: &GprMem, r64: Gpr) -> AssemblerOutputs {
14994
            // Convert ISLE types to assembler types.
14995
61.0k
            let rm64 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
14996
61.0k
            let r64 = cranelift_assembler_x64::Gpr::new(r64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
14997
14998
            // Build the instruction.
14999
61.0k
            let inst = cranelift_assembler_x64::inst::xorq_mr::new(rm64.clone(), r64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
15000
61.0k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
15001
15002
            // Return a type ISLE can work with.
15003
61.0k
            match rm64 {
15004
0
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
15005
0
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:180
15006
0
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:181
15007
                }
15008
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
15009
61.0k
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
15010
                }
15011
            }
15012
61.0k
        }
15013
0
        fn x64_xorb_rm_raw(&mut self, r8: Gpr, rm8: &GprMem) -> AssemblerOutputs {
15014
            // Convert ISLE types to assembler types.
15015
0
            let r8 = self.convert_gpr_to_assembler_read_write_gpr(r8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
15016
0
            let rm8 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
15017
15018
            // Build the instruction.
15019
0
            let inst = cranelift_assembler_x64::inst::xorb_rm::new(r8.clone(), rm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
15020
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
15021
15022
            // Return a type ISLE can work with.
15023
0
            let gpr = r8.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
15024
0
            AssemblerOutputs::RetGpr { inst, gpr }
15025
0
        }
15026
0
        fn x64_xorw_rm_raw(&mut self, r16: Gpr, rm16: &GprMem) -> AssemblerOutputs {
15027
            // Convert ISLE types to assembler types.
15028
0
            let r16 = self.convert_gpr_to_assembler_read_write_gpr(r16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
15029
0
            let rm16 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
15030
15031
            // Build the instruction.
15032
0
            let inst = cranelift_assembler_x64::inst::xorw_rm::new(r16.clone(), rm16.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
15033
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
15034
15035
            // Return a type ISLE can work with.
15036
0
            let gpr = r16.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
15037
0
            AssemblerOutputs::RetGpr { inst, gpr }
15038
0
        }
15039
865k
        fn x64_xorl_rm_raw(&mut self, r32: Gpr, rm32: &GprMem) -> AssemblerOutputs {
15040
            // Convert ISLE types to assembler types.
15041
865k
            let r32 = self.convert_gpr_to_assembler_read_write_gpr(r32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
15042
865k
            let rm32 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
15043
15044
            // Build the instruction.
15045
865k
            let inst = cranelift_assembler_x64::inst::xorl_rm::new(r32.clone(), rm32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
15046
865k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
15047
15048
            // Return a type ISLE can work with.
15049
865k
            let gpr = r32.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
15050
865k
            AssemblerOutputs::RetGpr { inst, gpr }
15051
865k
        }
15052
484k
        fn x64_xorq_rm_raw(&mut self, r64: Gpr, rm64: &GprMem) -> AssemblerOutputs {
15053
            // Convert ISLE types to assembler types.
15054
484k
            let r64 = self.convert_gpr_to_assembler_read_write_gpr(r64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
15055
484k
            let rm64 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
15056
15057
            // Build the instruction.
15058
484k
            let inst = cranelift_assembler_x64::inst::xorq_rm::new(r64.clone(), rm64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
15059
484k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
15060
15061
            // Return a type ISLE can work with.
15062
484k
            let gpr = r64.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
15063
484k
            AssemblerOutputs::RetGpr { inst, gpr }
15064
484k
        }
15065
0
        fn x64_lock_xorb_mi_raw(&mut self, m8: &SyntheticAmode, imm8: u8) -> AssemblerOutputs {
15066
            // Convert ISLE types to assembler types.
15067
0
            let m8 = self.convert_amode_to_assembler_amode(m8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
15068
0
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
15069
15070
            // Build the instruction.
15071
0
            let inst = cranelift_assembler_x64::inst::lock_xorb_mi::new(m8.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
15072
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
15073
15074
            // Return a type ISLE can work with.
15075
0
            AssemblerOutputs::SideEffect { inst }
15076
0
        }
15077
0
        fn x64_lock_xorw_mi_raw(&mut self, m16: &SyntheticAmode, imm16: u16) -> AssemblerOutputs {
15078
            // Convert ISLE types to assembler types.
15079
0
            let m16 = self.convert_amode_to_assembler_amode(m16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
15080
0
            let imm16 = cranelift_assembler_x64::Imm16::new(imm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
15081
15082
            // Build the instruction.
15083
0
            let inst = cranelift_assembler_x64::inst::lock_xorw_mi::new(m16.clone(), imm16.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
15084
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
15085
15086
            // Return a type ISLE can work with.
15087
0
            AssemblerOutputs::SideEffect { inst }
15088
0
        }
15089
0
        fn x64_lock_xorl_mi_raw(&mut self, m32: &SyntheticAmode, imm32: u32) -> AssemblerOutputs {
15090
            // Convert ISLE types to assembler types.
15091
0
            let m32 = self.convert_amode_to_assembler_amode(m32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
15092
0
            let imm32 = cranelift_assembler_x64::Imm32::new(imm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
15093
15094
            // Build the instruction.
15095
0
            let inst = cranelift_assembler_x64::inst::lock_xorl_mi::new(m32.clone(), imm32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
15096
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
15097
15098
            // Return a type ISLE can work with.
15099
0
            AssemblerOutputs::SideEffect { inst }
15100
0
        }
15101
0
        fn x64_lock_xorq_mi_sxl_raw(&mut self, m64: &SyntheticAmode, imm32: i32) -> AssemblerOutputs {
15102
            // Convert ISLE types to assembler types.
15103
0
            let m64 = self.convert_amode_to_assembler_amode(m64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
15104
0
            let imm32 = cranelift_assembler_x64::Simm32::new(imm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
15105
15106
            // Build the instruction.
15107
0
            let inst = cranelift_assembler_x64::inst::lock_xorq_mi_sxl::new(m64.clone(), imm32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
15108
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
15109
15110
            // Return a type ISLE can work with.
15111
0
            AssemblerOutputs::SideEffect { inst }
15112
0
        }
15113
0
        fn x64_lock_xorl_mi_sxb_raw(&mut self, m32: &SyntheticAmode, imm8: i8) -> AssemblerOutputs {
15114
            // Convert ISLE types to assembler types.
15115
0
            let m32 = self.convert_amode_to_assembler_amode(m32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
15116
0
            let imm8 = cranelift_assembler_x64::Simm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
15117
15118
            // Build the instruction.
15119
0
            let inst = cranelift_assembler_x64::inst::lock_xorl_mi_sxb::new(m32.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
15120
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
15121
15122
            // Return a type ISLE can work with.
15123
0
            AssemblerOutputs::SideEffect { inst }
15124
0
        }
15125
0
        fn x64_lock_xorq_mi_sxb_raw(&mut self, m64: &SyntheticAmode, imm8: i8) -> AssemblerOutputs {
15126
            // Convert ISLE types to assembler types.
15127
0
            let m64 = self.convert_amode_to_assembler_amode(m64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
15128
0
            let imm8 = cranelift_assembler_x64::Simm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
15129
15130
            // Build the instruction.
15131
0
            let inst = cranelift_assembler_x64::inst::lock_xorq_mi_sxb::new(m64.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
15132
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
15133
15134
            // Return a type ISLE can work with.
15135
0
            AssemblerOutputs::SideEffect { inst }
15136
0
        }
15137
5
        fn x64_lock_xorb_mr_raw(&mut self, m8: &SyntheticAmode, r8: Gpr) -> AssemblerOutputs {
15138
            // Convert ISLE types to assembler types.
15139
5
            let m8 = self.convert_amode_to_assembler_amode(m8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
15140
5
            let r8 = cranelift_assembler_x64::Gpr::new(r8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
15141
15142
            // Build the instruction.
15143
5
            let inst = cranelift_assembler_x64::inst::lock_xorb_mr::new(m8.clone(), r8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
15144
5
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
15145
15146
            // Return a type ISLE can work with.
15147
5
            AssemblerOutputs::SideEffect { inst }
15148
5
        }
15149
102
        fn x64_lock_xorw_mr_raw(&mut self, m16: &SyntheticAmode, r16: Gpr) -> AssemblerOutputs {
15150
            // Convert ISLE types to assembler types.
15151
102
            let m16 = self.convert_amode_to_assembler_amode(m16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
15152
102
            let r16 = cranelift_assembler_x64::Gpr::new(r16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
15153
15154
            // Build the instruction.
15155
102
            let inst = cranelift_assembler_x64::inst::lock_xorw_mr::new(m16.clone(), r16.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
15156
102
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
15157
15158
            // Return a type ISLE can work with.
15159
102
            AssemblerOutputs::SideEffect { inst }
15160
102
        }
15161
4
        fn x64_lock_xorl_mr_raw(&mut self, m32: &SyntheticAmode, r32: Gpr) -> AssemblerOutputs {
15162
            // Convert ISLE types to assembler types.
15163
4
            let m32 = self.convert_amode_to_assembler_amode(m32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
15164
4
            let r32 = cranelift_assembler_x64::Gpr::new(r32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
15165
15166
            // Build the instruction.
15167
4
            let inst = cranelift_assembler_x64::inst::lock_xorl_mr::new(m32.clone(), r32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
15168
4
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
15169
15170
            // Return a type ISLE can work with.
15171
4
            AssemblerOutputs::SideEffect { inst }
15172
4
        }
15173
0
        fn x64_lock_xorq_mr_raw(&mut self, m64: &SyntheticAmode, r64: Gpr) -> AssemblerOutputs {
15174
            // Convert ISLE types to assembler types.
15175
0
            let m64 = self.convert_amode_to_assembler_amode(m64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
15176
0
            let r64 = cranelift_assembler_x64::Gpr::new(r64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
15177
15178
            // Build the instruction.
15179
0
            let inst = cranelift_assembler_x64::inst::lock_xorq_mr::new(m64.clone(), r64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
15180
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
15181
15182
            // Return a type ISLE can work with.
15183
0
            AssemblerOutputs::SideEffect { inst }
15184
0
        }
15185
20.6k
        fn x64_xorps_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned) -> AssemblerOutputs {
15186
            // Convert ISLE types to assembler types.
15187
20.6k
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
15188
20.6k
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
15189
15190
            // Build the instruction.
15191
20.6k
            let inst = cranelift_assembler_x64::inst::xorps_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
15192
20.6k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
15193
15194
            // Return a type ISLE can work with.
15195
20.6k
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
15196
20.6k
            AssemblerOutputs::RetXmm { inst, xmm }
15197
20.6k
        }
15198
7.07k
        fn x64_xorpd_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned) -> AssemblerOutputs {
15199
            // Convert ISLE types to assembler types.
15200
7.07k
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
15201
7.07k
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
15202
15203
            // Build the instruction.
15204
7.07k
            let inst = cranelift_assembler_x64::inst::xorpd_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
15205
7.07k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
15206
15207
            // Return a type ISLE can work with.
15208
7.07k
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
15209
7.07k
            AssemblerOutputs::RetXmm { inst, xmm }
15210
7.07k
        }
15211
17.2k
        fn x64_pxor_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned) -> AssemblerOutputs {
15212
            // Convert ISLE types to assembler types.
15213
17.2k
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
15214
17.2k
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
15215
15216
            // Build the instruction.
15217
17.2k
            let inst = cranelift_assembler_x64::inst::pxor_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
15218
17.2k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
15219
15220
            // Return a type ISLE can work with.
15221
17.2k
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
15222
17.2k
            AssemblerOutputs::RetXmm { inst, xmm }
15223
17.2k
        }
15224
138k
        fn x64_vxorps_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem) -> AssemblerOutputs {
15225
            // Convert ISLE types to assembler types.
15226
138k
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
15227
138k
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
15228
138k
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
15229
15230
            // Build the instruction.
15231
138k
            let inst = cranelift_assembler_x64::inst::vxorps_b::new(xmm1.clone(), xmm2.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
15232
138k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
15233
15234
            // Return a type ISLE can work with.
15235
138k
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
15236
138k
            AssemblerOutputs::RetXmm { inst, xmm }
15237
138k
        }
15238
177k
        fn x64_vxorpd_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem) -> AssemblerOutputs {
15239
            // Convert ISLE types to assembler types.
15240
177k
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
15241
177k
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
15242
177k
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
15243
15244
            // Build the instruction.
15245
177k
            let inst = cranelift_assembler_x64::inst::vxorpd_b::new(xmm1.clone(), xmm2.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
15246
177k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
15247
15248
            // Return a type ISLE can work with.
15249
177k
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
15250
177k
            AssemblerOutputs::RetXmm { inst, xmm }
15251
177k
        }
15252
62.7k
        fn x64_vpxor_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem) -> AssemblerOutputs {
15253
            // Convert ISLE types to assembler types.
15254
62.7k
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
15255
62.7k
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
15256
62.7k
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:127
15257
15258
            // Build the instruction.
15259
62.7k
            let inst = cranelift_assembler_x64::inst::vpxor_b::new(xmm1.clone(), xmm2.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:140
15260
62.7k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
15261
15262
            // Return a type ISLE can work with.
15263
62.7k
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:170
15264
62.7k
            AssemblerOutputs::RetXmm { inst, xmm }
15265
62.7k
        }
15266
    }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:240
15267
}