Coverage Report

Created: 2026-07-19 07:55

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/wasmtime/target/debug/build/cranelift-codegen-7c7cc42d24157588/out/assembler-isle-macro.rs
Line
Count
Source
1
#[doc(hidden)] // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:233
2
macro_rules! isle_assembler_methods {
3
    () => {
4
70
        fn x64_pabsb_a_raw(&mut self, xmm_m128: &XmmMemAligned128) -> AssemblerOutputs {
5
            // Convert ISLE types to assembler types.
6
70
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
7
70
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
8
9
            // Build the instruction.
10
70
            let inst = cranelift_assembler_x64::inst::pabsb_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
11
70
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
12
13
            // Return a type ISLE can work with.
14
70
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
15
70
            AssemblerOutputs::RetXmm { inst, xmm }
16
70
        }
17
13.4k
        fn x64_vpabsb_a_raw(&mut self, xmm_m128: &XmmMem128) -> AssemblerOutputs {
18
            // Convert ISLE types to assembler types.
19
13.4k
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
20
13.4k
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
21
22
            // Build the instruction.
23
13.4k
            let inst = cranelift_assembler_x64::inst::vpabsb_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
24
13.4k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
25
26
            // Return a type ISLE can work with.
27
13.4k
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
28
13.4k
            AssemblerOutputs::RetXmm { inst, xmm }
29
13.4k
        }
30
101
        fn x64_pabsw_a_raw(&mut self, xmm_m128: &XmmMemAligned128) -> AssemblerOutputs {
31
            // Convert ISLE types to assembler types.
32
101
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
33
101
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
34
35
            // Build the instruction.
36
101
            let inst = cranelift_assembler_x64::inst::pabsw_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
37
101
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
38
39
            // Return a type ISLE can work with.
40
101
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
41
101
            AssemblerOutputs::RetXmm { inst, xmm }
42
101
        }
43
831
        fn x64_vpabsw_a_raw(&mut self, xmm_m128: &XmmMem128) -> AssemblerOutputs {
44
            // Convert ISLE types to assembler types.
45
831
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
46
831
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
47
48
            // Build the instruction.
49
831
            let inst = cranelift_assembler_x64::inst::vpabsw_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
50
831
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
51
52
            // Return a type ISLE can work with.
53
831
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
54
831
            AssemblerOutputs::RetXmm { inst, xmm }
55
831
        }
56
46
        fn x64_pabsd_a_raw(&mut self, xmm_m128: &XmmMemAligned128) -> AssemblerOutputs {
57
            // Convert ISLE types to assembler types.
58
46
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
59
46
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
60
61
            // Build the instruction.
62
46
            let inst = cranelift_assembler_x64::inst::pabsd_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
63
46
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
64
65
            // Return a type ISLE can work with.
66
46
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
67
46
            AssemblerOutputs::RetXmm { inst, xmm }
68
46
        }
69
615
        fn x64_vpabsd_a_raw(&mut self, xmm_m128: &XmmMem128) -> AssemblerOutputs {
70
            // Convert ISLE types to assembler types.
71
615
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
72
615
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
73
74
            // Build the instruction.
75
615
            let inst = cranelift_assembler_x64::inst::vpabsd_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
76
615
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
77
78
            // Return a type ISLE can work with.
79
615
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
80
615
            AssemblerOutputs::RetXmm { inst, xmm }
81
615
        }
82
0
        fn x64_vpabsd_c_raw(&mut self, xmm_m128: &XmmMem128) -> 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:131
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:131
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:144
89
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
93
0
            AssemblerOutputs::RetXmm { inst, xmm }
94
0
        }
95
6
        fn x64_vpabsq_c_raw(&mut self, xmm_m128: &XmmMem128) -> AssemblerOutputs {
96
            // Convert ISLE types to assembler types.
97
6
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
98
6
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
99
100
            // Build the instruction.
101
6
            let inst = cranelift_assembler_x64::inst::vpabsq_c::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
102
6
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
103
104
            // Return a type ISLE can work with.
105
6
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
106
6
            AssemblerOutputs::RetXmm { inst, xmm }
107
6
        }
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:131
111
0
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
115
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
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:131
124
0
            let imm16 = cranelift_assembler_x64::Imm16::new(imm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
128
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
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:131
137
0
            let imm32 = cranelift_assembler_x64::Imm32::new(imm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
141
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
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:131
150
0
            let imm32 = cranelift_assembler_x64::Simm32::new(imm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
154
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
158
0
            AssemblerOutputs::RetGpr { inst, gpr }
159
0
        }
160
9.56k
        fn x64_addb_mi_raw(&mut self, rm8: &GprMem8, imm8: u8) -> AssemblerOutputs {
161
            // Convert ISLE types to assembler types.
162
9.56k
            let rm8 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
163
9.56k
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
164
165
            // Build the instruction.
166
9.56k
            let inst = cranelift_assembler_x64::inst::addb_mi::new(rm8.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
167
9.56k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
168
169
            // Return a type ISLE can work with.
170
9.56k
            match rm8 {
171
9.56k
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
172
9.56k
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
173
9.56k
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
174
                }
175
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
176
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
177
                }
178
            }
179
9.56k
        }
180
7.90k
        fn x64_addw_mi_raw(&mut self, rm16: &GprMem16, imm16: u16) -> AssemblerOutputs {
181
            // Convert ISLE types to assembler types.
182
7.90k
            let rm16 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
183
7.90k
            let imm16 = cranelift_assembler_x64::Imm16::new(imm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
184
185
            // Build the instruction.
186
7.90k
            let inst = cranelift_assembler_x64::inst::addw_mi::new(rm16.clone(), imm16.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
187
7.90k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
188
189
            // Return a type ISLE can work with.
190
7.90k
            match rm16 {
191
7.90k
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
192
7.90k
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
193
7.90k
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
194
                }
195
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
196
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
197
                }
198
            }
199
7.90k
        }
200
871
        fn x64_addl_mi_raw(&mut self, rm32: &GprMem32, imm32: u32) -> AssemblerOutputs {
201
            // Convert ISLE types to assembler types.
202
871
            let rm32 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
203
871
            let imm32 = cranelift_assembler_x64::Imm32::new(imm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
204
205
            // Build the instruction.
206
871
            let inst = cranelift_assembler_x64::inst::addl_mi::new(rm32.clone(), imm32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
207
871
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
208
209
            // Return a type ISLE can work with.
210
871
            match rm32 {
211
762
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
212
762
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
213
762
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
214
                }
215
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
216
109
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
217
                }
218
            }
219
871
        }
220
7.78k
        fn x64_addq_mi_sxl_raw(&mut self, rm64: &GprMem64, imm32: i32) -> AssemblerOutputs {
221
            // Convert ISLE types to assembler types.
222
7.78k
            let rm64 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
223
7.78k
            let imm32 = cranelift_assembler_x64::Simm32::new(imm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
224
225
            // Build the instruction.
226
7.78k
            let inst = cranelift_assembler_x64::inst::addq_mi_sxl::new(rm64.clone(), imm32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
227
7.78k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
228
229
            // Return a type ISLE can work with.
230
7.78k
            match rm64 {
231
7.78k
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
232
7.78k
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
233
7.78k
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
234
                }
235
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
236
1
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
237
                }
238
            }
239
7.78k
        }
240
70.6k
        fn x64_addl_mi_sxb_raw(&mut self, rm32: &GprMem32, imm8: i8) -> AssemblerOutputs {
241
            // Convert ISLE types to assembler types.
242
70.6k
            let rm32 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
243
70.6k
            let imm8 = cranelift_assembler_x64::Simm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
244
245
            // Build the instruction.
246
70.6k
            let inst = cranelift_assembler_x64::inst::addl_mi_sxb::new(rm32.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
247
70.6k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
248
249
            // Return a type ISLE can work with.
250
70.6k
            match rm32 {
251
66.2k
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
252
66.2k
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
253
66.2k
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
254
                }
255
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
256
4.43k
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
257
                }
258
            }
259
70.6k
        }
260
169k
        fn x64_addq_mi_sxb_raw(&mut self, rm64: &GprMem64, imm8: i8) -> AssemblerOutputs {
261
            // Convert ISLE types to assembler types.
262
169k
            let rm64 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
263
169k
            let imm8 = cranelift_assembler_x64::Simm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
264
265
            // Build the instruction.
266
169k
            let inst = cranelift_assembler_x64::inst::addq_mi_sxb::new(rm64.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
267
169k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
268
269
            // Return a type ISLE can work with.
270
169k
            match rm64 {
271
143k
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
272
143k
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
273
143k
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
274
                }
275
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
276
25.6k
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
277
                }
278
            }
279
169k
        }
280
0
        fn x64_addb_mr_raw(&mut self, rm8: &GprMem8, 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:131
283
0
            let r8 = cranelift_assembler_x64::Gpr::new(r8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
287
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:184
293
0
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
294
                }
295
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
296
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
297
                }
298
            }
299
0
        }
300
0
        fn x64_addw_mr_raw(&mut self, rm16: &GprMem16, 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:131
303
0
            let r16 = cranelift_assembler_x64::Gpr::new(r16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
307
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:184
313
0
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
314
                }
315
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
316
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
317
                }
318
            }
319
0
        }
320
138
        fn x64_addl_mr_raw(&mut self, rm32: &GprMem32, r32: Gpr) -> AssemblerOutputs {
321
            // Convert ISLE types to assembler types.
322
138
            let rm32 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
323
138
            let r32 = cranelift_assembler_x64::Gpr::new(r32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
324
325
            // Build the instruction.
326
138
            let inst = cranelift_assembler_x64::inst::addl_mr::new(rm32.clone(), r32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
327
138
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
328
329
            // Return a type ISLE can work with.
330
138
            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:184
333
0
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
334
                }
335
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
336
138
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
337
                }
338
            }
339
138
        }
340
4
        fn x64_addq_mr_raw(&mut self, rm64: &GprMem64, r64: Gpr) -> AssemblerOutputs {
341
            // Convert ISLE types to assembler types.
342
4
            let rm64 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
343
4
            let r64 = cranelift_assembler_x64::Gpr::new(r64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
344
345
            // Build the instruction.
346
4
            let inst = cranelift_assembler_x64::inst::addq_mr::new(rm64.clone(), r64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
347
4
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
348
349
            // Return a type ISLE can work with.
350
4
            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:184
353
0
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
354
                }
355
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
356
4
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
357
                }
358
            }
359
4
        }
360
33
        fn x64_addb_rm_raw(&mut self, r8: Gpr, rm8: &GprMem8) -> AssemblerOutputs {
361
            // Convert ISLE types to assembler types.
362
33
            let r8 = self.convert_gpr_to_assembler_read_write_gpr(r8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
363
33
            let rm8 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
364
365
            // Build the instruction.
366
33
            let inst = cranelift_assembler_x64::inst::addb_rm::new(r8.clone(), rm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
367
33
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
368
369
            // Return a type ISLE can work with.
370
33
            let gpr = r8.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
371
33
            AssemblerOutputs::RetGpr { inst, gpr }
372
33
        }
373
9.44k
        fn x64_addw_rm_raw(&mut self, r16: Gpr, rm16: &GprMem16) -> AssemblerOutputs {
374
            // Convert ISLE types to assembler types.
375
9.44k
            let r16 = self.convert_gpr_to_assembler_read_write_gpr(r16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
376
9.44k
            let rm16 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
377
378
            // Build the instruction.
379
9.44k
            let inst = cranelift_assembler_x64::inst::addw_rm::new(r16.clone(), rm16.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
380
9.44k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
381
382
            // Return a type ISLE can work with.
383
9.44k
            let gpr = r16.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
384
9.44k
            AssemblerOutputs::RetGpr { inst, gpr }
385
9.44k
        }
386
85.0k
        fn x64_addl_rm_raw(&mut self, r32: Gpr, rm32: &GprMem32) -> AssemblerOutputs {
387
            // Convert ISLE types to assembler types.
388
85.0k
            let r32 = self.convert_gpr_to_assembler_read_write_gpr(r32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
389
85.0k
            let rm32 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
390
391
            // Build the instruction.
392
85.0k
            let inst = cranelift_assembler_x64::inst::addl_rm::new(r32.clone(), rm32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
393
85.0k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
394
395
            // Return a type ISLE can work with.
396
85.0k
            let gpr = r32.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
397
85.0k
            AssemblerOutputs::RetGpr { inst, gpr }
398
85.0k
        }
399
470k
        fn x64_addq_rm_raw(&mut self, r64: Gpr, rm64: &GprMem64) -> AssemblerOutputs {
400
            // Convert ISLE types to assembler types.
401
470k
            let r64 = self.convert_gpr_to_assembler_read_write_gpr(r64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
402
470k
            let rm64 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
403
404
            // Build the instruction.
405
470k
            let inst = cranelift_assembler_x64::inst::addq_rm::new(r64.clone(), rm64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
406
470k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
407
408
            // Return a type ISLE can work with.
409
470k
            let gpr = r64.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
410
470k
            AssemblerOutputs::RetGpr { inst, gpr }
411
470k
        }
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:131
415
0
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
419
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
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:131
428
0
            let imm16 = cranelift_assembler_x64::Imm16::new(imm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
432
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
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:131
441
0
            let imm32 = cranelift_assembler_x64::Imm32::new(imm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
445
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
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:131
454
0
            let imm32 = cranelift_assembler_x64::Simm32::new(imm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
458
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
462
0
            AssemblerOutputs::RetGpr { inst, gpr }
463
0
        }
464
0
        fn x64_adcb_mi_raw(&mut self, rm8: &GprMem8, 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:131
467
0
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
471
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:184
477
0
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
478
                }
479
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
480
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
481
                }
482
            }
483
0
        }
484
0
        fn x64_adcw_mi_raw(&mut self, rm16: &GprMem16, 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:131
487
0
            let imm16 = cranelift_assembler_x64::Imm16::new(imm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
491
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:184
497
0
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
498
                }
499
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
500
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
501
                }
502
            }
503
0
        }
504
0
        fn x64_adcl_mi_raw(&mut self, rm32: &GprMem32, 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:131
507
0
            let imm32 = cranelift_assembler_x64::Imm32::new(imm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
511
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:184
517
0
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
518
                }
519
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
520
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
521
                }
522
            }
523
0
        }
524
1
        fn x64_adcq_mi_sxl_raw(&mut self, rm64: &GprMem64, imm32: i32) -> AssemblerOutputs {
525
            // Convert ISLE types to assembler types.
526
1
            let rm64 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
527
1
            let imm32 = cranelift_assembler_x64::Simm32::new(imm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
528
529
            // Build the instruction.
530
1
            let inst = cranelift_assembler_x64::inst::adcq_mi_sxl::new(rm64.clone(), imm32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
531
1
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
532
533
            // Return a type ISLE can work with.
534
1
            match rm64 {
535
1
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
536
1
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
537
1
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
538
                }
539
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
540
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
541
                }
542
            }
543
1
        }
544
0
        fn x64_adcl_mi_sxb_raw(&mut self, rm32: &GprMem32, 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:131
547
0
            let imm8 = cranelift_assembler_x64::Simm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
551
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:184
557
0
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
558
                }
559
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
560
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
561
                }
562
            }
563
0
        }
564
4
        fn x64_adcq_mi_sxb_raw(&mut self, rm64: &GprMem64, imm8: i8) -> AssemblerOutputs {
565
            // Convert ISLE types to assembler types.
566
4
            let rm64 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
567
4
            let imm8 = cranelift_assembler_x64::Simm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
568
569
            // Build the instruction.
570
4
            let inst = cranelift_assembler_x64::inst::adcq_mi_sxb::new(rm64.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
571
4
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
572
573
            // Return a type ISLE can work with.
574
4
            match rm64 {
575
4
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
576
4
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
577
4
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
578
                }
579
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
580
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
581
                }
582
            }
583
4
        }
584
0
        fn x64_adcb_mr_raw(&mut self, rm8: &GprMem8, 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:131
587
0
            let r8 = cranelift_assembler_x64::Gpr::new(r8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
591
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:184
597
0
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
598
                }
599
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
600
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
601
                }
602
            }
603
0
        }
604
0
        fn x64_adcw_mr_raw(&mut self, rm16: &GprMem16, 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:131
607
0
            let r16 = cranelift_assembler_x64::Gpr::new(r16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
611
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:184
617
0
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
618
                }
619
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
620
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
621
                }
622
            }
623
0
        }
624
0
        fn x64_adcl_mr_raw(&mut self, rm32: &GprMem32, 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:131
627
0
            let r32 = cranelift_assembler_x64::Gpr::new(r32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
631
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:184
637
0
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
638
                }
639
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
640
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
641
                }
642
            }
643
0
        }
644
0
        fn x64_adcq_mr_raw(&mut self, rm64: &GprMem64, 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:131
647
0
            let r64 = cranelift_assembler_x64::Gpr::new(r64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
651
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:184
657
0
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
658
                }
659
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
660
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
661
                }
662
            }
663
0
        }
664
0
        fn x64_adcb_rm_raw(&mut self, r8: Gpr, rm8: &GprMem8) -> 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:131
667
0
            let rm8 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
671
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
675
0
            AssemblerOutputs::RetGpr { inst, gpr }
676
0
        }
677
0
        fn x64_adcw_rm_raw(&mut self, r16: Gpr, rm16: &GprMem16) -> 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:131
680
0
            let rm16 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
684
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
688
0
            AssemblerOutputs::RetGpr { inst, gpr }
689
0
        }
690
0
        fn x64_adcl_rm_raw(&mut self, r32: Gpr, rm32: &GprMem32) -> 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:131
693
0
            let rm32 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
697
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
701
0
            AssemblerOutputs::RetGpr { inst, gpr }
702
0
        }
703
15.6k
        fn x64_adcq_rm_raw(&mut self, r64: Gpr, rm64: &GprMem64) -> AssemblerOutputs {
704
            // Convert ISLE types to assembler types.
705
15.6k
            let r64 = self.convert_gpr_to_assembler_read_write_gpr(r64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
706
15.6k
            let rm64 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
707
708
            // Build the instruction.
709
15.6k
            let inst = cranelift_assembler_x64::inst::adcq_rm::new(r64.clone(), rm64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
710
15.6k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
711
712
            // Return a type ISLE can work with.
713
15.6k
            let gpr = r64.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
714
15.6k
            AssemblerOutputs::RetGpr { inst, gpr }
715
15.6k
        }
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:131
719
0
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
723
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:131
731
0
            let imm16 = cranelift_assembler_x64::Imm16::new(imm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
735
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:131
743
0
            let imm32 = cranelift_assembler_x64::Imm32::new(imm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
747
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:131
755
0
            let imm32 = cranelift_assembler_x64::Simm32::new(imm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
759
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:131
767
0
            let imm8 = cranelift_assembler_x64::Simm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
771
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:131
779
0
            let imm8 = cranelift_assembler_x64::Simm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
783
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
784
785
            // Return a type ISLE can work with.
786
0
            AssemblerOutputs::SideEffect { inst }
787
0
        }
788
6
        fn x64_lock_addb_mr_raw(&mut self, m8: &SyntheticAmode, r8: Gpr) -> AssemblerOutputs {
789
            // Convert ISLE types to assembler types.
790
6
            let m8 = self.convert_amode_to_assembler_amode(m8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
791
6
            let r8 = cranelift_assembler_x64::Gpr::new(r8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
792
793
            // Build the instruction.
794
6
            let inst = cranelift_assembler_x64::inst::lock_addb_mr::new(m8.clone(), r8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
795
6
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
796
797
            // Return a type ISLE can work with.
798
6
            AssemblerOutputs::SideEffect { inst }
799
6
        }
800
34
        fn x64_lock_addw_mr_raw(&mut self, m16: &SyntheticAmode, r16: Gpr) -> AssemblerOutputs {
801
            // Convert ISLE types to assembler types.
802
34
            let m16 = self.convert_amode_to_assembler_amode(m16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
803
34
            let r16 = cranelift_assembler_x64::Gpr::new(r16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
804
805
            // Build the instruction.
806
34
            let inst = cranelift_assembler_x64::inst::lock_addw_mr::new(m16.clone(), r16.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
807
34
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
808
809
            // Return a type ISLE can work with.
810
34
            AssemblerOutputs::SideEffect { inst }
811
34
        }
812
16
        fn x64_lock_addl_mr_raw(&mut self, m32: &SyntheticAmode, r32: Gpr) -> AssemblerOutputs {
813
            // Convert ISLE types to assembler types.
814
16
            let m32 = self.convert_amode_to_assembler_amode(m32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
815
16
            let r32 = cranelift_assembler_x64::Gpr::new(r32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
816
817
            // Build the instruction.
818
16
            let inst = cranelift_assembler_x64::inst::lock_addl_mr::new(m32.clone(), r32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
819
16
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
820
821
            // Return a type ISLE can work with.
822
16
            AssemblerOutputs::SideEffect { inst }
823
16
        }
824
88
        fn x64_lock_addq_mr_raw(&mut self, m64: &SyntheticAmode, r64: Gpr) -> AssemblerOutputs {
825
            // Convert ISLE types to assembler types.
826
88
            let m64 = self.convert_amode_to_assembler_amode(m64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
827
88
            let r64 = cranelift_assembler_x64::Gpr::new(r64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
828
829
            // Build the instruction.
830
88
            let inst = cranelift_assembler_x64::inst::lock_addq_mr::new(m64.clone(), r64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
831
88
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
832
833
            // Return a type ISLE can work with.
834
88
            AssemblerOutputs::SideEffect { inst }
835
88
        }
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:131
839
0
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
843
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:131
851
0
            let imm16 = cranelift_assembler_x64::Imm16::new(imm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
855
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:131
863
0
            let imm32 = cranelift_assembler_x64::Imm32::new(imm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
867
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:131
875
0
            let imm32 = cranelift_assembler_x64::Simm32::new(imm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
879
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:131
887
0
            let imm8 = cranelift_assembler_x64::Simm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
891
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:131
899
0
            let imm8 = cranelift_assembler_x64::Simm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
903
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:131
911
0
            let r8 = cranelift_assembler_x64::Gpr::new(r8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
915
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:131
923
0
            let r16 = cranelift_assembler_x64::Gpr::new(r16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
927
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:131
935
0
            let r32 = cranelift_assembler_x64::Gpr::new(r32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
939
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:131
947
0
            let r64 = cranelift_assembler_x64::Gpr::new(r64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
951
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
952
953
            // Return a type ISLE can work with.
954
0
            AssemblerOutputs::SideEffect { inst }
955
0
        }
956
49
        fn x64_lock_xaddb_mr_raw(&mut self, m8: &SyntheticAmode, r8: Gpr) -> AssemblerOutputs {
957
            // Convert ISLE types to assembler types.
958
49
            let m8 = self.convert_amode_to_assembler_amode(m8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
959
49
            let r8 = self.convert_gpr_to_assembler_read_write_gpr(r8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
960
961
            // Build the instruction.
962
49
            let inst = cranelift_assembler_x64::inst::lock_xaddb_mr::new(m8.clone(), r8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
963
49
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
964
965
            // Return a type ISLE can work with.
966
49
            let gpr = r8.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:205
967
49
            AssemblerOutputs::RetGpr { inst, gpr }
968
49
        }
969
206
        fn x64_lock_xaddw_mr_raw(&mut self, m16: &SyntheticAmode, r16: Gpr) -> AssemblerOutputs {
970
            // Convert ISLE types to assembler types.
971
206
            let m16 = self.convert_amode_to_assembler_amode(m16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
972
206
            let r16 = self.convert_gpr_to_assembler_read_write_gpr(r16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
973
974
            // Build the instruction.
975
206
            let inst = cranelift_assembler_x64::inst::lock_xaddw_mr::new(m16.clone(), r16.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
976
206
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
977
978
            // Return a type ISLE can work with.
979
206
            let gpr = r16.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:205
980
206
            AssemblerOutputs::RetGpr { inst, gpr }
981
206
        }
982
47
        fn x64_lock_xaddl_mr_raw(&mut self, m32: &SyntheticAmode, r32: Gpr) -> AssemblerOutputs {
983
            // Convert ISLE types to assembler types.
984
47
            let m32 = self.convert_amode_to_assembler_amode(m32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
985
47
            let r32 = self.convert_gpr_to_assembler_read_write_gpr(r32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
986
987
            // Build the instruction.
988
47
            let inst = cranelift_assembler_x64::inst::lock_xaddl_mr::new(m32.clone(), r32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
989
47
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
990
991
            // Return a type ISLE can work with.
992
47
            let gpr = r32.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:205
993
47
            AssemblerOutputs::RetGpr { inst, gpr }
994
47
        }
995
106
        fn x64_lock_xaddq_mr_raw(&mut self, m64: &SyntheticAmode, r64: Gpr) -> AssemblerOutputs {
996
            // Convert ISLE types to assembler types.
997
106
            let m64 = self.convert_amode_to_assembler_amode(m64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
998
106
            let r64 = self.convert_gpr_to_assembler_read_write_gpr(r64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
999
1000
            // Build the instruction.
1001
106
            let inst = cranelift_assembler_x64::inst::lock_xaddq_mr::new(m64.clone(), r64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
1002
106
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
1003
1004
            // Return a type ISLE can work with.
1005
106
            let gpr = r64.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:205
1006
106
            AssemblerOutputs::RetGpr { inst, gpr }
1007
106
        }
1008
520
        fn x64_addss_a_raw(&mut self, xmm1: Xmm, xmm_m32: &XmmMem32) -> AssemblerOutputs {
1009
            // Convert ISLE types to assembler types.
1010
520
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
1011
520
            let xmm_m32 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
1012
1013
            // Build the instruction.
1014
520
            let inst = cranelift_assembler_x64::inst::addss_a::new(xmm1.clone(), xmm_m32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
1015
520
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
1016
1017
            // Return a type ISLE can work with.
1018
520
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
1019
520
            AssemblerOutputs::RetXmm { inst, xmm }
1020
520
        }
1021
122
        fn x64_addsd_a_raw(&mut self, xmm1: Xmm, xmm_m64: &XmmMem64) -> AssemblerOutputs {
1022
            // Convert ISLE types to assembler types.
1023
122
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
1024
122
            let xmm_m64 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
1025
1026
            // Build the instruction.
1027
122
            let inst = cranelift_assembler_x64::inst::addsd_a::new(xmm1.clone(), xmm_m64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
1028
122
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
1029
1030
            // Return a type ISLE can work with.
1031
122
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
1032
122
            AssemblerOutputs::RetXmm { inst, xmm }
1033
122
        }
1034
92
        fn x64_addps_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned128) -> AssemblerOutputs {
1035
            // Convert ISLE types to assembler types.
1036
92
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
1037
92
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
1038
1039
            // Build the instruction.
1040
92
            let inst = cranelift_assembler_x64::inst::addps_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
1041
92
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
1042
1043
            // Return a type ISLE can work with.
1044
92
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
1045
92
            AssemblerOutputs::RetXmm { inst, xmm }
1046
92
        }
1047
134
        fn x64_addpd_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned128) -> AssemblerOutputs {
1048
            // Convert ISLE types to assembler types.
1049
134
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
1050
134
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
1051
1052
            // Build the instruction.
1053
134
            let inst = cranelift_assembler_x64::inst::addpd_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
1054
134
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
1055
1056
            // Return a type ISLE can work with.
1057
134
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
1058
134
            AssemblerOutputs::RetXmm { inst, xmm }
1059
134
        }
1060
1.08k
        fn x64_paddb_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned128) -> AssemblerOutputs {
1061
            // Convert ISLE types to assembler types.
1062
1.08k
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
1063
1.08k
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
1064
1065
            // Build the instruction.
1066
1.08k
            let inst = cranelift_assembler_x64::inst::paddb_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
1067
1.08k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
1068
1069
            // Return a type ISLE can work with.
1070
1.08k
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
1071
1.08k
            AssemblerOutputs::RetXmm { inst, xmm }
1072
1.08k
        }
1073
140
        fn x64_paddw_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned128) -> AssemblerOutputs {
1074
            // Convert ISLE types to assembler types.
1075
140
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
1076
140
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
1077
1078
            // Build the instruction.
1079
140
            let inst = cranelift_assembler_x64::inst::paddw_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
1080
140
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
1081
1082
            // Return a type ISLE can work with.
1083
140
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
1084
140
            AssemblerOutputs::RetXmm { inst, xmm }
1085
140
        }
1086
414
        fn x64_paddd_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned128) -> AssemblerOutputs {
1087
            // Convert ISLE types to assembler types.
1088
414
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
1089
414
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
1090
1091
            // Build the instruction.
1092
414
            let inst = cranelift_assembler_x64::inst::paddd_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
1093
414
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
1094
1095
            // Return a type ISLE can work with.
1096
414
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
1097
414
            AssemblerOutputs::RetXmm { inst, xmm }
1098
414
        }
1099
69
        fn x64_paddq_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned128) -> AssemblerOutputs {
1100
            // Convert ISLE types to assembler types.
1101
69
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
1102
69
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
1103
1104
            // Build the instruction.
1105
69
            let inst = cranelift_assembler_x64::inst::paddq_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
1106
69
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
1107
1108
            // Return a type ISLE can work with.
1109
69
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
1110
69
            AssemblerOutputs::RetXmm { inst, xmm }
1111
69
        }
1112
9
        fn x64_paddsb_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned128) -> AssemblerOutputs {
1113
            // Convert ISLE types to assembler types.
1114
9
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
1115
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:131
1116
1117
            // Build the instruction.
1118
9
            let inst = cranelift_assembler_x64::inst::paddsb_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
1119
9
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
1120
1121
            // Return a type ISLE can work with.
1122
9
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
1123
9
            AssemblerOutputs::RetXmm { inst, xmm }
1124
9
        }
1125
9
        fn x64_paddsw_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned128) -> AssemblerOutputs {
1126
            // Convert ISLE types to assembler types.
1127
9
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
1128
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:131
1129
1130
            // Build the instruction.
1131
9
            let inst = cranelift_assembler_x64::inst::paddsw_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
1132
9
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
1133
1134
            // Return a type ISLE can work with.
1135
9
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
1136
9
            AssemblerOutputs::RetXmm { inst, xmm }
1137
9
        }
1138
166
        fn x64_paddusb_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned128) -> AssemblerOutputs {
1139
            // Convert ISLE types to assembler types.
1140
166
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
1141
166
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
1142
1143
            // Build the instruction.
1144
166
            let inst = cranelift_assembler_x64::inst::paddusb_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
1145
166
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
1146
1147
            // Return a type ISLE can work with.
1148
166
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
1149
166
            AssemblerOutputs::RetXmm { inst, xmm }
1150
166
        }
1151
9
        fn x64_paddusw_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned128) -> AssemblerOutputs {
1152
            // Convert ISLE types to assembler types.
1153
9
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
1154
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:131
1155
1156
            // Build the instruction.
1157
9
            let inst = cranelift_assembler_x64::inst::paddusw_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
1158
9
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
1159
1160
            // Return a type ISLE can work with.
1161
9
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
1162
9
            AssemblerOutputs::RetXmm { inst, xmm }
1163
9
        }
1164
0
        fn x64_phaddw_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned128) -> 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:131
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:131
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:144
1171
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
1175
0
            AssemblerOutputs::RetXmm { inst, xmm }
1176
0
        }
1177
0
        fn x64_phaddd_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned128) -> 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:131
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:131
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:144
1184
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
1188
0
            AssemblerOutputs::RetXmm { inst, xmm }
1189
0
        }
1190
3.32k
        fn x64_vaddss_b_raw(&mut self, xmm2: Xmm, xmm_m32: &XmmMem32) -> AssemblerOutputs {
1191
            // Convert ISLE types to assembler types.
1192
3.32k
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
1193
3.32k
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
1194
3.32k
            let xmm_m32 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
1195
1196
            // Build the instruction.
1197
3.32k
            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:144
1198
3.32k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
1199
1200
            // Return a type ISLE can work with.
1201
3.32k
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
1202
3.32k
            AssemblerOutputs::RetXmm { inst, xmm }
1203
3.32k
        }
1204
2.53k
        fn x64_vaddsd_b_raw(&mut self, xmm2: Xmm, xmm_m64: &XmmMem64) -> AssemblerOutputs {
1205
            // Convert ISLE types to assembler types.
1206
2.53k
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
1207
2.53k
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
1208
2.53k
            let xmm_m64 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
1209
1210
            // Build the instruction.
1211
2.53k
            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:144
1212
2.53k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
1213
1214
            // Return a type ISLE can work with.
1215
2.53k
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
1216
2.53k
            AssemblerOutputs::RetXmm { inst, xmm }
1217
2.53k
        }
1218
1.23k
        fn x64_vaddps_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem128) -> AssemblerOutputs {
1219
            // Convert ISLE types to assembler types.
1220
1.23k
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
1221
1.23k
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
1222
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:131
1223
1224
            // Build the instruction.
1225
1.23k
            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:144
1226
1.23k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
1227
1228
            // Return a type ISLE can work with.
1229
1.23k
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
1230
1.23k
            AssemblerOutputs::RetXmm { inst, xmm }
1231
1.23k
        }
1232
1.47k
        fn x64_vaddpd_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem128) -> AssemblerOutputs {
1233
            // Convert ISLE types to assembler types.
1234
1.47k
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
1235
1.47k
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
1236
1.47k
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
1237
1238
            // Build the instruction.
1239
1.47k
            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:144
1240
1.47k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
1241
1242
            // Return a type ISLE can work with.
1243
1.47k
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
1244
1.47k
            AssemblerOutputs::RetXmm { inst, xmm }
1245
1.47k
        }
1246
2.53k
        fn x64_vpaddb_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem128) -> AssemblerOutputs {
1247
            // Convert ISLE types to assembler types.
1248
2.53k
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
1249
2.53k
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
1250
2.53k
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
1251
1252
            // Build the instruction.
1253
2.53k
            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:144
1254
2.53k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
1255
1256
            // Return a type ISLE can work with.
1257
2.53k
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
1258
2.53k
            AssemblerOutputs::RetXmm { inst, xmm }
1259
2.53k
        }
1260
131
        fn x64_vpaddw_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem128) -> AssemblerOutputs {
1261
            // Convert ISLE types to assembler types.
1262
131
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
1263
131
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
1264
131
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
1265
1266
            // Build the instruction.
1267
131
            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:144
1268
131
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
1269
1270
            // Return a type ISLE can work with.
1271
131
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
1272
131
            AssemblerOutputs::RetXmm { inst, xmm }
1273
131
        }
1274
2.55k
        fn x64_vpaddd_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem128) -> AssemblerOutputs {
1275
            // Convert ISLE types to assembler types.
1276
2.55k
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
1277
2.55k
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
1278
2.55k
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
1279
1280
            // Build the instruction.
1281
2.55k
            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:144
1282
2.55k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
1283
1284
            // Return a type ISLE can work with.
1285
2.55k
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
1286
2.55k
            AssemblerOutputs::RetXmm { inst, xmm }
1287
2.55k
        }
1288
148
        fn x64_vpaddq_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem128) -> AssemblerOutputs {
1289
            // Convert ISLE types to assembler types.
1290
148
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
1291
148
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
1292
148
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
1293
1294
            // Build the instruction.
1295
148
            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:144
1296
148
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
1297
1298
            // Return a type ISLE can work with.
1299
148
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
1300
148
            AssemblerOutputs::RetXmm { inst, xmm }
1301
148
        }
1302
95
        fn x64_vpaddsb_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem128) -> AssemblerOutputs {
1303
            // Convert ISLE types to assembler types.
1304
95
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
1305
95
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
1306
95
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
1307
1308
            // Build the instruction.
1309
95
            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:144
1310
95
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
1311
1312
            // Return a type ISLE can work with.
1313
95
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
1314
95
            AssemblerOutputs::RetXmm { inst, xmm }
1315
95
        }
1316
283
        fn x64_vpaddsw_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem128) -> AssemblerOutputs {
1317
            // Convert ISLE types to assembler types.
1318
283
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
1319
283
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
1320
283
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
1321
1322
            // Build the instruction.
1323
283
            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:144
1324
283
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
1325
1326
            // Return a type ISLE can work with.
1327
283
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
1328
283
            AssemblerOutputs::RetXmm { inst, xmm }
1329
283
        }
1330
152
        fn x64_vpaddusb_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem128) -> AssemblerOutputs {
1331
            // Convert ISLE types to assembler types.
1332
152
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
1333
152
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
1334
152
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
1335
1336
            // Build the instruction.
1337
152
            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:144
1338
152
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
1339
1340
            // Return a type ISLE can work with.
1341
152
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
1342
152
            AssemblerOutputs::RetXmm { inst, xmm }
1343
152
        }
1344
44
        fn x64_vpaddusw_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem128) -> AssemblerOutputs {
1345
            // Convert ISLE types to assembler types.
1346
44
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
1347
44
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
1348
44
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
1349
1350
            // Build the instruction.
1351
44
            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:144
1352
44
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
1353
1354
            // Return a type ISLE can work with.
1355
44
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
1356
44
            AssemblerOutputs::RetXmm { inst, xmm }
1357
44
        }
1358
4
        fn x64_vphaddw_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem128) -> AssemblerOutputs {
1359
            // Convert ISLE types to assembler types.
1360
4
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
1361
4
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
1362
4
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
1363
1364
            // Build the instruction.
1365
4
            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:144
1366
4
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
1367
1368
            // Return a type ISLE can work with.
1369
4
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
1370
4
            AssemblerOutputs::RetXmm { inst, xmm }
1371
4
        }
1372
15
        fn x64_vphaddd_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem128) -> AssemblerOutputs {
1373
            // Convert ISLE types to assembler types.
1374
15
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
1375
15
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
1376
15
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
1377
1378
            // Build the instruction.
1379
15
            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:144
1380
15
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
1381
1382
            // Return a type ISLE can work with.
1383
15
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
1384
15
            AssemblerOutputs::RetXmm { inst, xmm }
1385
15
        }
1386
0
        fn x64_vaddpd_c_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem128) -> 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:131
1389
0
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:131
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:144
1394
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
1398
0
            AssemblerOutputs::RetXmm { inst, xmm }
1399
0
        }
1400
22
        fn x64_palignr_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned128, imm8: u8) -> AssemblerOutputs {
1401
            // Convert ISLE types to assembler types.
1402
22
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
1403
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:131
1404
22
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
1405
1406
            // Build the instruction.
1407
22
            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:144
1408
22
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
1409
1410
            // Return a type ISLE can work with.
1411
22
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
1412
22
            AssemblerOutputs::RetXmm { inst, xmm }
1413
22
        }
1414
4.00k
        fn x64_vpalignr_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem128, imm8: u8) -> AssemblerOutputs {
1415
            // Convert ISLE types to assembler types.
1416
4.00k
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
1417
4.00k
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
1418
4.00k
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
1419
4.00k
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
1420
1421
            // Build the instruction.
1422
4.00k
            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:144
1423
4.00k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
1424
1425
            // Return a type ISLE can work with.
1426
4.00k
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
1427
4.00k
            AssemblerOutputs::RetXmm { inst, xmm }
1428
4.00k
        }
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:131
1432
0
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
1436
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
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:131
1445
0
            let imm16 = cranelift_assembler_x64::Imm16::new(imm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
1449
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
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:131
1458
0
            let imm32 = cranelift_assembler_x64::Imm32::new(imm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
1462
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
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:131
1471
0
            let imm32 = cranelift_assembler_x64::Simm32::new(imm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
1475
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
1479
0
            AssemblerOutputs::RetGpr { inst, gpr }
1480
0
        }
1481
20
        fn x64_andb_mi_raw(&mut self, rm8: &GprMem8, imm8: u8) -> AssemblerOutputs {
1482
            // Convert ISLE types to assembler types.
1483
20
            let rm8 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
1484
20
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
1485
1486
            // Build the instruction.
1487
20
            let inst = cranelift_assembler_x64::inst::andb_mi::new(rm8.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
1488
20
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
1489
1490
            // Return a type ISLE can work with.
1491
20
            match rm8 {
1492
20
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
1493
20
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
1494
20
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
1495
                }
1496
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
1497
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
1498
                }
1499
            }
1500
20
        }
1501
46
        fn x64_andw_mi_raw(&mut self, rm16: &GprMem16, imm16: u16) -> AssemblerOutputs {
1502
            // Convert ISLE types to assembler types.
1503
46
            let rm16 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
1504
46
            let imm16 = cranelift_assembler_x64::Imm16::new(imm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
1505
1506
            // Build the instruction.
1507
46
            let inst = cranelift_assembler_x64::inst::andw_mi::new(rm16.clone(), imm16.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
1508
46
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
1509
1510
            // Return a type ISLE can work with.
1511
46
            match rm16 {
1512
46
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
1513
46
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
1514
46
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
1515
                }
1516
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
1517
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
1518
                }
1519
            }
1520
46
        }
1521
6.96k
        fn x64_andl_mi_raw(&mut self, rm32: &GprMem32, imm32: u32) -> AssemblerOutputs {
1522
            // Convert ISLE types to assembler types.
1523
6.96k
            let rm32 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
1524
6.96k
            let imm32 = cranelift_assembler_x64::Imm32::new(imm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
1525
1526
            // Build the instruction.
1527
6.96k
            let inst = cranelift_assembler_x64::inst::andl_mi::new(rm32.clone(), imm32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
1528
6.96k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
1529
1530
            // Return a type ISLE can work with.
1531
6.96k
            match rm32 {
1532
6.95k
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
1533
6.95k
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
1534
6.95k
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
1535
                }
1536
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
1537
11
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
1538
                }
1539
            }
1540
6.96k
        }
1541
511
        fn x64_andq_mi_sxl_raw(&mut self, rm64: &GprMem64, imm32: i32) -> AssemblerOutputs {
1542
            // Convert ISLE types to assembler types.
1543
511
            let rm64 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
1544
511
            let imm32 = cranelift_assembler_x64::Simm32::new(imm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
1545
1546
            // Build the instruction.
1547
511
            let inst = cranelift_assembler_x64::inst::andq_mi_sxl::new(rm64.clone(), imm32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
1548
511
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
1549
1550
            // Return a type ISLE can work with.
1551
511
            match rm64 {
1552
509
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
1553
509
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
1554
509
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
1555
                }
1556
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
1557
2
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
1558
                }
1559
            }
1560
511
        }
1561
56.3k
        fn x64_andl_mi_sxb_raw(&mut self, rm32: &GprMem32, imm8: i8) -> AssemblerOutputs {
1562
            // Convert ISLE types to assembler types.
1563
56.3k
            let rm32 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
1564
56.3k
            let imm8 = cranelift_assembler_x64::Simm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
1565
1566
            // Build the instruction.
1567
56.3k
            let inst = cranelift_assembler_x64::inst::andl_mi_sxb::new(rm32.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
1568
56.3k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
1569
1570
            // Return a type ISLE can work with.
1571
56.3k
            match rm32 {
1572
56.3k
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
1573
56.3k
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
1574
56.3k
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
1575
                }
1576
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
1577
43
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
1578
                }
1579
            }
1580
56.3k
        }
1581
133k
        fn x64_andq_mi_sxb_raw(&mut self, rm64: &GprMem64, imm8: i8) -> AssemblerOutputs {
1582
            // Convert ISLE types to assembler types.
1583
133k
            let rm64 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
1584
133k
            let imm8 = cranelift_assembler_x64::Simm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
1585
1586
            // Build the instruction.
1587
133k
            let inst = cranelift_assembler_x64::inst::andq_mi_sxb::new(rm64.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
1588
133k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
1589
1590
            // Return a type ISLE can work with.
1591
133k
            match rm64 {
1592
133k
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
1593
133k
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
1594
133k
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
1595
                }
1596
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
1597
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
1598
                }
1599
            }
1600
133k
        }
1601
0
        fn x64_andb_mr_raw(&mut self, rm8: &GprMem8, 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:131
1604
0
            let r8 = cranelift_assembler_x64::Gpr::new(r8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
1608
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:184
1614
0
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
1615
                }
1616
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
1617
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
1618
                }
1619
            }
1620
0
        }
1621
0
        fn x64_andw_mr_raw(&mut self, rm16: &GprMem16, 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:131
1624
0
            let r16 = cranelift_assembler_x64::Gpr::new(r16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
1628
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:184
1634
0
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
1635
                }
1636
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
1637
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
1638
                }
1639
            }
1640
0
        }
1641
168
        fn x64_andl_mr_raw(&mut self, rm32: &GprMem32, r32: Gpr) -> AssemblerOutputs {
1642
            // Convert ISLE types to assembler types.
1643
168
            let rm32 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
1644
168
            let r32 = cranelift_assembler_x64::Gpr::new(r32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
1645
1646
            // Build the instruction.
1647
168
            let inst = cranelift_assembler_x64::inst::andl_mr::new(rm32.clone(), r32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
1648
168
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
1649
1650
            // Return a type ISLE can work with.
1651
168
            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:184
1654
0
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
1655
                }
1656
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
1657
168
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
1658
                }
1659
            }
1660
168
        }
1661
2
        fn x64_andq_mr_raw(&mut self, rm64: &GprMem64, r64: Gpr) -> AssemblerOutputs {
1662
            // Convert ISLE types to assembler types.
1663
2
            let rm64 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
1664
2
            let r64 = cranelift_assembler_x64::Gpr::new(r64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
1665
1666
            // Build the instruction.
1667
2
            let inst = cranelift_assembler_x64::inst::andq_mr::new(rm64.clone(), r64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
1668
2
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
1669
1670
            // Return a type ISLE can work with.
1671
2
            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:184
1674
0
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
1675
                }
1676
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
1677
2
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
1678
                }
1679
            }
1680
2
        }
1681
0
        fn x64_andb_rm_raw(&mut self, r8: Gpr, rm8: &GprMem8) -> 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:131
1684
0
            let rm8 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
1688
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
1692
0
            AssemblerOutputs::RetGpr { inst, gpr }
1693
0
        }
1694
0
        fn x64_andw_rm_raw(&mut self, r16: Gpr, rm16: &GprMem16) -> 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:131
1697
0
            let rm16 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
1701
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
1705
0
            AssemblerOutputs::RetGpr { inst, gpr }
1706
0
        }
1707
144k
        fn x64_andl_rm_raw(&mut self, r32: Gpr, rm32: &GprMem32) -> AssemblerOutputs {
1708
            // Convert ISLE types to assembler types.
1709
144k
            let r32 = self.convert_gpr_to_assembler_read_write_gpr(r32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
1710
144k
            let rm32 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
1711
1712
            // Build the instruction.
1713
144k
            let inst = cranelift_assembler_x64::inst::andl_rm::new(r32.clone(), rm32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
1714
144k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
1715
1716
            // Return a type ISLE can work with.
1717
144k
            let gpr = r32.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
1718
144k
            AssemblerOutputs::RetGpr { inst, gpr }
1719
144k
        }
1720
12.8k
        fn x64_andq_rm_raw(&mut self, r64: Gpr, rm64: &GprMem64) -> AssemblerOutputs {
1721
            // Convert ISLE types to assembler types.
1722
12.8k
            let r64 = self.convert_gpr_to_assembler_read_write_gpr(r64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
1723
12.8k
            let rm64 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
1724
1725
            // Build the instruction.
1726
12.8k
            let inst = cranelift_assembler_x64::inst::andq_rm::new(r64.clone(), rm64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
1727
12.8k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
1728
1729
            // Return a type ISLE can work with.
1730
12.8k
            let gpr = r64.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
1731
12.8k
            AssemblerOutputs::RetGpr { inst, gpr }
1732
12.8k
        }
1733
9.31k
        fn x64_andnl_rvm_raw(&mut self, r32b: Gpr, rm32: &GprMem32) -> AssemblerOutputs {
1734
            // Convert ISLE types to assembler types.
1735
9.31k
            let r32a = cranelift_assembler_x64::Gpr::new(self.temp_writable_gpr()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
1736
9.31k
            let r32b = cranelift_assembler_x64::Gpr::new(r32b); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
1737
9.31k
            let rm32 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
1738
1739
            // Build the instruction.
1740
9.31k
            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:144
1741
9.31k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
1742
1743
            // Return a type ISLE can work with.
1744
9.31k
            let gpr = r32a.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
1745
9.31k
            AssemblerOutputs::RetGpr { inst, gpr }
1746
9.31k
        }
1747
0
        fn x64_andnq_rvm_raw(&mut self, r64b: Gpr, rm64: &GprMem64) -> AssemblerOutputs {
1748
            // Convert ISLE types to assembler types.
1749
0
            let r64a = cranelift_assembler_x64::Gpr::new(self.temp_writable_gpr()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
1750
0
            let r64b = cranelift_assembler_x64::Gpr::new(r64b); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
1751
0
            let rm64 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
1752
1753
            // Build the instruction.
1754
0
            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:144
1755
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
1756
1757
            // Return a type ISLE can work with.
1758
0
            let gpr = r64a.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
1759
0
            AssemblerOutputs::RetGpr { inst, gpr }
1760
0
        }
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:131
1764
0
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
1768
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:131
1776
0
            let imm16 = cranelift_assembler_x64::Imm16::new(imm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
1780
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:131
1788
0
            let imm32 = cranelift_assembler_x64::Imm32::new(imm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
1792
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:131
1800
0
            let imm32 = cranelift_assembler_x64::Simm32::new(imm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
1804
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:131
1812
0
            let imm8 = cranelift_assembler_x64::Simm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
1816
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:131
1824
0
            let imm8 = cranelift_assembler_x64::Simm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
1828
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
1829
1830
            // Return a type ISLE can work with.
1831
0
            AssemblerOutputs::SideEffect { inst }
1832
0
        }
1833
2
        fn x64_lock_andb_mr_raw(&mut self, m8: &SyntheticAmode, r8: Gpr) -> AssemblerOutputs {
1834
            // Convert ISLE types to assembler types.
1835
2
            let m8 = self.convert_amode_to_assembler_amode(m8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
1836
2
            let r8 = cranelift_assembler_x64::Gpr::new(r8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
1837
1838
            // Build the instruction.
1839
2
            let inst = cranelift_assembler_x64::inst::lock_andb_mr::new(m8.clone(), r8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
1840
2
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
1841
1842
            // Return a type ISLE can work with.
1843
2
            AssemblerOutputs::SideEffect { inst }
1844
2
        }
1845
26
        fn x64_lock_andw_mr_raw(&mut self, m16: &SyntheticAmode, r16: Gpr) -> AssemblerOutputs {
1846
            // Convert ISLE types to assembler types.
1847
26
            let m16 = self.convert_amode_to_assembler_amode(m16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
1848
26
            let r16 = cranelift_assembler_x64::Gpr::new(r16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
1849
1850
            // Build the instruction.
1851
26
            let inst = cranelift_assembler_x64::inst::lock_andw_mr::new(m16.clone(), r16.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
1852
26
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
1853
1854
            // Return a type ISLE can work with.
1855
26
            AssemblerOutputs::SideEffect { inst }
1856
26
        }
1857
16
        fn x64_lock_andl_mr_raw(&mut self, m32: &SyntheticAmode, r32: Gpr) -> AssemblerOutputs {
1858
            // Convert ISLE types to assembler types.
1859
16
            let m32 = self.convert_amode_to_assembler_amode(m32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
1860
16
            let r32 = cranelift_assembler_x64::Gpr::new(r32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
1861
1862
            // Build the instruction.
1863
16
            let inst = cranelift_assembler_x64::inst::lock_andl_mr::new(m32.clone(), r32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
1864
16
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
1865
1866
            // Return a type ISLE can work with.
1867
16
            AssemblerOutputs::SideEffect { inst }
1868
16
        }
1869
18
        fn x64_lock_andq_mr_raw(&mut self, m64: &SyntheticAmode, r64: Gpr) -> AssemblerOutputs {
1870
            // Convert ISLE types to assembler types.
1871
18
            let m64 = self.convert_amode_to_assembler_amode(m64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
1872
18
            let r64 = cranelift_assembler_x64::Gpr::new(r64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
1873
1874
            // Build the instruction.
1875
18
            let inst = cranelift_assembler_x64::inst::lock_andq_mr::new(m64.clone(), r64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
1876
18
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
1877
1878
            // Return a type ISLE can work with.
1879
18
            AssemblerOutputs::SideEffect { inst }
1880
18
        }
1881
3.24k
        fn x64_andps_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned128) -> AssemblerOutputs {
1882
            // Convert ISLE types to assembler types.
1883
3.24k
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
1884
3.24k
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
1885
1886
            // Build the instruction.
1887
3.24k
            let inst = cranelift_assembler_x64::inst::andps_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
1888
3.24k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
1889
1890
            // Return a type ISLE can work with.
1891
3.24k
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
1892
3.24k
            AssemblerOutputs::RetXmm { inst, xmm }
1893
3.24k
        }
1894
4.62k
        fn x64_andpd_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned128) -> AssemblerOutputs {
1895
            // Convert ISLE types to assembler types.
1896
4.62k
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
1897
4.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:131
1898
1899
            // Build the instruction.
1900
4.62k
            let inst = cranelift_assembler_x64::inst::andpd_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
1901
4.62k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
1902
1903
            // Return a type ISLE can work with.
1904
4.62k
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
1905
4.62k
            AssemblerOutputs::RetXmm { inst, xmm }
1906
4.62k
        }
1907
2.68k
        fn x64_andnps_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned128) -> AssemblerOutputs {
1908
            // Convert ISLE types to assembler types.
1909
2.68k
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
1910
2.68k
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
1911
1912
            // Build the instruction.
1913
2.68k
            let inst = cranelift_assembler_x64::inst::andnps_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
1914
2.68k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
1915
1916
            // Return a type ISLE can work with.
1917
2.68k
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
1918
2.68k
            AssemblerOutputs::RetXmm { inst, xmm }
1919
2.68k
        }
1920
4.00k
        fn x64_andnpd_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned128) -> AssemblerOutputs {
1921
            // Convert ISLE types to assembler types.
1922
4.00k
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
1923
4.00k
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
1924
1925
            // Build the instruction.
1926
4.00k
            let inst = cranelift_assembler_x64::inst::andnpd_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
1927
4.00k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
1928
1929
            // Return a type ISLE can work with.
1930
4.00k
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
1931
4.00k
            AssemblerOutputs::RetXmm { inst, xmm }
1932
4.00k
        }
1933
6.52k
        fn x64_pand_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned128) -> AssemblerOutputs {
1934
            // Convert ISLE types to assembler types.
1935
6.52k
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
1936
6.52k
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
1937
1938
            // Build the instruction.
1939
6.52k
            let inst = cranelift_assembler_x64::inst::pand_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
1940
6.52k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
1941
1942
            // Return a type ISLE can work with.
1943
6.52k
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
1944
6.52k
            AssemblerOutputs::RetXmm { inst, xmm }
1945
6.52k
        }
1946
190
        fn x64_pandn_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned128) -> AssemblerOutputs {
1947
            // Convert ISLE types to assembler types.
1948
190
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
1949
190
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
1950
1951
            // Build the instruction.
1952
190
            let inst = cranelift_assembler_x64::inst::pandn_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
1953
190
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
1954
1955
            // Return a type ISLE can work with.
1956
190
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
1957
190
            AssemblerOutputs::RetXmm { inst, xmm }
1958
190
        }
1959
24.8k
        fn x64_vandps_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem128) -> AssemblerOutputs {
1960
            // Convert ISLE types to assembler types.
1961
24.8k
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
1962
24.8k
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
1963
24.8k
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
1964
1965
            // Build the instruction.
1966
24.8k
            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:144
1967
24.8k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
1968
1969
            // Return a type ISLE can work with.
1970
24.8k
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
1971
24.8k
            AssemblerOutputs::RetXmm { inst, xmm }
1972
24.8k
        }
1973
19.0k
        fn x64_vandpd_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem128) -> AssemblerOutputs {
1974
            // Convert ISLE types to assembler types.
1975
19.0k
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
1976
19.0k
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
1977
19.0k
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
1978
1979
            // Build the instruction.
1980
19.0k
            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:144
1981
19.0k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
1982
1983
            // Return a type ISLE can work with.
1984
19.0k
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
1985
19.0k
            AssemblerOutputs::RetXmm { inst, xmm }
1986
19.0k
        }
1987
4.32k
        fn x64_vandnps_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem128) -> AssemblerOutputs {
1988
            // Convert ISLE types to assembler types.
1989
4.32k
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
1990
4.32k
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
1991
4.32k
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
1992
1993
            // Build the instruction.
1994
4.32k
            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:144
1995
4.32k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
1996
1997
            // Return a type ISLE can work with.
1998
4.32k
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
1999
4.32k
            AssemblerOutputs::RetXmm { inst, xmm }
2000
4.32k
        }
2001
3.13k
        fn x64_vandnpd_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem128) -> AssemblerOutputs {
2002
            // Convert ISLE types to assembler types.
2003
3.13k
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
2004
3.13k
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
2005
3.13k
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
2006
2007
            // Build the instruction.
2008
3.13k
            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:144
2009
3.13k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
2010
2011
            // Return a type ISLE can work with.
2012
3.13k
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
2013
3.13k
            AssemblerOutputs::RetXmm { inst, xmm }
2014
3.13k
        }
2015
11.5k
        fn x64_vpand_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem128) -> AssemblerOutputs {
2016
            // Convert ISLE types to assembler types.
2017
11.5k
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
2018
11.5k
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
2019
11.5k
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
2020
2021
            // Build the instruction.
2022
11.5k
            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:144
2023
11.5k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
2024
2025
            // Return a type ISLE can work with.
2026
11.5k
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
2027
11.5k
            AssemblerOutputs::RetXmm { inst, xmm }
2028
11.5k
        }
2029
422
        fn x64_vpandn_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem128) -> AssemblerOutputs {
2030
            // Convert ISLE types to assembler types.
2031
422
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
2032
422
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
2033
422
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
2034
2035
            // Build the instruction.
2036
422
            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:144
2037
422
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
2038
2039
            // Return a type ISLE can work with.
2040
422
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
2041
422
            AssemblerOutputs::RetXmm { inst, xmm }
2042
422
        }
2043
30
        fn x64_xchgb_rm_raw(&mut self, r8: Gpr, m8: &SyntheticAmode) -> AssemblerOutputs {
2044
            // Convert ISLE types to assembler types.
2045
30
            let r8 = self.convert_gpr_to_assembler_read_write_gpr(r8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
2046
30
            let m8 = self.convert_amode_to_assembler_amode(m8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
2047
2048
            // Build the instruction.
2049
30
            let inst = cranelift_assembler_x64::inst::xchgb_rm::new(r8.clone(), m8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
2050
30
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
2051
2052
            // Return a type ISLE can work with.
2053
30
            let gpr = r8.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:205
2054
30
            AssemblerOutputs::RetGpr { inst, gpr }
2055
30
        }
2056
86
        fn x64_xchgw_rm_raw(&mut self, r16: Gpr, m16: &SyntheticAmode) -> AssemblerOutputs {
2057
            // Convert ISLE types to assembler types.
2058
86
            let r16 = self.convert_gpr_to_assembler_read_write_gpr(r16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
2059
86
            let m16 = self.convert_amode_to_assembler_amode(m16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
2060
2061
            // Build the instruction.
2062
86
            let inst = cranelift_assembler_x64::inst::xchgw_rm::new(r16.clone(), m16.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
2063
86
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
2064
2065
            // Return a type ISLE can work with.
2066
86
            let gpr = r16.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:205
2067
86
            AssemblerOutputs::RetGpr { inst, gpr }
2068
86
        }
2069
34
        fn x64_xchgl_rm_raw(&mut self, r32: Gpr, m32: &SyntheticAmode) -> AssemblerOutputs {
2070
            // Convert ISLE types to assembler types.
2071
34
            let r32 = self.convert_gpr_to_assembler_read_write_gpr(r32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
2072
34
            let m32 = self.convert_amode_to_assembler_amode(m32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
2073
2074
            // Build the instruction.
2075
34
            let inst = cranelift_assembler_x64::inst::xchgl_rm::new(r32.clone(), m32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
2076
34
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
2077
2078
            // Return a type ISLE can work with.
2079
34
            let gpr = r32.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:205
2080
34
            AssemblerOutputs::RetGpr { inst, gpr }
2081
34
        }
2082
17
        fn x64_xchgq_rm_raw(&mut self, r64: Gpr, m64: &SyntheticAmode) -> AssemblerOutputs {
2083
            // Convert ISLE types to assembler types.
2084
17
            let r64 = self.convert_gpr_to_assembler_read_write_gpr(r64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
2085
17
            let m64 = self.convert_amode_to_assembler_amode(m64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
2086
2087
            // Build the instruction.
2088
17
            let inst = cranelift_assembler_x64::inst::xchgq_rm::new(r64.clone(), m64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
2089
17
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
2090
2091
            // Return a type ISLE can work with.
2092
17
            let gpr = r64.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:205
2093
17
            AssemblerOutputs::RetGpr { inst, gpr }
2094
17
        }
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:131
2098
0
            let rdx = self.convert_gpr_to_assembler_fixed_read_write_gpr(rdx); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
2099
0
            let rbx = cranelift_assembler_x64::Fixed(rbx); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
2100
0
            let rcx = cranelift_assembler_x64::Fixed(rcx); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
2101
0
            let m128 = self.convert_amode_to_assembler_amode(m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
2105
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:217
2109
0
            let two = rdx.as_ref().write.to_reg().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:218
2110
0
            let regs = ValueRegs::two(one, two); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:219
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:131
2116
0
            let rdx = self.convert_gpr_to_assembler_fixed_read_write_gpr(rdx); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
2117
0
            let rbx = cranelift_assembler_x64::Fixed(rbx); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
2118
0
            let rcx = cranelift_assembler_x64::Fixed(rcx); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
2119
0
            let m128 = self.convert_amode_to_assembler_amode(m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
2123
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:217
2127
0
            let two = rdx.as_ref().write.to_reg().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:218
2128
0
            let regs = ValueRegs::two(one, two); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:219
2129
0
            AssemblerOutputs::RetValueRegs { inst, regs }
2130
0
        }
2131
0
        fn x64_cmpxchgb_mr_raw(&mut self, rm8: &GprMem8, 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:131
2134
0
            let r8 = cranelift_assembler_x64::Gpr::new(r8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
2135
0
            let al = self.convert_gpr_to_assembler_fixed_read_write_gpr(al); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
2139
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:205
2143
0
            AssemblerOutputs::RetGpr { inst, gpr }
2144
0
        }
2145
0
        fn x64_cmpxchgw_mr_raw(&mut self, rm16: &GprMem16, 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:131
2148
0
            let r16 = cranelift_assembler_x64::Gpr::new(r16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
2149
0
            let ax = self.convert_gpr_to_assembler_fixed_read_write_gpr(ax); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
2153
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:205
2157
0
            AssemblerOutputs::RetGpr { inst, gpr }
2158
0
        }
2159
0
        fn x64_cmpxchgl_mr_raw(&mut self, rm32: &GprMem32, 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:131
2162
0
            let r32 = cranelift_assembler_x64::Gpr::new(r32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
2163
0
            let eax = self.convert_gpr_to_assembler_fixed_read_write_gpr(eax); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
2167
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:205
2171
0
            AssemblerOutputs::RetGpr { inst, gpr }
2172
0
        }
2173
0
        fn x64_cmpxchgq_mr_raw(&mut self, rm64: &GprMem64, 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:131
2176
0
            let r64 = cranelift_assembler_x64::Gpr::new(r64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
2177
0
            let rax = self.convert_gpr_to_assembler_fixed_read_write_gpr(rax); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
2181
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:205
2185
0
            AssemblerOutputs::RetGpr { inst, gpr }
2186
0
        }
2187
420
        fn x64_lock_cmpxchgb_mr_raw(&mut self, m8: &SyntheticAmode, r8: Gpr, al: Gpr) -> AssemblerOutputs {
2188
            // Convert ISLE types to assembler types.
2189
420
            let m8 = self.convert_amode_to_assembler_amode(m8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
2190
420
            let r8 = cranelift_assembler_x64::Gpr::new(r8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
2191
420
            let al = self.convert_gpr_to_assembler_fixed_read_write_gpr(al); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
2192
2193
            // Build the instruction.
2194
420
            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:144
2195
420
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
2196
2197
            // Return a type ISLE can work with.
2198
420
            let gpr = al.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:205
2199
420
            AssemblerOutputs::RetGpr { inst, gpr }
2200
420
        }
2201
115
        fn x64_lock_cmpxchgw_mr_raw(&mut self, m16: &SyntheticAmode, r16: Gpr, ax: Gpr) -> AssemblerOutputs {
2202
            // Convert ISLE types to assembler types.
2203
115
            let m16 = self.convert_amode_to_assembler_amode(m16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
2204
115
            let r16 = cranelift_assembler_x64::Gpr::new(r16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
2205
115
            let ax = self.convert_gpr_to_assembler_fixed_read_write_gpr(ax); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
2206
2207
            // Build the instruction.
2208
115
            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:144
2209
115
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
2210
2211
            // Return a type ISLE can work with.
2212
115
            let gpr = ax.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:205
2213
115
            AssemblerOutputs::RetGpr { inst, gpr }
2214
115
        }
2215
908
        fn x64_lock_cmpxchgl_mr_raw(&mut self, m32: &SyntheticAmode, r32: Gpr, eax: Gpr) -> AssemblerOutputs {
2216
            // Convert ISLE types to assembler types.
2217
908
            let m32 = self.convert_amode_to_assembler_amode(m32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
2218
908
            let r32 = cranelift_assembler_x64::Gpr::new(r32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
2219
908
            let eax = self.convert_gpr_to_assembler_fixed_read_write_gpr(eax); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
2220
2221
            // Build the instruction.
2222
908
            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:144
2223
908
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
2224
2225
            // Return a type ISLE can work with.
2226
908
            let gpr = eax.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:205
2227
908
            AssemblerOutputs::RetGpr { inst, gpr }
2228
908
        }
2229
63
        fn x64_lock_cmpxchgq_mr_raw(&mut self, m64: &SyntheticAmode, r64: Gpr, rax: Gpr) -> AssemblerOutputs {
2230
            // Convert ISLE types to assembler types.
2231
63
            let m64 = self.convert_amode_to_assembler_amode(m64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
2232
63
            let r64 = cranelift_assembler_x64::Gpr::new(r64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
2233
63
            let rax = self.convert_gpr_to_assembler_fixed_read_write_gpr(rax); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
2234
2235
            // Build the instruction.
2236
63
            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:144
2237
63
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
2238
2239
            // Return a type ISLE can work with.
2240
63
            let gpr = rax.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:205
2241
63
            AssemblerOutputs::RetGpr { inst, gpr }
2242
63
        }
2243
0
        fn x64_pavgb_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned128) -> AssemblerOutputs {
2244
            // Convert ISLE types to assembler types.
2245
0
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
2246
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:131
2247
2248
            // Build the instruction.
2249
0
            let inst = cranelift_assembler_x64::inst::pavgb_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
2250
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
2251
2252
            // Return a type ISLE can work with.
2253
0
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
2254
0
            AssemblerOutputs::RetXmm { inst, xmm }
2255
0
        }
2256
70
        fn x64_pavgw_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned128) -> AssemblerOutputs {
2257
            // Convert ISLE types to assembler types.
2258
70
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
2259
70
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
2260
2261
            // Build the instruction.
2262
70
            let inst = cranelift_assembler_x64::inst::pavgw_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
2263
70
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
2264
2265
            // Return a type ISLE can work with.
2266
70
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
2267
70
            AssemblerOutputs::RetXmm { inst, xmm }
2268
70
        }
2269
115
        fn x64_vpavgb_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem128) -> AssemblerOutputs {
2270
            // Convert ISLE types to assembler types.
2271
115
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
2272
115
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
2273
115
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
2274
2275
            // Build the instruction.
2276
115
            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:144
2277
115
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
2278
2279
            // Return a type ISLE can work with.
2280
115
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
2281
115
            AssemblerOutputs::RetXmm { inst, xmm }
2282
115
        }
2283
110
        fn x64_vpavgw_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem128) -> AssemblerOutputs {
2284
            // Convert ISLE types to assembler types.
2285
110
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
2286
110
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
2287
110
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
2288
2289
            // Build the instruction.
2290
110
            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:144
2291
110
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
2292
2293
            // Return a type ISLE can work with.
2294
110
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
2295
110
            AssemblerOutputs::RetXmm { inst, xmm }
2296
110
        }
2297
0
        fn x64_bsfw_rm_raw(&mut self, rm16: &GprMem16) -> 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:131
2300
0
            let rm16 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
2304
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
2308
0
            AssemblerOutputs::RetGpr { inst, gpr }
2309
0
        }
2310
3.84k
        fn x64_bsfl_rm_raw(&mut self, rm32: &GprMem32) -> AssemblerOutputs {
2311
            // Convert ISLE types to assembler types.
2312
3.84k
            let r32 = cranelift_assembler_x64::Gpr::new(self.temp_writable_gpr()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
2313
3.84k
            let rm32 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
2314
2315
            // Build the instruction.
2316
3.84k
            let inst = cranelift_assembler_x64::inst::bsfl_rm::new(r32.clone(), rm32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
2317
3.84k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
2318
2319
            // Return a type ISLE can work with.
2320
3.84k
            let gpr = r32.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
2321
3.84k
            AssemblerOutputs::RetGpr { inst, gpr }
2322
3.84k
        }
2323
1.73k
        fn x64_bsfq_rm_raw(&mut self, rm64: &GprMem64) -> AssemblerOutputs {
2324
            // Convert ISLE types to assembler types.
2325
1.73k
            let r64 = cranelift_assembler_x64::Gpr::new(self.temp_writable_gpr()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
2326
1.73k
            let rm64 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
2327
2328
            // Build the instruction.
2329
1.73k
            let inst = cranelift_assembler_x64::inst::bsfq_rm::new(r64.clone(), rm64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
2330
1.73k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
2331
2332
            // Return a type ISLE can work with.
2333
1.73k
            let gpr = r64.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
2334
1.73k
            AssemblerOutputs::RetGpr { inst, gpr }
2335
1.73k
        }
2336
0
        fn x64_bsrw_rm_raw(&mut self, rm16: &GprMem16) -> 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:131
2339
0
            let rm16 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
2343
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
2347
0
            AssemblerOutputs::RetGpr { inst, gpr }
2348
0
        }
2349
717
        fn x64_bsrl_rm_raw(&mut self, rm32: &GprMem32) -> AssemblerOutputs {
2350
            // Convert ISLE types to assembler types.
2351
717
            let r32 = cranelift_assembler_x64::Gpr::new(self.temp_writable_gpr()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
2352
717
            let rm32 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
2353
2354
            // Build the instruction.
2355
717
            let inst = cranelift_assembler_x64::inst::bsrl_rm::new(r32.clone(), rm32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
2356
717
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
2357
2358
            // Return a type ISLE can work with.
2359
717
            let gpr = r32.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
2360
717
            AssemblerOutputs::RetGpr { inst, gpr }
2361
717
        }
2362
3.12k
        fn x64_bsrq_rm_raw(&mut self, rm64: &GprMem64) -> AssemblerOutputs {
2363
            // Convert ISLE types to assembler types.
2364
3.12k
            let r64 = cranelift_assembler_x64::Gpr::new(self.temp_writable_gpr()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
2365
3.12k
            let rm64 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
2366
2367
            // Build the instruction.
2368
3.12k
            let inst = cranelift_assembler_x64::inst::bsrq_rm::new(r64.clone(), rm64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
2369
3.12k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
2370
2371
            // Return a type ISLE can work with.
2372
3.12k
            let gpr = r64.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
2373
3.12k
            AssemblerOutputs::RetGpr { inst, gpr }
2374
3.12k
        }
2375
0
        fn x64_tzcntw_a_raw(&mut self, rm16: &GprMem16) -> 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:131
2378
0
            let rm16 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
2382
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
2386
0
            AssemblerOutputs::RetGpr { inst, gpr }
2387
0
        }
2388
69.9k
        fn x64_tzcntl_a_raw(&mut self, rm32: &GprMem32) -> AssemblerOutputs {
2389
            // Convert ISLE types to assembler types.
2390
69.9k
            let r32 = cranelift_assembler_x64::Gpr::new(self.temp_writable_gpr()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
2391
69.9k
            let rm32 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
2392
2393
            // Build the instruction.
2394
69.9k
            let inst = cranelift_assembler_x64::inst::tzcntl_a::new(r32.clone(), rm32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
2395
69.9k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
2396
2397
            // Return a type ISLE can work with.
2398
69.9k
            let gpr = r32.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
2399
69.9k
            AssemblerOutputs::RetGpr { inst, gpr }
2400
69.9k
        }
2401
71.0k
        fn x64_tzcntq_a_raw(&mut self, rm64: &GprMem64) -> AssemblerOutputs {
2402
            // Convert ISLE types to assembler types.
2403
71.0k
            let r64 = cranelift_assembler_x64::Gpr::new(self.temp_writable_gpr()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
2404
71.0k
            let rm64 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
2405
2406
            // Build the instruction.
2407
71.0k
            let inst = cranelift_assembler_x64::inst::tzcntq_a::new(r64.clone(), rm64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
2408
71.0k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
2409
2410
            // Return a type ISLE can work with.
2411
71.0k
            let gpr = r64.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
2412
71.0k
            AssemblerOutputs::RetGpr { inst, gpr }
2413
71.0k
        }
2414
0
        fn x64_lzcntw_rm_raw(&mut self, rm16: &GprMem16) -> 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:131
2417
0
            let rm16 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
2421
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
2425
0
            AssemblerOutputs::RetGpr { inst, gpr }
2426
0
        }
2427
55.6k
        fn x64_lzcntl_rm_raw(&mut self, rm32: &GprMem32) -> AssemblerOutputs {
2428
            // Convert ISLE types to assembler types.
2429
55.6k
            let r32 = cranelift_assembler_x64::Gpr::new(self.temp_writable_gpr()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
2430
55.6k
            let rm32 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
2431
2432
            // Build the instruction.
2433
55.6k
            let inst = cranelift_assembler_x64::inst::lzcntl_rm::new(r32.clone(), rm32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
2434
55.6k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
2435
2436
            // Return a type ISLE can work with.
2437
55.6k
            let gpr = r32.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
2438
55.6k
            AssemblerOutputs::RetGpr { inst, gpr }
2439
55.6k
        }
2440
65.2k
        fn x64_lzcntq_rm_raw(&mut self, rm64: &GprMem64) -> AssemblerOutputs {
2441
            // Convert ISLE types to assembler types.
2442
65.2k
            let r64 = cranelift_assembler_x64::Gpr::new(self.temp_writable_gpr()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
2443
65.2k
            let rm64 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
2444
2445
            // Build the instruction.
2446
65.2k
            let inst = cranelift_assembler_x64::inst::lzcntq_rm::new(r64.clone(), rm64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
2447
65.2k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
2448
2449
            // Return a type ISLE can work with.
2450
65.2k
            let gpr = r64.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
2451
65.2k
            AssemblerOutputs::RetGpr { inst, gpr }
2452
65.2k
        }
2453
0
        fn x64_popcntw_rm_raw(&mut self, rm16: &GprMem16) -> 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:131
2456
0
            let rm16 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
2460
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
2464
0
            AssemblerOutputs::RetGpr { inst, gpr }
2465
0
        }
2466
75.0k
        fn x64_popcntl_rm_raw(&mut self, rm32: &GprMem32) -> AssemblerOutputs {
2467
            // Convert ISLE types to assembler types.
2468
75.0k
            let r32 = cranelift_assembler_x64::Gpr::new(self.temp_writable_gpr()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
2469
75.0k
            let rm32 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
2470
2471
            // Build the instruction.
2472
75.0k
            let inst = cranelift_assembler_x64::inst::popcntl_rm::new(r32.clone(), rm32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
2473
75.0k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
2474
2475
            // Return a type ISLE can work with.
2476
75.0k
            let gpr = r32.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
2477
75.0k
            AssemblerOutputs::RetGpr { inst, gpr }
2478
75.0k
        }
2479
124k
        fn x64_popcntq_rm_raw(&mut self, rm64: &GprMem64) -> AssemblerOutputs {
2480
            // Convert ISLE types to assembler types.
2481
124k
            let r64 = cranelift_assembler_x64::Gpr::new(self.temp_writable_gpr()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
2482
124k
            let rm64 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
2483
2484
            // Build the instruction.
2485
124k
            let inst = cranelift_assembler_x64::inst::popcntq_rm::new(r64.clone(), rm64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
2486
124k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
2487
2488
            // Return a type ISLE can work with.
2489
124k
            let gpr = r64.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
2490
124k
            AssemblerOutputs::RetGpr { inst, gpr }
2491
124k
        }
2492
0
        fn x64_btw_mr_raw(&mut self, rm16: &GprMem16, 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:131
2495
0
            let r16 = cranelift_assembler_x64::Gpr::new(r16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
2499
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
2500
2501
            // Return a type ISLE can work with.
2502
0
            AssemblerOutputs::SideEffect { inst }
2503
0
        }
2504
563
        fn x64_btl_mr_raw(&mut self, rm32: &GprMem32, r32: Gpr) -> AssemblerOutputs {
2505
            // Convert ISLE types to assembler types.
2506
563
            let rm32 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
2507
563
            let r32 = cranelift_assembler_x64::Gpr::new(r32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
2508
2509
            // Build the instruction.
2510
563
            let inst = cranelift_assembler_x64::inst::btl_mr::new(rm32.clone(), r32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
2511
563
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
2512
2513
            // Return a type ISLE can work with.
2514
563
            AssemblerOutputs::SideEffect { inst }
2515
563
        }
2516
13
        fn x64_btq_mr_raw(&mut self, rm64: &GprMem64, r64: Gpr) -> AssemblerOutputs {
2517
            // Convert ISLE types to assembler types.
2518
13
            let rm64 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
2519
13
            let r64 = cranelift_assembler_x64::Gpr::new(r64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
2520
2521
            // Build the instruction.
2522
13
            let inst = cranelift_assembler_x64::inst::btq_mr::new(rm64.clone(), r64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
2523
13
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
2524
2525
            // Return a type ISLE can work with.
2526
13
            AssemblerOutputs::SideEffect { inst }
2527
13
        }
2528
0
        fn x64_btw_mi_raw(&mut self, rm16: &GprMem16, 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:131
2531
0
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
2535
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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: &GprMem32, 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:131
2543
0
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
2547
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
2548
2549
            // Return a type ISLE can work with.
2550
0
            AssemblerOutputs::SideEffect { inst }
2551
0
        }
2552
5
        fn x64_btq_mi_raw(&mut self, rm64: &GprMem64, imm8: u8) -> AssemblerOutputs {
2553
            // Convert ISLE types to assembler types.
2554
5
            let rm64 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
2555
5
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
2556
2557
            // Build the instruction.
2558
5
            let inst = cranelift_assembler_x64::inst::btq_mi::new(rm64.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
2559
5
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
2560
2561
            // Return a type ISLE can work with.
2562
5
            AssemblerOutputs::SideEffect { inst }
2563
5
        }
2564
135
        fn x64_cbtw_zo_raw(&mut self, ax: Gpr) -> AssemblerOutputs {
2565
            // Convert ISLE types to assembler types.
2566
135
            let ax = self.convert_gpr_to_assembler_fixed_read_write_gpr(ax); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
2567
2568
            // Build the instruction.
2569
135
            let inst = cranelift_assembler_x64::inst::cbtw_zo::new(ax.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
2570
135
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
2571
2572
            // Return a type ISLE can work with.
2573
135
            let gpr = ax.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
2574
135
            AssemblerOutputs::RetGpr { inst, gpr }
2575
135
        }
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:131
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:144
2582
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
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:131
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:144
2594
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
2598
0
            AssemblerOutputs::RetGpr { inst, gpr }
2599
0
        }
2600
649
        fn x64_cwtd_zo_raw(&mut self, ax: Gpr) -> AssemblerOutputs {
2601
            // Convert ISLE types to assembler types.
2602
649
            let dx = cranelift_assembler_x64::Fixed(self.temp_writable_gpr()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
2603
649
            let ax = cranelift_assembler_x64::Fixed(ax); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
2604
2605
            // Build the instruction.
2606
649
            let inst = cranelift_assembler_x64::inst::cwtd_zo::new(dx.clone(), ax.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
2607
649
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
2608
2609
            // Return a type ISLE can work with.
2610
649
            let gpr = dx.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
2611
649
            AssemblerOutputs::RetGpr { inst, gpr }
2612
649
        }
2613
17.0k
        fn x64_cltd_zo_raw(&mut self, eax: Gpr) -> AssemblerOutputs {
2614
            // Convert ISLE types to assembler types.
2615
17.0k
            let edx = cranelift_assembler_x64::Fixed(self.temp_writable_gpr()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
2616
17.0k
            let eax = cranelift_assembler_x64::Fixed(eax); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
2617
2618
            // Build the instruction.
2619
17.0k
            let inst = cranelift_assembler_x64::inst::cltd_zo::new(edx.clone(), eax.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
2620
17.0k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
2621
2622
            // Return a type ISLE can work with.
2623
17.0k
            let gpr = edx.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
2624
17.0k
            AssemblerOutputs::RetGpr { inst, gpr }
2625
17.0k
        }
2626
15.6k
        fn x64_cqto_zo_raw(&mut self, rax: Gpr) -> AssemblerOutputs {
2627
            // Convert ISLE types to assembler types.
2628
15.6k
            let rdx = cranelift_assembler_x64::Fixed(self.temp_writable_gpr()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
2629
15.6k
            let rax = cranelift_assembler_x64::Fixed(rax); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
2630
2631
            // Build the instruction.
2632
15.6k
            let inst = cranelift_assembler_x64::inst::cqto_zo::new(rdx.clone(), rax.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
2633
15.6k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
2634
2635
            // Return a type ISLE can work with.
2636
15.6k
            let gpr = rdx.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
2637
15.6k
            AssemblerOutputs::RetGpr { inst, gpr }
2638
15.6k
        }
2639
21
        fn x64_bswapl_o_raw(&mut self, r32: Gpr) -> AssemblerOutputs {
2640
            // Convert ISLE types to assembler types.
2641
21
            let r32 = self.convert_gpr_to_assembler_read_write_gpr(r32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
2642
2643
            // Build the instruction.
2644
21
            let inst = cranelift_assembler_x64::inst::bswapl_o::new(r32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
2645
21
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
2646
2647
            // Return a type ISLE can work with.
2648
21
            let gpr = r32.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
2649
21
            AssemblerOutputs::RetGpr { inst, gpr }
2650
21
        }
2651
66
        fn x64_bswapq_o_raw(&mut self, r64: Gpr) -> AssemblerOutputs {
2652
            // Convert ISLE types to assembler types.
2653
66
            let r64 = self.convert_gpr_to_assembler_read_write_gpr(r64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
2654
2655
            // Build the instruction.
2656
66
            let inst = cranelift_assembler_x64::inst::bswapq_o::new(r64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
2657
66
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
2658
2659
            // Return a type ISLE can work with.
2660
66
            let gpr = r64.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
2661
66
            AssemblerOutputs::RetGpr { inst, gpr }
2662
66
        }
2663
2
        fn x64_blsrl_vm_raw(&mut self, rm32: &GprMem32) -> 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:131
2666
2
            let rm32 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
2670
2
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
2674
2
            AssemblerOutputs::RetGpr { inst, gpr }
2675
2
        }
2676
0
        fn x64_blsrq_vm_raw(&mut self, rm64: &GprMem64) -> AssemblerOutputs {
2677
            // Convert ISLE types to assembler types.
2678
0
            let r64 = cranelift_assembler_x64::Gpr::new(self.temp_writable_gpr()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
2679
0
            let rm64 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
2680
2681
            // Build the instruction.
2682
0
            let inst = cranelift_assembler_x64::inst::blsrq_vm::new(r64.clone(), rm64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
2683
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
2684
2685
            // Return a type ISLE can work with.
2686
0
            let gpr = r64.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
2687
0
            AssemblerOutputs::RetGpr { inst, gpr }
2688
0
        }
2689
2
        fn x64_blsmskl_vm_raw(&mut self, rm32: &GprMem32) -> 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:131
2692
2
            let rm32 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
2696
2
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
2700
2
            AssemblerOutputs::RetGpr { inst, gpr }
2701
2
        }
2702
0
        fn x64_blsmskq_vm_raw(&mut self, rm64: &GprMem64) -> 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:131
2705
0
            let rm64 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
2709
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
2713
0
            AssemblerOutputs::RetGpr { inst, gpr }
2714
0
        }
2715
66
        fn x64_blsil_vm_raw(&mut self, rm32: &GprMem32) -> AssemblerOutputs {
2716
            // Convert ISLE types to assembler types.
2717
66
            let r32 = cranelift_assembler_x64::Gpr::new(self.temp_writable_gpr()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
2718
66
            let rm32 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
2719
2720
            // Build the instruction.
2721
66
            let inst = cranelift_assembler_x64::inst::blsil_vm::new(r32.clone(), rm32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
2722
66
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
2723
2724
            // Return a type ISLE can work with.
2725
66
            let gpr = r32.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
2726
66
            AssemblerOutputs::RetGpr { inst, gpr }
2727
66
        }
2728
2
        fn x64_blsiq_vm_raw(&mut self, rm64: &GprMem64) -> AssemblerOutputs {
2729
            // Convert ISLE types to assembler types.
2730
2
            let r64 = cranelift_assembler_x64::Gpr::new(self.temp_writable_gpr()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
2731
2
            let rm64 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
2732
2733
            // Build the instruction.
2734
2
            let inst = cranelift_assembler_x64::inst::blsiq_vm::new(r64.clone(), rm64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
2735
2
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
2736
2737
            // Return a type ISLE can work with.
2738
2
            let gpr = r64.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
2739
2
            AssemblerOutputs::RetGpr { inst, gpr }
2740
2
        }
2741
51
        fn x64_bzhil_rmv_raw(&mut self, rm32: &GprMem32, r32b: Gpr) -> AssemblerOutputs {
2742
            // Convert ISLE types to assembler types.
2743
51
            let r32a = cranelift_assembler_x64::Gpr::new(self.temp_writable_gpr()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
2744
51
            let rm32 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
2745
51
            let r32b = cranelift_assembler_x64::Gpr::new(r32b); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
2746
2747
            // Build the instruction.
2748
51
            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:144
2749
51
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
2750
2751
            // Return a type ISLE can work with.
2752
51
            let gpr = r32a.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
2753
51
            AssemblerOutputs::RetGpr { inst, gpr }
2754
51
        }
2755
0
        fn x64_bzhiq_rmv_raw(&mut self, rm64: &GprMem64, 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:131
2758
0
            let rm64 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
2759
0
            let r64b = cranelift_assembler_x64::Gpr::new(r64b); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
2763
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
2767
0
            AssemblerOutputs::RetGpr { inst, gpr }
2768
0
        }
2769
0
        fn x64_vpopcntb_a_raw(&mut self, xmm_m128: &XmmMem128) -> 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:131
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:131
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:144
2776
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
2780
0
            AssemblerOutputs::RetXmm { inst, xmm }
2781
0
        }
2782
0
        fn x64_vpopcntw_a_raw(&mut self, xmm_m128: &XmmMem128) -> 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:131
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:131
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:144
2789
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
2793
0
            AssemblerOutputs::RetXmm { inst, xmm }
2794
0
        }
2795
0
        fn x64_cmovaw_rm_raw(&mut self, r16: Gpr, rm16: &GprMem16) -> 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:131
2798
0
            let rm16 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
2802
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
2806
0
            AssemblerOutputs::RetGpr { inst, gpr }
2807
0
        }
2808
31
        fn x64_cmoval_rm_raw(&mut self, r32: Gpr, rm32: &GprMem32) -> AssemblerOutputs {
2809
            // Convert ISLE types to assembler types.
2810
31
            let r32 = self.convert_gpr_to_assembler_read_write_gpr(r32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
2811
31
            let rm32 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
2812
2813
            // Build the instruction.
2814
31
            let inst = cranelift_assembler_x64::inst::cmoval_rm::new(r32.clone(), rm32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
2815
31
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
2816
2817
            // Return a type ISLE can work with.
2818
31
            let gpr = r32.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
2819
31
            AssemblerOutputs::RetGpr { inst, gpr }
2820
31
        }
2821
184k
        fn x64_cmovaq_rm_raw(&mut self, r64: Gpr, rm64: &GprMem64) -> AssemblerOutputs {
2822
            // Convert ISLE types to assembler types.
2823
184k
            let r64 = self.convert_gpr_to_assembler_read_write_gpr(r64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
2824
184k
            let rm64 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
2825
2826
            // Build the instruction.
2827
184k
            let inst = cranelift_assembler_x64::inst::cmovaq_rm::new(r64.clone(), rm64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
2828
184k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
2829
2830
            // Return a type ISLE can work with.
2831
184k
            let gpr = r64.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
2832
184k
            AssemblerOutputs::RetGpr { inst, gpr }
2833
184k
        }
2834
0
        fn x64_cmovaew_rm_raw(&mut self, r16: Gpr, rm16: &GprMem16) -> 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:131
2837
0
            let rm16 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
2841
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
2845
0
            AssemblerOutputs::RetGpr { inst, gpr }
2846
0
        }
2847
6.51k
        fn x64_cmovael_rm_raw(&mut self, r32: Gpr, rm32: &GprMem32) -> AssemblerOutputs {
2848
            // Convert ISLE types to assembler types.
2849
6.51k
            let r32 = self.convert_gpr_to_assembler_read_write_gpr(r32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
2850
6.51k
            let rm32 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
2851
2852
            // Build the instruction.
2853
6.51k
            let inst = cranelift_assembler_x64::inst::cmovael_rm::new(r32.clone(), rm32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
2854
6.51k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
2855
2856
            // Return a type ISLE can work with.
2857
6.51k
            let gpr = r32.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
2858
6.51k
            AssemblerOutputs::RetGpr { inst, gpr }
2859
6.51k
        }
2860
236k
        fn x64_cmovaeq_rm_raw(&mut self, r64: Gpr, rm64: &GprMem64) -> AssemblerOutputs {
2861
            // Convert ISLE types to assembler types.
2862
236k
            let r64 = self.convert_gpr_to_assembler_read_write_gpr(r64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
2863
236k
            let rm64 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
2864
2865
            // Build the instruction.
2866
236k
            let inst = cranelift_assembler_x64::inst::cmovaeq_rm::new(r64.clone(), rm64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
2867
236k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
2868
2869
            // Return a type ISLE can work with.
2870
236k
            let gpr = r64.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
2871
236k
            AssemblerOutputs::RetGpr { inst, gpr }
2872
236k
        }
2873
0
        fn x64_cmovbw_rm_raw(&mut self, r16: Gpr, rm16: &GprMem16) -> 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:131
2876
0
            let rm16 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
2880
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
2884
0
            AssemblerOutputs::RetGpr { inst, gpr }
2885
0
        }
2886
127k
        fn x64_cmovbl_rm_raw(&mut self, r32: Gpr, rm32: &GprMem32) -> AssemblerOutputs {
2887
            // Convert ISLE types to assembler types.
2888
127k
            let r32 = self.convert_gpr_to_assembler_read_write_gpr(r32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
2889
127k
            let rm32 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
2890
2891
            // Build the instruction.
2892
127k
            let inst = cranelift_assembler_x64::inst::cmovbl_rm::new(r32.clone(), rm32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
2893
127k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
2894
2895
            // Return a type ISLE can work with.
2896
127k
            let gpr = r32.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
2897
127k
            AssemblerOutputs::RetGpr { inst, gpr }
2898
127k
        }
2899
2.03k
        fn x64_cmovbq_rm_raw(&mut self, r64: Gpr, rm64: &GprMem64) -> AssemblerOutputs {
2900
            // Convert ISLE types to assembler types.
2901
2.03k
            let r64 = self.convert_gpr_to_assembler_read_write_gpr(r64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
2902
2.03k
            let rm64 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
2903
2904
            // Build the instruction.
2905
2.03k
            let inst = cranelift_assembler_x64::inst::cmovbq_rm::new(r64.clone(), rm64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
2906
2.03k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
2907
2908
            // Return a type ISLE can work with.
2909
2.03k
            let gpr = r64.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
2910
2.03k
            AssemblerOutputs::RetGpr { inst, gpr }
2911
2.03k
        }
2912
0
        fn x64_cmovbew_rm_raw(&mut self, r16: Gpr, rm16: &GprMem16) -> 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:131
2915
0
            let rm16 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
2919
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
2923
0
            AssemblerOutputs::RetGpr { inst, gpr }
2924
0
        }
2925
21
        fn x64_cmovbel_rm_raw(&mut self, r32: Gpr, rm32: &GprMem32) -> AssemblerOutputs {
2926
            // Convert ISLE types to assembler types.
2927
21
            let r32 = self.convert_gpr_to_assembler_read_write_gpr(r32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
2928
21
            let rm32 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
2929
2930
            // Build the instruction.
2931
21
            let inst = cranelift_assembler_x64::inst::cmovbel_rm::new(r32.clone(), rm32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
2932
21
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
2933
2934
            // Return a type ISLE can work with.
2935
21
            let gpr = r32.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
2936
21
            AssemblerOutputs::RetGpr { inst, gpr }
2937
21
        }
2938
240k
        fn x64_cmovbeq_rm_raw(&mut self, r64: Gpr, rm64: &GprMem64) -> AssemblerOutputs {
2939
            // Convert ISLE types to assembler types.
2940
240k
            let r64 = self.convert_gpr_to_assembler_read_write_gpr(r64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
2941
240k
            let rm64 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
2942
2943
            // Build the instruction.
2944
240k
            let inst = cranelift_assembler_x64::inst::cmovbeq_rm::new(r64.clone(), rm64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
2945
240k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
2946
2947
            // Return a type ISLE can work with.
2948
240k
            let gpr = r64.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
2949
240k
            AssemblerOutputs::RetGpr { inst, gpr }
2950
240k
        }
2951
0
        fn x64_cmovew_rm_raw(&mut self, r16: Gpr, rm16: &GprMem16) -> 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:131
2954
0
            let rm16 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
2958
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
2962
0
            AssemblerOutputs::RetGpr { inst, gpr }
2963
0
        }
2964
13.9k
        fn x64_cmovel_rm_raw(&mut self, r32: Gpr, rm32: &GprMem32) -> AssemblerOutputs {
2965
            // Convert ISLE types to assembler types.
2966
13.9k
            let r32 = self.convert_gpr_to_assembler_read_write_gpr(r32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
2967
13.9k
            let rm32 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
2968
2969
            // Build the instruction.
2970
13.9k
            let inst = cranelift_assembler_x64::inst::cmovel_rm::new(r32.clone(), rm32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
2971
13.9k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
2972
2973
            // Return a type ISLE can work with.
2974
13.9k
            let gpr = r32.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
2975
13.9k
            AssemblerOutputs::RetGpr { inst, gpr }
2976
13.9k
        }
2977
98.6k
        fn x64_cmoveq_rm_raw(&mut self, r64: Gpr, rm64: &GprMem64) -> AssemblerOutputs {
2978
            // Convert ISLE types to assembler types.
2979
98.6k
            let r64 = self.convert_gpr_to_assembler_read_write_gpr(r64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
2980
98.6k
            let rm64 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
2981
2982
            // Build the instruction.
2983
98.6k
            let inst = cranelift_assembler_x64::inst::cmoveq_rm::new(r64.clone(), rm64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
2984
98.6k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
2985
2986
            // Return a type ISLE can work with.
2987
98.6k
            let gpr = r64.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
2988
98.6k
            AssemblerOutputs::RetGpr { inst, gpr }
2989
98.6k
        }
2990
0
        fn x64_cmovgw_rm_raw(&mut self, r16: Gpr, rm16: &GprMem16) -> 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:131
2993
0
            let rm16 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
2997
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
3001
0
            AssemblerOutputs::RetGpr { inst, gpr }
3002
0
        }
3003
42
        fn x64_cmovgl_rm_raw(&mut self, r32: Gpr, rm32: &GprMem32) -> AssemblerOutputs {
3004
            // Convert ISLE types to assembler types.
3005
42
            let r32 = self.convert_gpr_to_assembler_read_write_gpr(r32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
3006
42
            let rm32 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
3007
3008
            // Build the instruction.
3009
42
            let inst = cranelift_assembler_x64::inst::cmovgl_rm::new(r32.clone(), rm32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
3010
42
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
3011
3012
            // Return a type ISLE can work with.
3013
42
            let gpr = r32.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
3014
42
            AssemblerOutputs::RetGpr { inst, gpr }
3015
42
        }
3016
8
        fn x64_cmovgq_rm_raw(&mut self, r64: Gpr, rm64: &GprMem64) -> AssemblerOutputs {
3017
            // Convert ISLE types to assembler types.
3018
8
            let r64 = self.convert_gpr_to_assembler_read_write_gpr(r64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
3019
8
            let rm64 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
3020
3021
            // Build the instruction.
3022
8
            let inst = cranelift_assembler_x64::inst::cmovgq_rm::new(r64.clone(), rm64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
3023
8
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
3024
3025
            // Return a type ISLE can work with.
3026
8
            let gpr = r64.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
3027
8
            AssemblerOutputs::RetGpr { inst, gpr }
3028
8
        }
3029
0
        fn x64_cmovgew_rm_raw(&mut self, r16: Gpr, rm16: &GprMem16) -> 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:131
3032
0
            let rm16 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
3036
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
3040
0
            AssemblerOutputs::RetGpr { inst, gpr }
3041
0
        }
3042
926
        fn x64_cmovgel_rm_raw(&mut self, r32: Gpr, rm32: &GprMem32) -> AssemblerOutputs {
3043
            // Convert ISLE types to assembler types.
3044
926
            let r32 = self.convert_gpr_to_assembler_read_write_gpr(r32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
3045
926
            let rm32 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
3046
3047
            // Build the instruction.
3048
926
            let inst = cranelift_assembler_x64::inst::cmovgel_rm::new(r32.clone(), rm32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
3049
926
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
3050
3051
            // Return a type ISLE can work with.
3052
926
            let gpr = r32.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
3053
926
            AssemblerOutputs::RetGpr { inst, gpr }
3054
926
        }
3055
21
        fn x64_cmovgeq_rm_raw(&mut self, r64: Gpr, rm64: &GprMem64) -> AssemblerOutputs {
3056
            // Convert ISLE types to assembler types.
3057
21
            let r64 = self.convert_gpr_to_assembler_read_write_gpr(r64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
3058
21
            let rm64 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
3059
3060
            // Build the instruction.
3061
21
            let inst = cranelift_assembler_x64::inst::cmovgeq_rm::new(r64.clone(), rm64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
3062
21
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
3063
3064
            // Return a type ISLE can work with.
3065
21
            let gpr = r64.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
3066
21
            AssemblerOutputs::RetGpr { inst, gpr }
3067
21
        }
3068
0
        fn x64_cmovlw_rm_raw(&mut self, r16: Gpr, rm16: &GprMem16) -> 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:131
3071
0
            let rm16 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
3075
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
3079
0
            AssemblerOutputs::RetGpr { inst, gpr }
3080
0
        }
3081
152
        fn x64_cmovll_rm_raw(&mut self, r32: Gpr, rm32: &GprMem32) -> AssemblerOutputs {
3082
            // Convert ISLE types to assembler types.
3083
152
            let r32 = self.convert_gpr_to_assembler_read_write_gpr(r32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
3084
152
            let rm32 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
3085
3086
            // Build the instruction.
3087
152
            let inst = cranelift_assembler_x64::inst::cmovll_rm::new(r32.clone(), rm32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
3088
152
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
3089
3090
            // Return a type ISLE can work with.
3091
152
            let gpr = r32.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
3092
152
            AssemblerOutputs::RetGpr { inst, gpr }
3093
152
        }
3094
210
        fn x64_cmovlq_rm_raw(&mut self, r64: Gpr, rm64: &GprMem64) -> AssemblerOutputs {
3095
            // Convert ISLE types to assembler types.
3096
210
            let r64 = self.convert_gpr_to_assembler_read_write_gpr(r64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
3097
210
            let rm64 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
3098
3099
            // Build the instruction.
3100
210
            let inst = cranelift_assembler_x64::inst::cmovlq_rm::new(r64.clone(), rm64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
3101
210
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
3102
3103
            // Return a type ISLE can work with.
3104
210
            let gpr = r64.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
3105
210
            AssemblerOutputs::RetGpr { inst, gpr }
3106
210
        }
3107
0
        fn x64_cmovlew_rm_raw(&mut self, r16: Gpr, rm16: &GprMem16) -> 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:131
3110
0
            let rm16 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
3114
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
3118
0
            AssemblerOutputs::RetGpr { inst, gpr }
3119
0
        }
3120
276
        fn x64_cmovlel_rm_raw(&mut self, r32: Gpr, rm32: &GprMem32) -> AssemblerOutputs {
3121
            // Convert ISLE types to assembler types.
3122
276
            let r32 = self.convert_gpr_to_assembler_read_write_gpr(r32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
3123
276
            let rm32 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
3124
3125
            // Build the instruction.
3126
276
            let inst = cranelift_assembler_x64::inst::cmovlel_rm::new(r32.clone(), rm32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
3127
276
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
3128
3129
            // Return a type ISLE can work with.
3130
276
            let gpr = r32.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
3131
276
            AssemblerOutputs::RetGpr { inst, gpr }
3132
276
        }
3133
9
        fn x64_cmovleq_rm_raw(&mut self, r64: Gpr, rm64: &GprMem64) -> AssemblerOutputs {
3134
            // Convert ISLE types to assembler types.
3135
9
            let r64 = self.convert_gpr_to_assembler_read_write_gpr(r64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
3136
9
            let rm64 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
3137
3138
            // Build the instruction.
3139
9
            let inst = cranelift_assembler_x64::inst::cmovleq_rm::new(r64.clone(), rm64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
3140
9
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
3141
3142
            // Return a type ISLE can work with.
3143
9
            let gpr = r64.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
3144
9
            AssemblerOutputs::RetGpr { inst, gpr }
3145
9
        }
3146
0
        fn x64_cmovnew_rm_raw(&mut self, r16: Gpr, rm16: &GprMem16) -> 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:131
3149
0
            let rm16 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
3153
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
3157
0
            AssemblerOutputs::RetGpr { inst, gpr }
3158
0
        }
3159
16.0k
        fn x64_cmovnel_rm_raw(&mut self, r32: Gpr, rm32: &GprMem32) -> AssemblerOutputs {
3160
            // Convert ISLE types to assembler types.
3161
16.0k
            let r32 = self.convert_gpr_to_assembler_read_write_gpr(r32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
3162
16.0k
            let rm32 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
3163
3164
            // Build the instruction.
3165
16.0k
            let inst = cranelift_assembler_x64::inst::cmovnel_rm::new(r32.clone(), rm32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
3166
16.0k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
3167
3168
            // Return a type ISLE can work with.
3169
16.0k
            let gpr = r32.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
3170
16.0k
            AssemblerOutputs::RetGpr { inst, gpr }
3171
16.0k
        }
3172
3.78k
        fn x64_cmovneq_rm_raw(&mut self, r64: Gpr, rm64: &GprMem64) -> AssemblerOutputs {
3173
            // Convert ISLE types to assembler types.
3174
3.78k
            let r64 = self.convert_gpr_to_assembler_read_write_gpr(r64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
3175
3.78k
            let rm64 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
3176
3177
            // Build the instruction.
3178
3.78k
            let inst = cranelift_assembler_x64::inst::cmovneq_rm::new(r64.clone(), rm64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
3179
3.78k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
3180
3181
            // Return a type ISLE can work with.
3182
3.78k
            let gpr = r64.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
3183
3.78k
            AssemblerOutputs::RetGpr { inst, gpr }
3184
3.78k
        }
3185
0
        fn x64_cmovnow_rm_raw(&mut self, r16: Gpr, rm16: &GprMem16) -> 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:131
3188
0
            let rm16 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
3192
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
3196
0
            AssemblerOutputs::RetGpr { inst, gpr }
3197
0
        }
3198
0
        fn x64_cmovnol_rm_raw(&mut self, r32: Gpr, rm32: &GprMem32) -> 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:131
3201
0
            let rm32 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
3205
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
3209
0
            AssemblerOutputs::RetGpr { inst, gpr }
3210
0
        }
3211
0
        fn x64_cmovnoq_rm_raw(&mut self, r64: Gpr, rm64: &GprMem64) -> 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:131
3214
0
            let rm64 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
3218
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
3222
0
            AssemblerOutputs::RetGpr { inst, gpr }
3223
0
        }
3224
0
        fn x64_cmovnpw_rm_raw(&mut self, r16: Gpr, rm16: &GprMem16) -> 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:131
3227
0
            let rm16 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
3231
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
3235
0
            AssemblerOutputs::RetGpr { inst, gpr }
3236
0
        }
3237
0
        fn x64_cmovnpl_rm_raw(&mut self, r32: Gpr, rm32: &GprMem32) -> 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:131
3240
0
            let rm32 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
3244
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
3248
0
            AssemblerOutputs::RetGpr { inst, gpr }
3249
0
        }
3250
0
        fn x64_cmovnpq_rm_raw(&mut self, r64: Gpr, rm64: &GprMem64) -> 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:131
3253
0
            let rm64 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
3257
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
3261
0
            AssemblerOutputs::RetGpr { inst, gpr }
3262
0
        }
3263
0
        fn x64_cmovnsw_rm_raw(&mut self, r16: Gpr, rm16: &GprMem16) -> 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:131
3266
0
            let rm16 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
3270
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
3274
0
            AssemblerOutputs::RetGpr { inst, gpr }
3275
0
        }
3276
0
        fn x64_cmovnsl_rm_raw(&mut self, r32: Gpr, rm32: &GprMem32) -> 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:131
3279
0
            let rm32 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
3283
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
3287
0
            AssemblerOutputs::RetGpr { inst, gpr }
3288
0
        }
3289
0
        fn x64_cmovnsq_rm_raw(&mut self, r64: Gpr, rm64: &GprMem64) -> 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:131
3292
0
            let rm64 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
3296
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
3300
0
            AssemblerOutputs::RetGpr { inst, gpr }
3301
0
        }
3302
0
        fn x64_cmovow_rm_raw(&mut self, r16: Gpr, rm16: &GprMem16) -> 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:131
3305
0
            let rm16 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
3309
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
3313
0
            AssemblerOutputs::RetGpr { inst, gpr }
3314
0
        }
3315
0
        fn x64_cmovol_rm_raw(&mut self, r32: Gpr, rm32: &GprMem32) -> 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:131
3318
0
            let rm32 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
3322
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
3326
0
            AssemblerOutputs::RetGpr { inst, gpr }
3327
0
        }
3328
0
        fn x64_cmovoq_rm_raw(&mut self, r64: Gpr, rm64: &GprMem64) -> 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:131
3331
0
            let rm64 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
3335
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
3339
0
            AssemblerOutputs::RetGpr { inst, gpr }
3340
0
        }
3341
0
        fn x64_cmovpw_rm_raw(&mut self, r16: Gpr, rm16: &GprMem16) -> 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:131
3344
0
            let rm16 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
3348
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
3352
0
            AssemblerOutputs::RetGpr { inst, gpr }
3353
0
        }
3354
296
        fn x64_cmovpl_rm_raw(&mut self, r32: Gpr, rm32: &GprMem32) -> AssemblerOutputs {
3355
            // Convert ISLE types to assembler types.
3356
296
            let r32 = self.convert_gpr_to_assembler_read_write_gpr(r32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
3357
296
            let rm32 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
3358
3359
            // Build the instruction.
3360
296
            let inst = cranelift_assembler_x64::inst::cmovpl_rm::new(r32.clone(), rm32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
3361
296
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
3362
3363
            // Return a type ISLE can work with.
3364
296
            let gpr = r32.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
3365
296
            AssemblerOutputs::RetGpr { inst, gpr }
3366
296
        }
3367
0
        fn x64_cmovpq_rm_raw(&mut self, r64: Gpr, rm64: &GprMem64) -> 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:131
3370
0
            let rm64 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
3374
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
3378
0
            AssemblerOutputs::RetGpr { inst, gpr }
3379
0
        }
3380
0
        fn x64_cmovsw_rm_raw(&mut self, r16: Gpr, rm16: &GprMem16) -> 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:131
3383
0
            let rm16 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
3387
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
3391
0
            AssemblerOutputs::RetGpr { inst, gpr }
3392
0
        }
3393
93
        fn x64_cmovsl_rm_raw(&mut self, r32: Gpr, rm32: &GprMem32) -> AssemblerOutputs {
3394
            // Convert ISLE types to assembler types.
3395
93
            let r32 = self.convert_gpr_to_assembler_read_write_gpr(r32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
3396
93
            let rm32 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
3397
3398
            // Build the instruction.
3399
93
            let inst = cranelift_assembler_x64::inst::cmovsl_rm::new(r32.clone(), rm32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
3400
93
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
3401
3402
            // Return a type ISLE can work with.
3403
93
            let gpr = r32.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
3404
93
            AssemblerOutputs::RetGpr { inst, gpr }
3405
93
        }
3406
249
        fn x64_cmovsq_rm_raw(&mut self, r64: Gpr, rm64: &GprMem64) -> AssemblerOutputs {
3407
            // Convert ISLE types to assembler types.
3408
249
            let r64 = self.convert_gpr_to_assembler_read_write_gpr(r64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
3409
249
            let rm64 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
3410
3411
            // Build the instruction.
3412
249
            let inst = cranelift_assembler_x64::inst::cmovsq_rm::new(r64.clone(), rm64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
3413
249
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
3414
3415
            // Return a type ISLE can work with.
3416
249
            let gpr = r64.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
3417
249
            AssemblerOutputs::RetGpr { inst, gpr }
3418
249
        }
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:131
3422
0
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
3426
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:131
3434
0
            let imm16 = cranelift_assembler_x64::Imm16::new(imm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
3438
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:131
3446
0
            let imm32 = cranelift_assembler_x64::Imm32::new(imm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
3450
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:131
3458
0
            let imm32 = cranelift_assembler_x64::Simm32::new(imm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
3462
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
3463
3464
            // Return a type ISLE can work with.
3465
0
            AssemblerOutputs::SideEffect { inst }
3466
0
        }
3467
19.8k
        fn x64_cmpb_mi_raw(&mut self, rm8: &GprMem8, imm8: u8) -> AssemblerOutputs {
3468
            // Convert ISLE types to assembler types.
3469
19.8k
            let rm8 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
3470
19.8k
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
3471
3472
            // Build the instruction.
3473
19.8k
            let inst = cranelift_assembler_x64::inst::cmpb_mi::new(rm8.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
3474
19.8k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
3475
3476
            // Return a type ISLE can work with.
3477
19.8k
            AssemblerOutputs::SideEffect { inst }
3478
19.8k
        }
3479
18.2k
        fn x64_cmpw_mi_raw(&mut self, rm16: &GprMem16, imm16: u16) -> AssemblerOutputs {
3480
            // Convert ISLE types to assembler types.
3481
18.2k
            let rm16 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
3482
18.2k
            let imm16 = cranelift_assembler_x64::Imm16::new(imm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
3483
3484
            // Build the instruction.
3485
18.2k
            let inst = cranelift_assembler_x64::inst::cmpw_mi::new(rm16.clone(), imm16.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
3486
18.2k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
3487
3488
            // Return a type ISLE can work with.
3489
18.2k
            AssemblerOutputs::SideEffect { inst }
3490
18.2k
        }
3491
284k
        fn x64_cmpl_mi_raw(&mut self, rm32: &GprMem32, imm32: u32) -> AssemblerOutputs {
3492
            // Convert ISLE types to assembler types.
3493
284k
            let rm32 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
3494
284k
            let imm32 = cranelift_assembler_x64::Imm32::new(imm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
3495
3496
            // Build the instruction.
3497
284k
            let inst = cranelift_assembler_x64::inst::cmpl_mi::new(rm32.clone(), imm32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
3498
284k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
3499
3500
            // Return a type ISLE can work with.
3501
284k
            AssemblerOutputs::SideEffect { inst }
3502
284k
        }
3503
220k
        fn x64_cmpq_mi_raw(&mut self, rm64: &GprMem64, imm32: i32) -> AssemblerOutputs {
3504
            // Convert ISLE types to assembler types.
3505
220k
            let rm64 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
3506
220k
            let imm32 = cranelift_assembler_x64::Simm32::new(imm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
3507
3508
            // Build the instruction.
3509
220k
            let inst = cranelift_assembler_x64::inst::cmpq_mi::new(rm64.clone(), imm32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
3510
220k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
3511
3512
            // Return a type ISLE can work with.
3513
220k
            AssemblerOutputs::SideEffect { inst }
3514
220k
        }
3515
1.18k
        fn x64_cmpw_mi_sxb_raw(&mut self, rm16: &GprMem16, imm8: i8) -> AssemblerOutputs {
3516
            // Convert ISLE types to assembler types.
3517
1.18k
            let rm16 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
3518
1.18k
            let imm8 = cranelift_assembler_x64::Simm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
3519
3520
            // Build the instruction.
3521
1.18k
            let inst = cranelift_assembler_x64::inst::cmpw_mi_sxb::new(rm16.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
3522
1.18k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
3523
3524
            // Return a type ISLE can work with.
3525
1.18k
            AssemblerOutputs::SideEffect { inst }
3526
1.18k
        }
3527
110k
        fn x64_cmpl_mi_sxb_raw(&mut self, rm32: &GprMem32, imm8: i8) -> AssemblerOutputs {
3528
            // Convert ISLE types to assembler types.
3529
110k
            let rm32 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
3530
110k
            let imm8 = cranelift_assembler_x64::Simm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
3531
3532
            // Build the instruction.
3533
110k
            let inst = cranelift_assembler_x64::inst::cmpl_mi_sxb::new(rm32.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
3534
110k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
3535
3536
            // Return a type ISLE can work with.
3537
110k
            AssemblerOutputs::SideEffect { inst }
3538
110k
        }
3539
91.8k
        fn x64_cmpq_mi_sxb_raw(&mut self, rm64: &GprMem64, imm8: i8) -> AssemblerOutputs {
3540
            // Convert ISLE types to assembler types.
3541
91.8k
            let rm64 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
3542
91.8k
            let imm8 = cranelift_assembler_x64::Simm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
3543
3544
            // Build the instruction.
3545
91.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:144
3546
91.8k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
3547
3548
            // Return a type ISLE can work with.
3549
91.8k
            AssemblerOutputs::SideEffect { inst }
3550
91.8k
        }
3551
0
        fn x64_cmpb_mr_raw(&mut self, rm8: &GprMem8, 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:131
3554
0
            let r8 = cranelift_assembler_x64::Gpr::new(r8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
3558
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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: &GprMem16, 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:131
3566
0
            let r16 = cranelift_assembler_x64::Gpr::new(r16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
3570
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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: &GprMem32, 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:131
3578
0
            let r32 = cranelift_assembler_x64::Gpr::new(r32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
3582
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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: &GprMem64, 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:131
3590
0
            let r64 = cranelift_assembler_x64::Gpr::new(r64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
3594
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
3595
3596
            // Return a type ISLE can work with.
3597
0
            AssemblerOutputs::SideEffect { inst }
3598
0
        }
3599
1.00k
        fn x64_cmpb_rm_raw(&mut self, r8: Gpr, rm8: &GprMem8) -> AssemblerOutputs {
3600
            // Convert ISLE types to assembler types.
3601
1.00k
            let r8 = cranelift_assembler_x64::Gpr::new(r8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
3602
1.00k
            let rm8 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
3603
3604
            // Build the instruction.
3605
1.00k
            let inst = cranelift_assembler_x64::inst::cmpb_rm::new(r8.clone(), rm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
3606
1.00k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
3607
3608
            // Return a type ISLE can work with.
3609
1.00k
            AssemblerOutputs::SideEffect { inst }
3610
1.00k
        }
3611
912
        fn x64_cmpw_rm_raw(&mut self, r16: Gpr, rm16: &GprMem16) -> AssemblerOutputs {
3612
            // Convert ISLE types to assembler types.
3613
912
            let r16 = cranelift_assembler_x64::Gpr::new(r16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
3614
912
            let rm16 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
3615
3616
            // Build the instruction.
3617
912
            let inst = cranelift_assembler_x64::inst::cmpw_rm::new(r16.clone(), rm16.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
3618
912
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
3619
3620
            // Return a type ISLE can work with.
3621
912
            AssemblerOutputs::SideEffect { inst }
3622
912
        }
3623
657k
        fn x64_cmpl_rm_raw(&mut self, r32: Gpr, rm32: &GprMem32) -> AssemblerOutputs {
3624
            // Convert ISLE types to assembler types.
3625
657k
            let r32 = cranelift_assembler_x64::Gpr::new(r32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
3626
657k
            let rm32 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
3627
3628
            // Build the instruction.
3629
657k
            let inst = cranelift_assembler_x64::inst::cmpl_rm::new(r32.clone(), rm32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
3630
657k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
3631
3632
            // Return a type ISLE can work with.
3633
657k
            AssemblerOutputs::SideEffect { inst }
3634
657k
        }
3635
1.86M
        fn x64_cmpq_rm_raw(&mut self, r64: Gpr, rm64: &GprMem64) -> AssemblerOutputs {
3636
            // Convert ISLE types to assembler types.
3637
1.86M
            let r64 = cranelift_assembler_x64::Gpr::new(r64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
3638
1.86M
            let rm64 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
3639
3640
            // Build the instruction.
3641
1.86M
            let inst = cranelift_assembler_x64::inst::cmpq_rm::new(r64.clone(), rm64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
3642
1.86M
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
3643
3644
            // Return a type ISLE can work with.
3645
1.86M
            AssemblerOutputs::SideEffect { inst }
3646
1.86M
        }
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:131
3650
0
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
3654
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:131
3662
0
            let imm16 = cranelift_assembler_x64::Imm16::new(imm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
3666
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:131
3674
0
            let imm32 = cranelift_assembler_x64::Imm32::new(imm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
3678
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:131
3686
0
            let imm32 = cranelift_assembler_x64::Simm32::new(imm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
3690
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
3691
3692
            // Return a type ISLE can work with.
3693
0
            AssemblerOutputs::SideEffect { inst }
3694
0
        }
3695
295
        fn x64_testb_mi_raw(&mut self, rm8: &GprMem8, imm8: u8) -> AssemblerOutputs {
3696
            // Convert ISLE types to assembler types.
3697
295
            let rm8 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
3698
295
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
3699
3700
            // Build the instruction.
3701
295
            let inst = cranelift_assembler_x64::inst::testb_mi::new(rm8.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
3702
295
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
3703
3704
            // Return a type ISLE can work with.
3705
295
            AssemblerOutputs::SideEffect { inst }
3706
295
        }
3707
29
        fn x64_testw_mi_raw(&mut self, rm16: &GprMem16, imm16: u16) -> AssemblerOutputs {
3708
            // Convert ISLE types to assembler types.
3709
29
            let rm16 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
3710
29
            let imm16 = cranelift_assembler_x64::Imm16::new(imm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
3711
3712
            // Build the instruction.
3713
29
            let inst = cranelift_assembler_x64::inst::testw_mi::new(rm16.clone(), imm16.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
3714
29
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
3715
3716
            // Return a type ISLE can work with.
3717
29
            AssemblerOutputs::SideEffect { inst }
3718
29
        }
3719
36.3k
        fn x64_testl_mi_raw(&mut self, rm32: &GprMem32, imm32: u32) -> AssemblerOutputs {
3720
            // Convert ISLE types to assembler types.
3721
36.3k
            let rm32 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
3722
36.3k
            let imm32 = cranelift_assembler_x64::Imm32::new(imm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
3723
3724
            // Build the instruction.
3725
36.3k
            let inst = cranelift_assembler_x64::inst::testl_mi::new(rm32.clone(), imm32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
3726
36.3k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
3727
3728
            // Return a type ISLE can work with.
3729
36.3k
            AssemblerOutputs::SideEffect { inst }
3730
36.3k
        }
3731
46.7k
        fn x64_testq_mi_raw(&mut self, rm64: &GprMem64, imm32: i32) -> AssemblerOutputs {
3732
            // Convert ISLE types to assembler types.
3733
46.7k
            let rm64 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
3734
46.7k
            let imm32 = cranelift_assembler_x64::Simm32::new(imm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
3735
3736
            // Build the instruction.
3737
46.7k
            let inst = cranelift_assembler_x64::inst::testq_mi::new(rm64.clone(), imm32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
3738
46.7k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
3739
3740
            // Return a type ISLE can work with.
3741
46.7k
            AssemblerOutputs::SideEffect { inst }
3742
46.7k
        }
3743
862k
        fn x64_testb_mr_raw(&mut self, rm8: &GprMem8, r8: Gpr) -> AssemblerOutputs {
3744
            // Convert ISLE types to assembler types.
3745
862k
            let rm8 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
3746
862k
            let r8 = cranelift_assembler_x64::Gpr::new(r8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
3747
3748
            // Build the instruction.
3749
862k
            let inst = cranelift_assembler_x64::inst::testb_mr::new(rm8.clone(), r8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
3750
862k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
3751
3752
            // Return a type ISLE can work with.
3753
862k
            AssemblerOutputs::SideEffect { inst }
3754
862k
        }
3755
8.06k
        fn x64_testw_mr_raw(&mut self, rm16: &GprMem16, r16: Gpr) -> AssemblerOutputs {
3756
            // Convert ISLE types to assembler types.
3757
8.06k
            let rm16 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
3758
8.06k
            let r16 = cranelift_assembler_x64::Gpr::new(r16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
3759
3760
            // Build the instruction.
3761
8.06k
            let inst = cranelift_assembler_x64::inst::testw_mr::new(rm16.clone(), r16.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
3762
8.06k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
3763
3764
            // Return a type ISLE can work with.
3765
8.06k
            AssemblerOutputs::SideEffect { inst }
3766
8.06k
        }
3767
866k
        fn x64_testl_mr_raw(&mut self, rm32: &GprMem32, r32: Gpr) -> AssemblerOutputs {
3768
            // Convert ISLE types to assembler types.
3769
866k
            let rm32 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
3770
866k
            let r32 = cranelift_assembler_x64::Gpr::new(r32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
3771
3772
            // Build the instruction.
3773
866k
            let inst = cranelift_assembler_x64::inst::testl_mr::new(rm32.clone(), r32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
3774
866k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
3775
3776
            // Return a type ISLE can work with.
3777
866k
            AssemblerOutputs::SideEffect { inst }
3778
866k
        }
3779
880k
        fn x64_testq_mr_raw(&mut self, rm64: &GprMem64, r64: Gpr) -> AssemblerOutputs {
3780
            // Convert ISLE types to assembler types.
3781
880k
            let rm64 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
3782
880k
            let r64 = cranelift_assembler_x64::Gpr::new(r64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
3783
3784
            // Build the instruction.
3785
880k
            let inst = cranelift_assembler_x64::inst::testq_mr::new(rm64.clone(), r64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
3786
880k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
3787
3788
            // Return a type ISLE can work with.
3789
880k
            AssemblerOutputs::SideEffect { inst }
3790
880k
        }
3791
410
        fn x64_ptest_rm_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned128) -> AssemblerOutputs {
3792
            // Convert ISLE types to assembler types.
3793
410
            let xmm1 = cranelift_assembler_x64::Xmm::new(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
3794
410
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
3795
3796
            // Build the instruction.
3797
410
            let inst = cranelift_assembler_x64::inst::ptest_rm::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
3798
410
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
3799
3800
            // Return a type ISLE can work with.
3801
410
            AssemblerOutputs::SideEffect { inst }
3802
410
        }
3803
3.14k
        fn x64_vptest_rm_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMem128) -> AssemblerOutputs {
3804
            // Convert ISLE types to assembler types.
3805
3.14k
            let xmm1 = cranelift_assembler_x64::Xmm::new(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
3806
3.14k
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
3807
3808
            // Build the instruction.
3809
3.14k
            let inst = cranelift_assembler_x64::inst::vptest_rm::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
3810
3.14k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
3811
3812
            // Return a type ISLE can work with.
3813
3.14k
            AssemblerOutputs::SideEffect { inst }
3814
3.14k
        }
3815
9.58k
        fn x64_ucomiss_a_raw(&mut self, xmm1: Xmm, xmm_m32: &XmmMem32) -> AssemblerOutputs {
3816
            // Convert ISLE types to assembler types.
3817
9.58k
            let xmm1 = cranelift_assembler_x64::Xmm::new(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
3818
9.58k
            let xmm_m32 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
3819
3820
            // Build the instruction.
3821
9.58k
            let inst = cranelift_assembler_x64::inst::ucomiss_a::new(xmm1.clone(), xmm_m32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
3822
9.58k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
3823
3824
            // Return a type ISLE can work with.
3825
9.58k
            AssemblerOutputs::SideEffect { inst }
3826
9.58k
        }
3827
8.30k
        fn x64_ucomisd_a_raw(&mut self, xmm1: Xmm, xmm_m64: &XmmMem64) -> AssemblerOutputs {
3828
            // Convert ISLE types to assembler types.
3829
8.30k
            let xmm1 = cranelift_assembler_x64::Xmm::new(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
3830
8.30k
            let xmm_m64 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
3831
3832
            // Build the instruction.
3833
8.30k
            let inst = cranelift_assembler_x64::inst::ucomisd_a::new(xmm1.clone(), xmm_m64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
3834
8.30k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
3835
3836
            // Return a type ISLE can work with.
3837
8.30k
            AssemblerOutputs::SideEffect { inst }
3838
8.30k
        }
3839
173k
        fn x64_vucomiss_a_raw(&mut self, xmm2: Xmm, xmm_m32: &XmmMem32) -> AssemblerOutputs {
3840
            // Convert ISLE types to assembler types.
3841
173k
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
3842
173k
            let xmm_m32 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
3843
3844
            // Build the instruction.
3845
173k
            let inst = cranelift_assembler_x64::inst::vucomiss_a::new(xmm2.clone(), xmm_m32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
3846
173k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
3847
3848
            // Return a type ISLE can work with.
3849
173k
            AssemblerOutputs::SideEffect { inst }
3850
173k
        }
3851
278k
        fn x64_vucomisd_a_raw(&mut self, xmm2: Xmm, xmm_m64: &XmmMem64) -> AssemblerOutputs {
3852
            // Convert ISLE types to assembler types.
3853
278k
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
3854
278k
            let xmm_m64 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
3855
3856
            // Build the instruction.
3857
278k
            let inst = cranelift_assembler_x64::inst::vucomisd_a::new(xmm2.clone(), xmm_m64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
3858
278k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
3859
3860
            // Return a type ISLE can work with.
3861
278k
            AssemblerOutputs::SideEffect { inst }
3862
278k
        }
3863
0
        fn x64_cmpss_a_raw(&mut self, xmm1: Xmm, xmm_m32: &XmmMem32, 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:131
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:131
3867
0
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
3871
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
3875
0
            AssemblerOutputs::RetXmm { inst, xmm }
3876
0
        }
3877
0
        fn x64_cmpsd_a_raw(&mut self, xmm1: Xmm, xmm_m64: &XmmMem64, 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:131
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:131
3881
0
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
3885
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
3889
0
            AssemblerOutputs::RetXmm { inst, xmm }
3890
0
        }
3891
6.31k
        fn x64_cmpps_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMem128, imm8: u8) -> AssemblerOutputs {
3892
            // Convert ISLE types to assembler types.
3893
6.31k
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
3894
6.31k
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
3895
6.31k
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
3896
3897
            // Build the instruction.
3898
6.31k
            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:144
3899
6.31k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
3900
3901
            // Return a type ISLE can work with.
3902
6.31k
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
3903
6.31k
            AssemblerOutputs::RetXmm { inst, xmm }
3904
6.31k
        }
3905
7.30k
        fn x64_cmppd_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMem128, imm8: u8) -> AssemblerOutputs {
3906
            // Convert ISLE types to assembler types.
3907
7.30k
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
3908
7.30k
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
3909
7.30k
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
3910
3911
            // Build the instruction.
3912
7.30k
            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:144
3913
7.30k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
3914
3915
            // Return a type ISLE can work with.
3916
7.30k
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
3917
7.30k
            AssemblerOutputs::RetXmm { inst, xmm }
3918
7.30k
        }
3919
0
        fn x64_vcmpss_b_raw(&mut self, xmm2: Xmm, xmm_m32: &XmmMem32, 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:131
3922
0
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:131
3924
0
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
3928
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
3932
0
            AssemblerOutputs::RetXmm { inst, xmm }
3933
0
        }
3934
0
        fn x64_vcmpsd_b_raw(&mut self, xmm2: Xmm, xmm_m64: &XmmMem64, 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:131
3937
0
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:131
3939
0
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
3943
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
3947
0
            AssemblerOutputs::RetXmm { inst, xmm }
3948
0
        }
3949
102k
        fn x64_vcmpps_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem128, imm8: u8) -> AssemblerOutputs {
3950
            // Convert ISLE types to assembler types.
3951
102k
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
3952
102k
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
3953
102k
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
3954
102k
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
3955
3956
            // Build the instruction.
3957
102k
            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:144
3958
102k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
3959
3960
            // Return a type ISLE can work with.
3961
102k
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
3962
102k
            AssemblerOutputs::RetXmm { inst, xmm }
3963
102k
        }
3964
118k
        fn x64_vcmppd_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem128, imm8: u8) -> AssemblerOutputs {
3965
            // Convert ISLE types to assembler types.
3966
118k
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
3967
118k
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
3968
118k
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
3969
118k
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
3970
3971
            // Build the instruction.
3972
118k
            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:144
3973
118k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
3974
3975
            // Return a type ISLE can work with.
3976
118k
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
3977
118k
            AssemblerOutputs::RetXmm { inst, xmm }
3978
118k
        }
3979
722
        fn x64_pcmpeqb_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned128) -> AssemblerOutputs {
3980
            // Convert ISLE types to assembler types.
3981
722
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
3982
722
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
3983
3984
            // Build the instruction.
3985
722
            let inst = cranelift_assembler_x64::inst::pcmpeqb_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
3986
722
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
3987
3988
            // Return a type ISLE can work with.
3989
722
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
3990
722
            AssemblerOutputs::RetXmm { inst, xmm }
3991
722
        }
3992
177
        fn x64_pcmpeqw_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned128) -> AssemblerOutputs {
3993
            // Convert ISLE types to assembler types.
3994
177
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
3995
177
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
3996
3997
            // Build the instruction.
3998
177
            let inst = cranelift_assembler_x64::inst::pcmpeqw_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
3999
177
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
4000
4001
            // Return a type ISLE can work with.
4002
177
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
4003
177
            AssemblerOutputs::RetXmm { inst, xmm }
4004
177
        }
4005
1.12k
        fn x64_pcmpeqd_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned128) -> AssemblerOutputs {
4006
            // Convert ISLE types to assembler types.
4007
1.12k
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
4008
1.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:131
4009
4010
            // Build the instruction.
4011
1.12k
            let inst = cranelift_assembler_x64::inst::pcmpeqd_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
4012
1.12k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
4013
4014
            // Return a type ISLE can work with.
4015
1.12k
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
4016
1.12k
            AssemblerOutputs::RetXmm { inst, xmm }
4017
1.12k
        }
4018
22
        fn x64_pcmpeqq_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned128) -> AssemblerOutputs {
4019
            // Convert ISLE types to assembler types.
4020
22
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
4021
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:131
4022
4023
            // Build the instruction.
4024
22
            let inst = cranelift_assembler_x64::inst::pcmpeqq_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
4025
22
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
4026
4027
            // Return a type ISLE can work with.
4028
22
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
4029
22
            AssemblerOutputs::RetXmm { inst, xmm }
4030
22
        }
4031
18
        fn x64_pcmpgtb_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned128) -> AssemblerOutputs {
4032
            // Convert ISLE types to assembler types.
4033
18
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
4034
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:131
4035
4036
            // Build the instruction.
4037
18
            let inst = cranelift_assembler_x64::inst::pcmpgtb_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
4038
18
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
4039
4040
            // Return a type ISLE can work with.
4041
18
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
4042
18
            AssemblerOutputs::RetXmm { inst, xmm }
4043
18
        }
4044
16
        fn x64_pcmpgtw_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned128) -> AssemblerOutputs {
4045
            // Convert ISLE types to assembler types.
4046
16
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
4047
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:131
4048
4049
            // Build the instruction.
4050
16
            let inst = cranelift_assembler_x64::inst::pcmpgtw_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
4051
16
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
4052
4053
            // Return a type ISLE can work with.
4054
16
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
4055
16
            AssemblerOutputs::RetXmm { inst, xmm }
4056
16
        }
4057
179
        fn x64_pcmpgtd_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned128) -> AssemblerOutputs {
4058
            // Convert ISLE types to assembler types.
4059
179
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
4060
179
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
4061
4062
            // Build the instruction.
4063
179
            let inst = cranelift_assembler_x64::inst::pcmpgtd_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
4064
179
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
4065
4066
            // Return a type ISLE can work with.
4067
179
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
4068
179
            AssemblerOutputs::RetXmm { inst, xmm }
4069
179
        }
4070
0
        fn x64_pcmpgtq_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned128) -> AssemblerOutputs {
4071
            // Convert ISLE types to assembler types.
4072
0
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
4073
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:131
4074
4075
            // Build the instruction.
4076
0
            let inst = cranelift_assembler_x64::inst::pcmpgtq_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
4077
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
4078
4079
            // Return a type ISLE can work with.
4080
0
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
4081
0
            AssemblerOutputs::RetXmm { inst, xmm }
4082
0
        }
4083
1.31k
        fn x64_vpcmpeqb_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem128) -> AssemblerOutputs {
4084
            // Convert ISLE types to assembler types.
4085
1.31k
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
4086
1.31k
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
4087
1.31k
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
4088
4089
            // Build the instruction.
4090
1.31k
            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:144
4091
1.31k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
4092
4093
            // Return a type ISLE can work with.
4094
1.31k
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
4095
1.31k
            AssemblerOutputs::RetXmm { inst, xmm }
4096
1.31k
        }
4097
1.20k
        fn x64_vpcmpeqw_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem128) -> AssemblerOutputs {
4098
            // Convert ISLE types to assembler types.
4099
1.20k
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
4100
1.20k
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
4101
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:131
4102
4103
            // Build the instruction.
4104
1.20k
            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:144
4105
1.20k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
4106
4107
            // Return a type ISLE can work with.
4108
1.20k
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
4109
1.20k
            AssemblerOutputs::RetXmm { inst, xmm }
4110
1.20k
        }
4111
22.7k
        fn x64_vpcmpeqd_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem128) -> AssemblerOutputs {
4112
            // Convert ISLE types to assembler types.
4113
22.7k
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
4114
22.7k
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
4115
22.7k
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
4116
4117
            // Build the instruction.
4118
22.7k
            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:144
4119
22.7k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
4120
4121
            // Return a type ISLE can work with.
4122
22.7k
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
4123
22.7k
            AssemblerOutputs::RetXmm { inst, xmm }
4124
22.7k
        }
4125
497
        fn x64_vpcmpeqq_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem128) -> AssemblerOutputs {
4126
            // Convert ISLE types to assembler types.
4127
497
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
4128
497
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
4129
497
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
4130
4131
            // Build the instruction.
4132
497
            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:144
4133
497
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
4134
4135
            // Return a type ISLE can work with.
4136
497
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
4137
497
            AssemblerOutputs::RetXmm { inst, xmm }
4138
497
        }
4139
46
        fn x64_vpcmpgtb_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem128) -> AssemblerOutputs {
4140
            // Convert ISLE types to assembler types.
4141
46
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
4142
46
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
4143
46
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
4144
4145
            // Build the instruction.
4146
46
            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:144
4147
46
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
4148
4149
            // Return a type ISLE can work with.
4150
46
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
4151
46
            AssemblerOutputs::RetXmm { inst, xmm }
4152
46
        }
4153
233
        fn x64_vpcmpgtw_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem128) -> AssemblerOutputs {
4154
            // Convert ISLE types to assembler types.
4155
233
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
4156
233
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
4157
233
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
4158
4159
            // Build the instruction.
4160
233
            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:144
4161
233
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
4162
4163
            // Return a type ISLE can work with.
4164
233
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
4165
233
            AssemblerOutputs::RetXmm { inst, xmm }
4166
233
        }
4167
84
        fn x64_vpcmpgtd_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem128) -> AssemblerOutputs {
4168
            // Convert ISLE types to assembler types.
4169
84
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
4170
84
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
4171
84
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
4172
4173
            // Build the instruction.
4174
84
            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:144
4175
84
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
4176
4177
            // Return a type ISLE can work with.
4178
84
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
4179
84
            AssemblerOutputs::RetXmm { inst, xmm }
4180
84
        }
4181
36
        fn x64_vpcmpgtq_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem128) -> AssemblerOutputs {
4182
            // Convert ISLE types to assembler types.
4183
36
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
4184
36
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
4185
36
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
4186
4187
            // Build the instruction.
4188
36
            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:144
4189
36
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
4190
4191
            // Return a type ISLE can work with.
4192
36
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
4193
36
            AssemblerOutputs::RetXmm { inst, xmm }
4194
36
        }
4195
33
        fn x64_cvtps2pd_a_raw(&mut self, xmm_m64: &XmmMem64) -> AssemblerOutputs {
4196
            // Convert ISLE types to assembler types.
4197
33
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
4198
33
            let xmm_m64 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
4199
4200
            // Build the instruction.
4201
33
            let inst = cranelift_assembler_x64::inst::cvtps2pd_a::new(xmm1.clone(), xmm_m64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
4202
33
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
4203
4204
            // Return a type ISLE can work with.
4205
33
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
4206
33
            AssemblerOutputs::RetXmm { inst, xmm }
4207
33
        }
4208
337
        fn x64_cvttps2dq_a_raw(&mut self, xmm_m128: &XmmMemAligned128) -> AssemblerOutputs {
4209
            // Convert ISLE types to assembler types.
4210
337
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
4211
337
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
4212
4213
            // Build the instruction.
4214
337
            let inst = cranelift_assembler_x64::inst::cvttps2dq_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
4215
337
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
4216
4217
            // Return a type ISLE can work with.
4218
337
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
4219
337
            AssemblerOutputs::RetXmm { inst, xmm }
4220
337
        }
4221
614
        fn x64_cvtss2sd_a_raw(&mut self, xmm1: Xmm, xmm_m32: &XmmMem32) -> AssemblerOutputs {
4222
            // Convert ISLE types to assembler types.
4223
614
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
4224
614
            let xmm_m32 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
4225
4226
            // Build the instruction.
4227
614
            let inst = cranelift_assembler_x64::inst::cvtss2sd_a::new(xmm1.clone(), xmm_m32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
4228
614
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
4229
4230
            // Return a type ISLE can work with.
4231
614
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
4232
614
            AssemblerOutputs::RetXmm { inst, xmm }
4233
614
        }
4234
0
        fn x64_cvtss2si_a_raw(&mut self, xmm_m32: &XmmMem32) -> 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:131
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:131
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:144
4241
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
4245
0
            AssemblerOutputs::RetGpr { inst, gpr }
4246
0
        }
4247
0
        fn x64_cvtss2si_aq_raw(&mut self, xmm_m32: &XmmMem32) -> 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:131
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:131
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:144
4254
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
4258
0
            AssemblerOutputs::RetGpr { inst, gpr }
4259
0
        }
4260
0
        fn x64_cvttss2si_a_raw(&mut self, xmm_m32: &XmmMem32) -> 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:131
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:131
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:144
4267
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
4271
0
            AssemblerOutputs::RetGpr { inst, gpr }
4272
0
        }
4273
0
        fn x64_cvttss2si_aq_raw(&mut self, xmm_m32: &XmmMem32) -> 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:131
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:131
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:144
4280
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
4284
0
            AssemblerOutputs::RetGpr { inst, gpr }
4285
0
        }
4286
3.78k
        fn x64_vcvtps2pd_a_raw(&mut self, xmm_m64: &XmmMem64) -> AssemblerOutputs {
4287
            // Convert ISLE types to assembler types.
4288
3.78k
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
4289
3.78k
            let xmm_m64 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
4290
4291
            // Build the instruction.
4292
3.78k
            let inst = cranelift_assembler_x64::inst::vcvtps2pd_a::new(xmm1.clone(), xmm_m64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
4293
3.78k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
4294
4295
            // Return a type ISLE can work with.
4296
3.78k
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
4297
3.78k
            AssemblerOutputs::RetXmm { inst, xmm }
4298
3.78k
        }
4299
2.67k
        fn x64_vcvttps2dq_a_raw(&mut self, xmm_m128: &XmmMem128) -> AssemblerOutputs {
4300
            // Convert ISLE types to assembler types.
4301
2.67k
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
4302
2.67k
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
4303
4304
            // Build the instruction.
4305
2.67k
            let inst = cranelift_assembler_x64::inst::vcvttps2dq_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
4306
2.67k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
4307
4308
            // Return a type ISLE can work with.
4309
2.67k
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
4310
2.67k
            AssemblerOutputs::RetXmm { inst, xmm }
4311
2.67k
        }
4312
26.5k
        fn x64_vcvtss2sd_b_raw(&mut self, xmm2: Xmm, xmm_m32: &XmmMem32) -> AssemblerOutputs {
4313
            // Convert ISLE types to assembler types.
4314
26.5k
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
4315
26.5k
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
4316
26.5k
            let xmm_m32 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
4317
4318
            // Build the instruction.
4319
26.5k
            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:144
4320
26.5k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
4321
4322
            // Return a type ISLE can work with.
4323
26.5k
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
4324
26.5k
            AssemblerOutputs::RetXmm { inst, xmm }
4325
26.5k
        }
4326
0
        fn x64_vcvtss2si_a_raw(&mut self, xmm_m32: &XmmMem32) -> 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:131
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:131
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:144
4333
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
4337
0
            AssemblerOutputs::RetGpr { inst, gpr }
4338
0
        }
4339
0
        fn x64_vcvtss2si_aq_raw(&mut self, xmm_m32: &XmmMem32) -> 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:131
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:131
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:144
4346
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
4350
0
            AssemblerOutputs::RetGpr { inst, gpr }
4351
0
        }
4352
0
        fn x64_vcvttss2si_a_raw(&mut self, xmm_m32: &XmmMem32) -> 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:131
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:131
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:144
4359
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
4363
0
            AssemblerOutputs::RetGpr { inst, gpr }
4364
0
        }
4365
0
        fn x64_vcvttss2si_aq_raw(&mut self, xmm_m32: &XmmMem32) -> 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:131
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:131
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:144
4372
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
4376
0
            AssemblerOutputs::RetGpr { inst, gpr }
4377
0
        }
4378
63
        fn x64_cvtpd2ps_a_raw(&mut self, xmm_m128: &XmmMemAligned128) -> AssemblerOutputs {
4379
            // Convert ISLE types to assembler types.
4380
63
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
4381
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:131
4382
4383
            // Build the instruction.
4384
63
            let inst = cranelift_assembler_x64::inst::cvtpd2ps_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
4385
63
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
4386
4387
            // Return a type ISLE can work with.
4388
63
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
4389
63
            AssemblerOutputs::RetXmm { inst, xmm }
4390
63
        }
4391
30
        fn x64_cvttpd2dq_a_raw(&mut self, xmm_m128: &XmmMemAligned128) -> AssemblerOutputs {
4392
            // Convert ISLE types to assembler types.
4393
30
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
4394
30
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
4395
4396
            // Build the instruction.
4397
30
            let inst = cranelift_assembler_x64::inst::cvttpd2dq_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
4398
30
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
4399
4400
            // Return a type ISLE can work with.
4401
30
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
4402
30
            AssemblerOutputs::RetXmm { inst, xmm }
4403
30
        }
4404
434
        fn x64_cvtsd2ss_a_raw(&mut self, xmm1: Xmm, xmm_m64: &XmmMem64) -> AssemblerOutputs {
4405
            // Convert ISLE types to assembler types.
4406
434
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
4407
434
            let xmm_m64 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
4408
4409
            // Build the instruction.
4410
434
            let inst = cranelift_assembler_x64::inst::cvtsd2ss_a::new(xmm1.clone(), xmm_m64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
4411
434
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
4412
4413
            // Return a type ISLE can work with.
4414
434
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
4415
434
            AssemblerOutputs::RetXmm { inst, xmm }
4416
434
        }
4417
0
        fn x64_cvtsd2si_a_raw(&mut self, xmm_m64: &XmmMem64) -> 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:131
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:131
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:144
4424
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
4428
0
            AssemblerOutputs::RetGpr { inst, gpr }
4429
0
        }
4430
0
        fn x64_cvtsd2si_aq_raw(&mut self, xmm_m64: &XmmMem64) -> 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:131
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:131
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:144
4437
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
4441
0
            AssemblerOutputs::RetGpr { inst, gpr }
4442
0
        }
4443
0
        fn x64_cvttsd2si_a_raw(&mut self, xmm_m64: &XmmMem64) -> 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:131
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:131
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:144
4450
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
4454
0
            AssemblerOutputs::RetGpr { inst, gpr }
4455
0
        }
4456
0
        fn x64_cvttsd2si_aq_raw(&mut self, xmm_m64: &XmmMem64) -> 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:131
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:131
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:144
4463
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
4467
0
            AssemblerOutputs::RetGpr { inst, gpr }
4468
0
        }
4469
1.15k
        fn x64_vcvtpd2ps_a_raw(&mut self, xmm_m128: &XmmMem128) -> AssemblerOutputs {
4470
            // Convert ISLE types to assembler types.
4471
1.15k
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
4472
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:131
4473
4474
            // Build the instruction.
4475
1.15k
            let inst = cranelift_assembler_x64::inst::vcvtpd2ps_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
4476
1.15k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
4477
4478
            // Return a type ISLE can work with.
4479
1.15k
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
4480
1.15k
            AssemblerOutputs::RetXmm { inst, xmm }
4481
1.15k
        }
4482
1.92k
        fn x64_vcvttpd2dq_a_raw(&mut self, xmm_m128: &XmmMem128) -> AssemblerOutputs {
4483
            // Convert ISLE types to assembler types.
4484
1.92k
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
4485
1.92k
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
4486
4487
            // Build the instruction.
4488
1.92k
            let inst = cranelift_assembler_x64::inst::vcvttpd2dq_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
4489
1.92k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
4490
4491
            // Return a type ISLE can work with.
4492
1.92k
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
4493
1.92k
            AssemblerOutputs::RetXmm { inst, xmm }
4494
1.92k
        }
4495
18.1k
        fn x64_vcvtsd2ss_b_raw(&mut self, xmm2: Xmm, xmm_m64: &XmmMem64) -> AssemblerOutputs {
4496
            // Convert ISLE types to assembler types.
4497
18.1k
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
4498
18.1k
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
4499
18.1k
            let xmm_m64 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
4500
4501
            // Build the instruction.
4502
18.1k
            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:144
4503
18.1k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
4504
4505
            // Return a type ISLE can work with.
4506
18.1k
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
4507
18.1k
            AssemblerOutputs::RetXmm { inst, xmm }
4508
18.1k
        }
4509
0
        fn x64_vcvtsd2si_a_raw(&mut self, xmm_m64: &XmmMem64) -> 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:131
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:131
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:144
4516
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
4520
0
            AssemblerOutputs::RetGpr { inst, gpr }
4521
0
        }
4522
0
        fn x64_vcvtsd2si_aq_raw(&mut self, xmm_m64: &XmmMem64) -> 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:131
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:131
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:144
4529
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
4533
0
            AssemblerOutputs::RetGpr { inst, gpr }
4534
0
        }
4535
0
        fn x64_vcvttsd2si_a_raw(&mut self, xmm_m64: &XmmMem64) -> 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:131
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:131
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:144
4542
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
4546
0
            AssemblerOutputs::RetGpr { inst, gpr }
4547
0
        }
4548
0
        fn x64_vcvttsd2si_aq_raw(&mut self, xmm_m64: &XmmMem64) -> 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:131
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:131
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:144
4555
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
4559
0
            AssemblerOutputs::RetGpr { inst, gpr }
4560
0
        }
4561
736
        fn x64_cvtdq2ps_a_raw(&mut self, xmm_m128: &XmmMemAligned128) -> AssemblerOutputs {
4562
            // Convert ISLE types to assembler types.
4563
736
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
4564
736
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
4565
4566
            // Build the instruction.
4567
736
            let inst = cranelift_assembler_x64::inst::cvtdq2ps_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
4568
736
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
4569
4570
            // Return a type ISLE can work with.
4571
736
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
4572
736
            AssemblerOutputs::RetXmm { inst, xmm }
4573
736
        }
4574
18
        fn x64_cvtdq2pd_a_raw(&mut self, xmm_m64: &XmmMem64) -> AssemblerOutputs {
4575
            // Convert ISLE types to assembler types.
4576
18
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
4577
18
            let xmm_m64 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
4578
4579
            // Build the instruction.
4580
18
            let inst = cranelift_assembler_x64::inst::cvtdq2pd_a::new(xmm1.clone(), xmm_m64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
4581
18
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
4582
4583
            // Return a type ISLE can work with.
4584
18
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
4585
18
            AssemblerOutputs::RetXmm { inst, xmm }
4586
18
        }
4587
514
        fn x64_cvtsi2ssl_a_raw(&mut self, xmm1: Xmm, rm32: &GprMem32) -> AssemblerOutputs {
4588
            // Convert ISLE types to assembler types.
4589
514
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
4590
514
            let rm32 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
4591
4592
            // Build the instruction.
4593
514
            let inst = cranelift_assembler_x64::inst::cvtsi2ssl_a::new(xmm1.clone(), rm32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
4594
514
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
4595
4596
            // Return a type ISLE can work with.
4597
514
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
4598
514
            AssemblerOutputs::RetXmm { inst, xmm }
4599
514
        }
4600
801
        fn x64_cvtsi2ssq_a_raw(&mut self, xmm1: Xmm, rm64: &GprMem64) -> AssemblerOutputs {
4601
            // Convert ISLE types to assembler types.
4602
801
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
4603
801
            let rm64 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
4604
4605
            // Build the instruction.
4606
801
            let inst = cranelift_assembler_x64::inst::cvtsi2ssq_a::new(xmm1.clone(), rm64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
4607
801
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
4608
4609
            // Return a type ISLE can work with.
4610
801
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
4611
801
            AssemblerOutputs::RetXmm { inst, xmm }
4612
801
        }
4613
165
        fn x64_cvtsi2sdl_a_raw(&mut self, xmm1: Xmm, rm32: &GprMem32) -> AssemblerOutputs {
4614
            // Convert ISLE types to assembler types.
4615
165
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
4616
165
            let rm32 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
4617
4618
            // Build the instruction.
4619
165
            let inst = cranelift_assembler_x64::inst::cvtsi2sdl_a::new(xmm1.clone(), rm32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
4620
165
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
4621
4622
            // Return a type ISLE can work with.
4623
165
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
4624
165
            AssemblerOutputs::RetXmm { inst, xmm }
4625
165
        }
4626
1.29k
        fn x64_cvtsi2sdq_a_raw(&mut self, xmm1: Xmm, rm64: &GprMem64) -> AssemblerOutputs {
4627
            // Convert ISLE types to assembler types.
4628
1.29k
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
4629
1.29k
            let rm64 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
4630
4631
            // Build the instruction.
4632
1.29k
            let inst = cranelift_assembler_x64::inst::cvtsi2sdq_a::new(xmm1.clone(), rm64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
4633
1.29k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
4634
4635
            // Return a type ISLE can work with.
4636
1.29k
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
4637
1.29k
            AssemblerOutputs::RetXmm { inst, xmm }
4638
1.29k
        }
4639
954
        fn x64_vcvtdq2pd_a_raw(&mut self, xmm_m64: &XmmMem64) -> AssemblerOutputs {
4640
            // Convert ISLE types to assembler types.
4641
954
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
4642
954
            let xmm_m64 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
4643
4644
            // Build the instruction.
4645
954
            let inst = cranelift_assembler_x64::inst::vcvtdq2pd_a::new(xmm1.clone(), xmm_m64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
4646
954
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
4647
4648
            // Return a type ISLE can work with.
4649
954
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
4650
954
            AssemblerOutputs::RetXmm { inst, xmm }
4651
954
        }
4652
3.48k
        fn x64_vcvtdq2ps_a_raw(&mut self, xmm_m128: &XmmMem128) -> AssemblerOutputs {
4653
            // Convert ISLE types to assembler types.
4654
3.48k
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
4655
3.48k
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
4656
4657
            // Build the instruction.
4658
3.48k
            let inst = cranelift_assembler_x64::inst::vcvtdq2ps_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
4659
3.48k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
4660
4661
            // Return a type ISLE can work with.
4662
3.48k
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
4663
3.48k
            AssemblerOutputs::RetXmm { inst, xmm }
4664
3.48k
        }
4665
8.31k
        fn x64_vcvtsi2sdl_b_raw(&mut self, xmm2: Xmm, rm32: &GprMem32) -> AssemblerOutputs {
4666
            // Convert ISLE types to assembler types.
4667
8.31k
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
4668
8.31k
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
4669
8.31k
            let rm32 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
4670
4671
            // Build the instruction.
4672
8.31k
            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:144
4673
8.31k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
4674
4675
            // Return a type ISLE can work with.
4676
8.31k
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
4677
8.31k
            AssemblerOutputs::RetXmm { inst, xmm }
4678
8.31k
        }
4679
45.8k
        fn x64_vcvtsi2sdq_b_raw(&mut self, xmm2: Xmm, rm64: &GprMem64) -> AssemblerOutputs {
4680
            // Convert ISLE types to assembler types.
4681
45.8k
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
4682
45.8k
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
4683
45.8k
            let rm64 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
4684
4685
            // Build the instruction.
4686
45.8k
            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:144
4687
45.8k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
4688
4689
            // Return a type ISLE can work with.
4690
45.8k
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
4691
45.8k
            AssemblerOutputs::RetXmm { inst, xmm }
4692
45.8k
        }
4693
19.2k
        fn x64_vcvtsi2ssl_b_raw(&mut self, xmm2: Xmm, rm32: &GprMem32) -> AssemblerOutputs {
4694
            // Convert ISLE types to assembler types.
4695
19.2k
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
4696
19.2k
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
4697
19.2k
            let rm32 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
4698
4699
            // Build the instruction.
4700
19.2k
            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:144
4701
19.2k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
4702
4703
            // Return a type ISLE can work with.
4704
19.2k
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
4705
19.2k
            AssemblerOutputs::RetXmm { inst, xmm }
4706
19.2k
        }
4707
30.7k
        fn x64_vcvtsi2ssq_b_raw(&mut self, xmm2: Xmm, rm64: &GprMem64) -> AssemblerOutputs {
4708
            // Convert ISLE types to assembler types.
4709
30.7k
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
4710
30.7k
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
4711
30.7k
            let rm64 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
4712
4713
            // Build the instruction.
4714
30.7k
            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:144
4715
30.7k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
4716
4717
            // Return a type ISLE can work with.
4718
30.7k
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
4719
30.7k
            AssemblerOutputs::RetXmm { inst, xmm }
4720
30.7k
        }
4721
4
        fn x64_vcvtudq2ps_a_raw(&mut self, xmm_m128: &XmmMem128) -> AssemblerOutputs {
4722
            // Convert ISLE types to assembler types.
4723
4
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
4724
4
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
4725
4726
            // Build the instruction.
4727
4
            let inst = cranelift_assembler_x64::inst::vcvtudq2ps_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
4728
4
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
4729
4730
            // Return a type ISLE can work with.
4731
4
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
4732
4
            AssemblerOutputs::RetXmm { inst, xmm }
4733
4
        }
4734
77
        fn x64_divb_m_raw(&mut self, ax: Gpr, rm8: &GprMem8, trap: &TrapCode) -> AssemblerOutputs {
4735
            // Convert ISLE types to assembler types.
4736
77
            let ax = self.convert_gpr_to_assembler_fixed_read_write_gpr(ax); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
4737
77
            let rm8 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
4738
4739
            // Build the instruction.
4740
77
            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:144
4741
77
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
4742
4743
            // Return a type ISLE can work with.
4744
77
            let gpr = ax.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
4745
77
            AssemblerOutputs::RetGpr { inst, gpr }
4746
77
        }
4747
9.12k
        fn x64_divw_m_raw(&mut self, ax: Gpr, dx: Gpr, rm16: &GprMem16, trap: &TrapCode) -> AssemblerOutputs {
4748
            // Convert ISLE types to assembler types.
4749
9.12k
            let ax = self.convert_gpr_to_assembler_fixed_read_write_gpr(ax); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
4750
9.12k
            let dx = self.convert_gpr_to_assembler_fixed_read_write_gpr(dx); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
4751
9.12k
            let rm16 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
4752
4753
            // Build the instruction.
4754
9.12k
            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:144
4755
9.12k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
4756
4757
            // Return a type ISLE can work with.
4758
9.12k
            let one = ax.as_ref().write.to_reg().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:198
4759
9.12k
            let two = dx.as_ref().write.to_reg().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:199
4760
9.12k
            let regs = ValueRegs::two(one, two); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:200
4761
9.12k
            AssemblerOutputs::RetValueRegs { inst, regs }
4762
9.12k
        }
4763
11.3k
        fn x64_divl_m_raw(&mut self, eax: Gpr, edx: Gpr, rm32: &GprMem32, trap: &TrapCode) -> AssemblerOutputs {
4764
            // Convert ISLE types to assembler types.
4765
11.3k
            let eax = self.convert_gpr_to_assembler_fixed_read_write_gpr(eax); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
4766
11.3k
            let edx = self.convert_gpr_to_assembler_fixed_read_write_gpr(edx); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
4767
11.3k
            let rm32 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
4768
4769
            // Build the instruction.
4770
11.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:144
4771
11.3k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
4772
4773
            // Return a type ISLE can work with.
4774
11.3k
            let one = eax.as_ref().write.to_reg().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:198
4775
11.3k
            let two = edx.as_ref().write.to_reg().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:199
4776
11.3k
            let regs = ValueRegs::two(one, two); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:200
4777
11.3k
            AssemblerOutputs::RetValueRegs { inst, regs }
4778
11.3k
        }
4779
8.30k
        fn x64_divq_m_raw(&mut self, rax: Gpr, rdx: Gpr, rm64: &GprMem64, trap: &TrapCode) -> AssemblerOutputs {
4780
            // Convert ISLE types to assembler types.
4781
8.30k
            let rax = self.convert_gpr_to_assembler_fixed_read_write_gpr(rax); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
4782
8.30k
            let rdx = self.convert_gpr_to_assembler_fixed_read_write_gpr(rdx); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
4783
8.30k
            let rm64 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
4784
4785
            // Build the instruction.
4786
8.30k
            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:144
4787
8.30k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
4788
4789
            // Return a type ISLE can work with.
4790
8.30k
            let one = rax.as_ref().write.to_reg().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:198
4791
8.30k
            let two = rdx.as_ref().write.to_reg().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:199
4792
8.30k
            let regs = ValueRegs::two(one, two); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:200
4793
8.30k
            AssemblerOutputs::RetValueRegs { inst, regs }
4794
8.30k
        }
4795
55
        fn x64_idivb_m_raw(&mut self, ax: Gpr, rm8: &GprMem8, trap: &TrapCode) -> AssemblerOutputs {
4796
            // Convert ISLE types to assembler types.
4797
55
            let ax = self.convert_gpr_to_assembler_fixed_read_write_gpr(ax); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
4798
55
            let rm8 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
4799
4800
            // Build the instruction.
4801
55
            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:144
4802
55
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
4803
4804
            // Return a type ISLE can work with.
4805
55
            let gpr = ax.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
4806
55
            AssemblerOutputs::RetGpr { inst, gpr }
4807
55
        }
4808
316
        fn x64_idivw_m_raw(&mut self, ax: Gpr, dx: Gpr, rm16: &GprMem16, trap: &TrapCode) -> AssemblerOutputs {
4809
            // Convert ISLE types to assembler types.
4810
316
            let ax = self.convert_gpr_to_assembler_fixed_read_write_gpr(ax); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
4811
316
            let dx = self.convert_gpr_to_assembler_fixed_read_write_gpr(dx); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
4812
316
            let rm16 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
4813
4814
            // Build the instruction.
4815
316
            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:144
4816
316
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
4817
4818
            // Return a type ISLE can work with.
4819
316
            let one = ax.as_ref().write.to_reg().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:198
4820
316
            let two = dx.as_ref().write.to_reg().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:199
4821
316
            let regs = ValueRegs::two(one, two); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:200
4822
316
            AssemblerOutputs::RetValueRegs { inst, regs }
4823
316
        }
4824
11.2k
        fn x64_idivl_m_raw(&mut self, eax: Gpr, edx: Gpr, rm32: &GprMem32, trap: &TrapCode) -> AssemblerOutputs {
4825
            // Convert ISLE types to assembler types.
4826
11.2k
            let eax = self.convert_gpr_to_assembler_fixed_read_write_gpr(eax); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
4827
11.2k
            let edx = self.convert_gpr_to_assembler_fixed_read_write_gpr(edx); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
4828
11.2k
            let rm32 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
4829
4830
            // Build the instruction.
4831
11.2k
            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:144
4832
11.2k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
4833
4834
            // Return a type ISLE can work with.
4835
11.2k
            let one = eax.as_ref().write.to_reg().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:198
4836
11.2k
            let two = edx.as_ref().write.to_reg().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:199
4837
11.2k
            let regs = ValueRegs::two(one, two); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:200
4838
11.2k
            AssemblerOutputs::RetValueRegs { inst, regs }
4839
11.2k
        }
4840
11.4k
        fn x64_idivq_m_raw(&mut self, rax: Gpr, rdx: Gpr, rm64: &GprMem64, trap: &TrapCode) -> AssemblerOutputs {
4841
            // Convert ISLE types to assembler types.
4842
11.4k
            let rax = self.convert_gpr_to_assembler_fixed_read_write_gpr(rax); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
4843
11.4k
            let rdx = self.convert_gpr_to_assembler_fixed_read_write_gpr(rdx); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
4844
11.4k
            let rm64 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
4845
4846
            // Build the instruction.
4847
11.4k
            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:144
4848
11.4k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
4849
4850
            // Return a type ISLE can work with.
4851
11.4k
            let one = rax.as_ref().write.to_reg().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:198
4852
11.4k
            let two = rdx.as_ref().write.to_reg().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:199
4853
11.4k
            let regs = ValueRegs::two(one, two); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:200
4854
11.4k
            AssemblerOutputs::RetValueRegs { inst, regs }
4855
11.4k
        }
4856
62
        fn x64_divss_a_raw(&mut self, xmm1: Xmm, xmm_m32: &XmmMem32) -> AssemblerOutputs {
4857
            // Convert ISLE types to assembler types.
4858
62
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
4859
62
            let xmm_m32 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
4860
4861
            // Build the instruction.
4862
62
            let inst = cranelift_assembler_x64::inst::divss_a::new(xmm1.clone(), xmm_m32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
4863
62
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
4864
4865
            // Return a type ISLE can work with.
4866
62
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
4867
62
            AssemblerOutputs::RetXmm { inst, xmm }
4868
62
        }
4869
63
        fn x64_divsd_a_raw(&mut self, xmm1: Xmm, xmm_m64: &XmmMem64) -> AssemblerOutputs {
4870
            // Convert ISLE types to assembler types.
4871
63
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
4872
63
            let xmm_m64 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
4873
4874
            // Build the instruction.
4875
63
            let inst = cranelift_assembler_x64::inst::divsd_a::new(xmm1.clone(), xmm_m64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
4876
63
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
4877
4878
            // Return a type ISLE can work with.
4879
63
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
4880
63
            AssemblerOutputs::RetXmm { inst, xmm }
4881
63
        }
4882
9
        fn x64_divps_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned128) -> AssemblerOutputs {
4883
            // Convert ISLE types to assembler types.
4884
9
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
4885
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:131
4886
4887
            // Build the instruction.
4888
9
            let inst = cranelift_assembler_x64::inst::divps_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
4889
9
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
4890
4891
            // Return a type ISLE can work with.
4892
9
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
4893
9
            AssemblerOutputs::RetXmm { inst, xmm }
4894
9
        }
4895
25
        fn x64_divpd_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned128) -> AssemblerOutputs {
4896
            // Convert ISLE types to assembler types.
4897
25
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
4898
25
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
4899
4900
            // Build the instruction.
4901
25
            let inst = cranelift_assembler_x64::inst::divpd_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
4902
25
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
4903
4904
            // Return a type ISLE can work with.
4905
25
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
4906
25
            AssemblerOutputs::RetXmm { inst, xmm }
4907
25
        }
4908
5.46k
        fn x64_vdivss_b_raw(&mut self, xmm2: Xmm, xmm_m32: &XmmMem32) -> AssemblerOutputs {
4909
            // Convert ISLE types to assembler types.
4910
5.46k
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
4911
5.46k
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
4912
5.46k
            let xmm_m32 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
4913
4914
            // Build the instruction.
4915
5.46k
            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:144
4916
5.46k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
4917
4918
            // Return a type ISLE can work with.
4919
5.46k
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
4920
5.46k
            AssemblerOutputs::RetXmm { inst, xmm }
4921
5.46k
        }
4922
2.36k
        fn x64_vdivsd_b_raw(&mut self, xmm2: Xmm, xmm_m64: &XmmMem64) -> AssemblerOutputs {
4923
            // Convert ISLE types to assembler types.
4924
2.36k
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
4925
2.36k
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
4926
2.36k
            let xmm_m64 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
4927
4928
            // Build the instruction.
4929
2.36k
            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:144
4930
2.36k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
4931
4932
            // Return a type ISLE can work with.
4933
2.36k
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
4934
2.36k
            AssemblerOutputs::RetXmm { inst, xmm }
4935
2.36k
        }
4936
44
        fn x64_vdivps_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem128) -> AssemblerOutputs {
4937
            // Convert ISLE types to assembler types.
4938
44
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
4939
44
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
4940
44
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
4941
4942
            // Build the instruction.
4943
44
            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:144
4944
44
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
4945
4946
            // Return a type ISLE can work with.
4947
44
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
4948
44
            AssemblerOutputs::RetXmm { inst, xmm }
4949
44
        }
4950
58
        fn x64_vdivpd_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem128) -> AssemblerOutputs {
4951
            // Convert ISLE types to assembler types.
4952
58
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
4953
58
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
4954
58
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
4955
4956
            // Build the instruction.
4957
58
            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:144
4958
58
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
4959
4960
            // Return a type ISLE can work with.
4961
58
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
4962
58
            AssemblerOutputs::RetXmm { inst, xmm }
4963
58
        }
4964
0
        fn x64_vfmadd132ss_a_raw(&mut self, xmm1: Xmm, xmm2: Xmm, xmm_m32: &XmmMem32) -> 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:131
4967
0
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:131
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:144
4972
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
4976
0
            AssemblerOutputs::RetXmm { inst, xmm }
4977
0
        }
4978
932
        fn x64_vfmadd213ss_a_raw(&mut self, xmm1: Xmm, xmm2: Xmm, xmm_m32: &XmmMem32) -> AssemblerOutputs {
4979
            // Convert ISLE types to assembler types.
4980
932
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
4981
932
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
4982
932
            let xmm_m32 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
4983
4984
            // Build the instruction.
4985
932
            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:144
4986
932
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
4987
4988
            // Return a type ISLE can work with.
4989
932
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
4990
932
            AssemblerOutputs::RetXmm { inst, xmm }
4991
932
        }
4992
0
        fn x64_vfmadd231ss_a_raw(&mut self, xmm1: Xmm, xmm2: Xmm, xmm_m32: &XmmMem32) -> 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:131
4995
0
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:131
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:144
5000
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
5004
0
            AssemblerOutputs::RetXmm { inst, xmm }
5005
0
        }
5006
0
        fn x64_vfmadd132sd_a_raw(&mut self, xmm1: Xmm, xmm2: Xmm, xmm_m64: &XmmMem64) -> 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:131
5009
0
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:131
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:144
5014
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
5018
0
            AssemblerOutputs::RetXmm { inst, xmm }
5019
0
        }
5020
7
        fn x64_vfmadd213sd_a_raw(&mut self, xmm1: Xmm, xmm2: Xmm, xmm_m64: &XmmMem64) -> AssemblerOutputs {
5021
            // Convert ISLE types to assembler types.
5022
7
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
5023
7
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
5024
7
            let xmm_m64 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
5025
5026
            // Build the instruction.
5027
7
            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:144
5028
7
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
5029
5030
            // Return a type ISLE can work with.
5031
7
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
5032
7
            AssemblerOutputs::RetXmm { inst, xmm }
5033
7
        }
5034
0
        fn x64_vfmadd231sd_a_raw(&mut self, xmm1: Xmm, xmm2: Xmm, xmm_m64: &XmmMem64) -> 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:131
5037
0
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:131
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:144
5042
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
5046
0
            AssemblerOutputs::RetXmm { inst, xmm }
5047
0
        }
5048
0
        fn x64_vfmadd132ps_a_raw(&mut self, xmm1: Xmm, xmm2: Xmm, xmm_m128: &XmmMem128) -> 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:131
5051
0
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:131
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:144
5056
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
5060
0
            AssemblerOutputs::RetXmm { inst, xmm }
5061
0
        }
5062
47
        fn x64_vfmadd213ps_a_raw(&mut self, xmm1: Xmm, xmm2: Xmm, xmm_m128: &XmmMem128) -> AssemblerOutputs {
5063
            // Convert ISLE types to assembler types.
5064
47
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
5065
47
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
5066
47
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
5067
5068
            // Build the instruction.
5069
47
            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:144
5070
47
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
5071
5072
            // Return a type ISLE can work with.
5073
47
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
5074
47
            AssemblerOutputs::RetXmm { inst, xmm }
5075
47
        }
5076
0
        fn x64_vfmadd231ps_a_raw(&mut self, xmm1: Xmm, xmm2: Xmm, xmm_m128: &XmmMem128) -> 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:131
5079
0
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:131
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:144
5084
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
5088
0
            AssemblerOutputs::RetXmm { inst, xmm }
5089
0
        }
5090
0
        fn x64_vfmadd132pd_a_raw(&mut self, xmm1: Xmm, xmm2: Xmm, xmm_m128: &XmmMem128) -> 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:131
5093
0
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:131
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:144
5098
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
5102
0
            AssemblerOutputs::RetXmm { inst, xmm }
5103
0
        }
5104
9
        fn x64_vfmadd213pd_a_raw(&mut self, xmm1: Xmm, xmm2: Xmm, xmm_m128: &XmmMem128) -> AssemblerOutputs {
5105
            // Convert ISLE types to assembler types.
5106
9
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
5107
9
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
5108
9
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
5109
5110
            // Build the instruction.
5111
9
            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:144
5112
9
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
5113
5114
            // Return a type ISLE can work with.
5115
9
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
5116
9
            AssemblerOutputs::RetXmm { inst, xmm }
5117
9
        }
5118
0
        fn x64_vfmadd231pd_a_raw(&mut self, xmm1: Xmm, xmm2: Xmm, xmm_m128: &XmmMem128) -> 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:131
5121
0
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:131
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:144
5126
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
5130
0
            AssemblerOutputs::RetXmm { inst, xmm }
5131
0
        }
5132
0
        fn x64_vfnmadd132ss_a_raw(&mut self, xmm1: Xmm, xmm2: Xmm, xmm_m32: &XmmMem32) -> 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:131
5135
0
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:131
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:144
5140
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
5144
0
            AssemblerOutputs::RetXmm { inst, xmm }
5145
0
        }
5146
0
        fn x64_vfnmadd213ss_a_raw(&mut self, xmm1: Xmm, xmm2: Xmm, xmm_m32: &XmmMem32) -> 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:131
5149
0
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:131
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:144
5154
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
5158
0
            AssemblerOutputs::RetXmm { inst, xmm }
5159
0
        }
5160
0
        fn x64_vfnmadd231ss_a_raw(&mut self, xmm1: Xmm, xmm2: Xmm, xmm_m32: &XmmMem32) -> 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:131
5163
0
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:131
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:144
5168
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
5172
0
            AssemblerOutputs::RetXmm { inst, xmm }
5173
0
        }
5174
0
        fn x64_vfnmadd132sd_a_raw(&mut self, xmm1: Xmm, xmm2: Xmm, xmm_m64: &XmmMem64) -> 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:131
5177
0
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:131
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:144
5182
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
5186
0
            AssemblerOutputs::RetXmm { inst, xmm }
5187
0
        }
5188
0
        fn x64_vfnmadd213sd_a_raw(&mut self, xmm1: Xmm, xmm2: Xmm, xmm_m64: &XmmMem64) -> 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:131
5191
0
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:131
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:144
5196
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
5200
0
            AssemblerOutputs::RetXmm { inst, xmm }
5201
0
        }
5202
0
        fn x64_vfnmadd231sd_a_raw(&mut self, xmm1: Xmm, xmm2: Xmm, xmm_m64: &XmmMem64) -> 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:131
5205
0
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:131
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:144
5210
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
5214
0
            AssemblerOutputs::RetXmm { inst, xmm }
5215
0
        }
5216
0
        fn x64_vfnmadd132ps_a_raw(&mut self, xmm1: Xmm, xmm2: Xmm, xmm_m128: &XmmMem128) -> 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:131
5219
0
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:131
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:144
5224
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
5228
0
            AssemblerOutputs::RetXmm { inst, xmm }
5229
0
        }
5230
8
        fn x64_vfnmadd213ps_a_raw(&mut self, xmm1: Xmm, xmm2: Xmm, xmm_m128: &XmmMem128) -> AssemblerOutputs {
5231
            // Convert ISLE types to assembler types.
5232
8
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
5233
8
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
5234
8
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
5235
5236
            // Build the instruction.
5237
8
            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:144
5238
8
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
5239
5240
            // Return a type ISLE can work with.
5241
8
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
5242
8
            AssemblerOutputs::RetXmm { inst, xmm }
5243
8
        }
5244
0
        fn x64_vfnmadd231ps_a_raw(&mut self, xmm1: Xmm, xmm2: Xmm, xmm_m128: &XmmMem128) -> 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:131
5247
0
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:131
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:144
5252
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
5256
0
            AssemblerOutputs::RetXmm { inst, xmm }
5257
0
        }
5258
0
        fn x64_vfnmadd132pd_a_raw(&mut self, xmm1: Xmm, xmm2: Xmm, xmm_m128: &XmmMem128) -> 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:131
5261
0
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:131
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:144
5266
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
5270
0
            AssemblerOutputs::RetXmm { inst, xmm }
5271
0
        }
5272
8
        fn x64_vfnmadd213pd_a_raw(&mut self, xmm1: Xmm, xmm2: Xmm, xmm_m128: &XmmMem128) -> AssemblerOutputs {
5273
            // Convert ISLE types to assembler types.
5274
8
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
5275
8
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
5276
8
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
5277
5278
            // Build the instruction.
5279
8
            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:144
5280
8
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
5281
5282
            // Return a type ISLE can work with.
5283
8
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
5284
8
            AssemblerOutputs::RetXmm { inst, xmm }
5285
8
        }
5286
0
        fn x64_vfnmadd231pd_a_raw(&mut self, xmm1: Xmm, xmm2: Xmm, xmm_m128: &XmmMem128) -> 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:131
5289
0
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:131
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:144
5294
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
5298
0
            AssemblerOutputs::RetXmm { inst, xmm }
5299
0
        }
5300
0
        fn x64_vfmsub132ss_a_raw(&mut self, xmm1: Xmm, xmm2: Xmm, xmm_m32: &XmmMem32) -> 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:131
5303
0
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:131
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:144
5308
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
5312
0
            AssemblerOutputs::RetXmm { inst, xmm }
5313
0
        }
5314
0
        fn x64_vfmsub213ss_a_raw(&mut self, xmm1: Xmm, xmm2: Xmm, xmm_m32: &XmmMem32) -> AssemblerOutputs {
5315
            // Convert ISLE types to assembler types.
5316
0
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
5317
0
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
5318
0
            let xmm_m32 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
5319
5320
            // Build the instruction.
5321
0
            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:144
5322
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
5323
5324
            // Return a type ISLE can work with.
5325
0
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
5326
0
            AssemblerOutputs::RetXmm { inst, xmm }
5327
0
        }
5328
0
        fn x64_vfmsub231ss_a_raw(&mut self, xmm1: Xmm, xmm2: Xmm, xmm_m32: &XmmMem32) -> 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:131
5331
0
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:131
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:144
5336
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
5340
0
            AssemblerOutputs::RetXmm { inst, xmm }
5341
0
        }
5342
0
        fn x64_vfmsub132sd_a_raw(&mut self, xmm1: Xmm, xmm2: Xmm, xmm_m64: &XmmMem64) -> 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:131
5345
0
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:131
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:144
5350
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
5354
0
            AssemblerOutputs::RetXmm { inst, xmm }
5355
0
        }
5356
0
        fn x64_vfmsub213sd_a_raw(&mut self, xmm1: Xmm, xmm2: Xmm, xmm_m64: &XmmMem64) -> 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:131
5359
0
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:131
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:144
5364
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
5368
0
            AssemblerOutputs::RetXmm { inst, xmm }
5369
0
        }
5370
0
        fn x64_vfmsub231sd_a_raw(&mut self, xmm1: Xmm, xmm2: Xmm, xmm_m64: &XmmMem64) -> 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:131
5373
0
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:131
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:144
5378
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
5382
0
            AssemblerOutputs::RetXmm { inst, xmm }
5383
0
        }
5384
0
        fn x64_vfmsub132ps_a_raw(&mut self, xmm1: Xmm, xmm2: Xmm, xmm_m128: &XmmMem128) -> 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:131
5387
0
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:131
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:144
5392
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
5396
0
            AssemblerOutputs::RetXmm { inst, xmm }
5397
0
        }
5398
0
        fn x64_vfmsub213ps_a_raw(&mut self, xmm1: Xmm, xmm2: Xmm, xmm_m128: &XmmMem128) -> 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:131
5401
0
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:131
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:144
5406
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
5410
0
            AssemblerOutputs::RetXmm { inst, xmm }
5411
0
        }
5412
0
        fn x64_vfmsub231ps_a_raw(&mut self, xmm1: Xmm, xmm2: Xmm, xmm_m128: &XmmMem128) -> 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:131
5415
0
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:131
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:144
5420
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
5424
0
            AssemblerOutputs::RetXmm { inst, xmm }
5425
0
        }
5426
0
        fn x64_vfmsub132pd_a_raw(&mut self, xmm1: Xmm, xmm2: Xmm, xmm_m128: &XmmMem128) -> 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:131
5429
0
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:131
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:144
5434
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
5438
0
            AssemblerOutputs::RetXmm { inst, xmm }
5439
0
        }
5440
0
        fn x64_vfmsub213pd_a_raw(&mut self, xmm1: Xmm, xmm2: Xmm, xmm_m128: &XmmMem128) -> 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:131
5443
0
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:131
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:144
5448
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
5452
0
            AssemblerOutputs::RetXmm { inst, xmm }
5453
0
        }
5454
0
        fn x64_vfmsub231pd_a_raw(&mut self, xmm1: Xmm, xmm2: Xmm, xmm_m128: &XmmMem128) -> 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:131
5457
0
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:131
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:144
5462
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
5466
0
            AssemblerOutputs::RetXmm { inst, xmm }
5467
0
        }
5468
0
        fn x64_vfnmsub132ss_a_raw(&mut self, xmm1: Xmm, xmm2: Xmm, xmm_m32: &XmmMem32) -> 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:131
5471
0
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:131
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:144
5476
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
5480
0
            AssemblerOutputs::RetXmm { inst, xmm }
5481
0
        }
5482
0
        fn x64_vfnmsub213ss_a_raw(&mut self, xmm1: Xmm, xmm2: Xmm, xmm_m32: &XmmMem32) -> 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:131
5485
0
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:131
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:144
5490
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
5494
0
            AssemblerOutputs::RetXmm { inst, xmm }
5495
0
        }
5496
0
        fn x64_vfnmsub231ss_a_raw(&mut self, xmm1: Xmm, xmm2: Xmm, xmm_m32: &XmmMem32) -> 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:131
5499
0
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:131
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:144
5504
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
5508
0
            AssemblerOutputs::RetXmm { inst, xmm }
5509
0
        }
5510
0
        fn x64_vfnmsub132sd_a_raw(&mut self, xmm1: Xmm, xmm2: Xmm, xmm_m64: &XmmMem64) -> 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:131
5513
0
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:131
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:144
5518
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
5522
0
            AssemblerOutputs::RetXmm { inst, xmm }
5523
0
        }
5524
0
        fn x64_vfnmsub213sd_a_raw(&mut self, xmm1: Xmm, xmm2: Xmm, xmm_m64: &XmmMem64) -> 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:131
5527
0
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:131
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:144
5532
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
5536
0
            AssemblerOutputs::RetXmm { inst, xmm }
5537
0
        }
5538
0
        fn x64_vfnmsub231sd_a_raw(&mut self, xmm1: Xmm, xmm2: Xmm, xmm_m64: &XmmMem64) -> 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:131
5541
0
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:131
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:144
5546
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
5550
0
            AssemblerOutputs::RetXmm { inst, xmm }
5551
0
        }
5552
0
        fn x64_vfnmsub132ps_a_raw(&mut self, xmm1: Xmm, xmm2: Xmm, xmm_m128: &XmmMem128) -> 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:131
5555
0
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:131
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:144
5560
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
5564
0
            AssemblerOutputs::RetXmm { inst, xmm }
5565
0
        }
5566
0
        fn x64_vfnmsub213ps_a_raw(&mut self, xmm1: Xmm, xmm2: Xmm, xmm_m128: &XmmMem128) -> 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:131
5569
0
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:131
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:144
5574
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
5578
0
            AssemblerOutputs::RetXmm { inst, xmm }
5579
0
        }
5580
0
        fn x64_vfnmsub231ps_a_raw(&mut self, xmm1: Xmm, xmm2: Xmm, xmm_m128: &XmmMem128) -> 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:131
5583
0
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:131
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:144
5588
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
5592
0
            AssemblerOutputs::RetXmm { inst, xmm }
5593
0
        }
5594
0
        fn x64_vfnmsub132pd_a_raw(&mut self, xmm1: Xmm, xmm2: Xmm, xmm_m128: &XmmMem128) -> 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:131
5597
0
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:131
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:144
5602
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
5606
0
            AssemblerOutputs::RetXmm { inst, xmm }
5607
0
        }
5608
0
        fn x64_vfnmsub213pd_a_raw(&mut self, xmm1: Xmm, xmm2: Xmm, xmm_m128: &XmmMem128) -> 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:131
5611
0
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:131
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:144
5616
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
5620
0
            AssemblerOutputs::RetXmm { inst, xmm }
5621
0
        }
5622
0
        fn x64_vfnmsub231pd_a_raw(&mut self, xmm1: Xmm, xmm2: Xmm, xmm_m128: &XmmMem128) -> 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:131
5625
0
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:131
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:144
5630
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
5634
0
            AssemblerOutputs::RetXmm { inst, xmm }
5635
0
        }
5636
0
        fn x64_jmpq_m_raw(&mut self, rm64: &GprMem64) -> 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:131
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:144
5642
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:131
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:144
5653
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:131
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:144
5664
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:131
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:144
5675
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:131
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:144
5686
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:131
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:144
5697
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:131
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:144
5708
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:131
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:144
5719
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:131
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:144
5730
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:131
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:144
5741
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:131
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:144
5752
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:131
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:144
5763
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:131
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:144
5774
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:131
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:144
5785
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:131
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:144
5796
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:131
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:144
5807
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:131
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:144
5818
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:131
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:144
5829
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:131
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:144
5840
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:131
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:144
5851
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:131
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:144
5862
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:131
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:144
5873
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:131
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:144
5884
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:131
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:144
5895
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:131
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:144
5906
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:131
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:144
5917
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:131
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:144
5928
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:131
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:144
5939
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:131
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:144
5950
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:131
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:144
5961
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:131
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:144
5972
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:131
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:144
5983
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:131
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:144
5994
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:131
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:144
6005
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:131
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:144
6016
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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: &GprMem32, 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:131
6024
0
            let xmm1 = cranelift_assembler_x64::Xmm::new(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
6025
0
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
6029
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:184
6035
0
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
6036
                }
6037
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
6038
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
6039
                }
6040
            }
6041
0
        }
6042
218
        fn x64_pextrb_a_raw(&mut self, rm32: &GprMem32, xmm2: Xmm, imm8: u8) -> AssemblerOutputs {
6043
            // Convert ISLE types to assembler types.
6044
218
            let rm32 = self.convert_gpr_mem_to_assembler_write_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
6045
218
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
6046
218
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
6047
6048
            // Build the instruction.
6049
218
            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:144
6050
218
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
6051
6052
            // Return a type ISLE can work with.
6053
218
            match rm32 {
6054
100
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
6055
100
                    let gpr = reg.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
6056
100
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
6057
                }
6058
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
6059
118
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
6060
                }
6061
            }
6062
218
        }
6063
201
        fn x64_pextrw_a_raw(&mut self, xmm2: Xmm, imm8: u8) -> AssemblerOutputs {
6064
            // Convert ISLE types to assembler types.
6065
201
            let r32 = cranelift_assembler_x64::Gpr::new(self.temp_writable_gpr()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
6066
201
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
6067
201
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
6068
6069
            // Build the instruction.
6070
201
            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:144
6071
201
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
6072
6073
            // Return a type ISLE can work with.
6074
201
            let gpr = r32.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
6075
201
            AssemblerOutputs::RetGpr { inst, gpr }
6076
201
        }
6077
4
        fn x64_pextrw_b_raw(&mut self, rm32: &GprMem32, xmm2: Xmm, imm8: u8) -> AssemblerOutputs {
6078
            // Convert ISLE types to assembler types.
6079
4
            let rm32 = self.convert_gpr_mem_to_assembler_write_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
6080
4
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
6081
4
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
6082
6083
            // Build the instruction.
6084
4
            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:144
6085
4
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
6086
6087
            // Return a type ISLE can work with.
6088
4
            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:184
6091
0
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
6092
                }
6093
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
6094
4
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
6095
                }
6096
            }
6097
4
        }
6098
84
        fn x64_pextrd_a_raw(&mut self, rm32: &GprMem32, xmm2: Xmm, imm8: u8) -> AssemblerOutputs {
6099
            // Convert ISLE types to assembler types.
6100
84
            let rm32 = self.convert_gpr_mem_to_assembler_write_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
6101
84
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
6102
84
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
6103
6104
            // Build the instruction.
6105
84
            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:144
6106
84
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
6107
6108
            // Return a type ISLE can work with.
6109
84
            match rm32 {
6110
21
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
6111
21
                    let gpr = reg.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
6112
21
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
6113
                }
6114
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
6115
63
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
6116
                }
6117
            }
6118
84
        }
6119
42
        fn x64_pextrq_a_raw(&mut self, rm64: &GprMem64, xmm2: Xmm, imm8: u8) -> AssemblerOutputs {
6120
            // Convert ISLE types to assembler types.
6121
42
            let rm64 = self.convert_gpr_mem_to_assembler_write_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
6122
42
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
6123
42
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
6124
6125
            // Build the instruction.
6126
42
            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:144
6127
42
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
6128
6129
            // Return a type ISLE can work with.
6130
42
            match rm64 {
6131
26
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
6132
26
                    let gpr = reg.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
6133
26
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
6134
                }
6135
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
6136
16
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
6137
                }
6138
            }
6139
42
        }
6140
0
        fn x64_vextractps_b_raw(&mut self, rm32: &GprMem32, 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:131
6143
0
            let xmm1 = cranelift_assembler_x64::Xmm::new(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
6144
0
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
6148
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:184
6154
0
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
6155
                }
6156
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
6157
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
6158
                }
6159
            }
6160
0
        }
6161
1.60k
        fn x64_vpextrb_a_raw(&mut self, rm32: &GprMem32, xmm2: Xmm, imm8: u8) -> AssemblerOutputs {
6162
            // Convert ISLE types to assembler types.
6163
1.60k
            let rm32 = self.convert_gpr_mem_to_assembler_write_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
6164
1.60k
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
6165
1.60k
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
6166
6167
            // Build the instruction.
6168
1.60k
            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:144
6169
1.60k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
6170
6171
            // Return a type ISLE can work with.
6172
1.60k
            match rm32 {
6173
1.13k
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
6174
1.13k
                    let gpr = reg.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
6175
1.13k
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
6176
                }
6177
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
6178
471
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
6179
                }
6180
            }
6181
1.60k
        }
6182
1.48k
        fn x64_vpextrw_a_raw(&mut self, xmm2: Xmm, imm8: u8) -> AssemblerOutputs {
6183
            // Convert ISLE types to assembler types.
6184
1.48k
            let r32 = cranelift_assembler_x64::Gpr::new(self.temp_writable_gpr()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
6185
1.48k
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
6186
1.48k
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
6187
6188
            // Build the instruction.
6189
1.48k
            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:144
6190
1.48k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
6191
6192
            // Return a type ISLE can work with.
6193
1.48k
            let gpr = r32.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
6194
1.48k
            AssemblerOutputs::RetGpr { inst, gpr }
6195
1.48k
        }
6196
222
        fn x64_vpextrw_b_raw(&mut self, rm32: &GprMem32, xmm2: Xmm, imm8: u8) -> AssemblerOutputs {
6197
            // Convert ISLE types to assembler types.
6198
222
            let rm32 = self.convert_gpr_mem_to_assembler_write_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
6199
222
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
6200
222
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
6201
6202
            // Build the instruction.
6203
222
            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:144
6204
222
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
6205
6206
            // Return a type ISLE can work with.
6207
222
            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:184
6210
0
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
6211
                }
6212
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
6213
222
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
6214
                }
6215
            }
6216
222
        }
6217
976
        fn x64_vpextrd_a_raw(&mut self, rm32: &GprMem32, xmm2: Xmm, imm8: u8) -> AssemblerOutputs {
6218
            // Convert ISLE types to assembler types.
6219
976
            let rm32 = self.convert_gpr_mem_to_assembler_write_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
6220
976
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
6221
976
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
6222
6223
            // Build the instruction.
6224
976
            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:144
6225
976
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
6226
6227
            // Return a type ISLE can work with.
6228
976
            match rm32 {
6229
770
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
6230
770
                    let gpr = reg.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
6231
770
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
6232
                }
6233
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
6234
206
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
6235
                }
6236
            }
6237
976
        }
6238
1.02k
        fn x64_vpextrq_a_raw(&mut self, rm64: &GprMem64, xmm2: Xmm, imm8: u8) -> AssemblerOutputs {
6239
            // Convert ISLE types to assembler types.
6240
1.02k
            let rm64 = self.convert_gpr_mem_to_assembler_write_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
6241
1.02k
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
6242
1.02k
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
6243
6244
            // Build the instruction.
6245
1.02k
            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:144
6246
1.02k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
6247
6248
            // Return a type ISLE can work with.
6249
1.02k
            match rm64 {
6250
887
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
6251
887
                    let gpr = reg.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
6252
887
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
6253
                }
6254
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
6255
135
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
6256
                }
6257
            }
6258
1.02k
        }
6259
45
        fn x64_insertps_a_raw(&mut self, xmm1: Xmm, xmm_m32: &XmmMem32, imm8: u8) -> AssemblerOutputs {
6260
            // Convert ISLE types to assembler types.
6261
45
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
6262
45
            let xmm_m32 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
6263
45
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
6264
6265
            // Build the instruction.
6266
45
            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:144
6267
45
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
6268
6269
            // Return a type ISLE can work with.
6270
45
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
6271
45
            AssemblerOutputs::RetXmm { inst, xmm }
6272
45
        }
6273
974
        fn x64_pinsrb_a_raw(&mut self, xmm1: Xmm, rm32: &GprMem32, imm8: u8) -> AssemblerOutputs {
6274
            // Convert ISLE types to assembler types.
6275
974
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
6276
974
            let rm32 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
6277
974
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
6278
6279
            // Build the instruction.
6280
974
            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:144
6281
974
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
6282
6283
            // Return a type ISLE can work with.
6284
974
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
6285
974
            AssemblerOutputs::RetXmm { inst, xmm }
6286
974
        }
6287
194
        fn x64_pinsrw_a_raw(&mut self, xmm1: Xmm, rm32: &GprMem32, imm8: u8) -> AssemblerOutputs {
6288
            // Convert ISLE types to assembler types.
6289
194
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
6290
194
            let rm32 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
6291
194
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
6292
6293
            // Build the instruction.
6294
194
            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:144
6295
194
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
6296
6297
            // Return a type ISLE can work with.
6298
194
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
6299
194
            AssemblerOutputs::RetXmm { inst, xmm }
6300
194
        }
6301
31
        fn x64_pinsrd_a_raw(&mut self, xmm1: Xmm, rm32: &GprMem32, imm8: u8) -> AssemblerOutputs {
6302
            // Convert ISLE types to assembler types.
6303
31
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
6304
31
            let rm32 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
6305
31
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
6306
6307
            // Build the instruction.
6308
31
            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:144
6309
31
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
6310
6311
            // Return a type ISLE can work with.
6312
31
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
6313
31
            AssemblerOutputs::RetXmm { inst, xmm }
6314
31
        }
6315
24
        fn x64_pinsrq_a_raw(&mut self, xmm1: Xmm, rm64: &GprMem64, imm8: u8) -> AssemblerOutputs {
6316
            // Convert ISLE types to assembler types.
6317
24
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
6318
24
            let rm64 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
6319
24
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
6320
6321
            // Build the instruction.
6322
24
            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:144
6323
24
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
6324
6325
            // Return a type ISLE can work with.
6326
24
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
6327
24
            AssemblerOutputs::RetXmm { inst, xmm }
6328
24
        }
6329
745
        fn x64_vinsertps_b_raw(&mut self, xmm2: Xmm, xmm_m32: &XmmMem32, imm8: u8) -> AssemblerOutputs {
6330
            // Convert ISLE types to assembler types.
6331
745
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
6332
745
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
6333
745
            let xmm_m32 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
6334
745
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
6335
6336
            // Build the instruction.
6337
745
            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:144
6338
745
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
6339
6340
            // Return a type ISLE can work with.
6341
745
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
6342
745
            AssemblerOutputs::RetXmm { inst, xmm }
6343
745
        }
6344
1.46k
        fn x64_vpinsrb_b_raw(&mut self, xmm2: Xmm, rm32: &GprMem32, imm8: u8) -> AssemblerOutputs {
6345
            // Convert ISLE types to assembler types.
6346
1.46k
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
6347
1.46k
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
6348
1.46k
            let rm32 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
6349
1.46k
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
6350
6351
            // Build the instruction.
6352
1.46k
            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:144
6353
1.46k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
6354
6355
            // Return a type ISLE can work with.
6356
1.46k
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
6357
1.46k
            AssemblerOutputs::RetXmm { inst, xmm }
6358
1.46k
        }
6359
435
        fn x64_vpinsrw_b_raw(&mut self, xmm2: Xmm, rm32: &GprMem32, imm8: u8) -> AssemblerOutputs {
6360
            // Convert ISLE types to assembler types.
6361
435
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
6362
435
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
6363
435
            let rm32 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
6364
435
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
6365
6366
            // Build the instruction.
6367
435
            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:144
6368
435
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
6369
6370
            // Return a type ISLE can work with.
6371
435
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
6372
435
            AssemblerOutputs::RetXmm { inst, xmm }
6373
435
        }
6374
290
        fn x64_vpinsrd_b_raw(&mut self, xmm2: Xmm, rm32: &GprMem32, imm8: u8) -> AssemblerOutputs {
6375
            // Convert ISLE types to assembler types.
6376
290
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
6377
290
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
6378
290
            let rm32 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
6379
290
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
6380
6381
            // Build the instruction.
6382
290
            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:144
6383
290
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
6384
6385
            // Return a type ISLE can work with.
6386
290
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
6387
290
            AssemblerOutputs::RetXmm { inst, xmm }
6388
290
        }
6389
178
        fn x64_vpinsrq_b_raw(&mut self, xmm2: Xmm, rm64: &GprMem64, imm8: u8) -> AssemblerOutputs {
6390
            // Convert ISLE types to assembler types.
6391
178
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
6392
178
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
6393
178
            let rm64 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
6394
178
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
6395
6396
            // Build the instruction.
6397
178
            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:144
6398
178
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
6399
6400
            // Return a type ISLE can work with.
6401
178
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
6402
178
            AssemblerOutputs::RetXmm { inst, xmm }
6403
178
        }
6404
47
        fn x64_movmskps_rm_raw(&mut self, xmm2: Xmm) -> AssemblerOutputs {
6405
            // Convert ISLE types to assembler types.
6406
47
            let r32 = cranelift_assembler_x64::Gpr::new(self.temp_writable_gpr()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
6407
47
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
6408
6409
            // Build the instruction.
6410
47
            let inst = cranelift_assembler_x64::inst::movmskps_rm::new(r32.clone(), xmm2.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
6411
47
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
6412
6413
            // Return a type ISLE can work with.
6414
47
            let gpr = r32.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
6415
47
            AssemblerOutputs::RetGpr { inst, gpr }
6416
47
        }
6417
188
        fn x64_movmskpd_rm_raw(&mut self, xmm2: Xmm) -> AssemblerOutputs {
6418
            // Convert ISLE types to assembler types.
6419
188
            let r32 = cranelift_assembler_x64::Gpr::new(self.temp_writable_gpr()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
6420
188
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
6421
6422
            // Build the instruction.
6423
188
            let inst = cranelift_assembler_x64::inst::movmskpd_rm::new(r32.clone(), xmm2.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
6424
188
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
6425
6426
            // Return a type ISLE can work with.
6427
188
            let gpr = r32.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
6428
188
            AssemblerOutputs::RetGpr { inst, gpr }
6429
188
        }
6430
736
        fn x64_pmovmskb_rm_raw(&mut self, xmm2: Xmm) -> AssemblerOutputs {
6431
            // Convert ISLE types to assembler types.
6432
736
            let r32 = cranelift_assembler_x64::Gpr::new(self.temp_writable_gpr()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
6433
736
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
6434
6435
            // Build the instruction.
6436
736
            let inst = cranelift_assembler_x64::inst::pmovmskb_rm::new(r32.clone(), xmm2.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
6437
736
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
6438
6439
            // Return a type ISLE can work with.
6440
736
            let gpr = r32.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
6441
736
            AssemblerOutputs::RetGpr { inst, gpr }
6442
736
        }
6443
566
        fn x64_vmovmskps_rm_raw(&mut self, xmm2: Xmm) -> AssemblerOutputs {
6444
            // Convert ISLE types to assembler types.
6445
566
            let r32 = cranelift_assembler_x64::Gpr::new(self.temp_writable_gpr()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
6446
566
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
6447
6448
            // Build the instruction.
6449
566
            let inst = cranelift_assembler_x64::inst::vmovmskps_rm::new(r32.clone(), xmm2.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
6450
566
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
6451
6452
            // Return a type ISLE can work with.
6453
566
            let gpr = r32.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
6454
566
            AssemblerOutputs::RetGpr { inst, gpr }
6455
566
        }
6456
781
        fn x64_vmovmskpd_rm_raw(&mut self, xmm2: Xmm) -> AssemblerOutputs {
6457
            // Convert ISLE types to assembler types.
6458
781
            let r32 = cranelift_assembler_x64::Gpr::new(self.temp_writable_gpr()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
6459
781
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
6460
6461
            // Build the instruction.
6462
781
            let inst = cranelift_assembler_x64::inst::vmovmskpd_rm::new(r32.clone(), xmm2.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
6463
781
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
6464
6465
            // Return a type ISLE can work with.
6466
781
            let gpr = r32.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
6467
781
            AssemblerOutputs::RetGpr { inst, gpr }
6468
781
        }
6469
2.57k
        fn x64_vpmovmskb_rm_raw(&mut self, xmm2: Xmm) -> AssemblerOutputs {
6470
            // Convert ISLE types to assembler types.
6471
2.57k
            let r32 = cranelift_assembler_x64::Gpr::new(self.temp_writable_gpr()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
6472
2.57k
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
6473
6474
            // Build the instruction.
6475
2.57k
            let inst = cranelift_assembler_x64::inst::vpmovmskb_rm::new(r32.clone(), xmm2.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
6476
2.57k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
6477
6478
            // Return a type ISLE can work with.
6479
2.57k
            let gpr = r32.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
6480
2.57k
            AssemblerOutputs::RetGpr { inst, gpr }
6481
2.57k
        }
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:131
6485
0
            let m64 = self.convert_amode_to_assembler_amode(m64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
6489
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
6493
0
            AssemblerOutputs::RetXmm { inst, xmm }
6494
0
        }
6495
1.67k
        fn x64_movlhps_rm_raw(&mut self, xmm1: Xmm, xmm2: Xmm) -> AssemblerOutputs {
6496
            // Convert ISLE types to assembler types.
6497
1.67k
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
6498
1.67k
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
6499
6500
            // Build the instruction.
6501
1.67k
            let inst = cranelift_assembler_x64::inst::movlhps_rm::new(xmm1.clone(), xmm2.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
6502
1.67k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
6503
6504
            // Return a type ISLE can work with.
6505
1.67k
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
6506
1.67k
            AssemblerOutputs::RetXmm { inst, xmm }
6507
1.67k
        }
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:131
6511
0
            let xmm1 = cranelift_assembler_x64::Xmm::new(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
6512
0
            let m64 = self.convert_amode_to_assembler_amode(m64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
6516
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
6520
0
            AssemblerOutputs::RetXmm { inst, xmm }
6521
0
        }
6522
1.58k
        fn x64_vmovlhps_rvm_raw(&mut self, xmm2: Xmm, xmm3: Xmm) -> AssemblerOutputs {
6523
            // Convert ISLE types to assembler types.
6524
1.58k
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
6525
1.58k
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
6526
1.58k
            let xmm3 = cranelift_assembler_x64::Xmm::new(xmm3); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
6527
6528
            // Build the instruction.
6529
1.58k
            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:144
6530
1.58k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
6531
6532
            // Return a type ISLE can work with.
6533
1.58k
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
6534
1.58k
            AssemblerOutputs::RetXmm { inst, xmm }
6535
1.58k
        }
6536
4
        fn x64_movddup_a_raw(&mut self, xmm_m64: &XmmMem64) -> AssemblerOutputs {
6537
            // Convert ISLE types to assembler types.
6538
4
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
6539
4
            let xmm_m64 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
6540
6541
            // Build the instruction.
6542
4
            let inst = cranelift_assembler_x64::inst::movddup_a::new(xmm1.clone(), xmm_m64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
6543
4
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
6544
6545
            // Return a type ISLE can work with.
6546
4
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
6547
4
            AssemblerOutputs::RetXmm { inst, xmm }
6548
4
        }
6549
124
        fn x64_vmovddup_a_raw(&mut self, xmm_m64: &XmmMem64) -> AssemblerOutputs {
6550
            // Convert ISLE types to assembler types.
6551
124
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
6552
124
            let xmm_m64 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
6553
6554
            // Build the instruction.
6555
124
            let inst = cranelift_assembler_x64::inst::vmovddup_a::new(xmm1.clone(), xmm_m64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
6556
124
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
6557
6558
            // Return a type ISLE can work with.
6559
124
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
6560
124
            AssemblerOutputs::RetXmm { inst, xmm }
6561
124
        }
6562
0
        fn x64_pblendw_rmi_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned128, 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:131
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:131
6566
0
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
6570
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
6574
0
            AssemblerOutputs::RetXmm { inst, xmm }
6575
0
        }
6576
6.71k
        fn x64_pblendvb_rm_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned128, xmm0: Xmm) -> AssemblerOutputs {
6577
            // Convert ISLE types to assembler types.
6578
6.71k
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
6579
6.71k
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
6580
6.71k
            let xmm0 = cranelift_assembler_x64::Fixed(xmm0); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
6581
6582
            // Build the instruction.
6583
6.71k
            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:144
6584
6.71k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
6585
6586
            // Return a type ISLE can work with.
6587
6.71k
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
6588
6.71k
            AssemblerOutputs::RetXmm { inst, xmm }
6589
6.71k
        }
6590
2
        fn x64_blendvps_rm0_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned128, xmm0: Xmm) -> AssemblerOutputs {
6591
            // Convert ISLE types to assembler types.
6592
2
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
6593
2
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
6594
2
            let xmm0 = cranelift_assembler_x64::Fixed(xmm0); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
6595
6596
            // Build the instruction.
6597
2
            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:144
6598
2
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
6599
6600
            // Return a type ISLE can work with.
6601
2
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
6602
2
            AssemblerOutputs::RetXmm { inst, xmm }
6603
2
        }
6604
24
        fn x64_blendvpd_rm0_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned128, xmm0: Xmm) -> AssemblerOutputs {
6605
            // Convert ISLE types to assembler types.
6606
24
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
6607
24
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
6608
24
            let xmm0 = cranelift_assembler_x64::Fixed(xmm0); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
6609
6610
            // Build the instruction.
6611
24
            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:144
6612
24
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
6613
6614
            // Return a type ISLE can work with.
6615
24
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
6616
24
            AssemblerOutputs::RetXmm { inst, xmm }
6617
24
        }
6618
36
        fn x64_vpblendw_rvmi_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem128, imm8: u8) -> AssemblerOutputs {
6619
            // Convert ISLE types to assembler types.
6620
36
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
6621
36
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
6622
36
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
6623
36
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
6624
6625
            // Build the instruction.
6626
36
            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:144
6627
36
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
6628
6629
            // Return a type ISLE can work with.
6630
36
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
6631
36
            AssemblerOutputs::RetXmm { inst, xmm }
6632
36
        }
6633
214k
        fn x64_vpblendvb_rvmr_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem128, xmm3: Xmm) -> AssemblerOutputs {
6634
            // Convert ISLE types to assembler types.
6635
214k
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
6636
214k
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
6637
214k
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
6638
214k
            let xmm3 = cranelift_assembler_x64::Xmm::new(xmm3); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
6639
6640
            // Build the instruction.
6641
214k
            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:144
6642
214k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
6643
6644
            // Return a type ISLE can work with.
6645
214k
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
6646
214k
            AssemblerOutputs::RetXmm { inst, xmm }
6647
214k
        }
6648
11
        fn x64_vblendvps_rvmr_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem128, xmm3: Xmm) -> AssemblerOutputs {
6649
            // Convert ISLE types to assembler types.
6650
11
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
6651
11
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
6652
11
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
6653
11
            let xmm3 = cranelift_assembler_x64::Xmm::new(xmm3); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
6654
6655
            // Build the instruction.
6656
11
            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:144
6657
11
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
6658
6659
            // Return a type ISLE can work with.
6660
11
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
6661
11
            AssemblerOutputs::RetXmm { inst, xmm }
6662
11
        }
6663
1.02k
        fn x64_vblendvpd_rvmr_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem128, xmm3: Xmm) -> AssemblerOutputs {
6664
            // Convert ISLE types to assembler types.
6665
1.02k
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
6666
1.02k
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
6667
1.02k
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
6668
1.02k
            let xmm3 = cranelift_assembler_x64::Xmm::new(xmm3); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
6669
6670
            // Build the instruction.
6671
1.02k
            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:144
6672
1.02k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
6673
6674
            // Return a type ISLE can work with.
6675
1.02k
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
6676
1.02k
            AssemblerOutputs::RetXmm { inst, xmm }
6677
1.02k
        }
6678
0
        fn x64_shufpd_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned128, 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:131
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:131
6682
0
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
6686
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
6690
0
            AssemblerOutputs::RetXmm { inst, xmm }
6691
0
        }
6692
0
        fn x64_vshufpd_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem128, 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:131
6695
0
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:131
6697
0
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
6701
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
6705
0
            AssemblerOutputs::RetXmm { inst, xmm }
6706
0
        }
6707
3.34k
        fn x64_shufps_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned128, imm8: u8) -> AssemblerOutputs {
6708
            // Convert ISLE types to assembler types.
6709
3.34k
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
6710
3.34k
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
6711
3.34k
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
6712
6713
            // Build the instruction.
6714
3.34k
            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:144
6715
3.34k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
6716
6717
            // Return a type ISLE can work with.
6718
3.34k
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
6719
3.34k
            AssemblerOutputs::RetXmm { inst, xmm }
6720
3.34k
        }
6721
6.40k
        fn x64_vshufps_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem128, imm8: u8) -> AssemblerOutputs {
6722
            // Convert ISLE types to assembler types.
6723
6.40k
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
6724
6.40k
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
6725
6.40k
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
6726
6.40k
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
6727
6728
            // Build the instruction.
6729
6.40k
            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:144
6730
6.40k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
6731
6732
            // Return a type ISLE can work with.
6733
6.40k
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
6734
6.40k
            AssemblerOutputs::RetXmm { inst, xmm }
6735
6.40k
        }
6736
573
        fn x64_pshufb_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned128) -> AssemblerOutputs {
6737
            // Convert ISLE types to assembler types.
6738
573
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
6739
573
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
6740
6741
            // Build the instruction.
6742
573
            let inst = cranelift_assembler_x64::inst::pshufb_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
6743
573
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
6744
6745
            // Return a type ISLE can work with.
6746
573
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
6747
573
            AssemblerOutputs::RetXmm { inst, xmm }
6748
573
        }
6749
7.54k
        fn x64_pshufd_a_raw(&mut self, xmm_m128: &XmmMemAligned128, imm8: u8) -> AssemblerOutputs {
6750
            // Convert ISLE types to assembler types.
6751
7.54k
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
6752
7.54k
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
6753
7.54k
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
6754
6755
            // Build the instruction.
6756
7.54k
            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:144
6757
7.54k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
6758
6759
            // Return a type ISLE can work with.
6760
7.54k
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
6761
7.54k
            AssemblerOutputs::RetXmm { inst, xmm }
6762
7.54k
        }
6763
289
        fn x64_pshuflw_a_raw(&mut self, xmm_m128: &XmmMemAligned128, imm8: u8) -> AssemblerOutputs {
6764
            // Convert ISLE types to assembler types.
6765
289
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
6766
289
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
6767
289
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
6768
6769
            // Build the instruction.
6770
289
            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:144
6771
289
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
6772
6773
            // Return a type ISLE can work with.
6774
289
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
6775
289
            AssemblerOutputs::RetXmm { inst, xmm }
6776
289
        }
6777
162
        fn x64_pshufhw_a_raw(&mut self, xmm_m128: &XmmMemAligned128, imm8: u8) -> AssemblerOutputs {
6778
            // Convert ISLE types to assembler types.
6779
162
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
6780
162
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
6781
162
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
6782
6783
            // Build the instruction.
6784
162
            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:144
6785
162
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
6786
6787
            // Return a type ISLE can work with.
6788
162
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
6789
162
            AssemblerOutputs::RetXmm { inst, xmm }
6790
162
        }
6791
4.57k
        fn x64_vpshufb_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem128) -> AssemblerOutputs {
6792
            // Convert ISLE types to assembler types.
6793
4.57k
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
6794
4.57k
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
6795
4.57k
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
6796
6797
            // Build the instruction.
6798
4.57k
            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:144
6799
4.57k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
6800
6801
            // Return a type ISLE can work with.
6802
4.57k
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
6803
4.57k
            AssemblerOutputs::RetXmm { inst, xmm }
6804
4.57k
        }
6805
13.7k
        fn x64_vpshufd_a_raw(&mut self, xmm_m128: &XmmMem128, imm8: u8) -> AssemblerOutputs {
6806
            // Convert ISLE types to assembler types.
6807
13.7k
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
6808
13.7k
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
6809
13.7k
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
6810
6811
            // Build the instruction.
6812
13.7k
            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:144
6813
13.7k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
6814
6815
            // Return a type ISLE can work with.
6816
13.7k
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
6817
13.7k
            AssemblerOutputs::RetXmm { inst, xmm }
6818
13.7k
        }
6819
169
        fn x64_vpshuflw_a_raw(&mut self, xmm_m128: &XmmMem128, imm8: u8) -> AssemblerOutputs {
6820
            // Convert ISLE types to assembler types.
6821
169
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
6822
169
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
6823
169
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
6824
6825
            // Build the instruction.
6826
169
            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:144
6827
169
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
6828
6829
            // Return a type ISLE can work with.
6830
169
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
6831
169
            AssemblerOutputs::RetXmm { inst, xmm }
6832
169
        }
6833
102
        fn x64_vpshufhw_a_raw(&mut self, xmm_m128: &XmmMem128, imm8: u8) -> AssemblerOutputs {
6834
            // Convert ISLE types to assembler types.
6835
102
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
6836
102
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
6837
102
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
6838
6839
            // Build the instruction.
6840
102
            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:144
6841
102
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
6842
6843
            // Return a type ISLE can work with.
6844
102
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
6845
102
            AssemblerOutputs::RetXmm { inst, xmm }
6846
102
        }
6847
3.61k
        fn x64_vbroadcastss_a_m_raw(&mut self, m32: &SyntheticAmode) -> AssemblerOutputs {
6848
            // Convert ISLE types to assembler types.
6849
3.61k
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
6850
3.61k
            let m32 = self.convert_amode_to_assembler_amode(m32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
6851
6852
            // Build the instruction.
6853
3.61k
            let inst = cranelift_assembler_x64::inst::vbroadcastss_a_m::new(xmm1.clone(), m32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
6854
3.61k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
6855
6856
            // Return a type ISLE can work with.
6857
3.61k
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
6858
3.61k
            AssemblerOutputs::RetXmm { inst, xmm }
6859
3.61k
        }
6860
289
        fn x64_vbroadcastss_a_r_raw(&mut self, xmm2: Xmm) -> AssemblerOutputs {
6861
            // Convert ISLE types to assembler types.
6862
289
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
6863
289
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
6864
6865
            // Build the instruction.
6866
289
            let inst = cranelift_assembler_x64::inst::vbroadcastss_a_r::new(xmm1.clone(), xmm2.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
6867
289
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
6868
6869
            // Return a type ISLE can work with.
6870
289
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
6871
289
            AssemblerOutputs::RetXmm { inst, xmm }
6872
289
        }
6873
827
        fn x64_vpbroadcastb_a_raw(&mut self, xmm_m8: &XmmMem8) -> AssemblerOutputs {
6874
            // Convert ISLE types to assembler types.
6875
827
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
6876
827
            let xmm_m8 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
6877
6878
            // Build the instruction.
6879
827
            let inst = cranelift_assembler_x64::inst::vpbroadcastb_a::new(xmm1.clone(), xmm_m8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
6880
827
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
6881
6882
            // Return a type ISLE can work with.
6883
827
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
6884
827
            AssemblerOutputs::RetXmm { inst, xmm }
6885
827
        }
6886
1.22k
        fn x64_vpbroadcastw_a_raw(&mut self, xmm_m16: &XmmMem16) -> AssemblerOutputs {
6887
            // Convert ISLE types to assembler types.
6888
1.22k
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
6889
1.22k
            let xmm_m16 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
6890
6891
            // Build the instruction.
6892
1.22k
            let inst = cranelift_assembler_x64::inst::vpbroadcastw_a::new(xmm1.clone(), xmm_m16.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
6893
1.22k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
6894
6895
            // Return a type ISLE can work with.
6896
1.22k
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
6897
1.22k
            AssemblerOutputs::RetXmm { inst, xmm }
6898
1.22k
        }
6899
1.14k
        fn x64_vpbroadcastd_a_raw(&mut self, xmm_m32: &XmmMem32) -> AssemblerOutputs {
6900
            // Convert ISLE types to assembler types.
6901
1.14k
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
6902
1.14k
            let xmm_m32 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
6903
6904
            // Build the instruction.
6905
1.14k
            let inst = cranelift_assembler_x64::inst::vpbroadcastd_a::new(xmm1.clone(), xmm_m32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
6906
1.14k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
6907
6908
            // Return a type ISLE can work with.
6909
1.14k
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
6910
1.14k
            AssemblerOutputs::RetXmm { inst, xmm }
6911
1.14k
        }
6912
0
        fn x64_vpbroadcastq_a_raw(&mut self, xmm_m64: &XmmMem64) -> 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:131
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:131
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:144
6919
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
6923
0
            AssemblerOutputs::RetXmm { inst, xmm }
6924
0
        }
6925
4
        fn x64_vpermi2b_a_raw(&mut self, xmm1: Xmm, xmm2: Xmm, xmm_m128: &XmmMem128) -> AssemblerOutputs {
6926
            // Convert ISLE types to assembler types.
6927
4
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
6928
4
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
6929
4
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
6930
6931
            // Build the instruction.
6932
4
            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:144
6933
4
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
6934
6935
            // Return a type ISLE can work with.
6936
4
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
6937
4
            AssemblerOutputs::RetXmm { inst, xmm }
6938
4
        }
6939
0
        fn x64_maxss_a_raw(&mut self, xmm1: Xmm, xmm_m32: &XmmMem32) -> 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:131
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:131
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:144
6946
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
6950
0
            AssemblerOutputs::RetXmm { inst, xmm }
6951
0
        }
6952
0
        fn x64_maxsd_a_raw(&mut self, xmm1: Xmm, xmm_m64: &XmmMem64) -> 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:131
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:131
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:144
6959
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
6963
0
            AssemblerOutputs::RetXmm { inst, xmm }
6964
0
        }
6965
170
        fn x64_maxps_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned128) -> AssemblerOutputs {
6966
            // Convert ISLE types to assembler types.
6967
170
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
6968
170
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
6969
6970
            // Build the instruction.
6971
170
            let inst = cranelift_assembler_x64::inst::maxps_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
6972
170
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
6973
6974
            // Return a type ISLE can work with.
6975
170
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
6976
170
            AssemblerOutputs::RetXmm { inst, xmm }
6977
170
        }
6978
191
        fn x64_maxpd_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned128) -> AssemblerOutputs {
6979
            // Convert ISLE types to assembler types.
6980
191
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
6981
191
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
6982
6983
            // Build the instruction.
6984
191
            let inst = cranelift_assembler_x64::inst::maxpd_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
6985
191
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
6986
6987
            // Return a type ISLE can work with.
6988
191
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
6989
191
            AssemblerOutputs::RetXmm { inst, xmm }
6990
191
        }
6991
0
        fn x64_vmaxss_b_raw(&mut self, xmm2: Xmm, xmm_m32: &XmmMem32) -> 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:131
6994
0
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:131
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:144
6999
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
7003
0
            AssemblerOutputs::RetXmm { inst, xmm }
7004
0
        }
7005
0
        fn x64_vmaxsd_b_raw(&mut self, xmm2: Xmm, xmm_m64: &XmmMem64) -> 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:131
7008
0
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:131
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:144
7013
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
7017
0
            AssemblerOutputs::RetXmm { inst, xmm }
7018
0
        }
7019
960
        fn x64_vmaxps_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem128) -> AssemblerOutputs {
7020
            // Convert ISLE types to assembler types.
7021
960
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
7022
960
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
7023
960
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
7024
7025
            // Build the instruction.
7026
960
            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:144
7027
960
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
7028
7029
            // Return a type ISLE can work with.
7030
960
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
7031
960
            AssemblerOutputs::RetXmm { inst, xmm }
7032
960
        }
7033
1.57k
        fn x64_vmaxpd_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem128) -> AssemblerOutputs {
7034
            // Convert ISLE types to assembler types.
7035
1.57k
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
7036
1.57k
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
7037
1.57k
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
7038
7039
            // Build the instruction.
7040
1.57k
            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:144
7041
1.57k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
7042
7043
            // Return a type ISLE can work with.
7044
1.57k
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
7045
1.57k
            AssemblerOutputs::RetXmm { inst, xmm }
7046
1.57k
        }
7047
3
        fn x64_pmaxsb_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned128) -> AssemblerOutputs {
7048
            // Convert ISLE types to assembler types.
7049
3
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
7050
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:131
7051
7052
            // Build the instruction.
7053
3
            let inst = cranelift_assembler_x64::inst::pmaxsb_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
7054
3
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
7055
7056
            // Return a type ISLE can work with.
7057
3
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
7058
3
            AssemblerOutputs::RetXmm { inst, xmm }
7059
3
        }
7060
137
        fn x64_pmaxsw_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned128) -> AssemblerOutputs {
7061
            // Convert ISLE types to assembler types.
7062
137
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
7063
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:131
7064
7065
            // Build the instruction.
7066
137
            let inst = cranelift_assembler_x64::inst::pmaxsw_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
7067
137
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
7068
7069
            // Return a type ISLE can work with.
7070
137
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
7071
137
            AssemblerOutputs::RetXmm { inst, xmm }
7072
137
        }
7073
149
        fn x64_pmaxsd_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned128) -> AssemblerOutputs {
7074
            // Convert ISLE types to assembler types.
7075
149
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
7076
149
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
7077
7078
            // Build the instruction.
7079
149
            let inst = cranelift_assembler_x64::inst::pmaxsd_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
7080
149
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
7081
7082
            // Return a type ISLE can work with.
7083
149
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
7084
149
            AssemblerOutputs::RetXmm { inst, xmm }
7085
149
        }
7086
13
        fn x64_pmaxub_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned128) -> AssemblerOutputs {
7087
            // Convert ISLE types to assembler types.
7088
13
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
7089
13
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
7090
7091
            // Build the instruction.
7092
13
            let inst = cranelift_assembler_x64::inst::pmaxub_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
7093
13
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
7094
7095
            // Return a type ISLE can work with.
7096
13
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
7097
13
            AssemblerOutputs::RetXmm { inst, xmm }
7098
13
        }
7099
37
        fn x64_pmaxuw_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned128) -> AssemblerOutputs {
7100
            // Convert ISLE types to assembler types.
7101
37
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
7102
37
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
7103
7104
            // Build the instruction.
7105
37
            let inst = cranelift_assembler_x64::inst::pmaxuw_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
7106
37
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
7107
7108
            // Return a type ISLE can work with.
7109
37
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
7110
37
            AssemblerOutputs::RetXmm { inst, xmm }
7111
37
        }
7112
19
        fn x64_pmaxud_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned128) -> AssemblerOutputs {
7113
            // Convert ISLE types to assembler types.
7114
19
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
7115
19
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
7116
7117
            // Build the instruction.
7118
19
            let inst = cranelift_assembler_x64::inst::pmaxud_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
7119
19
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
7120
7121
            // Return a type ISLE can work with.
7122
19
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
7123
19
            AssemblerOutputs::RetXmm { inst, xmm }
7124
19
        }
7125
195
        fn x64_vpmaxsb_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem128) -> AssemblerOutputs {
7126
            // Convert ISLE types to assembler types.
7127
195
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
7128
195
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
7129
195
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
7130
7131
            // Build the instruction.
7132
195
            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:144
7133
195
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
7134
7135
            // Return a type ISLE can work with.
7136
195
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
7137
195
            AssemblerOutputs::RetXmm { inst, xmm }
7138
195
        }
7139
147
        fn x64_vpmaxsw_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem128) -> AssemblerOutputs {
7140
            // Convert ISLE types to assembler types.
7141
147
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
7142
147
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
7143
147
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
7144
7145
            // Build the instruction.
7146
147
            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:144
7147
147
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
7148
7149
            // Return a type ISLE can work with.
7150
147
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
7151
147
            AssemblerOutputs::RetXmm { inst, xmm }
7152
147
        }
7153
912
        fn x64_vpmaxsd_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem128) -> AssemblerOutputs {
7154
            // Convert ISLE types to assembler types.
7155
912
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
7156
912
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
7157
912
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
7158
7159
            // Build the instruction.
7160
912
            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:144
7161
912
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
7162
7163
            // Return a type ISLE can work with.
7164
912
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
7165
912
            AssemblerOutputs::RetXmm { inst, xmm }
7166
912
        }
7167
195
        fn x64_vpmaxub_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem128) -> AssemblerOutputs {
7168
            // Convert ISLE types to assembler types.
7169
195
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
7170
195
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
7171
195
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
7172
7173
            // Build the instruction.
7174
195
            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:144
7175
195
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
7176
7177
            // Return a type ISLE can work with.
7178
195
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
7179
195
            AssemblerOutputs::RetXmm { inst, xmm }
7180
195
        }
7181
202
        fn x64_vpmaxuw_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem128) -> AssemblerOutputs {
7182
            // Convert ISLE types to assembler types.
7183
202
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
7184
202
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
7185
202
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
7186
7187
            // Build the instruction.
7188
202
            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:144
7189
202
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
7190
7191
            // Return a type ISLE can work with.
7192
202
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
7193
202
            AssemblerOutputs::RetXmm { inst, xmm }
7194
202
        }
7195
134
        fn x64_vpmaxud_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem128) -> AssemblerOutputs {
7196
            // Convert ISLE types to assembler types.
7197
134
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
7198
134
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
7199
134
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
7200
7201
            // Build the instruction.
7202
134
            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:144
7203
134
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
7204
7205
            // Return a type ISLE can work with.
7206
134
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
7207
134
            AssemblerOutputs::RetXmm { inst, xmm }
7208
134
        }
7209
1
        fn x64_minss_a_raw(&mut self, xmm1: Xmm, xmm_m32: &XmmMem32) -> AssemblerOutputs {
7210
            // Convert ISLE types to assembler types.
7211
1
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
7212
1
            let xmm_m32 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
7213
7214
            // Build the instruction.
7215
1
            let inst = cranelift_assembler_x64::inst::minss_a::new(xmm1.clone(), xmm_m32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
7216
1
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
7217
7218
            // Return a type ISLE can work with.
7219
1
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
7220
1
            AssemblerOutputs::RetXmm { inst, xmm }
7221
1
        }
7222
1
        fn x64_minsd_a_raw(&mut self, xmm1: Xmm, xmm_m64: &XmmMem64) -> AssemblerOutputs {
7223
            // Convert ISLE types to assembler types.
7224
1
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
7225
1
            let xmm_m64 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
7226
7227
            // Build the instruction.
7228
1
            let inst = cranelift_assembler_x64::inst::minsd_a::new(xmm1.clone(), xmm_m64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
7229
1
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
7230
7231
            // Return a type ISLE can work with.
7232
1
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
7233
1
            AssemblerOutputs::RetXmm { inst, xmm }
7234
1
        }
7235
39
        fn x64_minps_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned128) -> AssemblerOutputs {
7236
            // Convert ISLE types to assembler types.
7237
39
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
7238
39
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
7239
7240
            // Build the instruction.
7241
39
            let inst = cranelift_assembler_x64::inst::minps_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
7242
39
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
7243
7244
            // Return a type ISLE can work with.
7245
39
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
7246
39
            AssemblerOutputs::RetXmm { inst, xmm }
7247
39
        }
7248
205
        fn x64_minpd_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned128) -> AssemblerOutputs {
7249
            // Convert ISLE types to assembler types.
7250
205
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
7251
205
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
7252
7253
            // Build the instruction.
7254
205
            let inst = cranelift_assembler_x64::inst::minpd_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
7255
205
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
7256
7257
            // Return a type ISLE can work with.
7258
205
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
7259
205
            AssemblerOutputs::RetXmm { inst, xmm }
7260
205
        }
7261
7
        fn x64_vminss_b_raw(&mut self, xmm2: Xmm, xmm_m32: &XmmMem32) -> AssemblerOutputs {
7262
            // Convert ISLE types to assembler types.
7263
7
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
7264
7
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
7265
7
            let xmm_m32 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
7266
7267
            // Build the instruction.
7268
7
            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:144
7269
7
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
7270
7271
            // Return a type ISLE can work with.
7272
7
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
7273
7
            AssemblerOutputs::RetXmm { inst, xmm }
7274
7
        }
7275
7
        fn x64_vminsd_b_raw(&mut self, xmm2: Xmm, xmm_m64: &XmmMem64) -> AssemblerOutputs {
7276
            // Convert ISLE types to assembler types.
7277
7
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
7278
7
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
7279
7
            let xmm_m64 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
7280
7281
            // Build the instruction.
7282
7
            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:144
7283
7
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
7284
7285
            // Return a type ISLE can work with.
7286
7
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
7287
7
            AssemblerOutputs::RetXmm { inst, xmm }
7288
7
        }
7289
191
        fn x64_vminps_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem128) -> AssemblerOutputs {
7290
            // Convert ISLE types to assembler types.
7291
191
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
7292
191
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
7293
191
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
7294
7295
            // Build the instruction.
7296
191
            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:144
7297
191
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
7298
7299
            // Return a type ISLE can work with.
7300
191
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
7301
191
            AssemblerOutputs::RetXmm { inst, xmm }
7302
191
        }
7303
2.81k
        fn x64_vminpd_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem128) -> AssemblerOutputs {
7304
            // Convert ISLE types to assembler types.
7305
2.81k
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
7306
2.81k
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
7307
2.81k
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
7308
7309
            // Build the instruction.
7310
2.81k
            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:144
7311
2.81k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
7312
7313
            // Return a type ISLE can work with.
7314
2.81k
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
7315
2.81k
            AssemblerOutputs::RetXmm { inst, xmm }
7316
2.81k
        }
7317
1
        fn x64_pminsb_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned128) -> AssemblerOutputs {
7318
            // Convert ISLE types to assembler types.
7319
1
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
7320
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:131
7321
7322
            // Build the instruction.
7323
1
            let inst = cranelift_assembler_x64::inst::pminsb_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
7324
1
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
7325
7326
            // Return a type ISLE can work with.
7327
1
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
7328
1
            AssemblerOutputs::RetXmm { inst, xmm }
7329
1
        }
7330
74
        fn x64_pminsw_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned128) -> AssemblerOutputs {
7331
            // Convert ISLE types to assembler types.
7332
74
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
7333
74
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
7334
7335
            // Build the instruction.
7336
74
            let inst = cranelift_assembler_x64::inst::pminsw_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
7337
74
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
7338
7339
            // Return a type ISLE can work with.
7340
74
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
7341
74
            AssemblerOutputs::RetXmm { inst, xmm }
7342
74
        }
7343
40
        fn x64_pminsd_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned128) -> AssemblerOutputs {
7344
            // Convert ISLE types to assembler types.
7345
40
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
7346
40
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
7347
7348
            // Build the instruction.
7349
40
            let inst = cranelift_assembler_x64::inst::pminsd_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
7350
40
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
7351
7352
            // Return a type ISLE can work with.
7353
40
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
7354
40
            AssemblerOutputs::RetXmm { inst, xmm }
7355
40
        }
7356
194
        fn x64_pminub_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned128) -> AssemblerOutputs {
7357
            // Convert ISLE types to assembler types.
7358
194
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
7359
194
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
7360
7361
            // Build the instruction.
7362
194
            let inst = cranelift_assembler_x64::inst::pminub_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
7363
194
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
7364
7365
            // Return a type ISLE can work with.
7366
194
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
7367
194
            AssemblerOutputs::RetXmm { inst, xmm }
7368
194
        }
7369
39
        fn x64_pminuw_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned128) -> AssemblerOutputs {
7370
            // Convert ISLE types to assembler types.
7371
39
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
7372
39
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
7373
7374
            // Build the instruction.
7375
39
            let inst = cranelift_assembler_x64::inst::pminuw_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
7376
39
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
7377
7378
            // Return a type ISLE can work with.
7379
39
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
7380
39
            AssemblerOutputs::RetXmm { inst, xmm }
7381
39
        }
7382
22
        fn x64_pminud_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned128) -> AssemblerOutputs {
7383
            // Convert ISLE types to assembler types.
7384
22
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
7385
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:131
7386
7387
            // Build the instruction.
7388
22
            let inst = cranelift_assembler_x64::inst::pminud_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
7389
22
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
7390
7391
            // Return a type ISLE can work with.
7392
22
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
7393
22
            AssemblerOutputs::RetXmm { inst, xmm }
7394
22
        }
7395
171
        fn x64_vpminsb_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem128) -> AssemblerOutputs {
7396
            // Convert ISLE types to assembler types.
7397
171
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
7398
171
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
7399
171
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
7400
7401
            // Build the instruction.
7402
171
            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:144
7403
171
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
7404
7405
            // Return a type ISLE can work with.
7406
171
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
7407
171
            AssemblerOutputs::RetXmm { inst, xmm }
7408
171
        }
7409
140
        fn x64_vpminsw_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem128) -> AssemblerOutputs {
7410
            // Convert ISLE types to assembler types.
7411
140
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
7412
140
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
7413
140
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
7414
7415
            // Build the instruction.
7416
140
            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:144
7417
140
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
7418
7419
            // Return a type ISLE can work with.
7420
140
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
7421
140
            AssemblerOutputs::RetXmm { inst, xmm }
7422
140
        }
7423
98
        fn x64_vpminsd_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem128) -> AssemblerOutputs {
7424
            // Convert ISLE types to assembler types.
7425
98
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
7426
98
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
7427
98
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
7428
7429
            // Build the instruction.
7430
98
            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:144
7431
98
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
7432
7433
            // Return a type ISLE can work with.
7434
98
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
7435
98
            AssemblerOutputs::RetXmm { inst, xmm }
7436
98
        }
7437
206
        fn x64_vpminub_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem128) -> AssemblerOutputs {
7438
            // Convert ISLE types to assembler types.
7439
206
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
7440
206
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
7441
206
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
7442
7443
            // Build the instruction.
7444
206
            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:144
7445
206
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
7446
7447
            // Return a type ISLE can work with.
7448
206
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
7449
206
            AssemblerOutputs::RetXmm { inst, xmm }
7450
206
        }
7451
122
        fn x64_vpminuw_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem128) -> AssemblerOutputs {
7452
            // Convert ISLE types to assembler types.
7453
122
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
7454
122
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
7455
122
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
7456
7457
            // Build the instruction.
7458
122
            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:144
7459
122
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
7460
7461
            // Return a type ISLE can work with.
7462
122
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
7463
122
            AssemblerOutputs::RetXmm { inst, xmm }
7464
122
        }
7465
165
        fn x64_vpminud_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem128) -> AssemblerOutputs {
7466
            // Convert ISLE types to assembler types.
7467
165
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
7468
165
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
7469
165
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
7470
7471
            // Build the instruction.
7472
165
            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:144
7473
165
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
7474
7475
            // Return a type ISLE can work with.
7476
165
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
7477
165
            AssemblerOutputs::RetXmm { inst, xmm }
7478
165
        }
7479
2.65k
        fn x64_mfence_zo_raw(&mut self, ) -> AssemblerOutputs {
7480
            // Convert ISLE types to assembler types.
7481
7482
            // Build the instruction.
7483
2.65k
            let inst = cranelift_assembler_x64::inst::mfence_zo::new().into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
7484
2.65k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
7485
7486
            // Return a type ISLE can work with.
7487
2.65k
            AssemblerOutputs::SideEffect { inst }
7488
2.65k
        }
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:144
7494
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:144
7504
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:144
7514
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
7515
7516
            // Return a type ISLE can work with.
7517
0
            AssemblerOutputs::SideEffect { inst }
7518
0
        }
7519
1.66M
        fn x64_ud2_zo_raw(&mut self, trap: &TrapCode) -> AssemblerOutputs {
7520
            // Convert ISLE types to assembler types.
7521
7522
            // Build the instruction.
7523
1.66M
            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:144
7524
1.66M
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
7525
7526
            // Return a type ISLE can work with.
7527
1.66M
            AssemblerOutputs::SideEffect { inst }
7528
1.66M
        }
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:144
7534
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:144
7544
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:131
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:144
7555
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:131
7563
0
            let m16 = self.convert_amode_to_assembler_amode(m16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
7567
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
7571
0
            AssemblerOutputs::RetGpr { inst, gpr }
7572
0
        }
7573
613k
        fn x64_leal_rm_raw(&mut self, m32: &SyntheticAmode) -> AssemblerOutputs {
7574
            // Convert ISLE types to assembler types.
7575
613k
            let r32 = cranelift_assembler_x64::Gpr::new(self.temp_writable_gpr()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
7576
613k
            let m32 = self.convert_amode_to_assembler_amode(m32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
7577
7578
            // Build the instruction.
7579
613k
            let inst = cranelift_assembler_x64::inst::leal_rm::new(r32.clone(), m32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
7580
613k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
7581
7582
            // Return a type ISLE can work with.
7583
613k
            let gpr = r32.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
7584
613k
            AssemblerOutputs::RetGpr { inst, gpr }
7585
613k
        }
7586
3.63M
        fn x64_leaq_rm_raw(&mut self, m64: &SyntheticAmode) -> AssemblerOutputs {
7587
            // Convert ISLE types to assembler types.
7588
3.63M
            let r64 = cranelift_assembler_x64::Gpr::new(self.temp_writable_gpr()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
7589
3.63M
            let m64 = self.convert_amode_to_assembler_amode(m64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
7590
7591
            // Build the instruction.
7592
3.63M
            let inst = cranelift_assembler_x64::inst::leaq_rm::new(r64.clone(), m64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
7593
3.63M
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
7594
7595
            // Return a type ISLE can work with.
7596
3.63M
            let gpr = r64.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
7597
3.63M
            AssemblerOutputs::RetGpr { inst, gpr }
7598
3.63M
        }
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:131
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:144
7605
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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: &GprMem64) -> 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:131
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:144
7616
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
7617
7618
            // Return a type ISLE can work with.
7619
0
            AssemblerOutputs::SideEffect { inst }
7620
0
        }
7621
144k
        fn x64_movb_mr_raw(&mut self, rm8: &GprMem8, r8: Gpr) -> AssemblerOutputs {
7622
            // Convert ISLE types to assembler types.
7623
144k
            let rm8 = self.convert_gpr_mem_to_assembler_write_gpr_mem(rm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
7624
144k
            let r8 = cranelift_assembler_x64::Gpr::new(r8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
7625
7626
            // Build the instruction.
7627
144k
            let inst = cranelift_assembler_x64::inst::movb_mr::new(rm8.clone(), r8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
7628
144k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
7629
7630
            // Return a type ISLE can work with.
7631
144k
            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:184
7634
0
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
7635
                }
7636
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
7637
144k
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
7638
                }
7639
            }
7640
144k
        }
7641
81.6k
        fn x64_movw_mr_raw(&mut self, rm16: &GprMem16, r16: Gpr) -> AssemblerOutputs {
7642
            // Convert ISLE types to assembler types.
7643
81.6k
            let rm16 = self.convert_gpr_mem_to_assembler_write_gpr_mem(rm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
7644
81.6k
            let r16 = cranelift_assembler_x64::Gpr::new(r16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
7645
7646
            // Build the instruction.
7647
81.6k
            let inst = cranelift_assembler_x64::inst::movw_mr::new(rm16.clone(), r16.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
7648
81.6k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
7649
7650
            // Return a type ISLE can work with.
7651
81.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:184
7654
0
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
7655
                }
7656
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
7657
81.6k
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
7658
                }
7659
            }
7660
81.6k
        }
7661
1.55M
        fn x64_movl_mr_raw(&mut self, rm32: &GprMem32, r32: Gpr) -> AssemblerOutputs {
7662
            // Convert ISLE types to assembler types.
7663
1.55M
            let rm32 = self.convert_gpr_mem_to_assembler_write_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
7664
1.55M
            let r32 = cranelift_assembler_x64::Gpr::new(r32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
7665
7666
            // Build the instruction.
7667
1.55M
            let inst = cranelift_assembler_x64::inst::movl_mr::new(rm32.clone(), r32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
7668
1.55M
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
7669
7670
            // Return a type ISLE can work with.
7671
1.55M
            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:184
7674
0
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
7675
                }
7676
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
7677
1.55M
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
7678
                }
7679
            }
7680
1.55M
        }
7681
5.88M
        fn x64_movq_mr_raw(&mut self, rm64: &GprMem64, r64: Gpr) -> AssemblerOutputs {
7682
            // Convert ISLE types to assembler types.
7683
5.88M
            let rm64 = self.convert_gpr_mem_to_assembler_write_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
7684
5.88M
            let r64 = cranelift_assembler_x64::Gpr::new(r64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
7685
7686
            // Build the instruction.
7687
5.88M
            let inst = cranelift_assembler_x64::inst::movq_mr::new(rm64.clone(), r64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
7688
5.88M
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
7689
7690
            // Return a type ISLE can work with.
7691
5.88M
            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:184
7694
0
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
7695
                }
7696
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
7697
5.88M
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
7698
                }
7699
            }
7700
5.88M
        }
7701
0
        fn x64_movb_rm_raw(&mut self, rm8: &GprMem8) -> 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:131
7704
0
            let rm8 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
7708
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
7712
0
            AssemblerOutputs::RetGpr { inst, gpr }
7713
0
        }
7714
0
        fn x64_movw_rm_raw(&mut self, rm16: &GprMem16) -> 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:131
7717
0
            let rm16 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
7721
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
7725
0
            AssemblerOutputs::RetGpr { inst, gpr }
7726
0
        }
7727
3.73M
        fn x64_movl_rm_raw(&mut self, rm32: &GprMem32) -> AssemblerOutputs {
7728
            // Convert ISLE types to assembler types.
7729
3.73M
            let r32 = cranelift_assembler_x64::Gpr::new(self.temp_writable_gpr()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
7730
3.73M
            let rm32 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
7731
7732
            // Build the instruction.
7733
3.73M
            let inst = cranelift_assembler_x64::inst::movl_rm::new(r32.clone(), rm32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
7734
3.73M
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
7735
7736
            // Return a type ISLE can work with.
7737
3.73M
            let gpr = r32.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
7738
3.73M
            AssemblerOutputs::RetGpr { inst, gpr }
7739
3.73M
        }
7740
13.0M
        fn x64_movq_rm_raw(&mut self, rm64: &GprMem64) -> AssemblerOutputs {
7741
            // Convert ISLE types to assembler types.
7742
13.0M
            let r64 = cranelift_assembler_x64::Gpr::new(self.temp_writable_gpr()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
7743
13.0M
            let rm64 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
7744
7745
            // Build the instruction.
7746
13.0M
            let inst = cranelift_assembler_x64::inst::movq_rm::new(r64.clone(), rm64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
7747
13.0M
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
7748
7749
            // Return a type ISLE can work with.
7750
13.0M
            let gpr = r64.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
7751
13.0M
            AssemblerOutputs::RetGpr { inst, gpr }
7752
13.0M
        }
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:131
7756
0
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
7760
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
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:131
7769
0
            let imm16 = cranelift_assembler_x64::Imm16::new(imm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
7773
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
7777
0
            AssemblerOutputs::RetGpr { inst, gpr }
7778
0
        }
7779
3.72M
        fn x64_movl_oi_raw(&mut self, imm32: u32) -> AssemblerOutputs {
7780
            // Convert ISLE types to assembler types.
7781
3.72M
            let r32 = cranelift_assembler_x64::Gpr::new(self.temp_writable_gpr()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
7782
3.72M
            let imm32 = cranelift_assembler_x64::Imm32::new(imm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
7783
7784
            // Build the instruction.
7785
3.72M
            let inst = cranelift_assembler_x64::inst::movl_oi::new(r32.clone(), imm32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
7786
3.72M
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
7787
7788
            // Return a type ISLE can work with.
7789
3.72M
            let gpr = r32.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
7790
3.72M
            AssemblerOutputs::RetGpr { inst, gpr }
7791
3.72M
        }
7792
972k
        fn x64_movabsq_oi_raw(&mut self, imm64: u64) -> AssemblerOutputs {
7793
            // Convert ISLE types to assembler types.
7794
972k
            let r64 = cranelift_assembler_x64::Gpr::new(self.temp_writable_gpr()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
7795
972k
            let imm64 = cranelift_assembler_x64::Imm64::new(imm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
7796
7797
            // Build the instruction.
7798
972k
            let inst = cranelift_assembler_x64::inst::movabsq_oi::new(r64.clone(), imm64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
7799
972k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
7800
7801
            // Return a type ISLE can work with.
7802
972k
            let gpr = r64.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
7803
972k
            AssemblerOutputs::RetGpr { inst, gpr }
7804
972k
        }
7805
20.2k
        fn x64_movb_mi_raw(&mut self, rm8: &GprMem8, imm8: u8) -> AssemblerOutputs {
7806
            // Convert ISLE types to assembler types.
7807
20.2k
            let rm8 = self.convert_gpr_mem_to_assembler_write_gpr_mem(rm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
7808
20.2k
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
7809
7810
            // Build the instruction.
7811
20.2k
            let inst = cranelift_assembler_x64::inst::movb_mi::new(rm8.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
7812
20.2k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
7813
7814
            // Return a type ISLE can work with.
7815
20.2k
            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:184
7818
0
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
7819
                }
7820
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
7821
20.2k
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
7822
                }
7823
            }
7824
20.2k
        }
7825
14.4k
        fn x64_movw_mi_raw(&mut self, rm16: &GprMem16, imm16: u16) -> AssemblerOutputs {
7826
            // Convert ISLE types to assembler types.
7827
14.4k
            let rm16 = self.convert_gpr_mem_to_assembler_write_gpr_mem(rm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
7828
14.4k
            let imm16 = cranelift_assembler_x64::Imm16::new(imm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
7829
7830
            // Build the instruction.
7831
14.4k
            let inst = cranelift_assembler_x64::inst::movw_mi::new(rm16.clone(), imm16.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
7832
14.4k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
7833
7834
            // Return a type ISLE can work with.
7835
14.4k
            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:184
7838
0
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
7839
                }
7840
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
7841
14.4k
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
7842
                }
7843
            }
7844
14.4k
        }
7845
717k
        fn x64_movl_mi_raw(&mut self, rm32: &GprMem32, imm32: u32) -> AssemblerOutputs {
7846
            // Convert ISLE types to assembler types.
7847
717k
            let rm32 = self.convert_gpr_mem_to_assembler_write_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
7848
717k
            let imm32 = cranelift_assembler_x64::Imm32::new(imm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
7849
7850
            // Build the instruction.
7851
717k
            let inst = cranelift_assembler_x64::inst::movl_mi::new(rm32.clone(), imm32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
7852
717k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
7853
7854
            // Return a type ISLE can work with.
7855
717k
            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:184
7858
0
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
7859
                }
7860
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
7861
717k
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
7862
                }
7863
            }
7864
717k
        }
7865
737k
        fn x64_movq_mi_sxl_raw(&mut self, rm64: &GprMem64, imm32: i32) -> AssemblerOutputs {
7866
            // Convert ISLE types to assembler types.
7867
737k
            let rm64 = self.convert_gpr_mem_to_assembler_write_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
7868
737k
            let imm32 = cranelift_assembler_x64::Simm32::new(imm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
7869
7870
            // Build the instruction.
7871
737k
            let inst = cranelift_assembler_x64::inst::movq_mi_sxl::new(rm64.clone(), imm32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
7872
737k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
7873
7874
            // Return a type ISLE can work with.
7875
737k
            match rm64 {
7876
58.8k
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
7877
58.8k
                    let gpr = reg.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
7878
58.8k
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
7879
                }
7880
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
7881
679k
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
7882
                }
7883
            }
7884
737k
        }
7885
0
        fn x64_movsbw_rm_raw(&mut self, rm8: &GprMem8) -> 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:131
7888
0
            let rm8 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
7892
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
7896
0
            AssemblerOutputs::RetGpr { inst, gpr }
7897
0
        }
7898
42.5k
        fn x64_movsbl_rm_raw(&mut self, rm8: &GprMem8) -> AssemblerOutputs {
7899
            // Convert ISLE types to assembler types.
7900
42.5k
            let r32 = cranelift_assembler_x64::Gpr::new(self.temp_writable_gpr()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
7901
42.5k
            let rm8 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
7902
7903
            // Build the instruction.
7904
42.5k
            let inst = cranelift_assembler_x64::inst::movsbl_rm::new(r32.clone(), rm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
7905
42.5k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
7906
7907
            // Return a type ISLE can work with.
7908
42.5k
            let gpr = r32.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
7909
42.5k
            AssemblerOutputs::RetGpr { inst, gpr }
7910
42.5k
        }
7911
135k
        fn x64_movsbq_rm_raw(&mut self, rm8: &GprMem8) -> AssemblerOutputs {
7912
            // Convert ISLE types to assembler types.
7913
135k
            let r64 = cranelift_assembler_x64::Gpr::new(self.temp_writable_gpr()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
7914
135k
            let rm8 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
7915
7916
            // Build the instruction.
7917
135k
            let inst = cranelift_assembler_x64::inst::movsbq_rm::new(r64.clone(), rm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
7918
135k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
7919
7920
            // Return a type ISLE can work with.
7921
135k
            let gpr = r64.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
7922
135k
            AssemblerOutputs::RetGpr { inst, gpr }
7923
135k
        }
7924
0
        fn x64_movsww_rm_raw(&mut self, rm16: &GprMem16) -> 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:131
7927
0
            let rm16 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
7931
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
7935
0
            AssemblerOutputs::RetGpr { inst, gpr }
7936
0
        }
7937
27.4k
        fn x64_movswl_rm_raw(&mut self, rm16: &GprMem16) -> AssemblerOutputs {
7938
            // Convert ISLE types to assembler types.
7939
27.4k
            let r32 = cranelift_assembler_x64::Gpr::new(self.temp_writable_gpr()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
7940
27.4k
            let rm16 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
7941
7942
            // Build the instruction.
7943
27.4k
            let inst = cranelift_assembler_x64::inst::movswl_rm::new(r32.clone(), rm16.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
7944
27.4k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
7945
7946
            // Return a type ISLE can work with.
7947
27.4k
            let gpr = r32.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
7948
27.4k
            AssemblerOutputs::RetGpr { inst, gpr }
7949
27.4k
        }
7950
124k
        fn x64_movswq_rm_raw(&mut self, rm16: &GprMem16) -> AssemblerOutputs {
7951
            // Convert ISLE types to assembler types.
7952
124k
            let r64 = cranelift_assembler_x64::Gpr::new(self.temp_writable_gpr()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
7953
124k
            let rm16 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
7954
7955
            // Build the instruction.
7956
124k
            let inst = cranelift_assembler_x64::inst::movswq_rm::new(r64.clone(), rm16.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
7957
124k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
7958
7959
            // Return a type ISLE can work with.
7960
124k
            let gpr = r64.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
7961
124k
            AssemblerOutputs::RetGpr { inst, gpr }
7962
124k
        }
7963
69.6k
        fn x64_movslq_rm_raw(&mut self, rm32: &GprMem32) -> AssemblerOutputs {
7964
            // Convert ISLE types to assembler types.
7965
69.6k
            let r64 = cranelift_assembler_x64::Gpr::new(self.temp_writable_gpr()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
7966
69.6k
            let rm32 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
7967
7968
            // Build the instruction.
7969
69.6k
            let inst = cranelift_assembler_x64::inst::movslq_rm::new(r64.clone(), rm32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
7970
69.6k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
7971
7972
            // Return a type ISLE can work with.
7973
69.6k
            let gpr = r64.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
7974
69.6k
            AssemblerOutputs::RetGpr { inst, gpr }
7975
69.6k
        }
7976
0
        fn x64_movzbw_rm_raw(&mut self, rm8: &GprMem8) -> 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:131
7979
0
            let rm8 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
7983
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
7987
0
            AssemblerOutputs::RetGpr { inst, gpr }
7988
0
        }
7989
369k
        fn x64_movzbl_rm_raw(&mut self, rm8: &GprMem8) -> AssemblerOutputs {
7990
            // Convert ISLE types to assembler types.
7991
369k
            let r32 = cranelift_assembler_x64::Gpr::new(self.temp_writable_gpr()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
7992
369k
            let rm8 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
7993
7994
            // Build the instruction.
7995
369k
            let inst = cranelift_assembler_x64::inst::movzbl_rm::new(r32.clone(), rm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
7996
369k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
7997
7998
            // Return a type ISLE can work with.
7999
369k
            let gpr = r32.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
8000
369k
            AssemblerOutputs::RetGpr { inst, gpr }
8001
369k
        }
8002
331k
        fn x64_movzbq_rm_raw(&mut self, rm8: &GprMem8) -> AssemblerOutputs {
8003
            // Convert ISLE types to assembler types.
8004
331k
            let r64 = cranelift_assembler_x64::Gpr::new(self.temp_writable_gpr()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
8005
331k
            let rm8 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
8006
8007
            // Build the instruction.
8008
331k
            let inst = cranelift_assembler_x64::inst::movzbq_rm::new(r64.clone(), rm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
8009
331k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
8010
8011
            // Return a type ISLE can work with.
8012
331k
            let gpr = r64.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
8013
331k
            AssemblerOutputs::RetGpr { inst, gpr }
8014
331k
        }
8015
0
        fn x64_movzww_rm_raw(&mut self, rm16: &GprMem16) -> 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:131
8018
0
            let rm16 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
8022
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
8026
0
            AssemblerOutputs::RetGpr { inst, gpr }
8027
0
        }
8028
9.52k
        fn x64_movzwl_rm_raw(&mut self, rm16: &GprMem16) -> AssemblerOutputs {
8029
            // Convert ISLE types to assembler types.
8030
9.52k
            let r32 = cranelift_assembler_x64::Gpr::new(self.temp_writable_gpr()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
8031
9.52k
            let rm16 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
8032
8033
            // Build the instruction.
8034
9.52k
            let inst = cranelift_assembler_x64::inst::movzwl_rm::new(r32.clone(), rm16.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
8035
9.52k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
8036
8037
            // Return a type ISLE can work with.
8038
9.52k
            let gpr = r32.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
8039
9.52k
            AssemblerOutputs::RetGpr { inst, gpr }
8040
9.52k
        }
8041
120k
        fn x64_movzwq_rm_raw(&mut self, rm16: &GprMem16) -> AssemblerOutputs {
8042
            // Convert ISLE types to assembler types.
8043
120k
            let r64 = cranelift_assembler_x64::Gpr::new(self.temp_writable_gpr()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
8044
120k
            let rm16 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
8045
8046
            // Build the instruction.
8047
120k
            let inst = cranelift_assembler_x64::inst::movzwq_rm::new(r64.clone(), rm16.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
8048
120k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
8049
8050
            // Return a type ISLE can work with.
8051
120k
            let gpr = r64.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
8052
120k
            AssemblerOutputs::RetGpr { inst, gpr }
8053
120k
        }
8054
23.4k
        fn x64_movd_a_raw(&mut self, rm32: &GprMem32) -> AssemblerOutputs {
8055
            // Convert ISLE types to assembler types.
8056
23.4k
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
8057
23.4k
            let rm32 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
8058
8059
            // Build the instruction.
8060
23.4k
            let inst = cranelift_assembler_x64::inst::movd_a::new(xmm1.clone(), rm32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
8061
23.4k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
8062
8063
            // Return a type ISLE can work with.
8064
23.4k
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
8065
23.4k
            AssemblerOutputs::RetXmm { inst, xmm }
8066
23.4k
        }
8067
26.5k
        fn x64_movq_a_raw(&mut self, rm64: &GprMem64) -> AssemblerOutputs {
8068
            // Convert ISLE types to assembler types.
8069
26.5k
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
8070
26.5k
            let rm64 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
8071
8072
            // Build the instruction.
8073
26.5k
            let inst = cranelift_assembler_x64::inst::movq_a::new(xmm1.clone(), rm64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
8074
26.5k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
8075
8076
            // Return a type ISLE can work with.
8077
26.5k
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
8078
26.5k
            AssemblerOutputs::RetXmm { inst, xmm }
8079
26.5k
        }
8080
4.23k
        fn x64_movd_b_raw(&mut self, rm32: &GprMem32, xmm2: Xmm) -> AssemblerOutputs {
8081
            // Convert ISLE types to assembler types.
8082
4.23k
            let rm32 = self.convert_gpr_mem_to_assembler_write_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
8083
4.23k
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
8084
8085
            // Build the instruction.
8086
4.23k
            let inst = cranelift_assembler_x64::inst::movd_b::new(rm32.clone(), xmm2.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
8087
4.23k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
8088
8089
            // Return a type ISLE can work with.
8090
4.23k
            match rm32 {
8091
4.23k
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
8092
4.23k
                    let gpr = reg.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
8093
4.23k
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
8094
                }
8095
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
8096
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
8097
                }
8098
            }
8099
4.23k
        }
8100
11.0k
        fn x64_movq_b_raw(&mut self, rm64: &GprMem64, xmm2: Xmm) -> AssemblerOutputs {
8101
            // Convert ISLE types to assembler types.
8102
11.0k
            let rm64 = self.convert_gpr_mem_to_assembler_write_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
8103
11.0k
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
8104
8105
            // Build the instruction.
8106
11.0k
            let inst = cranelift_assembler_x64::inst::movq_b::new(rm64.clone(), xmm2.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
8107
11.0k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
8108
8109
            // Return a type ISLE can work with.
8110
11.0k
            match rm64 {
8111
11.0k
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
8112
11.0k
                    let gpr = reg.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
8113
11.0k
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
8114
                }
8115
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
8116
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
8117
                }
8118
            }
8119
11.0k
        }
8120
364k
        fn x64_vmovd_a_raw(&mut self, rm32: &GprMem32) -> AssemblerOutputs {
8121
            // Convert ISLE types to assembler types.
8122
364k
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
8123
364k
            let rm32 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
8124
8125
            // Build the instruction.
8126
364k
            let inst = cranelift_assembler_x64::inst::vmovd_a::new(xmm1.clone(), rm32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
8127
364k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
8128
8129
            // Return a type ISLE can work with.
8130
364k
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
8131
364k
            AssemblerOutputs::RetXmm { inst, xmm }
8132
364k
        }
8133
513k
        fn x64_vmovq_a_raw(&mut self, rm64: &GprMem64) -> AssemblerOutputs {
8134
            // Convert ISLE types to assembler types.
8135
513k
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
8136
513k
            let rm64 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
8137
8138
            // Build the instruction.
8139
513k
            let inst = cranelift_assembler_x64::inst::vmovq_a::new(xmm1.clone(), rm64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
8140
513k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
8141
8142
            // Return a type ISLE can work with.
8143
513k
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
8144
513k
            AssemblerOutputs::RetXmm { inst, xmm }
8145
513k
        }
8146
120k
        fn x64_vmovd_b_raw(&mut self, rm32: &GprMem32, xmm2: Xmm) -> AssemblerOutputs {
8147
            // Convert ISLE types to assembler types.
8148
120k
            let rm32 = self.convert_gpr_mem_to_assembler_write_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
8149
120k
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
8150
8151
            // Build the instruction.
8152
120k
            let inst = cranelift_assembler_x64::inst::vmovd_b::new(rm32.clone(), xmm2.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
8153
120k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
8154
8155
            // Return a type ISLE can work with.
8156
120k
            match rm32 {
8157
120k
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
8158
120k
                    let gpr = reg.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
8159
120k
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
8160
                }
8161
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
8162
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
8163
                }
8164
            }
8165
120k
        }
8166
193k
        fn x64_vmovq_b_raw(&mut self, rm64: &GprMem64, xmm2: Xmm) -> AssemblerOutputs {
8167
            // Convert ISLE types to assembler types.
8168
193k
            let rm64 = self.convert_gpr_mem_to_assembler_write_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
8169
193k
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
8170
8171
            // Build the instruction.
8172
193k
            let inst = cranelift_assembler_x64::inst::vmovq_b::new(rm64.clone(), xmm2.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
8173
193k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
8174
8175
            // Return a type ISLE can work with.
8176
193k
            match rm64 {
8177
193k
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
8178
193k
                    let gpr = reg.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
8179
193k
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
8180
                }
8181
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
8182
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
8183
                }
8184
            }
8185
193k
        }
8186
15.5k
        fn x64_movss_a_m_raw(&mut self, m32: &SyntheticAmode) -> AssemblerOutputs {
8187
            // Convert ISLE types to assembler types.
8188
15.5k
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
8189
15.5k
            let m32 = self.convert_amode_to_assembler_amode(m32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
8190
8191
            // Build the instruction.
8192
15.5k
            let inst = cranelift_assembler_x64::inst::movss_a_m::new(xmm1.clone(), m32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
8193
15.5k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
8194
8195
            // Return a type ISLE can work with.
8196
15.5k
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
8197
15.5k
            AssemblerOutputs::RetXmm { inst, xmm }
8198
15.5k
        }
8199
6.05k
        fn x64_movss_a_r_raw(&mut self, xmm1: Xmm, xmm2: Xmm) -> AssemblerOutputs {
8200
            // Convert ISLE types to assembler types.
8201
6.05k
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
8202
6.05k
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
8203
8204
            // Build the instruction.
8205
6.05k
            let inst = cranelift_assembler_x64::inst::movss_a_r::new(xmm1.clone(), xmm2.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
8206
6.05k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
8207
8208
            // Return a type ISLE can work with.
8209
6.05k
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
8210
6.05k
            AssemblerOutputs::RetXmm { inst, xmm }
8211
6.05k
        }
8212
14.5k
        fn x64_movss_c_m_raw(&mut self, m32: &SyntheticAmode, xmm1: Xmm) -> AssemblerOutputs {
8213
            // Convert ISLE types to assembler types.
8214
14.5k
            let m32 = self.convert_amode_to_assembler_amode(m32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
8215
14.5k
            let xmm1 = cranelift_assembler_x64::Xmm::new(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
8216
8217
            // Build the instruction.
8218
14.5k
            let inst = cranelift_assembler_x64::inst::movss_c_m::new(m32.clone(), xmm1.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
8219
14.5k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
8220
8221
            // Return a type ISLE can work with.
8222
14.5k
            AssemblerOutputs::SideEffect { inst }
8223
14.5k
        }
8224
59.2k
        fn x64_movsd_a_m_raw(&mut self, m64: &SyntheticAmode) -> AssemblerOutputs {
8225
            // Convert ISLE types to assembler types.
8226
59.2k
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
8227
59.2k
            let m64 = self.convert_amode_to_assembler_amode(m64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
8228
8229
            // Build the instruction.
8230
59.2k
            let inst = cranelift_assembler_x64::inst::movsd_a_m::new(xmm1.clone(), m64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
8231
59.2k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
8232
8233
            // Return a type ISLE can work with.
8234
59.2k
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
8235
59.2k
            AssemblerOutputs::RetXmm { inst, xmm }
8236
59.2k
        }
8237
7.44k
        fn x64_movsd_a_r_raw(&mut self, xmm1: Xmm, xmm2: Xmm) -> AssemblerOutputs {
8238
            // Convert ISLE types to assembler types.
8239
7.44k
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
8240
7.44k
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
8241
8242
            // Build the instruction.
8243
7.44k
            let inst = cranelift_assembler_x64::inst::movsd_a_r::new(xmm1.clone(), xmm2.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
8244
7.44k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
8245
8246
            // Return a type ISLE can work with.
8247
7.44k
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
8248
7.44k
            AssemblerOutputs::RetXmm { inst, xmm }
8249
7.44k
        }
8250
21.5k
        fn x64_movsd_c_m_raw(&mut self, m64: &SyntheticAmode, xmm1: Xmm) -> AssemblerOutputs {
8251
            // Convert ISLE types to assembler types.
8252
21.5k
            let m64 = self.convert_amode_to_assembler_amode(m64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
8253
21.5k
            let xmm1 = cranelift_assembler_x64::Xmm::new(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
8254
8255
            // Build the instruction.
8256
21.5k
            let inst = cranelift_assembler_x64::inst::movsd_c_m::new(m64.clone(), xmm1.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
8257
21.5k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
8258
8259
            // Return a type ISLE can work with.
8260
21.5k
            AssemblerOutputs::SideEffect { inst }
8261
21.5k
        }
8262
237k
        fn x64_vmovss_d_raw(&mut self, m32: &SyntheticAmode) -> AssemblerOutputs {
8263
            // Convert ISLE types to assembler types.
8264
237k
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
8265
237k
            let m32 = self.convert_amode_to_assembler_amode(m32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
8266
8267
            // Build the instruction.
8268
237k
            let inst = cranelift_assembler_x64::inst::vmovss_d::new(xmm1.clone(), m32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
8269
237k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
8270
8271
            // Return a type ISLE can work with.
8272
237k
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
8273
237k
            AssemblerOutputs::RetXmm { inst, xmm }
8274
237k
        }
8275
141k
        fn x64_vmovss_b_raw(&mut self, xmm2: Xmm, xmm3: Xmm) -> AssemblerOutputs {
8276
            // Convert ISLE types to assembler types.
8277
141k
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
8278
141k
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
8279
141k
            let xmm3 = cranelift_assembler_x64::Xmm::new(xmm3); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
8280
8281
            // Build the instruction.
8282
141k
            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:144
8283
141k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
8284
8285
            // Return a type ISLE can work with.
8286
141k
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
8287
141k
            AssemblerOutputs::RetXmm { inst, xmm }
8288
141k
        }
8289
170k
        fn x64_vmovss_c_m_raw(&mut self, m32: &SyntheticAmode, xmm1: Xmm) -> AssemblerOutputs {
8290
            // Convert ISLE types to assembler types.
8291
170k
            let m32 = self.convert_amode_to_assembler_amode(m32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
8292
170k
            let xmm1 = cranelift_assembler_x64::Xmm::new(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
8293
8294
            // Build the instruction.
8295
170k
            let inst = cranelift_assembler_x64::inst::vmovss_c_m::new(m32.clone(), xmm1.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
8296
170k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
8297
8298
            // Return a type ISLE can work with.
8299
170k
            AssemblerOutputs::SideEffect { inst }
8300
170k
        }
8301
437k
        fn x64_vmovsd_d_raw(&mut self, m64: &SyntheticAmode) -> AssemblerOutputs {
8302
            // Convert ISLE types to assembler types.
8303
437k
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
8304
437k
            let m64 = self.convert_amode_to_assembler_amode(m64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
8305
8306
            // Build the instruction.
8307
437k
            let inst = cranelift_assembler_x64::inst::vmovsd_d::new(xmm1.clone(), m64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
8308
437k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
8309
8310
            // Return a type ISLE can work with.
8311
437k
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
8312
437k
            AssemblerOutputs::RetXmm { inst, xmm }
8313
437k
        }
8314
164k
        fn x64_vmovsd_b_raw(&mut self, xmm2: Xmm, xmm3: Xmm) -> AssemblerOutputs {
8315
            // Convert ISLE types to assembler types.
8316
164k
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
8317
164k
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
8318
164k
            let xmm3 = cranelift_assembler_x64::Xmm::new(xmm3); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
8319
8320
            // Build the instruction.
8321
164k
            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:144
8322
164k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
8323
8324
            // Return a type ISLE can work with.
8325
164k
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
8326
164k
            AssemblerOutputs::RetXmm { inst, xmm }
8327
164k
        }
8328
321k
        fn x64_vmovsd_c_m_raw(&mut self, m64: &SyntheticAmode, xmm1: Xmm) -> AssemblerOutputs {
8329
            // Convert ISLE types to assembler types.
8330
321k
            let m64 = self.convert_amode_to_assembler_amode(m64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
8331
321k
            let xmm1 = cranelift_assembler_x64::Xmm::new(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
8332
8333
            // Build the instruction.
8334
321k
            let inst = cranelift_assembler_x64::inst::vmovsd_c_m::new(m64.clone(), xmm1.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
8335
321k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
8336
8337
            // Return a type ISLE can work with.
8338
321k
            AssemblerOutputs::SideEffect { inst }
8339
321k
        }
8340
0
        fn x64_movapd_a_raw(&mut self, xmm_m128: &XmmMemAligned128) -> 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:131
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:131
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:144
8347
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
8351
0
            AssemblerOutputs::RetXmm { inst, xmm }
8352
0
        }
8353
0
        fn x64_movapd_b_raw(&mut self, xmm_m128: &XmmMemAligned128, 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:131
8356
0
            let xmm1 = cranelift_assembler_x64::Xmm::new(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
8360
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:184
8366
0
                    AssemblerOutputs::RetXmm { inst, xmm }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
8367
                }
8368
                cranelift_assembler_x64::XmmMem::Mem(_) =>  {
8369
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
8370
                }
8371
            }
8372
0
        }
8373
0
        fn x64_movaps_a_raw(&mut self, xmm_m128: &XmmMemAligned128) -> 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:131
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:131
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:144
8380
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
8384
0
            AssemblerOutputs::RetXmm { inst, xmm }
8385
0
        }
8386
0
        fn x64_movaps_b_raw(&mut self, xmm_m128: &XmmMemAligned128, 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:131
8389
0
            let xmm1 = cranelift_assembler_x64::Xmm::new(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
8393
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:184
8399
0
                    AssemblerOutputs::RetXmm { inst, xmm }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
8400
                }
8401
                cranelift_assembler_x64::XmmMem::Mem(_) =>  {
8402
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
8403
                }
8404
            }
8405
0
        }
8406
0
        fn x64_movdqa_a_raw(&mut self, xmm_m128: &XmmMemAligned128) -> 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:131
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:131
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:144
8413
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
8417
0
            AssemblerOutputs::RetXmm { inst, xmm }
8418
0
        }
8419
0
        fn x64_movdqa_b_raw(&mut self, xmm_m128: &XmmMemAligned128, 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:131
8422
0
            let xmm1 = cranelift_assembler_x64::Xmm::new(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
8426
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:184
8432
0
                    AssemblerOutputs::RetXmm { inst, xmm }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
8433
                }
8434
                cranelift_assembler_x64::XmmMem::Mem(_) =>  {
8435
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
8436
                }
8437
            }
8438
0
        }
8439
0
        fn x64_vmovapd_a_raw(&mut self, xmm_m128: &XmmMemAligned128) -> 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:131
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:131
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:144
8446
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
8450
0
            AssemblerOutputs::RetXmm { inst, xmm }
8451
0
        }
8452
0
        fn x64_vmovapd_b_raw(&mut self, xmm_m128: &XmmMemAligned128, 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:131
8455
0
            let xmm1 = cranelift_assembler_x64::Xmm::new(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
8459
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:184
8465
0
                    AssemblerOutputs::RetXmm { inst, xmm }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
8466
                }
8467
                cranelift_assembler_x64::XmmMem::Mem(_) =>  {
8468
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
8469
                }
8470
            }
8471
0
        }
8472
0
        fn x64_vmovaps_a_raw(&mut self, xmm_m128: &XmmMemAligned128) -> 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:131
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:131
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:144
8479
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
8483
0
            AssemblerOutputs::RetXmm { inst, xmm }
8484
0
        }
8485
0
        fn x64_vmovaps_b_raw(&mut self, xmm_m128: &XmmMemAligned128, 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:131
8488
0
            let xmm1 = cranelift_assembler_x64::Xmm::new(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
8492
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:184
8498
0
                    AssemblerOutputs::RetXmm { inst, xmm }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
8499
                }
8500
                cranelift_assembler_x64::XmmMem::Mem(_) =>  {
8501
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
8502
                }
8503
            }
8504
0
        }
8505
0
        fn x64_vmovdqa_a_raw(&mut self, xmm_m128: &XmmMemAligned128) -> 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:131
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:131
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:144
8512
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
8516
0
            AssemblerOutputs::RetXmm { inst, xmm }
8517
0
        }
8518
0
        fn x64_vmovdqa_b_raw(&mut self, xmm_m128: &XmmMemAligned128, 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:131
8521
0
            let xmm1 = cranelift_assembler_x64::Xmm::new(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
8525
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:184
8531
0
                    AssemblerOutputs::RetXmm { inst, xmm }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
8532
                }
8533
                cranelift_assembler_x64::XmmMem::Mem(_) =>  {
8534
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
8535
                }
8536
            }
8537
0
        }
8538
5.28k
        fn x64_movupd_a_raw(&mut self, xmm_m128: &XmmMem128) -> AssemblerOutputs {
8539
            // Convert ISLE types to assembler types.
8540
5.28k
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
8541
5.28k
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
8542
8543
            // Build the instruction.
8544
5.28k
            let inst = cranelift_assembler_x64::inst::movupd_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
8545
5.28k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
8546
8547
            // Return a type ISLE can work with.
8548
5.28k
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
8549
5.28k
            AssemblerOutputs::RetXmm { inst, xmm }
8550
5.28k
        }
8551
1.52k
        fn x64_movupd_b_raw(&mut self, xmm_m128: &XmmMem128, xmm1: Xmm) -> AssemblerOutputs {
8552
            // Convert ISLE types to assembler types.
8553
1.52k
            let xmm_m128 = self.convert_xmm_mem_to_assembler_write_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
8554
1.52k
            let xmm1 = cranelift_assembler_x64::Xmm::new(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
8555
8556
            // Build the instruction.
8557
1.52k
            let inst = cranelift_assembler_x64::inst::movupd_b::new(xmm_m128.clone(), xmm1.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
8558
1.52k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
8559
8560
            // Return a type ISLE can work with.
8561
1.52k
            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:184
8564
0
                    AssemblerOutputs::RetXmm { inst, xmm }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
8565
                }
8566
                cranelift_assembler_x64::XmmMem::Mem(_) =>  {
8567
1.52k
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
8568
                }
8569
            }
8570
1.52k
        }
8571
26.6k
        fn x64_movups_a_raw(&mut self, xmm_m128: &XmmMem128) -> AssemblerOutputs {
8572
            // Convert ISLE types to assembler types.
8573
26.6k
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
8574
26.6k
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
8575
8576
            // Build the instruction.
8577
26.6k
            let inst = cranelift_assembler_x64::inst::movups_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
8578
26.6k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
8579
8580
            // Return a type ISLE can work with.
8581
26.6k
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
8582
26.6k
            AssemblerOutputs::RetXmm { inst, xmm }
8583
26.6k
        }
8584
1.18k
        fn x64_movups_b_raw(&mut self, xmm_m128: &XmmMem128, xmm1: Xmm) -> AssemblerOutputs {
8585
            // Convert ISLE types to assembler types.
8586
1.18k
            let xmm_m128 = self.convert_xmm_mem_to_assembler_write_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
8587
1.18k
            let xmm1 = cranelift_assembler_x64::Xmm::new(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
8588
8589
            // Build the instruction.
8590
1.18k
            let inst = cranelift_assembler_x64::inst::movups_b::new(xmm_m128.clone(), xmm1.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
8591
1.18k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
8592
8593
            // Return a type ISLE can work with.
8594
1.18k
            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:184
8597
0
                    AssemblerOutputs::RetXmm { inst, xmm }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
8598
                }
8599
                cranelift_assembler_x64::XmmMem::Mem(_) =>  {
8600
1.18k
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
8601
                }
8602
            }
8603
1.18k
        }
8604
81.4k
        fn x64_movdqu_a_raw(&mut self, xmm_m128: &XmmMem128) -> AssemblerOutputs {
8605
            // Convert ISLE types to assembler types.
8606
81.4k
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
8607
81.4k
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
8608
8609
            // Build the instruction.
8610
81.4k
            let inst = cranelift_assembler_x64::inst::movdqu_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
8611
81.4k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
8612
8613
            // Return a type ISLE can work with.
8614
81.4k
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
8615
81.4k
            AssemblerOutputs::RetXmm { inst, xmm }
8616
81.4k
        }
8617
22.7k
        fn x64_movdqu_b_raw(&mut self, xmm_m128: &XmmMem128, xmm1: Xmm) -> AssemblerOutputs {
8618
            // Convert ISLE types to assembler types.
8619
22.7k
            let xmm_m128 = self.convert_xmm_mem_to_assembler_write_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
8620
22.7k
            let xmm1 = cranelift_assembler_x64::Xmm::new(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
8621
8622
            // Build the instruction.
8623
22.7k
            let inst = cranelift_assembler_x64::inst::movdqu_b::new(xmm_m128.clone(), xmm1.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
8624
22.7k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
8625
8626
            // Return a type ISLE can work with.
8627
22.7k
            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:184
8630
0
                    AssemblerOutputs::RetXmm { inst, xmm }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
8631
                }
8632
                cranelift_assembler_x64::XmmMem::Mem(_) =>  {
8633
22.7k
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
8634
                }
8635
            }
8636
22.7k
        }
8637
6.40k
        fn x64_vmovupd_a_raw(&mut self, xmm_m128: &XmmMem128) -> AssemblerOutputs {
8638
            // Convert ISLE types to assembler types.
8639
6.40k
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
8640
6.40k
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
8641
8642
            // Build the instruction.
8643
6.40k
            let inst = cranelift_assembler_x64::inst::vmovupd_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
8644
6.40k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
8645
8646
            // Return a type ISLE can work with.
8647
6.40k
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
8648
6.40k
            AssemblerOutputs::RetXmm { inst, xmm }
8649
6.40k
        }
8650
1.67k
        fn x64_vmovupd_b_raw(&mut self, xmm_m128: &XmmMem128, xmm1: Xmm) -> AssemblerOutputs {
8651
            // Convert ISLE types to assembler types.
8652
1.67k
            let xmm_m128 = self.convert_xmm_mem_to_assembler_write_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
8653
1.67k
            let xmm1 = cranelift_assembler_x64::Xmm::new(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
8654
8655
            // Build the instruction.
8656
1.67k
            let inst = cranelift_assembler_x64::inst::vmovupd_b::new(xmm_m128.clone(), xmm1.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
8657
1.67k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
8658
8659
            // Return a type ISLE can work with.
8660
1.67k
            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:184
8663
0
                    AssemblerOutputs::RetXmm { inst, xmm }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
8664
                }
8665
                cranelift_assembler_x64::XmmMem::Mem(_) =>  {
8666
1.67k
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
8667
                }
8668
            }
8669
1.67k
        }
8670
42.2k
        fn x64_vmovups_a_raw(&mut self, xmm_m128: &XmmMem128) -> AssemblerOutputs {
8671
            // Convert ISLE types to assembler types.
8672
42.2k
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
8673
42.2k
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
8674
8675
            // Build the instruction.
8676
42.2k
            let inst = cranelift_assembler_x64::inst::vmovups_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
8677
42.2k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
8678
8679
            // Return a type ISLE can work with.
8680
42.2k
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
8681
42.2k
            AssemblerOutputs::RetXmm { inst, xmm }
8682
42.2k
        }
8683
10.9k
        fn x64_vmovups_b_raw(&mut self, xmm_m128: &XmmMem128, xmm1: Xmm) -> AssemblerOutputs {
8684
            // Convert ISLE types to assembler types.
8685
10.9k
            let xmm_m128 = self.convert_xmm_mem_to_assembler_write_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
8686
10.9k
            let xmm1 = cranelift_assembler_x64::Xmm::new(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
8687
8688
            // Build the instruction.
8689
10.9k
            let inst = cranelift_assembler_x64::inst::vmovups_b::new(xmm_m128.clone(), xmm1.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
8690
10.9k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
8691
8692
            // Return a type ISLE can work with.
8693
10.9k
            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:184
8696
0
                    AssemblerOutputs::RetXmm { inst, xmm }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
8697
                }
8698
                cranelift_assembler_x64::XmmMem::Mem(_) =>  {
8699
10.9k
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
8700
                }
8701
            }
8702
10.9k
        }
8703
521k
        fn x64_vmovdqu_a_raw(&mut self, xmm_m128: &XmmMem128) -> AssemblerOutputs {
8704
            // Convert ISLE types to assembler types.
8705
521k
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
8706
521k
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
8707
8708
            // Build the instruction.
8709
521k
            let inst = cranelift_assembler_x64::inst::vmovdqu_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
8710
521k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
8711
8712
            // Return a type ISLE can work with.
8713
521k
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
8714
521k
            AssemblerOutputs::RetXmm { inst, xmm }
8715
521k
        }
8716
381k
        fn x64_vmovdqu_b_raw(&mut self, xmm_m128: &XmmMem128, xmm1: Xmm) -> AssemblerOutputs {
8717
            // Convert ISLE types to assembler types.
8718
381k
            let xmm_m128 = self.convert_xmm_mem_to_assembler_write_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
8719
381k
            let xmm1 = cranelift_assembler_x64::Xmm::new(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
8720
8721
            // Build the instruction.
8722
381k
            let inst = cranelift_assembler_x64::inst::vmovdqu_b::new(xmm_m128.clone(), xmm1.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
8723
381k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
8724
8725
            // Return a type ISLE can work with.
8726
381k
            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:184
8729
0
                    AssemblerOutputs::RetXmm { inst, xmm }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
8730
                }
8731
                cranelift_assembler_x64::XmmMem::Mem(_) =>  {
8732
381k
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
8733
                }
8734
            }
8735
381k
        }
8736
102
        fn x64_pmovsxbw_a_raw(&mut self, xmm_m64: &XmmMem64) -> AssemblerOutputs {
8737
            // Convert ISLE types to assembler types.
8738
102
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
8739
102
            let xmm_m64 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
8740
8741
            // Build the instruction.
8742
102
            let inst = cranelift_assembler_x64::inst::pmovsxbw_a::new(xmm1.clone(), xmm_m64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
8743
102
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
8744
8745
            // Return a type ISLE can work with.
8746
102
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
8747
102
            AssemblerOutputs::RetXmm { inst, xmm }
8748
102
        }
8749
0
        fn x64_pmovsxbd_a_raw(&mut self, xmm_m32: &XmmMem32) -> 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:131
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:131
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:144
8756
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
8760
0
            AssemblerOutputs::RetXmm { inst, xmm }
8761
0
        }
8762
0
        fn x64_pmovsxbq_a_raw(&mut self, xmm_m16: &XmmMem16) -> 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:131
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:131
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:144
8769
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
8773
0
            AssemblerOutputs::RetXmm { inst, xmm }
8774
0
        }
8775
43
        fn x64_pmovsxwd_a_raw(&mut self, xmm_m64: &XmmMem64) -> AssemblerOutputs {
8776
            // Convert ISLE types to assembler types.
8777
43
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
8778
43
            let xmm_m64 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
8779
8780
            // Build the instruction.
8781
43
            let inst = cranelift_assembler_x64::inst::pmovsxwd_a::new(xmm1.clone(), xmm_m64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
8782
43
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
8783
8784
            // Return a type ISLE can work with.
8785
43
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
8786
43
            AssemblerOutputs::RetXmm { inst, xmm }
8787
43
        }
8788
0
        fn x64_pmovsxwq_a_raw(&mut self, xmm_m32: &XmmMem32) -> 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:131
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:131
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:144
8795
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
8799
0
            AssemblerOutputs::RetXmm { inst, xmm }
8800
0
        }
8801
120
        fn x64_pmovsxdq_a_raw(&mut self, xmm_m64: &XmmMem64) -> AssemblerOutputs {
8802
            // Convert ISLE types to assembler types.
8803
120
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
8804
120
            let xmm_m64 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
8805
8806
            // Build the instruction.
8807
120
            let inst = cranelift_assembler_x64::inst::pmovsxdq_a::new(xmm1.clone(), xmm_m64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
8808
120
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
8809
8810
            // Return a type ISLE can work with.
8811
120
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
8812
120
            AssemblerOutputs::RetXmm { inst, xmm }
8813
120
        }
8814
3.57k
        fn x64_vpmovsxbw_a_raw(&mut self, xmm_m64: &XmmMem64) -> AssemblerOutputs {
8815
            // Convert ISLE types to assembler types.
8816
3.57k
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
8817
3.57k
            let xmm_m64 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
8818
8819
            // Build the instruction.
8820
3.57k
            let inst = cranelift_assembler_x64::inst::vpmovsxbw_a::new(xmm1.clone(), xmm_m64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
8821
3.57k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
8822
8823
            // Return a type ISLE can work with.
8824
3.57k
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
8825
3.57k
            AssemblerOutputs::RetXmm { inst, xmm }
8826
3.57k
        }
8827
0
        fn x64_vpmovsxbd_a_raw(&mut self, xmm_m32: &XmmMem32) -> 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:131
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:131
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:144
8834
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
8838
0
            AssemblerOutputs::RetXmm { inst, xmm }
8839
0
        }
8840
0
        fn x64_vpmovsxbq_a_raw(&mut self, xmm_m16: &XmmMem16) -> 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:131
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:131
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:144
8847
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
8851
0
            AssemblerOutputs::RetXmm { inst, xmm }
8852
0
        }
8853
3.18k
        fn x64_vpmovsxwd_a_raw(&mut self, xmm_m64: &XmmMem64) -> AssemblerOutputs {
8854
            // Convert ISLE types to assembler types.
8855
3.18k
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
8856
3.18k
            let xmm_m64 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
8857
8858
            // Build the instruction.
8859
3.18k
            let inst = cranelift_assembler_x64::inst::vpmovsxwd_a::new(xmm1.clone(), xmm_m64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
8860
3.18k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
8861
8862
            // Return a type ISLE can work with.
8863
3.18k
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
8864
3.18k
            AssemblerOutputs::RetXmm { inst, xmm }
8865
3.18k
        }
8866
0
        fn x64_vpmovsxwq_a_raw(&mut self, xmm_m32: &XmmMem32) -> 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:131
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:131
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:144
8873
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
8877
0
            AssemblerOutputs::RetXmm { inst, xmm }
8878
0
        }
8879
2.90k
        fn x64_vpmovsxdq_a_raw(&mut self, xmm_m64: &XmmMem64) -> AssemblerOutputs {
8880
            // Convert ISLE types to assembler types.
8881
2.90k
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
8882
2.90k
            let xmm_m64 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
8883
8884
            // Build the instruction.
8885
2.90k
            let inst = cranelift_assembler_x64::inst::vpmovsxdq_a::new(xmm1.clone(), xmm_m64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
8886
2.90k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
8887
8888
            // Return a type ISLE can work with.
8889
2.90k
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
8890
2.90k
            AssemblerOutputs::RetXmm { inst, xmm }
8891
2.90k
        }
8892
51
        fn x64_pmovzxbw_a_raw(&mut self, xmm_m64: &XmmMem64) -> AssemblerOutputs {
8893
            // Convert ISLE types to assembler types.
8894
51
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
8895
51
            let xmm_m64 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
8896
8897
            // Build the instruction.
8898
51
            let inst = cranelift_assembler_x64::inst::pmovzxbw_a::new(xmm1.clone(), xmm_m64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
8899
51
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
8900
8901
            // Return a type ISLE can work with.
8902
51
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
8903
51
            AssemblerOutputs::RetXmm { inst, xmm }
8904
51
        }
8905
0
        fn x64_pmovzxbd_a_raw(&mut self, xmm_m32: &XmmMem32) -> 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:131
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:131
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:144
8912
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
8916
0
            AssemblerOutputs::RetXmm { inst, xmm }
8917
0
        }
8918
0
        fn x64_pmovzxbq_a_raw(&mut self, xmm_m16: &XmmMem16) -> 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:131
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:131
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:144
8925
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
8929
0
            AssemblerOutputs::RetXmm { inst, xmm }
8930
0
        }
8931
324
        fn x64_pmovzxwd_a_raw(&mut self, xmm_m64: &XmmMem64) -> AssemblerOutputs {
8932
            // Convert ISLE types to assembler types.
8933
324
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
8934
324
            let xmm_m64 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
8935
8936
            // Build the instruction.
8937
324
            let inst = cranelift_assembler_x64::inst::pmovzxwd_a::new(xmm1.clone(), xmm_m64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
8938
324
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
8939
8940
            // Return a type ISLE can work with.
8941
324
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
8942
324
            AssemblerOutputs::RetXmm { inst, xmm }
8943
324
        }
8944
0
        fn x64_pmovzxwq_a_raw(&mut self, xmm_m32: &XmmMem32) -> 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:131
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:131
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:144
8951
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
8955
0
            AssemblerOutputs::RetXmm { inst, xmm }
8956
0
        }
8957
45
        fn x64_pmovzxdq_a_raw(&mut self, xmm_m64: &XmmMem64) -> AssemblerOutputs {
8958
            // Convert ISLE types to assembler types.
8959
45
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
8960
45
            let xmm_m64 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
8961
8962
            // Build the instruction.
8963
45
            let inst = cranelift_assembler_x64::inst::pmovzxdq_a::new(xmm1.clone(), xmm_m64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
8964
45
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
8965
8966
            // Return a type ISLE can work with.
8967
45
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
8968
45
            AssemblerOutputs::RetXmm { inst, xmm }
8969
45
        }
8970
1.23k
        fn x64_vpmovzxbw_a_raw(&mut self, xmm_m64: &XmmMem64) -> AssemblerOutputs {
8971
            // Convert ISLE types to assembler types.
8972
1.23k
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
8973
1.23k
            let xmm_m64 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
8974
8975
            // Build the instruction.
8976
1.23k
            let inst = cranelift_assembler_x64::inst::vpmovzxbw_a::new(xmm1.clone(), xmm_m64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
8977
1.23k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
8978
8979
            // Return a type ISLE can work with.
8980
1.23k
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
8981
1.23k
            AssemblerOutputs::RetXmm { inst, xmm }
8982
1.23k
        }
8983
0
        fn x64_vpmovzxbd_a_raw(&mut self, xmm_m32: &XmmMem32) -> 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:131
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:131
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:144
8990
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
8994
0
            AssemblerOutputs::RetXmm { inst, xmm }
8995
0
        }
8996
0
        fn x64_vpmovzxbq_a_raw(&mut self, xmm_m16: &XmmMem16) -> 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:131
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:131
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:144
9003
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
9007
0
            AssemblerOutputs::RetXmm { inst, xmm }
9008
0
        }
9009
2.11k
        fn x64_vpmovzxwd_a_raw(&mut self, xmm_m64: &XmmMem64) -> AssemblerOutputs {
9010
            // Convert ISLE types to assembler types.
9011
2.11k
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
9012
2.11k
            let xmm_m64 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
9013
9014
            // Build the instruction.
9015
2.11k
            let inst = cranelift_assembler_x64::inst::vpmovzxwd_a::new(xmm1.clone(), xmm_m64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
9016
2.11k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
9017
9018
            // Return a type ISLE can work with.
9019
2.11k
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
9020
2.11k
            AssemblerOutputs::RetXmm { inst, xmm }
9021
2.11k
        }
9022
0
        fn x64_vpmovzxwq_a_raw(&mut self, xmm_m32: &XmmMem32) -> 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:131
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:131
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:144
9029
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
9033
0
            AssemblerOutputs::RetXmm { inst, xmm }
9034
0
        }
9035
1.42k
        fn x64_vpmovzxdq_a_raw(&mut self, xmm_m64: &XmmMem64) -> AssemblerOutputs {
9036
            // Convert ISLE types to assembler types.
9037
1.42k
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
9038
1.42k
            let xmm_m64 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
9039
9040
            // Build the instruction.
9041
1.42k
            let inst = cranelift_assembler_x64::inst::vpmovzxdq_a::new(xmm1.clone(), xmm_m64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
9042
1.42k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
9043
9044
            // Return a type ISLE can work with.
9045
1.42k
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
9046
1.42k
            AssemblerOutputs::RetXmm { inst, xmm }
9047
1.42k
        }
9048
550
        fn x64_mulb_m_raw(&mut self, ax: Gpr, rm8: &GprMem8) -> AssemblerOutputs {
9049
            // Convert ISLE types to assembler types.
9050
550
            let ax = self.convert_gpr_to_assembler_fixed_read_write_gpr(ax); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
9051
550
            let rm8 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
9052
9053
            // Build the instruction.
9054
550
            let inst = cranelift_assembler_x64::inst::mulb_m::new(ax.clone(), rm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
9055
550
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
9056
9057
            // Return a type ISLE can work with.
9058
550
            let gpr = ax.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
9059
550
            AssemblerOutputs::RetGpr { inst, gpr }
9060
550
        }
9061
1.43k
        fn x64_mulw_m_raw(&mut self, ax: Gpr, rm16: &GprMem16) -> AssemblerOutputs {
9062
            // Convert ISLE types to assembler types.
9063
1.43k
            let ax = self.convert_gpr_to_assembler_fixed_read_write_gpr(ax); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
9064
1.43k
            let dx = cranelift_assembler_x64::Fixed(self.temp_writable_gpr()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
9065
1.43k
            let rm16 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
9066
9067
            // Build the instruction.
9068
1.43k
            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:144
9069
1.43k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
9070
9071
            // Return a type ISLE can work with.
9072
1.43k
            let one = ax.as_ref().write.to_reg().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:198
9073
1.43k
            let two = dx.as_ref().to_reg().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:199
9074
1.43k
            let regs = ValueRegs::two(one, two); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:200
9075
1.43k
            AssemblerOutputs::RetValueRegs { inst, regs }
9076
1.43k
        }
9077
159
        fn x64_mull_m_raw(&mut self, eax: Gpr, rm32: &GprMem32) -> AssemblerOutputs {
9078
            // Convert ISLE types to assembler types.
9079
159
            let eax = self.convert_gpr_to_assembler_fixed_read_write_gpr(eax); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
9080
159
            let edx = cranelift_assembler_x64::Fixed(self.temp_writable_gpr()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
9081
159
            let rm32 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
9082
9083
            // Build the instruction.
9084
159
            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:144
9085
159
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
9086
9087
            // Return a type ISLE can work with.
9088
159
            let one = eax.as_ref().write.to_reg().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:198
9089
159
            let two = edx.as_ref().to_reg().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:199
9090
159
            let regs = ValueRegs::two(one, two); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:200
9091
159
            AssemblerOutputs::RetValueRegs { inst, regs }
9092
159
        }
9093
658
        fn x64_mulq_m_raw(&mut self, rax: Gpr, rm64: &GprMem64) -> AssemblerOutputs {
9094
            // Convert ISLE types to assembler types.
9095
658
            let rax = self.convert_gpr_to_assembler_fixed_read_write_gpr(rax); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
9096
658
            let rdx = cranelift_assembler_x64::Fixed(self.temp_writable_gpr()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
9097
658
            let rm64 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
9098
9099
            // Build the instruction.
9100
658
            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:144
9101
658
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
9102
9103
            // Return a type ISLE can work with.
9104
658
            let one = rax.as_ref().write.to_reg().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:198
9105
658
            let two = rdx.as_ref().to_reg().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:199
9106
658
            let regs = ValueRegs::two(one, two); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:200
9107
658
            AssemblerOutputs::RetValueRegs { inst, regs }
9108
658
        }
9109
57
        fn x64_imulb_m_raw(&mut self, ax: Gpr, rm8: &GprMem8) -> AssemblerOutputs {
9110
            // Convert ISLE types to assembler types.
9111
57
            let ax = self.convert_gpr_to_assembler_fixed_read_write_gpr(ax); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
9112
57
            let rm8 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
9113
9114
            // Build the instruction.
9115
57
            let inst = cranelift_assembler_x64::inst::imulb_m::new(ax.clone(), rm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
9116
57
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
9117
9118
            // Return a type ISLE can work with.
9119
57
            let gpr = ax.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
9120
57
            AssemblerOutputs::RetGpr { inst, gpr }
9121
57
        }
9122
493
        fn x64_imulw_m_raw(&mut self, ax: Gpr, rm16: &GprMem16) -> AssemblerOutputs {
9123
            // Convert ISLE types to assembler types.
9124
493
            let ax = self.convert_gpr_to_assembler_fixed_read_write_gpr(ax); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
9125
493
            let dx = cranelift_assembler_x64::Fixed(self.temp_writable_gpr()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
9126
493
            let rm16 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
9127
9128
            // Build the instruction.
9129
493
            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:144
9130
493
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
9131
9132
            // Return a type ISLE can work with.
9133
493
            let one = ax.as_ref().write.to_reg().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:198
9134
493
            let two = dx.as_ref().to_reg().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:199
9135
493
            let regs = ValueRegs::two(one, two); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:200
9136
493
            AssemblerOutputs::RetValueRegs { inst, regs }
9137
493
        }
9138
2.39k
        fn x64_imull_m_raw(&mut self, eax: Gpr, rm32: &GprMem32) -> AssemblerOutputs {
9139
            // Convert ISLE types to assembler types.
9140
2.39k
            let eax = self.convert_gpr_to_assembler_fixed_read_write_gpr(eax); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
9141
2.39k
            let edx = cranelift_assembler_x64::Fixed(self.temp_writable_gpr()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
9142
2.39k
            let rm32 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
9143
9144
            // Build the instruction.
9145
2.39k
            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:144
9146
2.39k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
9147
9148
            // Return a type ISLE can work with.
9149
2.39k
            let one = eax.as_ref().write.to_reg().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:198
9150
2.39k
            let two = edx.as_ref().to_reg().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:199
9151
2.39k
            let regs = ValueRegs::two(one, two); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:200
9152
2.39k
            AssemblerOutputs::RetValueRegs { inst, regs }
9153
2.39k
        }
9154
799
        fn x64_imulq_m_raw(&mut self, rax: Gpr, rm64: &GprMem64) -> AssemblerOutputs {
9155
            // Convert ISLE types to assembler types.
9156
799
            let rax = self.convert_gpr_to_assembler_fixed_read_write_gpr(rax); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
9157
799
            let rdx = cranelift_assembler_x64::Fixed(self.temp_writable_gpr()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
9158
799
            let rm64 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
9159
9160
            // Build the instruction.
9161
799
            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:144
9162
799
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
9163
9164
            // Return a type ISLE can work with.
9165
799
            let one = rax.as_ref().write.to_reg().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:198
9166
799
            let two = rdx.as_ref().to_reg().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:199
9167
799
            let regs = ValueRegs::two(one, two); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:200
9168
799
            AssemblerOutputs::RetValueRegs { inst, regs }
9169
799
        }
9170
127
        fn x64_imulw_rm_raw(&mut self, r16: Gpr, rm16: &GprMem16) -> AssemblerOutputs {
9171
            // Convert ISLE types to assembler types.
9172
127
            let r16 = self.convert_gpr_to_assembler_read_write_gpr(r16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
9173
127
            let rm16 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
9174
9175
            // Build the instruction.
9176
127
            let inst = cranelift_assembler_x64::inst::imulw_rm::new(r16.clone(), rm16.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
9177
127
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
9178
9179
            // Return a type ISLE can work with.
9180
127
            let gpr = r16.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
9181
127
            AssemblerOutputs::RetGpr { inst, gpr }
9182
127
        }
9183
3.95k
        fn x64_imull_rm_raw(&mut self, r32: Gpr, rm32: &GprMem32) -> AssemblerOutputs {
9184
            // Convert ISLE types to assembler types.
9185
3.95k
            let r32 = self.convert_gpr_to_assembler_read_write_gpr(r32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
9186
3.95k
            let rm32 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
9187
9188
            // Build the instruction.
9189
3.95k
            let inst = cranelift_assembler_x64::inst::imull_rm::new(r32.clone(), rm32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
9190
3.95k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
9191
9192
            // Return a type ISLE can work with.
9193
3.95k
            let gpr = r32.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
9194
3.95k
            AssemblerOutputs::RetGpr { inst, gpr }
9195
3.95k
        }
9196
104k
        fn x64_imulq_rm_raw(&mut self, r64: Gpr, rm64: &GprMem64) -> AssemblerOutputs {
9197
            // Convert ISLE types to assembler types.
9198
104k
            let r64 = self.convert_gpr_to_assembler_read_write_gpr(r64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
9199
104k
            let rm64 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
9200
9201
            // Build the instruction.
9202
104k
            let inst = cranelift_assembler_x64::inst::imulq_rm::new(r64.clone(), rm64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
9203
104k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
9204
9205
            // Return a type ISLE can work with.
9206
104k
            let gpr = r64.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
9207
104k
            AssemblerOutputs::RetGpr { inst, gpr }
9208
104k
        }
9209
3
        fn x64_imulw_rmi_sxb_raw(&mut self, rm16: &GprMem16, imm8: i8) -> AssemblerOutputs {
9210
            // Convert ISLE types to assembler types.
9211
3
            let r16 = cranelift_assembler_x64::Gpr::new(self.temp_writable_gpr()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
9212
3
            let rm16 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
9213
3
            let imm8 = cranelift_assembler_x64::Simm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
9214
9215
            // Build the instruction.
9216
3
            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:144
9217
3
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
9218
9219
            // Return a type ISLE can work with.
9220
3
            let gpr = r16.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
9221
3
            AssemblerOutputs::RetGpr { inst, gpr }
9222
3
        }
9223
34.9k
        fn x64_imull_rmi_sxb_raw(&mut self, rm32: &GprMem32, imm8: i8) -> AssemblerOutputs {
9224
            // Convert ISLE types to assembler types.
9225
34.9k
            let r32 = cranelift_assembler_x64::Gpr::new(self.temp_writable_gpr()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
9226
34.9k
            let rm32 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
9227
34.9k
            let imm8 = cranelift_assembler_x64::Simm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
9228
9229
            // Build the instruction.
9230
34.9k
            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:144
9231
34.9k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
9232
9233
            // Return a type ISLE can work with.
9234
34.9k
            let gpr = r32.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
9235
34.9k
            AssemblerOutputs::RetGpr { inst, gpr }
9236
34.9k
        }
9237
200k
        fn x64_imulq_rmi_sxb_raw(&mut self, rm64: &GprMem64, imm8: i8) -> AssemblerOutputs {
9238
            // Convert ISLE types to assembler types.
9239
200k
            let r64 = cranelift_assembler_x64::Gpr::new(self.temp_writable_gpr()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
9240
200k
            let rm64 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
9241
200k
            let imm8 = cranelift_assembler_x64::Simm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
9242
9243
            // Build the instruction.
9244
200k
            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:144
9245
200k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
9246
9247
            // Return a type ISLE can work with.
9248
200k
            let gpr = r64.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
9249
200k
            AssemblerOutputs::RetGpr { inst, gpr }
9250
200k
        }
9251
32
        fn x64_imulw_rmi_raw(&mut self, rm16: &GprMem16, imm16: u16) -> AssemblerOutputs {
9252
            // Convert ISLE types to assembler types.
9253
32
            let r16 = cranelift_assembler_x64::Gpr::new(self.temp_writable_gpr()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
9254
32
            let rm16 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
9255
32
            let imm16 = cranelift_assembler_x64::Imm16::new(imm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
9256
9257
            // Build the instruction.
9258
32
            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:144
9259
32
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
9260
9261
            // Return a type ISLE can work with.
9262
32
            let gpr = r16.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
9263
32
            AssemblerOutputs::RetGpr { inst, gpr }
9264
32
        }
9265
71.7k
        fn x64_imull_rmi_raw(&mut self, rm32: &GprMem32, imm32: u32) -> AssemblerOutputs {
9266
            // Convert ISLE types to assembler types.
9267
71.7k
            let r32 = cranelift_assembler_x64::Gpr::new(self.temp_writable_gpr()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
9268
71.7k
            let rm32 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
9269
71.7k
            let imm32 = cranelift_assembler_x64::Imm32::new(imm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
9270
9271
            // Build the instruction.
9272
71.7k
            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:144
9273
71.7k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
9274
9275
            // Return a type ISLE can work with.
9276
71.7k
            let gpr = r32.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
9277
71.7k
            AssemblerOutputs::RetGpr { inst, gpr }
9278
71.7k
        }
9279
8.39k
        fn x64_imulq_rmi_sxl_raw(&mut self, rm64: &GprMem64, imm32: i32) -> AssemblerOutputs {
9280
            // Convert ISLE types to assembler types.
9281
8.39k
            let r64 = cranelift_assembler_x64::Gpr::new(self.temp_writable_gpr()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
9282
8.39k
            let rm64 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
9283
8.39k
            let imm32 = cranelift_assembler_x64::Simm32::new(imm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
9284
9285
            // Build the instruction.
9286
8.39k
            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:144
9287
8.39k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
9288
9289
            // Return a type ISLE can work with.
9290
8.39k
            let gpr = r64.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
9291
8.39k
            AssemblerOutputs::RetGpr { inst, gpr }
9292
8.39k
        }
9293
0
        fn x64_mulxl_rvm_raw(&mut self, rm32: &GprMem32, 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:131
9296
0
            let r32b = cranelift_assembler_x64::Gpr::new(self.temp_writable_gpr()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
9297
0
            let rm32 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
9298
0
            let edx = cranelift_assembler_x64::Fixed(edx); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
9302
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:198
9306
0
            let two = r32b.as_ref().to_reg().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:199
9307
0
            let regs = ValueRegs::two(one, two); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:200
9308
0
            AssemblerOutputs::RetValueRegs { inst, regs }
9309
0
        }
9310
6.32k
        fn x64_mulxq_rvm_raw(&mut self, rm64: &GprMem64, rdx: Gpr) -> AssemblerOutputs {
9311
            // Convert ISLE types to assembler types.
9312
6.32k
            let r64a = cranelift_assembler_x64::Gpr::new(self.temp_writable_gpr()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
9313
6.32k
            let r64b = cranelift_assembler_x64::Gpr::new(self.temp_writable_gpr()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
9314
6.32k
            let rm64 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
9315
6.32k
            let rdx = cranelift_assembler_x64::Fixed(rdx); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
9316
9317
            // Build the instruction.
9318
6.32k
            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:144
9319
6.32k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
9320
9321
            // Return a type ISLE can work with.
9322
6.32k
            let one = r64a.as_ref().to_reg().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:198
9323
6.32k
            let two = r64b.as_ref().to_reg().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:199
9324
6.32k
            let regs = ValueRegs::two(one, two); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:200
9325
6.32k
            AssemblerOutputs::RetValueRegs { inst, regs }
9326
6.32k
        }
9327
81
        fn x64_mulss_a_raw(&mut self, xmm1: Xmm, xmm_m32: &XmmMem32) -> AssemblerOutputs {
9328
            // Convert ISLE types to assembler types.
9329
81
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
9330
81
            let xmm_m32 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
9331
9332
            // Build the instruction.
9333
81
            let inst = cranelift_assembler_x64::inst::mulss_a::new(xmm1.clone(), xmm_m32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
9334
81
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
9335
9336
            // Return a type ISLE can work with.
9337
81
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
9338
81
            AssemblerOutputs::RetXmm { inst, xmm }
9339
81
        }
9340
602
        fn x64_mulsd_a_raw(&mut self, xmm1: Xmm, xmm_m64: &XmmMem64) -> AssemblerOutputs {
9341
            // Convert ISLE types to assembler types.
9342
602
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
9343
602
            let xmm_m64 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
9344
9345
            // Build the instruction.
9346
602
            let inst = cranelift_assembler_x64::inst::mulsd_a::new(xmm1.clone(), xmm_m64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
9347
602
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
9348
9349
            // Return a type ISLE can work with.
9350
602
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
9351
602
            AssemblerOutputs::RetXmm { inst, xmm }
9352
602
        }
9353
460
        fn x64_mulps_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned128) -> AssemblerOutputs {
9354
            // Convert ISLE types to assembler types.
9355
460
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
9356
460
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
9357
9358
            // Build the instruction.
9359
460
            let inst = cranelift_assembler_x64::inst::mulps_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
9360
460
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
9361
9362
            // Return a type ISLE can work with.
9363
460
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
9364
460
            AssemblerOutputs::RetXmm { inst, xmm }
9365
460
        }
9366
31
        fn x64_mulpd_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned128) -> AssemblerOutputs {
9367
            // Convert ISLE types to assembler types.
9368
31
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
9369
31
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
9370
9371
            // Build the instruction.
9372
31
            let inst = cranelift_assembler_x64::inst::mulpd_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
9373
31
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
9374
9375
            // Return a type ISLE can work with.
9376
31
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
9377
31
            AssemblerOutputs::RetXmm { inst, xmm }
9378
31
        }
9379
3
        fn x64_pmuldq_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned128) -> 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:131
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:131
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:144
9386
3
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
9390
3
            AssemblerOutputs::RetXmm { inst, xmm }
9391
3
        }
9392
52
        fn x64_pmulhrsw_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned128) -> AssemblerOutputs {
9393
            // Convert ISLE types to assembler types.
9394
52
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
9395
52
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
9396
9397
            // Build the instruction.
9398
52
            let inst = cranelift_assembler_x64::inst::pmulhrsw_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
9399
52
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
9400
9401
            // Return a type ISLE can work with.
9402
52
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
9403
52
            AssemblerOutputs::RetXmm { inst, xmm }
9404
52
        }
9405
4
        fn x64_pmulhuw_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned128) -> AssemblerOutputs {
9406
            // Convert ISLE types to assembler types.
9407
4
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
9408
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:131
9409
9410
            // Build the instruction.
9411
4
            let inst = cranelift_assembler_x64::inst::pmulhuw_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
9412
4
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
9413
9414
            // Return a type ISLE can work with.
9415
4
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
9416
4
            AssemblerOutputs::RetXmm { inst, xmm }
9417
4
        }
9418
118
        fn x64_pmulhw_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned128) -> AssemblerOutputs {
9419
            // Convert ISLE types to assembler types.
9420
118
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
9421
118
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
9422
9423
            // Build the instruction.
9424
118
            let inst = cranelift_assembler_x64::inst::pmulhw_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
9425
118
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
9426
9427
            // Return a type ISLE can work with.
9428
118
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
9429
118
            AssemblerOutputs::RetXmm { inst, xmm }
9430
118
        }
9431
16
        fn x64_pmulld_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned128) -> AssemblerOutputs {
9432
            // Convert ISLE types to assembler types.
9433
16
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
9434
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:131
9435
9436
            // Build the instruction.
9437
16
            let inst = cranelift_assembler_x64::inst::pmulld_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
9438
16
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
9439
9440
            // Return a type ISLE can work with.
9441
16
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
9442
16
            AssemblerOutputs::RetXmm { inst, xmm }
9443
16
        }
9444
161
        fn x64_pmullw_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned128) -> AssemblerOutputs {
9445
            // Convert ISLE types to assembler types.
9446
161
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
9447
161
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
9448
9449
            // Build the instruction.
9450
161
            let inst = cranelift_assembler_x64::inst::pmullw_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
9451
161
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
9452
9453
            // Return a type ISLE can work with.
9454
161
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
9455
161
            AssemblerOutputs::RetXmm { inst, xmm }
9456
161
        }
9457
149
        fn x64_pmuludq_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned128) -> AssemblerOutputs {
9458
            // Convert ISLE types to assembler types.
9459
149
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
9460
149
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
9461
9462
            // Build the instruction.
9463
149
            let inst = cranelift_assembler_x64::inst::pmuludq_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
9464
149
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
9465
9466
            // Return a type ISLE can work with.
9467
149
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
9468
149
            AssemblerOutputs::RetXmm { inst, xmm }
9469
149
        }
9470
1.32k
        fn x64_vmulss_b_raw(&mut self, xmm2: Xmm, xmm_m32: &XmmMem32) -> AssemblerOutputs {
9471
            // Convert ISLE types to assembler types.
9472
1.32k
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
9473
1.32k
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
9474
1.32k
            let xmm_m32 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
9475
9476
            // Build the instruction.
9477
1.32k
            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:144
9478
1.32k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
9479
9480
            // Return a type ISLE can work with.
9481
1.32k
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
9482
1.32k
            AssemblerOutputs::RetXmm { inst, xmm }
9483
1.32k
        }
9484
1.94k
        fn x64_vmulsd_b_raw(&mut self, xmm2: Xmm, xmm_m64: &XmmMem64) -> AssemblerOutputs {
9485
            // Convert ISLE types to assembler types.
9486
1.94k
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
9487
1.94k
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
9488
1.94k
            let xmm_m64 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
9489
9490
            // Build the instruction.
9491
1.94k
            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:144
9492
1.94k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
9493
9494
            // Return a type ISLE can work with.
9495
1.94k
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
9496
1.94k
            AssemblerOutputs::RetXmm { inst, xmm }
9497
1.94k
        }
9498
582
        fn x64_vmulps_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem128) -> AssemblerOutputs {
9499
            // Convert ISLE types to assembler types.
9500
582
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
9501
582
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
9502
582
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
9503
9504
            // Build the instruction.
9505
582
            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:144
9506
582
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
9507
9508
            // Return a type ISLE can work with.
9509
582
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
9510
582
            AssemblerOutputs::RetXmm { inst, xmm }
9511
582
        }
9512
43
        fn x64_vmulpd_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem128) -> AssemblerOutputs {
9513
            // Convert ISLE types to assembler types.
9514
43
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
9515
43
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
9516
43
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
9517
9518
            // Build the instruction.
9519
43
            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:144
9520
43
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
9521
9522
            // Return a type ISLE can work with.
9523
43
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
9524
43
            AssemblerOutputs::RetXmm { inst, xmm }
9525
43
        }
9526
24
        fn x64_vpmuldq_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem128) -> AssemblerOutputs {
9527
            // Convert ISLE types to assembler types.
9528
24
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
9529
24
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
9530
24
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
9531
9532
            // Build the instruction.
9533
24
            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:144
9534
24
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
9535
9536
            // Return a type ISLE can work with.
9537
24
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
9538
24
            AssemblerOutputs::RetXmm { inst, xmm }
9539
24
        }
9540
504
        fn x64_vpmulhrsw_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem128) -> AssemblerOutputs {
9541
            // Convert ISLE types to assembler types.
9542
504
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
9543
504
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
9544
504
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
9545
9546
            // Build the instruction.
9547
504
            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:144
9548
504
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
9549
9550
            // Return a type ISLE can work with.
9551
504
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
9552
504
            AssemblerOutputs::RetXmm { inst, xmm }
9553
504
        }
9554
12
        fn x64_vpmulhuw_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem128) -> AssemblerOutputs {
9555
            // Convert ISLE types to assembler types.
9556
12
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
9557
12
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
9558
12
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
9559
9560
            // Build the instruction.
9561
12
            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:144
9562
12
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
9563
9564
            // Return a type ISLE can work with.
9565
12
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
9566
12
            AssemblerOutputs::RetXmm { inst, xmm }
9567
12
        }
9568
102
        fn x64_vpmulhw_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem128) -> AssemblerOutputs {
9569
            // Convert ISLE types to assembler types.
9570
102
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
9571
102
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
9572
102
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
9573
9574
            // Build the instruction.
9575
102
            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:144
9576
102
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
9577
9578
            // Return a type ISLE can work with.
9579
102
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
9580
102
            AssemblerOutputs::RetXmm { inst, xmm }
9581
102
        }
9582
58
        fn x64_vpmulld_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem128) -> AssemblerOutputs {
9583
            // Convert ISLE types to assembler types.
9584
58
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
9585
58
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
9586
58
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
9587
9588
            // Build the instruction.
9589
58
            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:144
9590
58
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
9591
9592
            // Return a type ISLE can work with.
9593
58
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
9594
58
            AssemblerOutputs::RetXmm { inst, xmm }
9595
58
        }
9596
235
        fn x64_vpmullw_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem128) -> AssemblerOutputs {
9597
            // Convert ISLE types to assembler types.
9598
235
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
9599
235
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
9600
235
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
9601
9602
            // Build the instruction.
9603
235
            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:144
9604
235
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
9605
9606
            // Return a type ISLE can work with.
9607
235
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
9608
235
            AssemblerOutputs::RetXmm { inst, xmm }
9609
235
        }
9610
173
        fn x64_vpmuludq_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem128) -> AssemblerOutputs {
9611
            // Convert ISLE types to assembler types.
9612
173
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
9613
173
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
9614
173
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
9615
9616
            // Build the instruction.
9617
173
            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:144
9618
173
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
9619
9620
            // Return a type ISLE can work with.
9621
173
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
9622
173
            AssemblerOutputs::RetXmm { inst, xmm }
9623
173
        }
9624
0
        fn x64_vpmulld_c_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem128) -> 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:131
9627
0
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:131
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:144
9632
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
9636
0
            AssemblerOutputs::RetXmm { inst, xmm }
9637
0
        }
9638
2
        fn x64_vpmullq_c_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem128) -> AssemblerOutputs {
9639
            // Convert ISLE types to assembler types.
9640
2
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
9641
2
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
9642
2
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
9643
9644
            // Build the instruction.
9645
2
            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:144
9646
2
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
9647
9648
            // Return a type ISLE can work with.
9649
2
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
9650
2
            AssemblerOutputs::RetXmm { inst, xmm }
9651
2
        }
9652
243
        fn x64_negb_m_raw(&mut self, rm8: &GprMem8) -> AssemblerOutputs {
9653
            // Convert ISLE types to assembler types.
9654
243
            let rm8 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
9655
9656
            // Build the instruction.
9657
243
            let inst = cranelift_assembler_x64::inst::negb_m::new(rm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
9658
243
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
9659
9660
            // Return a type ISLE can work with.
9661
243
            match rm8 {
9662
243
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
9663
243
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
9664
243
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
9665
                }
9666
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
9667
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
9668
                }
9669
            }
9670
243
        }
9671
292
        fn x64_negw_m_raw(&mut self, rm16: &GprMem16) -> AssemblerOutputs {
9672
            // Convert ISLE types to assembler types.
9673
292
            let rm16 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
9674
9675
            // Build the instruction.
9676
292
            let inst = cranelift_assembler_x64::inst::negw_m::new(rm16.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
9677
292
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
9678
9679
            // Return a type ISLE can work with.
9680
292
            match rm16 {
9681
292
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
9682
292
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
9683
292
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
9684
                }
9685
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
9686
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
9687
                }
9688
            }
9689
292
        }
9690
1.36k
        fn x64_negl_m_raw(&mut self, rm32: &GprMem32) -> AssemblerOutputs {
9691
            // Convert ISLE types to assembler types.
9692
1.36k
            let rm32 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
9693
9694
            // Build the instruction.
9695
1.36k
            let inst = cranelift_assembler_x64::inst::negl_m::new(rm32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
9696
1.36k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
9697
9698
            // Return a type ISLE can work with.
9699
1.36k
            match rm32 {
9700
1.36k
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
9701
1.36k
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
9702
1.36k
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
9703
                }
9704
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
9705
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
9706
                }
9707
            }
9708
1.36k
        }
9709
1.22k
        fn x64_negq_m_raw(&mut self, rm64: &GprMem64) -> AssemblerOutputs {
9710
            // Convert ISLE types to assembler types.
9711
1.22k
            let rm64 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
9712
9713
            // Build the instruction.
9714
1.22k
            let inst = cranelift_assembler_x64::inst::negq_m::new(rm64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
9715
1.22k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
9716
9717
            // Return a type ISLE can work with.
9718
1.22k
            match rm64 {
9719
1.22k
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
9720
1.22k
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
9721
1.22k
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
9722
                }
9723
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
9724
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
9725
                }
9726
            }
9727
1.22k
        }
9728
229
        fn x64_notb_m_raw(&mut self, rm8: &GprMem8) -> AssemblerOutputs {
9729
            // Convert ISLE types to assembler types.
9730
229
            let rm8 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
9731
9732
            // Build the instruction.
9733
229
            let inst = cranelift_assembler_x64::inst::notb_m::new(rm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
9734
229
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
9735
9736
            // Return a type ISLE can work with.
9737
229
            match rm8 {
9738
229
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
9739
229
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
9740
229
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
9741
                }
9742
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
9743
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
9744
                }
9745
            }
9746
229
        }
9747
310
        fn x64_notw_m_raw(&mut self, rm16: &GprMem16) -> AssemblerOutputs {
9748
            // Convert ISLE types to assembler types.
9749
310
            let rm16 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
9750
9751
            // Build the instruction.
9752
310
            let inst = cranelift_assembler_x64::inst::notw_m::new(rm16.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
9753
310
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
9754
9755
            // Return a type ISLE can work with.
9756
310
            match rm16 {
9757
310
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
9758
310
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
9759
310
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
9760
                }
9761
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
9762
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
9763
                }
9764
            }
9765
310
        }
9766
4.67k
        fn x64_notl_m_raw(&mut self, rm32: &GprMem32) -> AssemblerOutputs {
9767
            // Convert ISLE types to assembler types.
9768
4.67k
            let rm32 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
9769
9770
            // Build the instruction.
9771
4.67k
            let inst = cranelift_assembler_x64::inst::notl_m::new(rm32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
9772
4.67k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
9773
9774
            // Return a type ISLE can work with.
9775
4.67k
            match rm32 {
9776
4.67k
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
9777
4.67k
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
9778
4.67k
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
9779
                }
9780
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
9781
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
9782
                }
9783
            }
9784
4.67k
        }
9785
1.21k
        fn x64_notq_m_raw(&mut self, rm64: &GprMem64) -> AssemblerOutputs {
9786
            // Convert ISLE types to assembler types.
9787
1.21k
            let rm64 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
9788
9789
            // Build the instruction.
9790
1.21k
            let inst = cranelift_assembler_x64::inst::notq_m::new(rm64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
9791
1.21k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
9792
9793
            // Return a type ISLE can work with.
9794
1.21k
            match rm64 {
9795
1.21k
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
9796
1.21k
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
9797
1.21k
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
9798
                }
9799
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
9800
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
9801
                }
9802
            }
9803
1.21k
        }
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:144
9809
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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: &GprMem32) -> 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:131
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:144
9820
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:144
9830
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:144
9840
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:144
9850
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:144
9860
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:144
9870
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:144
9880
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:144
9890
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:144
9900
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:144
9910
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:131
9918
0
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
9922
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
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:131
9931
0
            let imm16 = cranelift_assembler_x64::Imm16::new(imm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
9935
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
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:131
9944
0
            let imm32 = cranelift_assembler_x64::Imm32::new(imm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
9948
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
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:131
9957
0
            let imm32 = cranelift_assembler_x64::Simm32::new(imm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
9961
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
9965
0
            AssemblerOutputs::RetGpr { inst, gpr }
9966
0
        }
9967
21
        fn x64_orb_mi_raw(&mut self, rm8: &GprMem8, imm8: u8) -> AssemblerOutputs {
9968
            // Convert ISLE types to assembler types.
9969
21
            let rm8 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
9970
21
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
9971
9972
            // Build the instruction.
9973
21
            let inst = cranelift_assembler_x64::inst::orb_mi::new(rm8.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
9974
21
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
9975
9976
            // Return a type ISLE can work with.
9977
21
            match rm8 {
9978
21
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
9979
21
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
9980
21
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
9981
                }
9982
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
9983
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
9984
                }
9985
            }
9986
21
        }
9987
706
        fn x64_orw_mi_raw(&mut self, rm16: &GprMem16, imm16: u16) -> AssemblerOutputs {
9988
            // Convert ISLE types to assembler types.
9989
706
            let rm16 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
9990
706
            let imm16 = cranelift_assembler_x64::Imm16::new(imm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
9991
9992
            // Build the instruction.
9993
706
            let inst = cranelift_assembler_x64::inst::orw_mi::new(rm16.clone(), imm16.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
9994
706
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
9995
9996
            // Return a type ISLE can work with.
9997
706
            match rm16 {
9998
706
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
9999
706
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
10000
706
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
10001
                }
10002
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
10003
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
10004
                }
10005
            }
10006
706
        }
10007
15.7k
        fn x64_orl_mi_raw(&mut self, rm32: &GprMem32, imm32: u32) -> AssemblerOutputs {
10008
            // Convert ISLE types to assembler types.
10009
15.7k
            let rm32 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
10010
15.7k
            let imm32 = cranelift_assembler_x64::Imm32::new(imm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
10011
10012
            // Build the instruction.
10013
15.7k
            let inst = cranelift_assembler_x64::inst::orl_mi::new(rm32.clone(), imm32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
10014
15.7k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
10015
10016
            // Return a type ISLE can work with.
10017
15.7k
            match rm32 {
10018
15.7k
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
10019
15.7k
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
10020
15.7k
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
10021
                }
10022
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
10023
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
10024
                }
10025
            }
10026
15.7k
        }
10027
180
        fn x64_orq_mi_sxl_raw(&mut self, rm64: &GprMem64, imm32: i32) -> AssemblerOutputs {
10028
            // Convert ISLE types to assembler types.
10029
180
            let rm64 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
10030
180
            let imm32 = cranelift_assembler_x64::Simm32::new(imm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
10031
10032
            // Build the instruction.
10033
180
            let inst = cranelift_assembler_x64::inst::orq_mi_sxl::new(rm64.clone(), imm32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
10034
180
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
10035
10036
            // Return a type ISLE can work with.
10037
180
            match rm64 {
10038
180
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
10039
180
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
10040
180
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
10041
                }
10042
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
10043
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
10044
                }
10045
            }
10046
180
        }
10047
12.3k
        fn x64_orl_mi_sxb_raw(&mut self, rm32: &GprMem32, imm8: i8) -> AssemblerOutputs {
10048
            // Convert ISLE types to assembler types.
10049
12.3k
            let rm32 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
10050
12.3k
            let imm8 = cranelift_assembler_x64::Simm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
10051
10052
            // Build the instruction.
10053
12.3k
            let inst = cranelift_assembler_x64::inst::orl_mi_sxb::new(rm32.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
10054
12.3k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
10055
10056
            // Return a type ISLE can work with.
10057
12.3k
            match rm32 {
10058
12.1k
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
10059
12.1k
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
10060
12.1k
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
10061
                }
10062
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
10063
138
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
10064
                }
10065
            }
10066
12.3k
        }
10067
127k
        fn x64_orq_mi_sxb_raw(&mut self, rm64: &GprMem64, imm8: i8) -> AssemblerOutputs {
10068
            // Convert ISLE types to assembler types.
10069
127k
            let rm64 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
10070
127k
            let imm8 = cranelift_assembler_x64::Simm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
10071
10072
            // Build the instruction.
10073
127k
            let inst = cranelift_assembler_x64::inst::orq_mi_sxb::new(rm64.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
10074
127k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
10075
10076
            // Return a type ISLE can work with.
10077
127k
            match rm64 {
10078
127k
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
10079
127k
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
10080
127k
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
10081
                }
10082
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
10083
2
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
10084
                }
10085
            }
10086
127k
        }
10087
0
        fn x64_orb_mr_raw(&mut self, rm8: &GprMem8, 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:131
10090
0
            let r8 = cranelift_assembler_x64::Gpr::new(r8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
10094
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:184
10100
0
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
10101
                }
10102
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
10103
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
10104
                }
10105
            }
10106
0
        }
10107
0
        fn x64_orw_mr_raw(&mut self, rm16: &GprMem16, 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:131
10110
0
            let r16 = cranelift_assembler_x64::Gpr::new(r16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
10114
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:184
10120
0
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
10121
                }
10122
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
10123
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
10124
                }
10125
            }
10126
0
        }
10127
2
        fn x64_orl_mr_raw(&mut self, rm32: &GprMem32, r32: Gpr) -> AssemblerOutputs {
10128
            // Convert ISLE types to assembler types.
10129
2
            let rm32 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
10130
2
            let r32 = cranelift_assembler_x64::Gpr::new(r32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
10131
10132
            // Build the instruction.
10133
2
            let inst = cranelift_assembler_x64::inst::orl_mr::new(rm32.clone(), r32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
10134
2
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
10135
10136
            // Return a type ISLE can work with.
10137
2
            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:184
10140
0
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
10141
                }
10142
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
10143
2
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
10144
                }
10145
            }
10146
2
        }
10147
5
        fn x64_orq_mr_raw(&mut self, rm64: &GprMem64, r64: Gpr) -> AssemblerOutputs {
10148
            // Convert ISLE types to assembler types.
10149
5
            let rm64 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
10150
5
            let r64 = cranelift_assembler_x64::Gpr::new(r64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
10151
10152
            // Build the instruction.
10153
5
            let inst = cranelift_assembler_x64::inst::orq_mr::new(rm64.clone(), r64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
10154
5
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
10155
10156
            // Return a type ISLE can work with.
10157
5
            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:184
10160
0
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
10161
                }
10162
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
10163
5
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
10164
                }
10165
            }
10166
5
        }
10167
0
        fn x64_orb_rm_raw(&mut self, r8: Gpr, rm8: &GprMem8) -> 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:131
10170
0
            let rm8 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
10174
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
10178
0
            AssemblerOutputs::RetGpr { inst, gpr }
10179
0
        }
10180
0
        fn x64_orw_rm_raw(&mut self, r16: Gpr, rm16: &GprMem16) -> 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:131
10183
0
            let rm16 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
10187
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
10191
0
            AssemblerOutputs::RetGpr { inst, gpr }
10192
0
        }
10193
228k
        fn x64_orl_rm_raw(&mut self, r32: Gpr, rm32: &GprMem32) -> AssemblerOutputs {
10194
            // Convert ISLE types to assembler types.
10195
228k
            let r32 = self.convert_gpr_to_assembler_read_write_gpr(r32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
10196
228k
            let rm32 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
10197
10198
            // Build the instruction.
10199
228k
            let inst = cranelift_assembler_x64::inst::orl_rm::new(r32.clone(), rm32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
10200
228k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
10201
10202
            // Return a type ISLE can work with.
10203
228k
            let gpr = r32.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
10204
228k
            AssemblerOutputs::RetGpr { inst, gpr }
10205
228k
        }
10206
70.3k
        fn x64_orq_rm_raw(&mut self, r64: Gpr, rm64: &GprMem64) -> AssemblerOutputs {
10207
            // Convert ISLE types to assembler types.
10208
70.3k
            let r64 = self.convert_gpr_to_assembler_read_write_gpr(r64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
10209
70.3k
            let rm64 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
10210
10211
            // Build the instruction.
10212
70.3k
            let inst = cranelift_assembler_x64::inst::orq_rm::new(r64.clone(), rm64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
10213
70.3k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
10214
10215
            // Return a type ISLE can work with.
10216
70.3k
            let gpr = r64.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
10217
70.3k
            AssemblerOutputs::RetGpr { inst, gpr }
10218
70.3k
        }
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:131
10222
0
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
10226
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:131
10234
0
            let imm16 = cranelift_assembler_x64::Imm16::new(imm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
10238
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:131
10246
0
            let imm32 = cranelift_assembler_x64::Imm32::new(imm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
10250
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:131
10258
0
            let imm32 = cranelift_assembler_x64::Simm32::new(imm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
10262
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:131
10270
0
            let imm8 = cranelift_assembler_x64::Simm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
10274
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:131
10282
0
            let imm8 = cranelift_assembler_x64::Simm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
10286
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
10287
10288
            // Return a type ISLE can work with.
10289
0
            AssemblerOutputs::SideEffect { inst }
10290
0
        }
10291
11
        fn x64_lock_orb_mr_raw(&mut self, m8: &SyntheticAmode, r8: Gpr) -> AssemblerOutputs {
10292
            // Convert ISLE types to assembler types.
10293
11
            let m8 = self.convert_amode_to_assembler_amode(m8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
10294
11
            let r8 = cranelift_assembler_x64::Gpr::new(r8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
10295
10296
            // Build the instruction.
10297
11
            let inst = cranelift_assembler_x64::inst::lock_orb_mr::new(m8.clone(), r8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
10298
11
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
10299
10300
            // Return a type ISLE can work with.
10301
11
            AssemblerOutputs::SideEffect { inst }
10302
11
        }
10303
19
        fn x64_lock_orw_mr_raw(&mut self, m16: &SyntheticAmode, r16: Gpr) -> AssemblerOutputs {
10304
            // Convert ISLE types to assembler types.
10305
19
            let m16 = self.convert_amode_to_assembler_amode(m16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
10306
19
            let r16 = cranelift_assembler_x64::Gpr::new(r16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
10307
10308
            // Build the instruction.
10309
19
            let inst = cranelift_assembler_x64::inst::lock_orw_mr::new(m16.clone(), r16.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
10310
19
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
10311
10312
            // Return a type ISLE can work with.
10313
19
            AssemblerOutputs::SideEffect { inst }
10314
19
        }
10315
16
        fn x64_lock_orl_mr_raw(&mut self, m32: &SyntheticAmode, r32: Gpr) -> AssemblerOutputs {
10316
            // Convert ISLE types to assembler types.
10317
16
            let m32 = self.convert_amode_to_assembler_amode(m32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
10318
16
            let r32 = cranelift_assembler_x64::Gpr::new(r32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
10319
10320
            // Build the instruction.
10321
16
            let inst = cranelift_assembler_x64::inst::lock_orl_mr::new(m32.clone(), r32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
10322
16
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
10323
10324
            // Return a type ISLE can work with.
10325
16
            AssemblerOutputs::SideEffect { inst }
10326
16
        }
10327
10
        fn x64_lock_orq_mr_raw(&mut self, m64: &SyntheticAmode, r64: Gpr) -> AssemblerOutputs {
10328
            // Convert ISLE types to assembler types.
10329
10
            let m64 = self.convert_amode_to_assembler_amode(m64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
10330
10
            let r64 = cranelift_assembler_x64::Gpr::new(r64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
10331
10332
            // Build the instruction.
10333
10
            let inst = cranelift_assembler_x64::inst::lock_orq_mr::new(m64.clone(), r64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
10334
10
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
10335
10336
            // Return a type ISLE can work with.
10337
10
            AssemblerOutputs::SideEffect { inst }
10338
10
        }
10339
2.69k
        fn x64_orps_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned128) -> AssemblerOutputs {
10340
            // Convert ISLE types to assembler types.
10341
2.69k
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
10342
2.69k
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
10343
10344
            // Build the instruction.
10345
2.69k
            let inst = cranelift_assembler_x64::inst::orps_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
10346
2.69k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
10347
10348
            // Return a type ISLE can work with.
10349
2.69k
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
10350
2.69k
            AssemblerOutputs::RetXmm { inst, xmm }
10351
2.69k
        }
10352
4.04k
        fn x64_orpd_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned128) -> AssemblerOutputs {
10353
            // Convert ISLE types to assembler types.
10354
4.04k
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
10355
4.04k
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
10356
10357
            // Build the instruction.
10358
4.04k
            let inst = cranelift_assembler_x64::inst::orpd_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
10359
4.04k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
10360
10361
            // Return a type ISLE can work with.
10362
4.04k
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
10363
4.04k
            AssemblerOutputs::RetXmm { inst, xmm }
10364
4.04k
        }
10365
3.62k
        fn x64_por_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned128) -> AssemblerOutputs {
10366
            // Convert ISLE types to assembler types.
10367
3.62k
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
10368
3.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:131
10369
10370
            // Build the instruction.
10371
3.62k
            let inst = cranelift_assembler_x64::inst::por_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
10372
3.62k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
10373
10374
            // Return a type ISLE can work with.
10375
3.62k
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
10376
3.62k
            AssemblerOutputs::RetXmm { inst, xmm }
10377
3.62k
        }
10378
4.41k
        fn x64_vorps_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem128) -> AssemblerOutputs {
10379
            // Convert ISLE types to assembler types.
10380
4.41k
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
10381
4.41k
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
10382
4.41k
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
10383
10384
            // Build the instruction.
10385
4.41k
            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:144
10386
4.41k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
10387
10388
            // Return a type ISLE can work with.
10389
4.41k
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
10390
4.41k
            AssemblerOutputs::RetXmm { inst, xmm }
10391
4.41k
        }
10392
3.21k
        fn x64_vorpd_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem128) -> AssemblerOutputs {
10393
            // Convert ISLE types to assembler types.
10394
3.21k
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
10395
3.21k
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
10396
3.21k
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
10397
10398
            // Build the instruction.
10399
3.21k
            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:144
10400
3.21k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
10401
10402
            // Return a type ISLE can work with.
10403
3.21k
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
10404
3.21k
            AssemblerOutputs::RetXmm { inst, xmm }
10405
3.21k
        }
10406
1.27k
        fn x64_vpor_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem128) -> AssemblerOutputs {
10407
            // Convert ISLE types to assembler types.
10408
1.27k
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
10409
1.27k
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
10410
1.27k
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
10411
10412
            // Build the instruction.
10413
1.27k
            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:144
10414
1.27k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
10415
10416
            // Return a type ISLE can work with.
10417
1.27k
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
10418
1.27k
            AssemblerOutputs::RetXmm { inst, xmm }
10419
1.27k
        }
10420
680
        fn x64_packsswb_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned128) -> AssemblerOutputs {
10421
            // Convert ISLE types to assembler types.
10422
680
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
10423
680
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
10424
10425
            // Build the instruction.
10426
680
            let inst = cranelift_assembler_x64::inst::packsswb_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
10427
680
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
10428
10429
            // Return a type ISLE can work with.
10430
680
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
10431
680
            AssemblerOutputs::RetXmm { inst, xmm }
10432
680
        }
10433
237
        fn x64_packssdw_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned128) -> AssemblerOutputs {
10434
            // Convert ISLE types to assembler types.
10435
237
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
10436
237
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
10437
10438
            // Build the instruction.
10439
237
            let inst = cranelift_assembler_x64::inst::packssdw_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
10440
237
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
10441
10442
            // Return a type ISLE can work with.
10443
237
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
10444
237
            AssemblerOutputs::RetXmm { inst, xmm }
10445
237
        }
10446
1.82k
        fn x64_vpacksswb_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem128) -> AssemblerOutputs {
10447
            // Convert ISLE types to assembler types.
10448
1.82k
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
10449
1.82k
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
10450
1.82k
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
10451
10452
            // Build the instruction.
10453
1.82k
            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:144
10454
1.82k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
10455
10456
            // Return a type ISLE can work with.
10457
1.82k
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
10458
1.82k
            AssemblerOutputs::RetXmm { inst, xmm }
10459
1.82k
        }
10460
245
        fn x64_vpackssdw_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem128) -> AssemblerOutputs {
10461
            // Convert ISLE types to assembler types.
10462
245
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
10463
245
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
10464
245
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
10465
10466
            // Build the instruction.
10467
245
            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:144
10468
245
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
10469
10470
            // Return a type ISLE can work with.
10471
245
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
10472
245
            AssemblerOutputs::RetXmm { inst, xmm }
10473
245
        }
10474
10
        fn x64_packuswb_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned128) -> AssemblerOutputs {
10475
            // Convert ISLE types to assembler types.
10476
10
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
10477
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:131
10478
10479
            // Build the instruction.
10480
10
            let inst = cranelift_assembler_x64::inst::packuswb_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
10481
10
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
10482
10483
            // Return a type ISLE can work with.
10484
10
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
10485
10
            AssemblerOutputs::RetXmm { inst, xmm }
10486
10
        }
10487
7
        fn x64_packusdw_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned128) -> AssemblerOutputs {
10488
            // Convert ISLE types to assembler types.
10489
7
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
10490
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:131
10491
10492
            // Build the instruction.
10493
7
            let inst = cranelift_assembler_x64::inst::packusdw_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
10494
7
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
10495
10496
            // Return a type ISLE can work with.
10497
7
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
10498
7
            AssemblerOutputs::RetXmm { inst, xmm }
10499
7
        }
10500
35
        fn x64_vpackuswb_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem128) -> AssemblerOutputs {
10501
            // Convert ISLE types to assembler types.
10502
35
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
10503
35
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
10504
35
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
10505
10506
            // Build the instruction.
10507
35
            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:144
10508
35
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
10509
10510
            // Return a type ISLE can work with.
10511
35
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
10512
35
            AssemblerOutputs::RetXmm { inst, xmm }
10513
35
        }
10514
46
        fn x64_vpackusdw_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem128) -> AssemblerOutputs {
10515
            // Convert ISLE types to assembler types.
10516
46
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
10517
46
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
10518
46
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
10519
10520
            // Build the instruction.
10521
46
            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:144
10522
46
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
10523
10524
            // Return a type ISLE can work with.
10525
46
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
10526
46
            AssemblerOutputs::RetXmm { inst, xmm }
10527
46
        }
10528
15
        fn x64_pmaddwd_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned128) -> AssemblerOutputs {
10529
            // Convert ISLE types to assembler types.
10530
15
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
10531
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:131
10532
10533
            // Build the instruction.
10534
15
            let inst = cranelift_assembler_x64::inst::pmaddwd_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
10535
15
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
10536
10537
            // Return a type ISLE can work with.
10538
15
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
10539
15
            AssemblerOutputs::RetXmm { inst, xmm }
10540
15
        }
10541
2.24k
        fn x64_vpmaddwd_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem128) -> AssemblerOutputs {
10542
            // Convert ISLE types to assembler types.
10543
2.24k
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
10544
2.24k
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
10545
2.24k
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
10546
10547
            // Build the instruction.
10548
2.24k
            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:144
10549
2.24k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
10550
10551
            // Return a type ISLE can work with.
10552
2.24k
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
10553
2.24k
            AssemblerOutputs::RetXmm { inst, xmm }
10554
2.24k
        }
10555
37
        fn x64_pmaddubsw_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned128) -> AssemblerOutputs {
10556
            // Convert ISLE types to assembler types.
10557
37
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
10558
37
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
10559
10560
            // Build the instruction.
10561
37
            let inst = cranelift_assembler_x64::inst::pmaddubsw_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
10562
37
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
10563
10564
            // Return a type ISLE can work with.
10565
37
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
10566
37
            AssemblerOutputs::RetXmm { inst, xmm }
10567
37
        }
10568
1.96k
        fn x64_vpmaddubsw_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem128) -> AssemblerOutputs {
10569
            // Convert ISLE types to assembler types.
10570
1.96k
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
10571
1.96k
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
10572
1.96k
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
10573
10574
            // Build the instruction.
10575
1.96k
            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:144
10576
1.96k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
10577
10578
            // Return a type ISLE can work with.
10579
1.96k
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
10580
1.96k
            AssemblerOutputs::RetXmm { inst, xmm }
10581
1.96k
        }
10582
0
        fn x64_rcpps_rm_raw(&mut self, xmm_m128: &XmmMemAligned128) -> 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:131
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:131
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:144
10589
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
10593
0
            AssemblerOutputs::RetXmm { inst, xmm }
10594
0
        }
10595
0
        fn x64_rcpss_rm_raw(&mut self, xmm_m32: &XmmMem32) -> 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:131
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:131
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:144
10602
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
10606
0
            AssemblerOutputs::RetXmm { inst, xmm }
10607
0
        }
10608
0
        fn x64_rsqrtps_rm_raw(&mut self, xmm_m128: &XmmMemAligned128) -> 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:131
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:131
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:144
10615
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
10619
0
            AssemblerOutputs::RetXmm { inst, xmm }
10620
0
        }
10621
0
        fn x64_rsqrtss_rm_raw(&mut self, xmm_m32: &XmmMem32) -> 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:131
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:131
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:144
10628
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
10632
0
            AssemblerOutputs::RetXmm { inst, xmm }
10633
0
        }
10634
0
        fn x64_vrcpps_rm_raw(&mut self, xmm_m128: &XmmMem128) -> 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:131
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:131
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:144
10641
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
10645
0
            AssemblerOutputs::RetXmm { inst, xmm }
10646
0
        }
10647
0
        fn x64_vrcpss_rvm_raw(&mut self, xmm2: Xmm, xmm_m32: &XmmMem32) -> 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:131
10650
0
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:131
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:144
10655
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
10659
0
            AssemblerOutputs::RetXmm { inst, xmm }
10660
0
        }
10661
0
        fn x64_vrsqrtps_rm_raw(&mut self, xmm_m128: &XmmMem128) -> 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:131
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:131
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:144
10668
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
10672
0
            AssemblerOutputs::RetXmm { inst, xmm }
10673
0
        }
10674
0
        fn x64_vrsqrtss_rvm_raw(&mut self, xmm2: Xmm, xmm_m32: &XmmMem32) -> 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:131
10677
0
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:131
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:144
10682
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
10686
0
            AssemblerOutputs::RetXmm { inst, xmm }
10687
0
        }
10688
271
        fn x64_roundpd_rmi_raw(&mut self, xmm_m128: &XmmMemAligned128, imm8: u8) -> AssemblerOutputs {
10689
            // Convert ISLE types to assembler types.
10690
271
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
10691
271
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
10692
271
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
10693
10694
            // Build the instruction.
10695
271
            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:144
10696
271
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
10697
10698
            // Return a type ISLE can work with.
10699
271
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
10700
271
            AssemblerOutputs::RetXmm { inst, xmm }
10701
271
        }
10702
207
        fn x64_roundps_rmi_raw(&mut self, xmm_m128: &XmmMemAligned128, imm8: u8) -> AssemblerOutputs {
10703
            // Convert ISLE types to assembler types.
10704
207
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
10705
207
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
10706
207
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
10707
10708
            // Build the instruction.
10709
207
            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:144
10710
207
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
10711
10712
            // Return a type ISLE can work with.
10713
207
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
10714
207
            AssemblerOutputs::RetXmm { inst, xmm }
10715
207
        }
10716
1.08k
        fn x64_roundsd_rmi_raw(&mut self, xmm_m64: &XmmMem64, imm8: u8) -> AssemblerOutputs {
10717
            // Convert ISLE types to assembler types.
10718
1.08k
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
10719
1.08k
            let xmm_m64 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
10720
1.08k
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
10721
10722
            // Build the instruction.
10723
1.08k
            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:144
10724
1.08k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
10725
10726
            // Return a type ISLE can work with.
10727
1.08k
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
10728
1.08k
            AssemblerOutputs::RetXmm { inst, xmm }
10729
1.08k
        }
10730
1.28k
        fn x64_roundss_rmi_raw(&mut self, xmm_m32: &XmmMem32, imm8: u8) -> AssemblerOutputs {
10731
            // Convert ISLE types to assembler types.
10732
1.28k
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
10733
1.28k
            let xmm_m32 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
10734
1.28k
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
10735
10736
            // Build the instruction.
10737
1.28k
            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:144
10738
1.28k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
10739
10740
            // Return a type ISLE can work with.
10741
1.28k
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
10742
1.28k
            AssemblerOutputs::RetXmm { inst, xmm }
10743
1.28k
        }
10744
6.44k
        fn x64_vroundpd_rmi_raw(&mut self, xmm_m128: &XmmMem128, imm8: u8) -> AssemblerOutputs {
10745
            // Convert ISLE types to assembler types.
10746
6.44k
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
10747
6.44k
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
10748
6.44k
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
10749
10750
            // Build the instruction.
10751
6.44k
            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:144
10752
6.44k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
10753
10754
            // Return a type ISLE can work with.
10755
6.44k
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
10756
6.44k
            AssemblerOutputs::RetXmm { inst, xmm }
10757
6.44k
        }
10758
6.80k
        fn x64_vroundps_rmi_raw(&mut self, xmm_m128: &XmmMem128, imm8: u8) -> AssemblerOutputs {
10759
            // Convert ISLE types to assembler types.
10760
6.80k
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
10761
6.80k
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
10762
6.80k
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
10763
10764
            // Build the instruction.
10765
6.80k
            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:144
10766
6.80k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
10767
10768
            // Return a type ISLE can work with.
10769
6.80k
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
10770
6.80k
            AssemblerOutputs::RetXmm { inst, xmm }
10771
6.80k
        }
10772
101k
        fn x64_vroundsd_rvmi_raw(&mut self, xmm2: Xmm, xmm_m64: &XmmMem64, imm8: u8) -> AssemblerOutputs {
10773
            // Convert ISLE types to assembler types.
10774
101k
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
10775
101k
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
10776
101k
            let xmm_m64 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
10777
101k
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
10778
10779
            // Build the instruction.
10780
101k
            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:144
10781
101k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
10782
10783
            // Return a type ISLE can work with.
10784
101k
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
10785
101k
            AssemblerOutputs::RetXmm { inst, xmm }
10786
101k
        }
10787
89.5k
        fn x64_vroundss_rvmi_raw(&mut self, xmm2: Xmm, xmm_m32: &XmmMem32, imm8: u8) -> AssemblerOutputs {
10788
            // Convert ISLE types to assembler types.
10789
89.5k
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
10790
89.5k
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
10791
89.5k
            let xmm_m32 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
10792
89.5k
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
10793
10794
            // Build the instruction.
10795
89.5k
            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:144
10796
89.5k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
10797
10798
            // Return a type ISLE can work with.
10799
89.5k
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
10800
89.5k
            AssemblerOutputs::RetXmm { inst, xmm }
10801
89.5k
        }
10802
155k
        fn x64_seta_m_raw(&mut self, rm8: &GprMem8) -> AssemblerOutputs {
10803
            // Convert ISLE types to assembler types.
10804
155k
            let rm8 = self.convert_gpr_mem_to_assembler_write_gpr_mem(rm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
10805
10806
            // Build the instruction.
10807
155k
            let inst = cranelift_assembler_x64::inst::seta_m::new(rm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
10808
155k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
10809
10810
            // Return a type ISLE can work with.
10811
155k
            match rm8 {
10812
155k
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
10813
155k
                    let gpr = reg.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
10814
155k
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
10815
                }
10816
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
10817
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
10818
                }
10819
            }
10820
155k
        }
10821
74.5k
        fn x64_setae_m_raw(&mut self, rm8: &GprMem8) -> AssemblerOutputs {
10822
            // Convert ISLE types to assembler types.
10823
74.5k
            let rm8 = self.convert_gpr_mem_to_assembler_write_gpr_mem(rm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
10824
10825
            // Build the instruction.
10826
74.5k
            let inst = cranelift_assembler_x64::inst::setae_m::new(rm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
10827
74.5k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
10828
10829
            // Return a type ISLE can work with.
10830
74.5k
            match rm8 {
10831
74.5k
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
10832
74.5k
                    let gpr = reg.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
10833
74.5k
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
10834
                }
10835
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
10836
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
10837
                }
10838
            }
10839
74.5k
        }
10840
141k
        fn x64_setb_m_raw(&mut self, rm8: &GprMem8) -> AssemblerOutputs {
10841
            // Convert ISLE types to assembler types.
10842
141k
            let rm8 = self.convert_gpr_mem_to_assembler_write_gpr_mem(rm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
10843
10844
            // Build the instruction.
10845
141k
            let inst = cranelift_assembler_x64::inst::setb_m::new(rm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
10846
141k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
10847
10848
            // Return a type ISLE can work with.
10849
141k
            match rm8 {
10850
141k
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
10851
141k
                    let gpr = reg.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
10852
141k
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
10853
                }
10854
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
10855
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
10856
                }
10857
            }
10858
141k
        }
10859
6.64k
        fn x64_setbe_m_raw(&mut self, rm8: &GprMem8) -> AssemblerOutputs {
10860
            // Convert ISLE types to assembler types.
10861
6.64k
            let rm8 = self.convert_gpr_mem_to_assembler_write_gpr_mem(rm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
10862
10863
            // Build the instruction.
10864
6.64k
            let inst = cranelift_assembler_x64::inst::setbe_m::new(rm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
10865
6.64k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
10866
10867
            // Return a type ISLE can work with.
10868
6.64k
            match rm8 {
10869
6.64k
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
10870
6.64k
                    let gpr = reg.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
10871
6.64k
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
10872
                }
10873
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
10874
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
10875
                }
10876
            }
10877
6.64k
        }
10878
341k
        fn x64_sete_m_raw(&mut self, rm8: &GprMem8) -> AssemblerOutputs {
10879
            // Convert ISLE types to assembler types.
10880
341k
            let rm8 = self.convert_gpr_mem_to_assembler_write_gpr_mem(rm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
10881
10882
            // Build the instruction.
10883
341k
            let inst = cranelift_assembler_x64::inst::sete_m::new(rm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
10884
341k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
10885
10886
            // Return a type ISLE can work with.
10887
341k
            match rm8 {
10888
341k
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
10889
341k
                    let gpr = reg.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
10890
341k
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
10891
                }
10892
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
10893
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
10894
                }
10895
            }
10896
341k
        }
10897
5.26k
        fn x64_setg_m_raw(&mut self, rm8: &GprMem8) -> AssemblerOutputs {
10898
            // Convert ISLE types to assembler types.
10899
5.26k
            let rm8 = self.convert_gpr_mem_to_assembler_write_gpr_mem(rm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
10900
10901
            // Build the instruction.
10902
5.26k
            let inst = cranelift_assembler_x64::inst::setg_m::new(rm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
10903
5.26k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
10904
10905
            // Return a type ISLE can work with.
10906
5.26k
            match rm8 {
10907
5.26k
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
10908
5.26k
                    let gpr = reg.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
10909
5.26k
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
10910
                }
10911
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
10912
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
10913
                }
10914
            }
10915
5.26k
        }
10916
9.40k
        fn x64_setge_m_raw(&mut self, rm8: &GprMem8) -> AssemblerOutputs {
10917
            // Convert ISLE types to assembler types.
10918
9.40k
            let rm8 = self.convert_gpr_mem_to_assembler_write_gpr_mem(rm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
10919
10920
            // Build the instruction.
10921
9.40k
            let inst = cranelift_assembler_x64::inst::setge_m::new(rm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
10922
9.40k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
10923
10924
            // Return a type ISLE can work with.
10925
9.40k
            match rm8 {
10926
9.40k
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
10927
9.40k
                    let gpr = reg.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
10928
9.40k
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
10929
                }
10930
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
10931
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
10932
                }
10933
            }
10934
9.40k
        }
10935
4.56k
        fn x64_setl_m_raw(&mut self, rm8: &GprMem8) -> AssemblerOutputs {
10936
            // Convert ISLE types to assembler types.
10937
4.56k
            let rm8 = self.convert_gpr_mem_to_assembler_write_gpr_mem(rm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
10938
10939
            // Build the instruction.
10940
4.56k
            let inst = cranelift_assembler_x64::inst::setl_m::new(rm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
10941
4.56k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
10942
10943
            // Return a type ISLE can work with.
10944
4.56k
            match rm8 {
10945
4.56k
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
10946
4.56k
                    let gpr = reg.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
10947
4.56k
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
10948
                }
10949
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
10950
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
10951
                }
10952
            }
10953
4.56k
        }
10954
7.34k
        fn x64_setle_m_raw(&mut self, rm8: &GprMem8) -> AssemblerOutputs {
10955
            // Convert ISLE types to assembler types.
10956
7.34k
            let rm8 = self.convert_gpr_mem_to_assembler_write_gpr_mem(rm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
10957
10958
            // Build the instruction.
10959
7.34k
            let inst = cranelift_assembler_x64::inst::setle_m::new(rm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
10960
7.34k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
10961
10962
            // Return a type ISLE can work with.
10963
7.34k
            match rm8 {
10964
7.34k
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
10965
7.34k
                    let gpr = reg.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
10966
7.34k
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
10967
                }
10968
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
10969
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
10970
                }
10971
            }
10972
7.34k
        }
10973
83.1k
        fn x64_setne_m_raw(&mut self, rm8: &GprMem8) -> AssemblerOutputs {
10974
            // Convert ISLE types to assembler types.
10975
83.1k
            let rm8 = self.convert_gpr_mem_to_assembler_write_gpr_mem(rm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
10976
10977
            // Build the instruction.
10978
83.1k
            let inst = cranelift_assembler_x64::inst::setne_m::new(rm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
10979
83.1k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
10980
10981
            // Return a type ISLE can work with.
10982
83.1k
            match rm8 {
10983
83.1k
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
10984
83.1k
                    let gpr = reg.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
10985
83.1k
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
10986
                }
10987
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
10988
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
10989
                }
10990
            }
10991
83.1k
        }
10992
0
        fn x64_setno_m_raw(&mut self, rm8: &GprMem8) -> 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:131
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:144
10998
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:184
11004
0
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
11005
                }
11006
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
11007
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
11008
                }
11009
            }
11010
0
        }
11011
123k
        fn x64_setnp_m_raw(&mut self, rm8: &GprMem8) -> AssemblerOutputs {
11012
            // Convert ISLE types to assembler types.
11013
123k
            let rm8 = self.convert_gpr_mem_to_assembler_write_gpr_mem(rm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
11014
11015
            // Build the instruction.
11016
123k
            let inst = cranelift_assembler_x64::inst::setnp_m::new(rm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
11017
123k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
11018
11019
            // Return a type ISLE can work with.
11020
123k
            match rm8 {
11021
123k
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
11022
123k
                    let gpr = reg.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
11023
123k
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
11024
                }
11025
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
11026
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
11027
                }
11028
            }
11029
123k
        }
11030
0
        fn x64_setns_m_raw(&mut self, rm8: &GprMem8) -> 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:131
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:144
11036
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:184
11042
0
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
11043
                }
11044
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
11045
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
11046
                }
11047
            }
11048
0
        }
11049
13.4k
        fn x64_seto_m_raw(&mut self, rm8: &GprMem8) -> AssemblerOutputs {
11050
            // Convert ISLE types to assembler types.
11051
13.4k
            let rm8 = self.convert_gpr_mem_to_assembler_write_gpr_mem(rm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
11052
11053
            // Build the instruction.
11054
13.4k
            let inst = cranelift_assembler_x64::inst::seto_m::new(rm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
11055
13.4k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
11056
11057
            // Return a type ISLE can work with.
11058
13.4k
            match rm8 {
11059
13.4k
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
11060
13.4k
                    let gpr = reg.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
11061
13.4k
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
11062
                }
11063
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
11064
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
11065
                }
11066
            }
11067
13.4k
        }
11068
71.6k
        fn x64_setp_m_raw(&mut self, rm8: &GprMem8) -> AssemblerOutputs {
11069
            // Convert ISLE types to assembler types.
11070
71.6k
            let rm8 = self.convert_gpr_mem_to_assembler_write_gpr_mem(rm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
11071
11072
            // Build the instruction.
11073
71.6k
            let inst = cranelift_assembler_x64::inst::setp_m::new(rm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
11074
71.6k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
11075
11076
            // Return a type ISLE can work with.
11077
71.6k
            match rm8 {
11078
71.6k
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
11079
71.6k
                    let gpr = reg.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
11080
71.6k
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
11081
                }
11082
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
11083
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
11084
                }
11085
            }
11086
71.6k
        }
11087
0
        fn x64_sets_m_raw(&mut self, rm8: &GprMem8) -> 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:131
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:144
11093
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:184
11099
0
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
11100
                }
11101
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
11102
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
11103
                }
11104
            }
11105
0
        }
11106
1.17k
        fn x64_sarb_mc_raw(&mut self, rm8: &GprMem8, cl: Gpr) -> AssemblerOutputs {
11107
            // Convert ISLE types to assembler types.
11108
1.17k
            let rm8 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
11109
1.17k
            let cl = cranelift_assembler_x64::Fixed(cl); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
11110
11111
            // Build the instruction.
11112
1.17k
            let inst = cranelift_assembler_x64::inst::sarb_mc::new(rm8.clone(), cl.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
11113
1.17k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
11114
11115
            // Return a type ISLE can work with.
11116
1.17k
            match rm8 {
11117
1.17k
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
11118
1.17k
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
11119
1.17k
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
11120
                }
11121
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
11122
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
11123
                }
11124
            }
11125
1.17k
        }
11126
55
        fn x64_sarb_mi_raw(&mut self, rm8: &GprMem8, imm8: u8) -> AssemblerOutputs {
11127
            // Convert ISLE types to assembler types.
11128
55
            let rm8 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
11129
55
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
11130
11131
            // Build the instruction.
11132
55
            let inst = cranelift_assembler_x64::inst::sarb_mi::new(rm8.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
11133
55
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
11134
11135
            // Return a type ISLE can work with.
11136
55
            match rm8 {
11137
55
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
11138
55
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
11139
55
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
11140
                }
11141
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
11142
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
11143
                }
11144
            }
11145
55
        }
11146
17
        fn x64_sarb_m1_raw(&mut self, rm8: &GprMem8) -> AssemblerOutputs {
11147
            // Convert ISLE types to assembler types.
11148
17
            let rm8 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
11149
11150
            // Build the instruction.
11151
17
            let inst = cranelift_assembler_x64::inst::sarb_m1::new(rm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
11152
17
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
11153
11154
            // Return a type ISLE can work with.
11155
17
            match rm8 {
11156
17
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
11157
17
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
11158
17
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
11159
                }
11160
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
11161
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
11162
                }
11163
            }
11164
17
        }
11165
2.24k
        fn x64_sarw_mc_raw(&mut self, rm16: &GprMem16, cl: Gpr) -> AssemblerOutputs {
11166
            // Convert ISLE types to assembler types.
11167
2.24k
            let rm16 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
11168
2.24k
            let cl = cranelift_assembler_x64::Fixed(cl); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
11169
11170
            // Build the instruction.
11171
2.24k
            let inst = cranelift_assembler_x64::inst::sarw_mc::new(rm16.clone(), cl.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
11172
2.24k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
11173
11174
            // Return a type ISLE can work with.
11175
2.24k
            match rm16 {
11176
2.24k
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
11177
2.24k
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
11178
2.24k
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
11179
                }
11180
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
11181
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
11182
                }
11183
            }
11184
2.24k
        }
11185
614
        fn x64_sarw_mi_raw(&mut self, rm16: &GprMem16, imm8: u8) -> AssemblerOutputs {
11186
            // Convert ISLE types to assembler types.
11187
614
            let rm16 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
11188
614
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
11189
11190
            // Build the instruction.
11191
614
            let inst = cranelift_assembler_x64::inst::sarw_mi::new(rm16.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
11192
614
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
11193
11194
            // Return a type ISLE can work with.
11195
614
            match rm16 {
11196
614
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
11197
614
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
11198
614
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
11199
                }
11200
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
11201
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
11202
                }
11203
            }
11204
614
        }
11205
17
        fn x64_sarw_m1_raw(&mut self, rm16: &GprMem16) -> AssemblerOutputs {
11206
            // Convert ISLE types to assembler types.
11207
17
            let rm16 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
11208
11209
            // Build the instruction.
11210
17
            let inst = cranelift_assembler_x64::inst::sarw_m1::new(rm16.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
11211
17
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
11212
11213
            // Return a type ISLE can work with.
11214
17
            match rm16 {
11215
17
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
11216
17
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
11217
17
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
11218
                }
11219
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
11220
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
11221
                }
11222
            }
11223
17
        }
11224
502
        fn x64_sarl_mc_raw(&mut self, rm32: &GprMem32, cl: Gpr) -> AssemblerOutputs {
11225
            // Convert ISLE types to assembler types.
11226
502
            let rm32 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
11227
502
            let cl = cranelift_assembler_x64::Fixed(cl); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
11228
11229
            // Build the instruction.
11230
502
            let inst = cranelift_assembler_x64::inst::sarl_mc::new(rm32.clone(), cl.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
11231
502
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
11232
11233
            // Return a type ISLE can work with.
11234
502
            match rm32 {
11235
502
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
11236
502
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
11237
502
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
11238
                }
11239
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
11240
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
11241
                }
11242
            }
11243
502
        }
11244
3.10k
        fn x64_sarl_mi_raw(&mut self, rm32: &GprMem32, imm8: u8) -> AssemblerOutputs {
11245
            // Convert ISLE types to assembler types.
11246
3.10k
            let rm32 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
11247
3.10k
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
11248
11249
            // Build the instruction.
11250
3.10k
            let inst = cranelift_assembler_x64::inst::sarl_mi::new(rm32.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
11251
3.10k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
11252
11253
            // Return a type ISLE can work with.
11254
3.10k
            match rm32 {
11255
3.10k
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
11256
3.10k
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
11257
3.10k
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
11258
                }
11259
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
11260
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
11261
                }
11262
            }
11263
3.10k
        }
11264
165
        fn x64_sarl_m1_raw(&mut self, rm32: &GprMem32) -> AssemblerOutputs {
11265
            // Convert ISLE types to assembler types.
11266
165
            let rm32 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
11267
11268
            // Build the instruction.
11269
165
            let inst = cranelift_assembler_x64::inst::sarl_m1::new(rm32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
11270
165
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
11271
11272
            // Return a type ISLE can work with.
11273
165
            match rm32 {
11274
165
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
11275
165
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
11276
165
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
11277
                }
11278
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
11279
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
11280
                }
11281
            }
11282
165
        }
11283
759
        fn x64_sarq_mc_raw(&mut self, rm64: &GprMem64, cl: Gpr) -> AssemblerOutputs {
11284
            // Convert ISLE types to assembler types.
11285
759
            let rm64 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
11286
759
            let cl = cranelift_assembler_x64::Fixed(cl); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
11287
11288
            // Build the instruction.
11289
759
            let inst = cranelift_assembler_x64::inst::sarq_mc::new(rm64.clone(), cl.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
11290
759
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
11291
11292
            // Return a type ISLE can work with.
11293
759
            match rm64 {
11294
759
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
11295
759
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
11296
759
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
11297
                }
11298
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
11299
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
11300
                }
11301
            }
11302
759
        }
11303
23.2k
        fn x64_sarq_mi_raw(&mut self, rm64: &GprMem64, 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:131
11306
23.2k
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
11310
23.2k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:184
11316
23.2k
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
11317
                }
11318
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
11319
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
11320
                }
11321
            }
11322
23.2k
        }
11323
99
        fn x64_sarq_m1_raw(&mut self, rm64: &GprMem64) -> AssemblerOutputs {
11324
            // Convert ISLE types to assembler types.
11325
99
            let rm64 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
11326
11327
            // Build the instruction.
11328
99
            let inst = cranelift_assembler_x64::inst::sarq_m1::new(rm64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
11329
99
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
11330
11331
            // Return a type ISLE can work with.
11332
99
            match rm64 {
11333
99
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
11334
99
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
11335
99
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
11336
                }
11337
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
11338
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
11339
                }
11340
            }
11341
99
        }
11342
654
        fn x64_shlb_mc_raw(&mut self, rm8: &GprMem8, cl: Gpr) -> AssemblerOutputs {
11343
            // Convert ISLE types to assembler types.
11344
654
            let rm8 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
11345
654
            let cl = cranelift_assembler_x64::Fixed(cl); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
11346
11347
            // Build the instruction.
11348
654
            let inst = cranelift_assembler_x64::inst::shlb_mc::new(rm8.clone(), cl.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
11349
654
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
11350
11351
            // Return a type ISLE can work with.
11352
654
            match rm8 {
11353
654
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
11354
654
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
11355
654
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
11356
                }
11357
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
11358
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
11359
                }
11360
            }
11361
654
        }
11362
27
        fn x64_shlb_mi_raw(&mut self, rm8: &GprMem8, imm8: u8) -> AssemblerOutputs {
11363
            // Convert ISLE types to assembler types.
11364
27
            let rm8 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
11365
27
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
11366
11367
            // Build the instruction.
11368
27
            let inst = cranelift_assembler_x64::inst::shlb_mi::new(rm8.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
11369
27
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
11370
11371
            // Return a type ISLE can work with.
11372
27
            match rm8 {
11373
27
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
11374
27
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
11375
27
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
11376
                }
11377
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
11378
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
11379
                }
11380
            }
11381
27
        }
11382
6
        fn x64_shlb_m1_raw(&mut self, rm8: &GprMem8) -> AssemblerOutputs {
11383
            // Convert ISLE types to assembler types.
11384
6
            let rm8 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
11385
11386
            // Build the instruction.
11387
6
            let inst = cranelift_assembler_x64::inst::shlb_m1::new(rm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
11388
6
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
11389
11390
            // Return a type ISLE can work with.
11391
6
            match rm8 {
11392
6
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
11393
6
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
11394
6
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
11395
                }
11396
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
11397
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
11398
                }
11399
            }
11400
6
        }
11401
4.65k
        fn x64_shlw_mc_raw(&mut self, rm16: &GprMem16, cl: Gpr) -> AssemblerOutputs {
11402
            // Convert ISLE types to assembler types.
11403
4.65k
            let rm16 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
11404
4.65k
            let cl = cranelift_assembler_x64::Fixed(cl); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
11405
11406
            // Build the instruction.
11407
4.65k
            let inst = cranelift_assembler_x64::inst::shlw_mc::new(rm16.clone(), cl.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
11408
4.65k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
11409
11410
            // Return a type ISLE can work with.
11411
4.65k
            match rm16 {
11412
4.65k
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
11413
4.65k
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
11414
4.65k
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
11415
                }
11416
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
11417
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
11418
                }
11419
            }
11420
4.65k
        }
11421
220
        fn x64_shlw_mi_raw(&mut self, rm16: &GprMem16, imm8: u8) -> AssemblerOutputs {
11422
            // Convert ISLE types to assembler types.
11423
220
            let rm16 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
11424
220
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
11425
11426
            // Build the instruction.
11427
220
            let inst = cranelift_assembler_x64::inst::shlw_mi::new(rm16.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
11428
220
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
11429
11430
            // Return a type ISLE can work with.
11431
220
            match rm16 {
11432
220
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
11433
220
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
11434
220
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
11435
                }
11436
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
11437
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
11438
                }
11439
            }
11440
220
        }
11441
0
        fn x64_shlw_m1_raw(&mut self, rm16: &GprMem16) -> AssemblerOutputs {
11442
            // Convert ISLE types to assembler types.
11443
0
            let rm16 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
11444
11445
            // Build the instruction.
11446
0
            let inst = cranelift_assembler_x64::inst::shlw_m1::new(rm16.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
11447
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
11448
11449
            // Return a type ISLE can work with.
11450
0
            match rm16 {
11451
0
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
11452
0
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
11453
0
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
11454
                }
11455
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
11456
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
11457
                }
11458
            }
11459
0
        }
11460
387
        fn x64_shll_mc_raw(&mut self, rm32: &GprMem32, cl: Gpr) -> AssemblerOutputs {
11461
            // Convert ISLE types to assembler types.
11462
387
            let rm32 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
11463
387
            let cl = cranelift_assembler_x64::Fixed(cl); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
11464
11465
            // Build the instruction.
11466
387
            let inst = cranelift_assembler_x64::inst::shll_mc::new(rm32.clone(), cl.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
11467
387
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
11468
11469
            // Return a type ISLE can work with.
11470
387
            match rm32 {
11471
387
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
11472
387
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
11473
387
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
11474
                }
11475
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
11476
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
11477
                }
11478
            }
11479
387
        }
11480
50.3k
        fn x64_shll_mi_raw(&mut self, rm32: &GprMem32, imm8: u8) -> AssemblerOutputs {
11481
            // Convert ISLE types to assembler types.
11482
50.3k
            let rm32 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
11483
50.3k
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
11484
11485
            // Build the instruction.
11486
50.3k
            let inst = cranelift_assembler_x64::inst::shll_mi::new(rm32.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
11487
50.3k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
11488
11489
            // Return a type ISLE can work with.
11490
50.3k
            match rm32 {
11491
50.3k
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
11492
50.3k
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
11493
50.3k
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
11494
                }
11495
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
11496
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
11497
                }
11498
            }
11499
50.3k
        }
11500
2.98k
        fn x64_shll_m1_raw(&mut self, rm32: &GprMem32) -> AssemblerOutputs {
11501
            // Convert ISLE types to assembler types.
11502
2.98k
            let rm32 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
11503
11504
            // Build the instruction.
11505
2.98k
            let inst = cranelift_assembler_x64::inst::shll_m1::new(rm32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
11506
2.98k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
11507
11508
            // Return a type ISLE can work with.
11509
2.98k
            match rm32 {
11510
2.98k
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
11511
2.98k
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
11512
2.98k
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
11513
                }
11514
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
11515
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
11516
                }
11517
            }
11518
2.98k
        }
11519
6.95k
        fn x64_shlq_mc_raw(&mut self, rm64: &GprMem64, cl: Gpr) -> AssemblerOutputs {
11520
            // Convert ISLE types to assembler types.
11521
6.95k
            let rm64 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
11522
6.95k
            let cl = cranelift_assembler_x64::Fixed(cl); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
11523
11524
            // Build the instruction.
11525
6.95k
            let inst = cranelift_assembler_x64::inst::shlq_mc::new(rm64.clone(), cl.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
11526
6.95k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
11527
11528
            // Return a type ISLE can work with.
11529
6.95k
            match rm64 {
11530
6.95k
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
11531
6.95k
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
11532
6.95k
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
11533
                }
11534
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
11535
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
11536
                }
11537
            }
11538
6.95k
        }
11539
198k
        fn x64_shlq_mi_raw(&mut self, rm64: &GprMem64, imm8: u8) -> AssemblerOutputs {
11540
            // Convert ISLE types to assembler types.
11541
198k
            let rm64 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
11542
198k
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
11543
11544
            // Build the instruction.
11545
198k
            let inst = cranelift_assembler_x64::inst::shlq_mi::new(rm64.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
11546
198k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
11547
11548
            // Return a type ISLE can work with.
11549
198k
            match rm64 {
11550
198k
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
11551
198k
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
11552
198k
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
11553
                }
11554
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
11555
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
11556
                }
11557
            }
11558
198k
        }
11559
700
        fn x64_shlq_m1_raw(&mut self, rm64: &GprMem64) -> AssemblerOutputs {
11560
            // Convert ISLE types to assembler types.
11561
700
            let rm64 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
11562
11563
            // Build the instruction.
11564
700
            let inst = cranelift_assembler_x64::inst::shlq_m1::new(rm64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
11565
700
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
11566
11567
            // Return a type ISLE can work with.
11568
700
            match rm64 {
11569
700
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
11570
700
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
11571
700
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
11572
                }
11573
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
11574
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
11575
                }
11576
            }
11577
700
        }
11578
700
        fn x64_shrb_mc_raw(&mut self, rm8: &GprMem8, cl: Gpr) -> AssemblerOutputs {
11579
            // Convert ISLE types to assembler types.
11580
700
            let rm8 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
11581
700
            let cl = cranelift_assembler_x64::Fixed(cl); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
11582
11583
            // Build the instruction.
11584
700
            let inst = cranelift_assembler_x64::inst::shrb_mc::new(rm8.clone(), cl.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
11585
700
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
11586
11587
            // Return a type ISLE can work with.
11588
700
            match rm8 {
11589
700
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
11590
700
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
11591
700
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
11592
                }
11593
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
11594
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
11595
                }
11596
            }
11597
700
        }
11598
23
        fn x64_shrb_mi_raw(&mut self, rm8: &GprMem8, imm8: u8) -> AssemblerOutputs {
11599
            // Convert ISLE types to assembler types.
11600
23
            let rm8 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
11601
23
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
11602
11603
            // Build the instruction.
11604
23
            let inst = cranelift_assembler_x64::inst::shrb_mi::new(rm8.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
11605
23
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
11606
11607
            // Return a type ISLE can work with.
11608
23
            match rm8 {
11609
23
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
11610
23
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
11611
23
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
11612
                }
11613
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
11614
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
11615
                }
11616
            }
11617
23
        }
11618
2
        fn x64_shrb_m1_raw(&mut self, rm8: &GprMem8) -> AssemblerOutputs {
11619
            // Convert ISLE types to assembler types.
11620
2
            let rm8 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
11621
11622
            // Build the instruction.
11623
2
            let inst = cranelift_assembler_x64::inst::shrb_m1::new(rm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
11624
2
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
11625
11626
            // Return a type ISLE can work with.
11627
2
            match rm8 {
11628
2
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
11629
2
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
11630
2
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
11631
                }
11632
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
11633
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
11634
                }
11635
            }
11636
2
        }
11637
907
        fn x64_shrw_mc_raw(&mut self, rm16: &GprMem16, cl: Gpr) -> AssemblerOutputs {
11638
            // Convert ISLE types to assembler types.
11639
907
            let rm16 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
11640
907
            let cl = cranelift_assembler_x64::Fixed(cl); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
11641
11642
            // Build the instruction.
11643
907
            let inst = cranelift_assembler_x64::inst::shrw_mc::new(rm16.clone(), cl.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
11644
907
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
11645
11646
            // Return a type ISLE can work with.
11647
907
            match rm16 {
11648
907
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
11649
907
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
11650
907
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
11651
                }
11652
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
11653
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
11654
                }
11655
            }
11656
907
        }
11657
523
        fn x64_shrw_mi_raw(&mut self, rm16: &GprMem16, imm8: u8) -> AssemblerOutputs {
11658
            // Convert ISLE types to assembler types.
11659
523
            let rm16 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
11660
523
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
11661
11662
            // Build the instruction.
11663
523
            let inst = cranelift_assembler_x64::inst::shrw_mi::new(rm16.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
11664
523
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
11665
11666
            // Return a type ISLE can work with.
11667
523
            match rm16 {
11668
523
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
11669
523
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
11670
523
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
11671
                }
11672
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
11673
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
11674
                }
11675
            }
11676
523
        }
11677
1
        fn x64_shrw_m1_raw(&mut self, rm16: &GprMem16) -> AssemblerOutputs {
11678
            // Convert ISLE types to assembler types.
11679
1
            let rm16 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
11680
11681
            // Build the instruction.
11682
1
            let inst = cranelift_assembler_x64::inst::shrw_m1::new(rm16.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
11683
1
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
11684
11685
            // Return a type ISLE can work with.
11686
1
            match rm16 {
11687
1
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
11688
1
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
11689
1
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
11690
                }
11691
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
11692
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
11693
                }
11694
            }
11695
1
        }
11696
392
        fn x64_shrl_mc_raw(&mut self, rm32: &GprMem32, cl: Gpr) -> AssemblerOutputs {
11697
            // Convert ISLE types to assembler types.
11698
392
            let rm32 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
11699
392
            let cl = cranelift_assembler_x64::Fixed(cl); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
11700
11701
            // Build the instruction.
11702
392
            let inst = cranelift_assembler_x64::inst::shrl_mc::new(rm32.clone(), cl.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
11703
392
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
11704
11705
            // Return a type ISLE can work with.
11706
392
            match rm32 {
11707
392
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
11708
392
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
11709
392
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
11710
                }
11711
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
11712
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
11713
                }
11714
            }
11715
392
        }
11716
34.1k
        fn x64_shrl_mi_raw(&mut self, rm32: &GprMem32, imm8: u8) -> AssemblerOutputs {
11717
            // Convert ISLE types to assembler types.
11718
34.1k
            let rm32 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
11719
34.1k
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
11720
11721
            // Build the instruction.
11722
34.1k
            let inst = cranelift_assembler_x64::inst::shrl_mi::new(rm32.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
11723
34.1k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
11724
11725
            // Return a type ISLE can work with.
11726
34.1k
            match rm32 {
11727
34.1k
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
11728
34.1k
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
11729
34.1k
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
11730
                }
11731
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
11732
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
11733
                }
11734
            }
11735
34.1k
        }
11736
1.41k
        fn x64_shrl_m1_raw(&mut self, rm32: &GprMem32) -> AssemblerOutputs {
11737
            // Convert ISLE types to assembler types.
11738
1.41k
            let rm32 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
11739
11740
            // Build the instruction.
11741
1.41k
            let inst = cranelift_assembler_x64::inst::shrl_m1::new(rm32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
11742
1.41k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
11743
11744
            // Return a type ISLE can work with.
11745
1.41k
            match rm32 {
11746
1.41k
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
11747
1.41k
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
11748
1.41k
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
11749
                }
11750
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
11751
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
11752
                }
11753
            }
11754
1.41k
        }
11755
13.9k
        fn x64_shrq_mc_raw(&mut self, rm64: &GprMem64, cl: Gpr) -> AssemblerOutputs {
11756
            // Convert ISLE types to assembler types.
11757
13.9k
            let rm64 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
11758
13.9k
            let cl = cranelift_assembler_x64::Fixed(cl); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
11759
11760
            // Build the instruction.
11761
13.9k
            let inst = cranelift_assembler_x64::inst::shrq_mc::new(rm64.clone(), cl.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
11762
13.9k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
11763
11764
            // Return a type ISLE can work with.
11765
13.9k
            match rm64 {
11766
13.9k
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
11767
13.9k
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
11768
13.9k
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
11769
                }
11770
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
11771
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
11772
                }
11773
            }
11774
13.9k
        }
11775
240k
        fn x64_shrq_mi_raw(&mut self, rm64: &GprMem64, imm8: u8) -> AssemblerOutputs {
11776
            // Convert ISLE types to assembler types.
11777
240k
            let rm64 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
11778
240k
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
11779
11780
            // Build the instruction.
11781
240k
            let inst = cranelift_assembler_x64::inst::shrq_mi::new(rm64.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
11782
240k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
11783
11784
            // Return a type ISLE can work with.
11785
240k
            match rm64 {
11786
240k
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
11787
240k
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
11788
240k
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
11789
                }
11790
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
11791
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
11792
                }
11793
            }
11794
240k
        }
11795
777
        fn x64_shrq_m1_raw(&mut self, rm64: &GprMem64) -> AssemblerOutputs {
11796
            // Convert ISLE types to assembler types.
11797
777
            let rm64 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
11798
11799
            // Build the instruction.
11800
777
            let inst = cranelift_assembler_x64::inst::shrq_m1::new(rm64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
11801
777
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
11802
11803
            // Return a type ISLE can work with.
11804
777
            match rm64 {
11805
777
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
11806
777
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
11807
777
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
11808
                }
11809
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
11810
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
11811
                }
11812
            }
11813
777
        }
11814
964
        fn x64_rolb_mc_raw(&mut self, rm8: &GprMem8, cl: Gpr) -> AssemblerOutputs {
11815
            // Convert ISLE types to assembler types.
11816
964
            let rm8 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
11817
964
            let cl = cranelift_assembler_x64::Fixed(cl); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
11818
11819
            // Build the instruction.
11820
964
            let inst = cranelift_assembler_x64::inst::rolb_mc::new(rm8.clone(), cl.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
11821
964
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
11822
11823
            // Return a type ISLE can work with.
11824
964
            match rm8 {
11825
964
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
11826
964
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
11827
964
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
11828
                }
11829
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
11830
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
11831
                }
11832
            }
11833
964
        }
11834
5
        fn x64_rolb_mi_raw(&mut self, rm8: &GprMem8, imm8: u8) -> AssemblerOutputs {
11835
            // Convert ISLE types to assembler types.
11836
5
            let rm8 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
11837
5
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
11838
11839
            // Build the instruction.
11840
5
            let inst = cranelift_assembler_x64::inst::rolb_mi::new(rm8.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
11841
5
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
11842
11843
            // Return a type ISLE can work with.
11844
5
            match rm8 {
11845
5
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
11846
5
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
11847
5
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
11848
                }
11849
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
11850
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
11851
                }
11852
            }
11853
5
        }
11854
0
        fn x64_rolb_m1_raw(&mut self, rm8: &GprMem8) -> AssemblerOutputs {
11855
            // Convert ISLE types to assembler types.
11856
0
            let rm8 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
11857
11858
            // Build the instruction.
11859
0
            let inst = cranelift_assembler_x64::inst::rolb_m1::new(rm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
11860
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
11861
11862
            // Return a type ISLE can work with.
11863
0
            match rm8 {
11864
0
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
11865
0
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
11866
0
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
11867
                }
11868
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
11869
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
11870
                }
11871
            }
11872
0
        }
11873
961
        fn x64_rolw_mc_raw(&mut self, rm16: &GprMem16, cl: Gpr) -> AssemblerOutputs {
11874
            // Convert ISLE types to assembler types.
11875
961
            let rm16 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
11876
961
            let cl = cranelift_assembler_x64::Fixed(cl); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
11877
11878
            // Build the instruction.
11879
961
            let inst = cranelift_assembler_x64::inst::rolw_mc::new(rm16.clone(), cl.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
11880
961
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
11881
11882
            // Return a type ISLE can work with.
11883
961
            match rm16 {
11884
961
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
11885
961
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
11886
961
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
11887
                }
11888
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
11889
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
11890
                }
11891
            }
11892
961
        }
11893
132
        fn x64_rolw_mi_raw(&mut self, rm16: &GprMem16, imm8: u8) -> AssemblerOutputs {
11894
            // Convert ISLE types to assembler types.
11895
132
            let rm16 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
11896
132
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
11897
11898
            // Build the instruction.
11899
132
            let inst = cranelift_assembler_x64::inst::rolw_mi::new(rm16.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
11900
132
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
11901
11902
            // Return a type ISLE can work with.
11903
132
            match rm16 {
11904
132
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
11905
132
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
11906
132
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
11907
                }
11908
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
11909
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
11910
                }
11911
            }
11912
132
        }
11913
10
        fn x64_rolw_m1_raw(&mut self, rm16: &GprMem16) -> AssemblerOutputs {
11914
            // Convert ISLE types to assembler types.
11915
10
            let rm16 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
11916
11917
            // Build the instruction.
11918
10
            let inst = cranelift_assembler_x64::inst::rolw_m1::new(rm16.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
11919
10
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
11920
11921
            // Return a type ISLE can work with.
11922
10
            match rm16 {
11923
10
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
11924
10
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
11925
10
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
11926
                }
11927
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
11928
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
11929
                }
11930
            }
11931
10
        }
11932
5.24k
        fn x64_roll_mc_raw(&mut self, rm32: &GprMem32, cl: Gpr) -> AssemblerOutputs {
11933
            // Convert ISLE types to assembler types.
11934
5.24k
            let rm32 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
11935
5.24k
            let cl = cranelift_assembler_x64::Fixed(cl); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
11936
11937
            // Build the instruction.
11938
5.24k
            let inst = cranelift_assembler_x64::inst::roll_mc::new(rm32.clone(), cl.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
11939
5.24k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
11940
11941
            // Return a type ISLE can work with.
11942
5.24k
            match rm32 {
11943
5.24k
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
11944
5.24k
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
11945
5.24k
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
11946
                }
11947
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
11948
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
11949
                }
11950
            }
11951
5.24k
        }
11952
343
        fn x64_roll_mi_raw(&mut self, rm32: &GprMem32, imm8: u8) -> AssemblerOutputs {
11953
            // Convert ISLE types to assembler types.
11954
343
            let rm32 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
11955
343
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
11956
11957
            // Build the instruction.
11958
343
            let inst = cranelift_assembler_x64::inst::roll_mi::new(rm32.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
11959
343
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
11960
11961
            // Return a type ISLE can work with.
11962
343
            match rm32 {
11963
343
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
11964
343
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
11965
343
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
11966
                }
11967
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
11968
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
11969
                }
11970
            }
11971
343
        }
11972
2
        fn x64_roll_m1_raw(&mut self, rm32: &GprMem32) -> AssemblerOutputs {
11973
            // Convert ISLE types to assembler types.
11974
2
            let rm32 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
11975
11976
            // Build the instruction.
11977
2
            let inst = cranelift_assembler_x64::inst::roll_m1::new(rm32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
11978
2
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
11979
11980
            // Return a type ISLE can work with.
11981
2
            match rm32 {
11982
2
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
11983
2
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
11984
2
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
11985
                }
11986
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
11987
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
11988
                }
11989
            }
11990
2
        }
11991
1.22k
        fn x64_rolq_mc_raw(&mut self, rm64: &GprMem64, cl: Gpr) -> AssemblerOutputs {
11992
            // Convert ISLE types to assembler types.
11993
1.22k
            let rm64 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
11994
1.22k
            let cl = cranelift_assembler_x64::Fixed(cl); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
11995
11996
            // Build the instruction.
11997
1.22k
            let inst = cranelift_assembler_x64::inst::rolq_mc::new(rm64.clone(), cl.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
11998
1.22k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
11999
12000
            // Return a type ISLE can work with.
12001
1.22k
            match rm64 {
12002
1.22k
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
12003
1.22k
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
12004
1.22k
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
12005
                }
12006
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
12007
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
12008
                }
12009
            }
12010
1.22k
        }
12011
43
        fn x64_rolq_mi_raw(&mut self, rm64: &GprMem64, imm8: u8) -> AssemblerOutputs {
12012
            // Convert ISLE types to assembler types.
12013
43
            let rm64 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
12014
43
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
12015
12016
            // Build the instruction.
12017
43
            let inst = cranelift_assembler_x64::inst::rolq_mi::new(rm64.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
12018
43
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
12019
12020
            // Return a type ISLE can work with.
12021
43
            match rm64 {
12022
43
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
12023
43
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
12024
43
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
12025
                }
12026
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
12027
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
12028
                }
12029
            }
12030
43
        }
12031
1
        fn x64_rolq_m1_raw(&mut self, rm64: &GprMem64) -> 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:131
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:144
12037
1
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:184
12043
1
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
12044
                }
12045
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
12046
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
12047
                }
12048
            }
12049
1
        }
12050
16.4k
        fn x64_rorb_mc_raw(&mut self, rm8: &GprMem8, cl: Gpr) -> AssemblerOutputs {
12051
            // Convert ISLE types to assembler types.
12052
16.4k
            let rm8 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
12053
16.4k
            let cl = cranelift_assembler_x64::Fixed(cl); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
12054
12055
            // Build the instruction.
12056
16.4k
            let inst = cranelift_assembler_x64::inst::rorb_mc::new(rm8.clone(), cl.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
12057
16.4k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
12058
12059
            // Return a type ISLE can work with.
12060
16.4k
            match rm8 {
12061
16.4k
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
12062
16.4k
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
12063
16.4k
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
12064
                }
12065
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
12066
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
12067
                }
12068
            }
12069
16.4k
        }
12070
25
        fn x64_rorb_mi_raw(&mut self, rm8: &GprMem8, imm8: u8) -> AssemblerOutputs {
12071
            // Convert ISLE types to assembler types.
12072
25
            let rm8 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
12073
25
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
12074
12075
            // Build the instruction.
12076
25
            let inst = cranelift_assembler_x64::inst::rorb_mi::new(rm8.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
12077
25
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
12078
12079
            // Return a type ISLE can work with.
12080
25
            match rm8 {
12081
25
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
12082
25
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
12083
25
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
12084
                }
12085
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
12086
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
12087
                }
12088
            }
12089
25
        }
12090
2
        fn x64_rorb_m1_raw(&mut self, rm8: &GprMem8) -> AssemblerOutputs {
12091
            // Convert ISLE types to assembler types.
12092
2
            let rm8 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
12093
12094
            // Build the instruction.
12095
2
            let inst = cranelift_assembler_x64::inst::rorb_m1::new(rm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
12096
2
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
12097
12098
            // Return a type ISLE can work with.
12099
2
            match rm8 {
12100
2
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
12101
2
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
12102
2
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
12103
                }
12104
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
12105
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
12106
                }
12107
            }
12108
2
        }
12109
257
        fn x64_rorw_mc_raw(&mut self, rm16: &GprMem16, cl: Gpr) -> AssemblerOutputs {
12110
            // Convert ISLE types to assembler types.
12111
257
            let rm16 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
12112
257
            let cl = cranelift_assembler_x64::Fixed(cl); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
12113
12114
            // Build the instruction.
12115
257
            let inst = cranelift_assembler_x64::inst::rorw_mc::new(rm16.clone(), cl.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
12116
257
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
12117
12118
            // Return a type ISLE can work with.
12119
257
            match rm16 {
12120
257
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
12121
257
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
12122
257
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
12123
                }
12124
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
12125
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
12126
                }
12127
            }
12128
257
        }
12129
40
        fn x64_rorw_mi_raw(&mut self, rm16: &GprMem16, imm8: u8) -> AssemblerOutputs {
12130
            // Convert ISLE types to assembler types.
12131
40
            let rm16 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
12132
40
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
12133
12134
            // Build the instruction.
12135
40
            let inst = cranelift_assembler_x64::inst::rorw_mi::new(rm16.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
12136
40
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
12137
12138
            // Return a type ISLE can work with.
12139
40
            match rm16 {
12140
40
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
12141
40
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
12142
40
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
12143
                }
12144
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
12145
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
12146
                }
12147
            }
12148
40
        }
12149
53
        fn x64_rorw_m1_raw(&mut self, rm16: &GprMem16) -> AssemblerOutputs {
12150
            // Convert ISLE types to assembler types.
12151
53
            let rm16 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
12152
12153
            // Build the instruction.
12154
53
            let inst = cranelift_assembler_x64::inst::rorw_m1::new(rm16.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
12155
53
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
12156
12157
            // Return a type ISLE can work with.
12158
53
            match rm16 {
12159
53
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
12160
53
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
12161
53
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
12162
                }
12163
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
12164
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
12165
                }
12166
            }
12167
53
        }
12168
1.83k
        fn x64_rorl_mc_raw(&mut self, rm32: &GprMem32, cl: Gpr) -> AssemblerOutputs {
12169
            // Convert ISLE types to assembler types.
12170
1.83k
            let rm32 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
12171
1.83k
            let cl = cranelift_assembler_x64::Fixed(cl); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
12172
12173
            // Build the instruction.
12174
1.83k
            let inst = cranelift_assembler_x64::inst::rorl_mc::new(rm32.clone(), cl.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
12175
1.83k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
12176
12177
            // Return a type ISLE can work with.
12178
1.83k
            match rm32 {
12179
1.83k
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
12180
1.83k
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
12181
1.83k
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
12182
                }
12183
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
12184
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
12185
                }
12186
            }
12187
1.83k
        }
12188
36
        fn x64_rorl_mi_raw(&mut self, rm32: &GprMem32, imm8: u8) -> AssemblerOutputs {
12189
            // Convert ISLE types to assembler types.
12190
36
            let rm32 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
12191
36
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
12192
12193
            // Build the instruction.
12194
36
            let inst = cranelift_assembler_x64::inst::rorl_mi::new(rm32.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
12195
36
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
12196
12197
            // Return a type ISLE can work with.
12198
36
            match rm32 {
12199
36
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
12200
36
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
12201
36
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
12202
                }
12203
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
12204
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
12205
                }
12206
            }
12207
36
        }
12208
0
        fn x64_rorl_m1_raw(&mut self, rm32: &GprMem32) -> AssemblerOutputs {
12209
            // Convert ISLE types to assembler types.
12210
0
            let rm32 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
12211
12212
            // Build the instruction.
12213
0
            let inst = cranelift_assembler_x64::inst::rorl_m1::new(rm32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
12214
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
12215
12216
            // Return a type ISLE can work with.
12217
0
            match rm32 {
12218
0
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
12219
0
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
12220
0
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
12221
                }
12222
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
12223
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
12224
                }
12225
            }
12226
0
        }
12227
607
        fn x64_rorq_mc_raw(&mut self, rm64: &GprMem64, cl: Gpr) -> AssemblerOutputs {
12228
            // Convert ISLE types to assembler types.
12229
607
            let rm64 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
12230
607
            let cl = cranelift_assembler_x64::Fixed(cl); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
12231
12232
            // Build the instruction.
12233
607
            let inst = cranelift_assembler_x64::inst::rorq_mc::new(rm64.clone(), cl.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
12234
607
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
12235
12236
            // Return a type ISLE can work with.
12237
607
            match rm64 {
12238
607
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
12239
607
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
12240
607
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
12241
                }
12242
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
12243
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
12244
                }
12245
            }
12246
607
        }
12247
11
        fn x64_rorq_mi_raw(&mut self, rm64: &GprMem64, imm8: u8) -> AssemblerOutputs {
12248
            // Convert ISLE types to assembler types.
12249
11
            let rm64 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
12250
11
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
12251
12252
            // Build the instruction.
12253
11
            let inst = cranelift_assembler_x64::inst::rorq_mi::new(rm64.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
12254
11
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
12255
12256
            // Return a type ISLE can work with.
12257
11
            match rm64 {
12258
11
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
12259
11
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
12260
11
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
12261
                }
12262
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
12263
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
12264
                }
12265
            }
12266
11
        }
12267
0
        fn x64_rorq_m1_raw(&mut self, rm64: &GprMem64) -> 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:131
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:144
12273
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:184
12279
0
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
12280
                }
12281
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
12282
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
12283
                }
12284
            }
12285
0
        }
12286
0
        fn x64_shldw_mri_raw(&mut self, rm16: &GprMem16, 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:131
12289
0
            let r16 = cranelift_assembler_x64::Gpr::new(r16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
12290
0
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
12294
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:184
12300
0
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
12301
                }
12302
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
12303
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
12304
                }
12305
            }
12306
0
        }
12307
0
        fn x64_shldw_mrc_raw(&mut self, rm16: &GprMem16, 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:131
12310
0
            let r16 = cranelift_assembler_x64::Gpr::new(r16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
12311
0
            let cl = cranelift_assembler_x64::Fixed(cl); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
12315
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:184
12321
0
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
12322
                }
12323
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
12324
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
12325
                }
12326
            }
12327
0
        }
12328
0
        fn x64_shldl_mri_raw(&mut self, rm32: &GprMem32, 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:131
12331
0
            let r32 = cranelift_assembler_x64::Gpr::new(r32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
12332
0
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
12336
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:184
12342
0
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
12343
                }
12344
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
12345
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
12346
                }
12347
            }
12348
0
        }
12349
0
        fn x64_shldq_mri_raw(&mut self, rm64: &GprMem64, r64: Gpr, imm8: u8) -> AssemblerOutputs {
12350
            // Convert ISLE types to assembler types.
12351
0
            let rm64 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
12352
0
            let r64 = cranelift_assembler_x64::Gpr::new(r64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
12353
0
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
12354
12355
            // Build the instruction.
12356
0
            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:144
12357
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
12358
12359
            // Return a type ISLE can work with.
12360
0
            match rm64 {
12361
0
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
12362
0
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
12363
0
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
12364
                }
12365
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
12366
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
12367
                }
12368
            }
12369
0
        }
12370
0
        fn x64_shldl_mrc_raw(&mut self, rm32: &GprMem32, 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:131
12373
0
            let r32 = cranelift_assembler_x64::Gpr::new(r32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
12374
0
            let cl = cranelift_assembler_x64::Fixed(cl); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
12378
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:184
12384
0
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
12385
                }
12386
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
12387
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
12388
                }
12389
            }
12390
0
        }
12391
0
        fn x64_shldq_mrc_raw(&mut self, rm64: &GprMem64, 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:131
12394
0
            let r64 = cranelift_assembler_x64::Gpr::new(r64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
12395
0
            let cl = cranelift_assembler_x64::Fixed(cl); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
12399
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:184
12405
0
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
12406
                }
12407
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
12408
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
12409
                }
12410
            }
12411
0
        }
12412
47.6k
        fn x64_sarxl_rmv_raw(&mut self, rm32: &GprMem32, r32b: Gpr) -> AssemblerOutputs {
12413
            // Convert ISLE types to assembler types.
12414
47.6k
            let r32a = cranelift_assembler_x64::Gpr::new(self.temp_writable_gpr()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
12415
47.6k
            let rm32 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
12416
47.6k
            let r32b = cranelift_assembler_x64::Gpr::new(r32b); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
12417
12418
            // Build the instruction.
12419
47.6k
            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:144
12420
47.6k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
12421
12422
            // Return a type ISLE can work with.
12423
47.6k
            let gpr = r32a.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
12424
47.6k
            AssemblerOutputs::RetGpr { inst, gpr }
12425
47.6k
        }
12426
7.57k
        fn x64_shlxl_rmv_raw(&mut self, rm32: &GprMem32, r32b: Gpr) -> AssemblerOutputs {
12427
            // Convert ISLE types to assembler types.
12428
7.57k
            let r32a = cranelift_assembler_x64::Gpr::new(self.temp_writable_gpr()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
12429
7.57k
            let rm32 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
12430
7.57k
            let r32b = cranelift_assembler_x64::Gpr::new(r32b); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
12431
12432
            // Build the instruction.
12433
7.57k
            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:144
12434
7.57k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
12435
12436
            // Return a type ISLE can work with.
12437
7.57k
            let gpr = r32a.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
12438
7.57k
            AssemblerOutputs::RetGpr { inst, gpr }
12439
7.57k
        }
12440
14.2k
        fn x64_shrxl_rmv_raw(&mut self, rm32: &GprMem32, r32b: Gpr) -> AssemblerOutputs {
12441
            // Convert ISLE types to assembler types.
12442
14.2k
            let r32a = cranelift_assembler_x64::Gpr::new(self.temp_writable_gpr()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
12443
14.2k
            let rm32 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
12444
14.2k
            let r32b = cranelift_assembler_x64::Gpr::new(r32b); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
12445
12446
            // Build the instruction.
12447
14.2k
            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:144
12448
14.2k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
12449
12450
            // Return a type ISLE can work with.
12451
14.2k
            let gpr = r32a.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
12452
14.2k
            AssemblerOutputs::RetGpr { inst, gpr }
12453
14.2k
        }
12454
3.47k
        fn x64_sarxq_rmv_raw(&mut self, rm64: &GprMem64, r64b: Gpr) -> AssemblerOutputs {
12455
            // Convert ISLE types to assembler types.
12456
3.47k
            let r64a = cranelift_assembler_x64::Gpr::new(self.temp_writable_gpr()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
12457
3.47k
            let rm64 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
12458
3.47k
            let r64b = cranelift_assembler_x64::Gpr::new(r64b); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
12459
12460
            // Build the instruction.
12461
3.47k
            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:144
12462
3.47k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
12463
12464
            // Return a type ISLE can work with.
12465
3.47k
            let gpr = r64a.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
12466
3.47k
            AssemblerOutputs::RetGpr { inst, gpr }
12467
3.47k
        }
12468
31.3k
        fn x64_shlxq_rmv_raw(&mut self, rm64: &GprMem64, r64b: Gpr) -> AssemblerOutputs {
12469
            // Convert ISLE types to assembler types.
12470
31.3k
            let r64a = cranelift_assembler_x64::Gpr::new(self.temp_writable_gpr()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
12471
31.3k
            let rm64 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
12472
31.3k
            let r64b = cranelift_assembler_x64::Gpr::new(r64b); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
12473
12474
            // Build the instruction.
12475
31.3k
            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:144
12476
31.3k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
12477
12478
            // Return a type ISLE can work with.
12479
31.3k
            let gpr = r64a.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
12480
31.3k
            AssemblerOutputs::RetGpr { inst, gpr }
12481
31.3k
        }
12482
47.8k
        fn x64_shrxq_rmv_raw(&mut self, rm64: &GprMem64, r64b: Gpr) -> AssemblerOutputs {
12483
            // Convert ISLE types to assembler types.
12484
47.8k
            let r64a = cranelift_assembler_x64::Gpr::new(self.temp_writable_gpr()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
12485
47.8k
            let rm64 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
12486
47.8k
            let r64b = cranelift_assembler_x64::Gpr::new(r64b); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
12487
12488
            // Build the instruction.
12489
47.8k
            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:144
12490
47.8k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
12491
12492
            // Return a type ISLE can work with.
12493
47.8k
            let gpr = r64a.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
12494
47.8k
            AssemblerOutputs::RetGpr { inst, gpr }
12495
47.8k
        }
12496
2.81k
        fn x64_rorxl_rmi_raw(&mut self, rm32: &GprMem32, imm8: u8) -> AssemblerOutputs {
12497
            // Convert ISLE types to assembler types.
12498
2.81k
            let r32 = cranelift_assembler_x64::Gpr::new(self.temp_writable_gpr()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
12499
2.81k
            let rm32 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
12500
2.81k
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
12501
12502
            // Build the instruction.
12503
2.81k
            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:144
12504
2.81k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
12505
12506
            // Return a type ISLE can work with.
12507
2.81k
            let gpr = r32.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
12508
2.81k
            AssemblerOutputs::RetGpr { inst, gpr }
12509
2.81k
        }
12510
924
        fn x64_rorxq_rmi_raw(&mut self, rm64: &GprMem64, imm8: u8) -> AssemblerOutputs {
12511
            // Convert ISLE types to assembler types.
12512
924
            let r64 = cranelift_assembler_x64::Gpr::new(self.temp_writable_gpr()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
12513
924
            let rm64 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
12514
924
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
12515
12516
            // Build the instruction.
12517
924
            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:144
12518
924
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
12519
12520
            // Return a type ISLE can work with.
12521
924
            let gpr = r64.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
12522
924
            AssemblerOutputs::RetGpr { inst, gpr }
12523
924
        }
12524
148
        fn x64_psllw_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned128) -> AssemblerOutputs {
12525
            // Convert ISLE types to assembler types.
12526
148
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
12527
148
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
12528
12529
            // Build the instruction.
12530
148
            let inst = cranelift_assembler_x64::inst::psllw_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
12531
148
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
12532
12533
            // Return a type ISLE can work with.
12534
148
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
12535
148
            AssemblerOutputs::RetXmm { inst, xmm }
12536
148
        }
12537
14
        fn x64_psllw_b_raw(&mut self, xmm1: Xmm, imm8: u8) -> AssemblerOutputs {
12538
            // Convert ISLE types to assembler types.
12539
14
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
12540
14
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
12541
12542
            // Build the instruction.
12543
14
            let inst = cranelift_assembler_x64::inst::psllw_b::new(xmm1.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
12544
14
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
12545
12546
            // Return a type ISLE can work with.
12547
14
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
12548
14
            AssemblerOutputs::RetXmm { inst, xmm }
12549
14
        }
12550
98
        fn x64_pslld_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned128) -> AssemblerOutputs {
12551
            // Convert ISLE types to assembler types.
12552
98
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
12553
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:131
12554
12555
            // Build the instruction.
12556
98
            let inst = cranelift_assembler_x64::inst::pslld_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
12557
98
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
12558
12559
            // Return a type ISLE can work with.
12560
98
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
12561
98
            AssemblerOutputs::RetXmm { inst, xmm }
12562
98
        }
12563
73
        fn x64_pslld_b_raw(&mut self, xmm1: Xmm, imm8: u8) -> AssemblerOutputs {
12564
            // Convert ISLE types to assembler types.
12565
73
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
12566
73
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
12567
12568
            // Build the instruction.
12569
73
            let inst = cranelift_assembler_x64::inst::pslld_b::new(xmm1.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
12570
73
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
12571
12572
            // Return a type ISLE can work with.
12573
73
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
12574
73
            AssemblerOutputs::RetXmm { inst, xmm }
12575
73
        }
12576
16
        fn x64_psllq_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned128) -> AssemblerOutputs {
12577
            // Convert ISLE types to assembler types.
12578
16
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
12579
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:131
12580
12581
            // Build the instruction.
12582
16
            let inst = cranelift_assembler_x64::inst::psllq_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
12583
16
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
12584
12585
            // Return a type ISLE can work with.
12586
16
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
12587
16
            AssemblerOutputs::RetXmm { inst, xmm }
12588
16
        }
12589
48
        fn x64_psllq_b_raw(&mut self, xmm1: Xmm, imm8: u8) -> AssemblerOutputs {
12590
            // Convert ISLE types to assembler types.
12591
48
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
12592
48
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
12593
12594
            // Build the instruction.
12595
48
            let inst = cranelift_assembler_x64::inst::psllq_b::new(xmm1.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
12596
48
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
12597
12598
            // Return a type ISLE can work with.
12599
48
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
12600
48
            AssemblerOutputs::RetXmm { inst, xmm }
12601
48
        }
12602
256
        fn x64_vpsllw_c_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem128) -> AssemblerOutputs {
12603
            // Convert ISLE types to assembler types.
12604
256
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
12605
256
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
12606
256
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
12607
12608
            // Build the instruction.
12609
256
            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:144
12610
256
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
12611
12612
            // Return a type ISLE can work with.
12613
256
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
12614
256
            AssemblerOutputs::RetXmm { inst, xmm }
12615
256
        }
12616
39
        fn x64_vpsllw_d_raw(&mut self, xmm2: Xmm, imm8: u8) -> AssemblerOutputs {
12617
            // Convert ISLE types to assembler types.
12618
39
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
12619
39
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
12620
39
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
12621
12622
            // Build the instruction.
12623
39
            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:144
12624
39
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
12625
12626
            // Return a type ISLE can work with.
12627
39
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
12628
39
            AssemblerOutputs::RetXmm { inst, xmm }
12629
39
        }
12630
197
        fn x64_vpslld_c_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem128) -> AssemblerOutputs {
12631
            // Convert ISLE types to assembler types.
12632
197
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
12633
197
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
12634
197
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
12635
12636
            // Build the instruction.
12637
197
            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:144
12638
197
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
12639
12640
            // Return a type ISLE can work with.
12641
197
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
12642
197
            AssemblerOutputs::RetXmm { inst, xmm }
12643
197
        }
12644
1.77k
        fn x64_vpslld_d_raw(&mut self, xmm2: Xmm, imm8: u8) -> AssemblerOutputs {
12645
            // Convert ISLE types to assembler types.
12646
1.77k
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
12647
1.77k
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
12648
1.77k
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
12649
12650
            // Build the instruction.
12651
1.77k
            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:144
12652
1.77k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
12653
12654
            // Return a type ISLE can work with.
12655
1.77k
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
12656
1.77k
            AssemblerOutputs::RetXmm { inst, xmm }
12657
1.77k
        }
12658
51
        fn x64_vpsllq_c_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem128) -> AssemblerOutputs {
12659
            // Convert ISLE types to assembler types.
12660
51
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
12661
51
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
12662
51
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
12663
12664
            // Build the instruction.
12665
51
            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:144
12666
51
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
12667
12668
            // Return a type ISLE can work with.
12669
51
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
12670
51
            AssemblerOutputs::RetXmm { inst, xmm }
12671
51
        }
12672
372
        fn x64_vpsllq_d_raw(&mut self, xmm2: Xmm, imm8: u8) -> AssemblerOutputs {
12673
            // Convert ISLE types to assembler types.
12674
372
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
12675
372
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
12676
372
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
12677
12678
            // Build the instruction.
12679
372
            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:144
12680
372
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
12681
12682
            // Return a type ISLE can work with.
12683
372
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
12684
372
            AssemblerOutputs::RetXmm { inst, xmm }
12685
372
        }
12686
0
        fn x64_vpslld_g_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem128) -> 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:131
12689
0
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:131
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:144
12694
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
12698
0
            AssemblerOutputs::RetXmm { inst, xmm }
12699
0
        }
12700
0
        fn x64_vpslld_f_raw(&mut self, xmm_m128: &XmmMem128, 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:131
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:131
12704
0
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
12708
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
12712
0
            AssemblerOutputs::RetXmm { inst, xmm }
12713
0
        }
12714
0
        fn x64_vpsllq_g_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem128) -> 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:131
12717
0
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:131
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:144
12722
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
12726
0
            AssemblerOutputs::RetXmm { inst, xmm }
12727
0
        }
12728
0
        fn x64_vpsllq_f_raw(&mut self, xmm_m128: &XmmMem128, 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:131
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:131
12732
0
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
12736
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
12740
0
            AssemblerOutputs::RetXmm { inst, xmm }
12741
0
        }
12742
1.06k
        fn x64_psraw_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned128) -> AssemblerOutputs {
12743
            // Convert ISLE types to assembler types.
12744
1.06k
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
12745
1.06k
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
12746
12747
            // Build the instruction.
12748
1.06k
            let inst = cranelift_assembler_x64::inst::psraw_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
12749
1.06k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
12750
12751
            // Return a type ISLE can work with.
12752
1.06k
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
12753
1.06k
            AssemblerOutputs::RetXmm { inst, xmm }
12754
1.06k
        }
12755
294
        fn x64_psraw_b_raw(&mut self, xmm1: Xmm, imm8: u8) -> AssemblerOutputs {
12756
            // Convert ISLE types to assembler types.
12757
294
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
12758
294
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
12759
12760
            // Build the instruction.
12761
294
            let inst = cranelift_assembler_x64::inst::psraw_b::new(xmm1.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
12762
294
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
12763
12764
            // Return a type ISLE can work with.
12765
294
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
12766
294
            AssemblerOutputs::RetXmm { inst, xmm }
12767
294
        }
12768
122
        fn x64_psrad_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned128) -> AssemblerOutputs {
12769
            // Convert ISLE types to assembler types.
12770
122
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
12771
122
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
12772
12773
            // Build the instruction.
12774
122
            let inst = cranelift_assembler_x64::inst::psrad_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
12775
122
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
12776
12777
            // Return a type ISLE can work with.
12778
122
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
12779
122
            AssemblerOutputs::RetXmm { inst, xmm }
12780
122
        }
12781
547
        fn x64_psrad_b_raw(&mut self, xmm1: Xmm, imm8: u8) -> AssemblerOutputs {
12782
            // Convert ISLE types to assembler types.
12783
547
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
12784
547
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
12785
12786
            // Build the instruction.
12787
547
            let inst = cranelift_assembler_x64::inst::psrad_b::new(xmm1.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
12788
547
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
12789
12790
            // Return a type ISLE can work with.
12791
547
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
12792
547
            AssemblerOutputs::RetXmm { inst, xmm }
12793
547
        }
12794
3.16k
        fn x64_psrlw_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned128) -> AssemblerOutputs {
12795
            // Convert ISLE types to assembler types.
12796
3.16k
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
12797
3.16k
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
12798
12799
            // Build the instruction.
12800
3.16k
            let inst = cranelift_assembler_x64::inst::psrlw_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
12801
3.16k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
12802
12803
            // Return a type ISLE can work with.
12804
3.16k
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
12805
3.16k
            AssemblerOutputs::RetXmm { inst, xmm }
12806
3.16k
        }
12807
504
        fn x64_psrlw_b_raw(&mut self, xmm1: Xmm, imm8: u8) -> AssemblerOutputs {
12808
            // Convert ISLE types to assembler types.
12809
504
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
12810
504
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
12811
12812
            // Build the instruction.
12813
504
            let inst = cranelift_assembler_x64::inst::psrlw_b::new(xmm1.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
12814
504
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
12815
12816
            // Return a type ISLE can work with.
12817
504
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
12818
504
            AssemblerOutputs::RetXmm { inst, xmm }
12819
504
        }
12820
296
        fn x64_psrld_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned128) -> AssemblerOutputs {
12821
            // Convert ISLE types to assembler types.
12822
296
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
12823
296
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
12824
12825
            // Build the instruction.
12826
296
            let inst = cranelift_assembler_x64::inst::psrld_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
12827
296
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
12828
12829
            // Return a type ISLE can work with.
12830
296
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
12831
296
            AssemblerOutputs::RetXmm { inst, xmm }
12832
296
        }
12833
565
        fn x64_psrld_b_raw(&mut self, xmm1: Xmm, imm8: u8) -> AssemblerOutputs {
12834
            // Convert ISLE types to assembler types.
12835
565
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
12836
565
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
12837
12838
            // Build the instruction.
12839
565
            let inst = cranelift_assembler_x64::inst::psrld_b::new(xmm1.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
12840
565
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
12841
12842
            // Return a type ISLE can work with.
12843
565
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
12844
565
            AssemblerOutputs::RetXmm { inst, xmm }
12845
565
        }
12846
977
        fn x64_psrlq_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned128) -> AssemblerOutputs {
12847
            // Convert ISLE types to assembler types.
12848
977
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
12849
977
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
12850
12851
            // Build the instruction.
12852
977
            let inst = cranelift_assembler_x64::inst::psrlq_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
12853
977
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
12854
12855
            // Return a type ISLE can work with.
12856
977
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
12857
977
            AssemblerOutputs::RetXmm { inst, xmm }
12858
977
        }
12859
682
        fn x64_psrlq_b_raw(&mut self, xmm1: Xmm, imm8: u8) -> AssemblerOutputs {
12860
            // Convert ISLE types to assembler types.
12861
682
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
12862
682
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
12863
12864
            // Build the instruction.
12865
682
            let inst = cranelift_assembler_x64::inst::psrlq_b::new(xmm1.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
12866
682
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
12867
12868
            // Return a type ISLE can work with.
12869
682
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
12870
682
            AssemblerOutputs::RetXmm { inst, xmm }
12871
682
        }
12872
2.14k
        fn x64_vpsraw_c_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem128) -> AssemblerOutputs {
12873
            // Convert ISLE types to assembler types.
12874
2.14k
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
12875
2.14k
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
12876
2.14k
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
12877
12878
            // Build the instruction.
12879
2.14k
            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:144
12880
2.14k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
12881
12882
            // Return a type ISLE can work with.
12883
2.14k
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
12884
2.14k
            AssemblerOutputs::RetXmm { inst, xmm }
12885
2.14k
        }
12886
492
        fn x64_vpsraw_d_raw(&mut self, xmm2: Xmm, imm8: u8) -> AssemblerOutputs {
12887
            // Convert ISLE types to assembler types.
12888
492
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
12889
492
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
12890
492
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
12891
12892
            // Build the instruction.
12893
492
            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:144
12894
492
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
12895
12896
            // Return a type ISLE can work with.
12897
492
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
12898
492
            AssemblerOutputs::RetXmm { inst, xmm }
12899
492
        }
12900
225
        fn x64_vpsrad_c_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem128) -> AssemblerOutputs {
12901
            // Convert ISLE types to assembler types.
12902
225
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
12903
225
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
12904
225
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
12905
12906
            // Build the instruction.
12907
225
            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:144
12908
225
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
12909
12910
            // Return a type ISLE can work with.
12911
225
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
12912
225
            AssemblerOutputs::RetXmm { inst, xmm }
12913
225
        }
12914
1.20k
        fn x64_vpsrad_d_raw(&mut self, xmm2: Xmm, imm8: u8) -> AssemblerOutputs {
12915
            // Convert ISLE types to assembler types.
12916
1.20k
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
12917
1.20k
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
12918
1.20k
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
12919
12920
            // Build the instruction.
12921
1.20k
            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:144
12922
1.20k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
12923
12924
            // Return a type ISLE can work with.
12925
1.20k
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
12926
1.20k
            AssemblerOutputs::RetXmm { inst, xmm }
12927
1.20k
        }
12928
2.86k
        fn x64_vpsrlw_c_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem128) -> AssemblerOutputs {
12929
            // Convert ISLE types to assembler types.
12930
2.86k
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
12931
2.86k
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
12932
2.86k
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
12933
12934
            // Build the instruction.
12935
2.86k
            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:144
12936
2.86k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
12937
12938
            // Return a type ISLE can work with.
12939
2.86k
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
12940
2.86k
            AssemblerOutputs::RetXmm { inst, xmm }
12941
2.86k
        }
12942
3.34k
        fn x64_vpsrlw_d_raw(&mut self, xmm2: Xmm, imm8: u8) -> AssemblerOutputs {
12943
            // Convert ISLE types to assembler types.
12944
3.34k
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
12945
3.34k
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
12946
3.34k
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
12947
12948
            // Build the instruction.
12949
3.34k
            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:144
12950
3.34k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
12951
12952
            // Return a type ISLE can work with.
12953
3.34k
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
12954
3.34k
            AssemblerOutputs::RetXmm { inst, xmm }
12955
3.34k
        }
12956
199
        fn x64_vpsrld_c_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem128) -> AssemblerOutputs {
12957
            // Convert ISLE types to assembler types.
12958
199
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
12959
199
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
12960
199
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
12961
12962
            // Build the instruction.
12963
199
            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:144
12964
199
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
12965
12966
            // Return a type ISLE can work with.
12967
199
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
12968
199
            AssemblerOutputs::RetXmm { inst, xmm }
12969
199
        }
12970
4.45k
        fn x64_vpsrld_d_raw(&mut self, xmm2: Xmm, imm8: u8) -> AssemblerOutputs {
12971
            // Convert ISLE types to assembler types.
12972
4.45k
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
12973
4.45k
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
12974
4.45k
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
12975
12976
            // Build the instruction.
12977
4.45k
            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:144
12978
4.45k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
12979
12980
            // Return a type ISLE can work with.
12981
4.45k
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
12982
4.45k
            AssemblerOutputs::RetXmm { inst, xmm }
12983
4.45k
        }
12984
1.67k
        fn x64_vpsrlq_c_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem128) -> AssemblerOutputs {
12985
            // Convert ISLE types to assembler types.
12986
1.67k
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
12987
1.67k
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
12988
1.67k
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
12989
12990
            // Build the instruction.
12991
1.67k
            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:144
12992
1.67k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
12993
12994
            // Return a type ISLE can work with.
12995
1.67k
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
12996
1.67k
            AssemblerOutputs::RetXmm { inst, xmm }
12997
1.67k
        }
12998
3.46k
        fn x64_vpsrlq_d_raw(&mut self, xmm2: Xmm, imm8: u8) -> AssemblerOutputs {
12999
            // Convert ISLE types to assembler types.
13000
3.46k
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
13001
3.46k
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
13002
3.46k
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
13003
13004
            // Build the instruction.
13005
3.46k
            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:144
13006
3.46k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
13007
13008
            // Return a type ISLE can work with.
13009
3.46k
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
13010
3.46k
            AssemblerOutputs::RetXmm { inst, xmm }
13011
3.46k
        }
13012
0
        fn x64_vpsrad_g_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem128) -> 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:131
13015
0
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:131
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:144
13020
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
13024
0
            AssemblerOutputs::RetXmm { inst, xmm }
13025
0
        }
13026
0
        fn x64_vpsrad_f_raw(&mut self, xmm_m128: &XmmMem128, 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:131
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:131
13030
0
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
13034
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
13038
0
            AssemblerOutputs::RetXmm { inst, xmm }
13039
0
        }
13040
48
        fn x64_vpsraq_g_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem128) -> AssemblerOutputs {
13041
            // Convert ISLE types to assembler types.
13042
48
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
13043
48
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
13044
48
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
13045
13046
            // Build the instruction.
13047
48
            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:144
13048
48
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
13049
13050
            // Return a type ISLE can work with.
13051
48
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
13052
48
            AssemblerOutputs::RetXmm { inst, xmm }
13053
48
        }
13054
8
        fn x64_vpsraq_f_raw(&mut self, xmm_m128: &XmmMem128, imm8: u8) -> AssemblerOutputs {
13055
            // Convert ISLE types to assembler types.
13056
8
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
13057
8
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
13058
8
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
13059
13060
            // Build the instruction.
13061
8
            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:144
13062
8
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
13063
13064
            // Return a type ISLE can work with.
13065
8
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
13066
8
            AssemblerOutputs::RetXmm { inst, xmm }
13067
8
        }
13068
0
        fn x64_vpsrld_g_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem128) -> 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:131
13071
0
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:131
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:144
13076
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
13080
0
            AssemblerOutputs::RetXmm { inst, xmm }
13081
0
        }
13082
0
        fn x64_vpsrld_f_raw(&mut self, xmm_m128: &XmmMem128, 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:131
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:131
13086
0
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
13090
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
13094
0
            AssemblerOutputs::RetXmm { inst, xmm }
13095
0
        }
13096
0
        fn x64_vpsrlq_g_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem128) -> 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:131
13099
0
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:131
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:144
13104
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
13108
0
            AssemblerOutputs::RetXmm { inst, xmm }
13109
0
        }
13110
0
        fn x64_vpsrlq_f_raw(&mut self, xmm_m128: &XmmMem128, 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:131
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:131
13114
0
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
13118
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
13122
0
            AssemblerOutputs::RetXmm { inst, xmm }
13123
0
        }
13124
512
        fn x64_sqrtss_a_raw(&mut self, xmm1: Xmm, xmm_m32: &XmmMem32) -> AssemblerOutputs {
13125
            // Convert ISLE types to assembler types.
13126
512
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
13127
512
            let xmm_m32 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
13128
13129
            // Build the instruction.
13130
512
            let inst = cranelift_assembler_x64::inst::sqrtss_a::new(xmm1.clone(), xmm_m32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
13131
512
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
13132
13133
            // Return a type ISLE can work with.
13134
512
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
13135
512
            AssemblerOutputs::RetXmm { inst, xmm }
13136
512
        }
13137
1.34k
        fn x64_sqrtsd_a_raw(&mut self, xmm1: Xmm, xmm_m64: &XmmMem64) -> AssemblerOutputs {
13138
            // Convert ISLE types to assembler types.
13139
1.34k
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
13140
1.34k
            let xmm_m64 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
13141
13142
            // Build the instruction.
13143
1.34k
            let inst = cranelift_assembler_x64::inst::sqrtsd_a::new(xmm1.clone(), xmm_m64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
13144
1.34k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
13145
13146
            // Return a type ISLE can work with.
13147
1.34k
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
13148
1.34k
            AssemblerOutputs::RetXmm { inst, xmm }
13149
1.34k
        }
13150
23
        fn x64_sqrtps_a_raw(&mut self, xmm_m128: &XmmMemAligned128) -> AssemblerOutputs {
13151
            // Convert ISLE types to assembler types.
13152
23
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
13153
23
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
13154
13155
            // Build the instruction.
13156
23
            let inst = cranelift_assembler_x64::inst::sqrtps_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
13157
23
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
13158
13159
            // Return a type ISLE can work with.
13160
23
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
13161
23
            AssemblerOutputs::RetXmm { inst, xmm }
13162
23
        }
13163
82
        fn x64_sqrtpd_a_raw(&mut self, xmm_m128: &XmmMemAligned128) -> AssemblerOutputs {
13164
            // Convert ISLE types to assembler types.
13165
82
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
13166
82
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
13167
13168
            // Build the instruction.
13169
82
            let inst = cranelift_assembler_x64::inst::sqrtpd_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
13170
82
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
13171
13172
            // Return a type ISLE can work with.
13173
82
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
13174
82
            AssemblerOutputs::RetXmm { inst, xmm }
13175
82
        }
13176
18.0k
        fn x64_vsqrtss_b_raw(&mut self, xmm2: Xmm, xmm_m32: &XmmMem32) -> AssemblerOutputs {
13177
            // Convert ISLE types to assembler types.
13178
18.0k
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
13179
18.0k
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
13180
18.0k
            let xmm_m32 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
13181
13182
            // Build the instruction.
13183
18.0k
            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:144
13184
18.0k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
13185
13186
            // Return a type ISLE can work with.
13187
18.0k
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
13188
18.0k
            AssemblerOutputs::RetXmm { inst, xmm }
13189
18.0k
        }
13190
46.0k
        fn x64_vsqrtsd_b_raw(&mut self, xmm2: Xmm, xmm_m64: &XmmMem64) -> AssemblerOutputs {
13191
            // Convert ISLE types to assembler types.
13192
46.0k
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
13193
46.0k
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
13194
46.0k
            let xmm_m64 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
13195
13196
            // Build the instruction.
13197
46.0k
            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:144
13198
46.0k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
13199
13200
            // Return a type ISLE can work with.
13201
46.0k
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
13202
46.0k
            AssemblerOutputs::RetXmm { inst, xmm }
13203
46.0k
        }
13204
594
        fn x64_vsqrtps_b_raw(&mut self, xmm_m128: &XmmMem128) -> AssemblerOutputs {
13205
            // Convert ISLE types to assembler types.
13206
594
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
13207
594
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
13208
13209
            // Build the instruction.
13210
594
            let inst = cranelift_assembler_x64::inst::vsqrtps_b::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
13211
594
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
13212
13213
            // Return a type ISLE can work with.
13214
594
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
13215
594
            AssemblerOutputs::RetXmm { inst, xmm }
13216
594
        }
13217
1.12k
        fn x64_vsqrtpd_b_raw(&mut self, xmm_m128: &XmmMem128) -> AssemblerOutputs {
13218
            // Convert ISLE types to assembler types.
13219
1.12k
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
13220
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:131
13221
13222
            // Build the instruction.
13223
1.12k
            let inst = cranelift_assembler_x64::inst::vsqrtpd_b::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
13224
1.12k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
13225
13226
            // Return a type ISLE can work with.
13227
1.12k
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
13228
1.12k
            AssemblerOutputs::RetXmm { inst, xmm }
13229
1.12k
        }
13230
0
        fn x64_popw_m_raw(&mut self, rm16: &GprMem16) -> 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:131
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:144
13236
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:184
13242
0
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
13243
                }
13244
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
13245
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
13246
                }
13247
            }
13248
0
        }
13249
0
        fn x64_popq_m_raw(&mut self, rm64: &GprMem64) -> 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:131
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:144
13255
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:184
13261
0
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
13262
                }
13263
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
13264
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
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:131
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:144
13274
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
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:131
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:144
13286
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
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:131
13295
0
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
13299
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
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:131
13308
0
            let imm16 = cranelift_assembler_x64::Imm16::new(imm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
13312
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
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:131
13321
0
            let imm32 = cranelift_assembler_x64::Imm32::new(imm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
13325
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
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:131
13334
0
            let imm32 = cranelift_assembler_x64::Simm32::new(imm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
13338
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
13342
0
            AssemblerOutputs::RetGpr { inst, gpr }
13343
0
        }
13344
49
        fn x64_subb_mi_raw(&mut self, rm8: &GprMem8, imm8: u8) -> AssemblerOutputs {
13345
            // Convert ISLE types to assembler types.
13346
49
            let rm8 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
13347
49
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
13348
13349
            // Build the instruction.
13350
49
            let inst = cranelift_assembler_x64::inst::subb_mi::new(rm8.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
13351
49
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
13352
13353
            // Return a type ISLE can work with.
13354
49
            match rm8 {
13355
49
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
13356
49
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
13357
49
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
13358
                }
13359
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
13360
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
13361
                }
13362
            }
13363
49
        }
13364
172
        fn x64_subw_mi_raw(&mut self, rm16: &GprMem16, imm16: u16) -> AssemblerOutputs {
13365
            // Convert ISLE types to assembler types.
13366
172
            let rm16 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
13367
172
            let imm16 = cranelift_assembler_x64::Imm16::new(imm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
13368
13369
            // Build the instruction.
13370
172
            let inst = cranelift_assembler_x64::inst::subw_mi::new(rm16.clone(), imm16.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
13371
172
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
13372
13373
            // Return a type ISLE can work with.
13374
172
            match rm16 {
13375
172
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
13376
172
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
13377
172
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
13378
                }
13379
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
13380
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
13381
                }
13382
            }
13383
172
        }
13384
4.80k
        fn x64_subl_mi_raw(&mut self, rm32: &GprMem32, imm32: u32) -> AssemblerOutputs {
13385
            // Convert ISLE types to assembler types.
13386
4.80k
            let rm32 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
13387
4.80k
            let imm32 = cranelift_assembler_x64::Imm32::new(imm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
13388
13389
            // Build the instruction.
13390
4.80k
            let inst = cranelift_assembler_x64::inst::subl_mi::new(rm32.clone(), imm32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
13391
4.80k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
13392
13393
            // Return a type ISLE can work with.
13394
4.80k
            match rm32 {
13395
4.74k
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
13396
4.74k
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
13397
4.74k
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
13398
                }
13399
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
13400
54
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
13401
                }
13402
            }
13403
4.80k
        }
13404
239k
        fn x64_subq_mi_sxl_raw(&mut self, rm64: &GprMem64, imm32: i32) -> AssemblerOutputs {
13405
            // Convert ISLE types to assembler types.
13406
239k
            let rm64 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
13407
239k
            let imm32 = cranelift_assembler_x64::Simm32::new(imm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
13408
13409
            // Build the instruction.
13410
239k
            let inst = cranelift_assembler_x64::inst::subq_mi_sxl::new(rm64.clone(), imm32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
13411
239k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
13412
13413
            // Return a type ISLE can work with.
13414
239k
            match rm64 {
13415
239k
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
13416
239k
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
13417
239k
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
13418
                }
13419
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
13420
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
13421
                }
13422
            }
13423
239k
        }
13424
265k
        fn x64_subl_mi_sxb_raw(&mut self, rm32: &GprMem32, imm8: i8) -> AssemblerOutputs {
13425
            // Convert ISLE types to assembler types.
13426
265k
            let rm32 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
13427
265k
            let imm8 = cranelift_assembler_x64::Simm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
13428
13429
            // Build the instruction.
13430
265k
            let inst = cranelift_assembler_x64::inst::subl_mi_sxb::new(rm32.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
13431
265k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
13432
13433
            // Return a type ISLE can work with.
13434
265k
            match rm32 {
13435
71.8k
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
13436
71.8k
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
13437
71.8k
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
13438
                }
13439
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
13440
193k
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
13441
                }
13442
            }
13443
265k
        }
13444
36.8k
        fn x64_subq_mi_sxb_raw(&mut self, rm64: &GprMem64, imm8: i8) -> AssemblerOutputs {
13445
            // Convert ISLE types to assembler types.
13446
36.8k
            let rm64 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
13447
36.8k
            let imm8 = cranelift_assembler_x64::Simm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
13448
13449
            // Build the instruction.
13450
36.8k
            let inst = cranelift_assembler_x64::inst::subq_mi_sxb::new(rm64.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
13451
36.8k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
13452
13453
            // Return a type ISLE can work with.
13454
36.8k
            match rm64 {
13455
36.8k
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
13456
36.8k
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
13457
36.8k
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
13458
                }
13459
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
13460
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
13461
                }
13462
            }
13463
36.8k
        }
13464
0
        fn x64_subb_mr_raw(&mut self, rm8: &GprMem8, 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:131
13467
0
            let r8 = cranelift_assembler_x64::Gpr::new(r8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
13471
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:184
13477
0
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
13478
                }
13479
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
13480
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
13481
                }
13482
            }
13483
0
        }
13484
0
        fn x64_subw_mr_raw(&mut self, rm16: &GprMem16, 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:131
13487
0
            let r16 = cranelift_assembler_x64::Gpr::new(r16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
13491
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:184
13497
0
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
13498
                }
13499
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
13500
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
13501
                }
13502
            }
13503
0
        }
13504
149
        fn x64_subl_mr_raw(&mut self, rm32: &GprMem32, r32: Gpr) -> AssemblerOutputs {
13505
            // Convert ISLE types to assembler types.
13506
149
            let rm32 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
13507
149
            let r32 = cranelift_assembler_x64::Gpr::new(r32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
13508
13509
            // Build the instruction.
13510
149
            let inst = cranelift_assembler_x64::inst::subl_mr::new(rm32.clone(), r32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
13511
149
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
13512
13513
            // Return a type ISLE can work with.
13514
149
            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:184
13517
0
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
13518
                }
13519
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
13520
149
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
13521
                }
13522
            }
13523
149
        }
13524
7
        fn x64_subq_mr_raw(&mut self, rm64: &GprMem64, 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:131
13527
7
            let r64 = cranelift_assembler_x64::Gpr::new(r64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
13531
7
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:184
13537
0
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
13538
                }
13539
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
13540
7
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
13541
                }
13542
            }
13543
7
        }
13544
227
        fn x64_subb_rm_raw(&mut self, r8: Gpr, rm8: &GprMem8) -> AssemblerOutputs {
13545
            // Convert ISLE types to assembler types.
13546
227
            let r8 = self.convert_gpr_to_assembler_read_write_gpr(r8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
13547
227
            let rm8 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
13548
13549
            // Build the instruction.
13550
227
            let inst = cranelift_assembler_x64::inst::subb_rm::new(r8.clone(), rm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
13551
227
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
13552
13553
            // Return a type ISLE can work with.
13554
227
            let gpr = r8.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
13555
227
            AssemblerOutputs::RetGpr { inst, gpr }
13556
227
        }
13557
994
        fn x64_subw_rm_raw(&mut self, r16: Gpr, rm16: &GprMem16) -> AssemblerOutputs {
13558
            // Convert ISLE types to assembler types.
13559
994
            let r16 = self.convert_gpr_to_assembler_read_write_gpr(r16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
13560
994
            let rm16 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
13561
13562
            // Build the instruction.
13563
994
            let inst = cranelift_assembler_x64::inst::subw_rm::new(r16.clone(), rm16.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
13564
994
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
13565
13566
            // Return a type ISLE can work with.
13567
994
            let gpr = r16.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
13568
994
            AssemblerOutputs::RetGpr { inst, gpr }
13569
994
        }
13570
27.2k
        fn x64_subl_rm_raw(&mut self, r32: Gpr, rm32: &GprMem32) -> AssemblerOutputs {
13571
            // Convert ISLE types to assembler types.
13572
27.2k
            let r32 = self.convert_gpr_to_assembler_read_write_gpr(r32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
13573
27.2k
            let rm32 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
13574
13575
            // Build the instruction.
13576
27.2k
            let inst = cranelift_assembler_x64::inst::subl_rm::new(r32.clone(), rm32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
13577
27.2k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
13578
13579
            // Return a type ISLE can work with.
13580
27.2k
            let gpr = r32.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
13581
27.2k
            AssemblerOutputs::RetGpr { inst, gpr }
13582
27.2k
        }
13583
180k
        fn x64_subq_rm_raw(&mut self, r64: Gpr, rm64: &GprMem64) -> AssemblerOutputs {
13584
            // Convert ISLE types to assembler types.
13585
180k
            let r64 = self.convert_gpr_to_assembler_read_write_gpr(r64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
13586
180k
            let rm64 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
13587
13588
            // Build the instruction.
13589
180k
            let inst = cranelift_assembler_x64::inst::subq_rm::new(r64.clone(), rm64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
13590
180k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
13591
13592
            // Return a type ISLE can work with.
13593
180k
            let gpr = r64.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
13594
180k
            AssemblerOutputs::RetGpr { inst, gpr }
13595
180k
        }
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:131
13599
0
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
13603
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
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:131
13612
0
            let imm16 = cranelift_assembler_x64::Imm16::new(imm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
13616
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
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:131
13625
0
            let imm32 = cranelift_assembler_x64::Imm32::new(imm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
13629
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
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:131
13638
0
            let imm32 = cranelift_assembler_x64::Simm32::new(imm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
13642
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
13646
0
            AssemblerOutputs::RetGpr { inst, gpr }
13647
0
        }
13648
0
        fn x64_sbbb_mi_raw(&mut self, rm8: &GprMem8, 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:131
13651
0
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
13655
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:184
13661
0
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
13662
                }
13663
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
13664
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
13665
                }
13666
            }
13667
0
        }
13668
0
        fn x64_sbbw_mi_raw(&mut self, rm16: &GprMem16, 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:131
13671
0
            let imm16 = cranelift_assembler_x64::Imm16::new(imm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
13675
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:184
13681
0
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
13682
                }
13683
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
13684
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
13685
                }
13686
            }
13687
0
        }
13688
0
        fn x64_sbbl_mi_raw(&mut self, rm32: &GprMem32, 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:131
13691
0
            let imm32 = cranelift_assembler_x64::Imm32::new(imm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
13695
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:184
13701
0
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
13702
                }
13703
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
13704
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
13705
                }
13706
            }
13707
0
        }
13708
1.38k
        fn x64_sbbq_mi_sxl_raw(&mut self, rm64: &GprMem64, imm32: i32) -> AssemblerOutputs {
13709
            // Convert ISLE types to assembler types.
13710
1.38k
            let rm64 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
13711
1.38k
            let imm32 = cranelift_assembler_x64::Simm32::new(imm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
13712
13713
            // Build the instruction.
13714
1.38k
            let inst = cranelift_assembler_x64::inst::sbbq_mi_sxl::new(rm64.clone(), imm32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
13715
1.38k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
13716
13717
            // Return a type ISLE can work with.
13718
1.38k
            match rm64 {
13719
1.38k
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
13720
1.38k
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
13721
1.38k
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
13722
                }
13723
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
13724
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
13725
                }
13726
            }
13727
1.38k
        }
13728
0
        fn x64_sbbl_mi_sxb_raw(&mut self, rm32: &GprMem32, 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:131
13731
0
            let imm8 = cranelift_assembler_x64::Simm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
13735
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:184
13741
0
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
13742
                }
13743
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
13744
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
13745
                }
13746
            }
13747
0
        }
13748
431
        fn x64_sbbq_mi_sxb_raw(&mut self, rm64: &GprMem64, imm8: i8) -> AssemblerOutputs {
13749
            // Convert ISLE types to assembler types.
13750
431
            let rm64 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
13751
431
            let imm8 = cranelift_assembler_x64::Simm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
13752
13753
            // Build the instruction.
13754
431
            let inst = cranelift_assembler_x64::inst::sbbq_mi_sxb::new(rm64.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
13755
431
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
13756
13757
            // Return a type ISLE can work with.
13758
431
            match rm64 {
13759
431
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
13760
431
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
13761
431
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
13762
                }
13763
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
13764
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
13765
                }
13766
            }
13767
431
        }
13768
0
        fn x64_sbbb_mr_raw(&mut self, rm8: &GprMem8, 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:131
13771
0
            let r8 = cranelift_assembler_x64::Gpr::new(r8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
13775
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:184
13781
0
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
13782
                }
13783
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
13784
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
13785
                }
13786
            }
13787
0
        }
13788
0
        fn x64_sbbw_mr_raw(&mut self, rm16: &GprMem16, 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:131
13791
0
            let r16 = cranelift_assembler_x64::Gpr::new(r16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
13795
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:184
13801
0
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
13802
                }
13803
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
13804
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
13805
                }
13806
            }
13807
0
        }
13808
0
        fn x64_sbbl_mr_raw(&mut self, rm32: &GprMem32, 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:131
13811
0
            let r32 = cranelift_assembler_x64::Gpr::new(r32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
13815
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:184
13821
0
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
13822
                }
13823
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
13824
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
13825
                }
13826
            }
13827
0
        }
13828
0
        fn x64_sbbq_mr_raw(&mut self, rm64: &GprMem64, 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:131
13831
0
            let r64 = cranelift_assembler_x64::Gpr::new(r64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
13835
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:184
13841
0
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
13842
                }
13843
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
13844
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
13845
                }
13846
            }
13847
0
        }
13848
0
        fn x64_sbbb_rm_raw(&mut self, r8: Gpr, rm8: &GprMem8) -> 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:131
13851
0
            let rm8 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
13855
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
13859
0
            AssemblerOutputs::RetGpr { inst, gpr }
13860
0
        }
13861
0
        fn x64_sbbw_rm_raw(&mut self, r16: Gpr, rm16: &GprMem16) -> 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:131
13864
0
            let rm16 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
13868
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
13872
0
            AssemblerOutputs::RetGpr { inst, gpr }
13873
0
        }
13874
1.32k
        fn x64_sbbl_rm_raw(&mut self, r32: Gpr, rm32: &GprMem32) -> AssemblerOutputs {
13875
            // Convert ISLE types to assembler types.
13876
1.32k
            let r32 = self.convert_gpr_to_assembler_read_write_gpr(r32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
13877
1.32k
            let rm32 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
13878
13879
            // Build the instruction.
13880
1.32k
            let inst = cranelift_assembler_x64::inst::sbbl_rm::new(r32.clone(), rm32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
13881
1.32k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
13882
13883
            // Return a type ISLE can work with.
13884
1.32k
            let gpr = r32.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
13885
1.32k
            AssemblerOutputs::RetGpr { inst, gpr }
13886
1.32k
        }
13887
85.5k
        fn x64_sbbq_rm_raw(&mut self, r64: Gpr, rm64: &GprMem64) -> AssemblerOutputs {
13888
            // Convert ISLE types to assembler types.
13889
85.5k
            let r64 = self.convert_gpr_to_assembler_read_write_gpr(r64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
13890
85.5k
            let rm64 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
13891
13892
            // Build the instruction.
13893
85.5k
            let inst = cranelift_assembler_x64::inst::sbbq_rm::new(r64.clone(), rm64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
13894
85.5k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
13895
13896
            // Return a type ISLE can work with.
13897
85.5k
            let gpr = r64.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
13898
85.5k
            AssemblerOutputs::RetGpr { inst, gpr }
13899
85.5k
        }
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:131
13903
0
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
13907
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:131
13915
0
            let imm16 = cranelift_assembler_x64::Imm16::new(imm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
13919
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:131
13927
0
            let imm32 = cranelift_assembler_x64::Imm32::new(imm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
13931
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:131
13939
0
            let imm32 = cranelift_assembler_x64::Simm32::new(imm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
13943
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:131
13951
0
            let imm8 = cranelift_assembler_x64::Simm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
13955
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:131
13963
0
            let imm8 = cranelift_assembler_x64::Simm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
13967
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
13968
13969
            // Return a type ISLE can work with.
13970
0
            AssemblerOutputs::SideEffect { inst }
13971
0
        }
13972
8
        fn x64_lock_subb_mr_raw(&mut self, m8: &SyntheticAmode, r8: Gpr) -> AssemblerOutputs {
13973
            // Convert ISLE types to assembler types.
13974
8
            let m8 = self.convert_amode_to_assembler_amode(m8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
13975
8
            let r8 = cranelift_assembler_x64::Gpr::new(r8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
13976
13977
            // Build the instruction.
13978
8
            let inst = cranelift_assembler_x64::inst::lock_subb_mr::new(m8.clone(), r8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
13979
8
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
13980
13981
            // Return a type ISLE can work with.
13982
8
            AssemblerOutputs::SideEffect { inst }
13983
8
        }
13984
21
        fn x64_lock_subw_mr_raw(&mut self, m16: &SyntheticAmode, r16: Gpr) -> AssemblerOutputs {
13985
            // Convert ISLE types to assembler types.
13986
21
            let m16 = self.convert_amode_to_assembler_amode(m16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
13987
21
            let r16 = cranelift_assembler_x64::Gpr::new(r16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
13988
13989
            // Build the instruction.
13990
21
            let inst = cranelift_assembler_x64::inst::lock_subw_mr::new(m16.clone(), r16.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
13991
21
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
13992
13993
            // Return a type ISLE can work with.
13994
21
            AssemblerOutputs::SideEffect { inst }
13995
21
        }
13996
17
        fn x64_lock_subl_mr_raw(&mut self, m32: &SyntheticAmode, r32: Gpr) -> AssemblerOutputs {
13997
            // Convert ISLE types to assembler types.
13998
17
            let m32 = self.convert_amode_to_assembler_amode(m32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
13999
17
            let r32 = cranelift_assembler_x64::Gpr::new(r32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
14000
14001
            // Build the instruction.
14002
17
            let inst = cranelift_assembler_x64::inst::lock_subl_mr::new(m32.clone(), r32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
14003
17
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
14004
14005
            // Return a type ISLE can work with.
14006
17
            AssemblerOutputs::SideEffect { inst }
14007
17
        }
14008
10
        fn x64_lock_subq_mr_raw(&mut self, m64: &SyntheticAmode, r64: Gpr) -> AssemblerOutputs {
14009
            // Convert ISLE types to assembler types.
14010
10
            let m64 = self.convert_amode_to_assembler_amode(m64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
14011
10
            let r64 = cranelift_assembler_x64::Gpr::new(r64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
14012
14013
            // Build the instruction.
14014
10
            let inst = cranelift_assembler_x64::inst::lock_subq_mr::new(m64.clone(), r64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
14015
10
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
14016
14017
            // Return a type ISLE can work with.
14018
10
            AssemblerOutputs::SideEffect { inst }
14019
10
        }
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:131
14023
0
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
14027
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:131
14035
0
            let imm16 = cranelift_assembler_x64::Imm16::new(imm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
14039
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:131
14047
0
            let imm32 = cranelift_assembler_x64::Imm32::new(imm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
14051
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:131
14059
0
            let imm32 = cranelift_assembler_x64::Simm32::new(imm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
14063
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:131
14071
0
            let imm8 = cranelift_assembler_x64::Simm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
14075
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:131
14083
0
            let imm8 = cranelift_assembler_x64::Simm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
14087
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:131
14095
0
            let r8 = cranelift_assembler_x64::Gpr::new(r8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
14099
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:131
14107
0
            let r16 = cranelift_assembler_x64::Gpr::new(r16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
14111
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:131
14119
0
            let r32 = cranelift_assembler_x64::Gpr::new(r32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
14123
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:131
14131
0
            let r64 = cranelift_assembler_x64::Gpr::new(r64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
14135
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
14136
14137
            // Return a type ISLE can work with.
14138
0
            AssemblerOutputs::SideEffect { inst }
14139
0
        }
14140
143
        fn x64_subss_a_raw(&mut self, xmm1: Xmm, xmm_m32: &XmmMem32) -> AssemblerOutputs {
14141
            // Convert ISLE types to assembler types.
14142
143
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
14143
143
            let xmm_m32 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
14144
14145
            // Build the instruction.
14146
143
            let inst = cranelift_assembler_x64::inst::subss_a::new(xmm1.clone(), xmm_m32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
14147
143
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
14148
14149
            // Return a type ISLE can work with.
14150
143
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
14151
143
            AssemblerOutputs::RetXmm { inst, xmm }
14152
143
        }
14153
273
        fn x64_subsd_a_raw(&mut self, xmm1: Xmm, xmm_m64: &XmmMem64) -> AssemblerOutputs {
14154
            // Convert ISLE types to assembler types.
14155
273
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
14156
273
            let xmm_m64 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
14157
14158
            // Build the instruction.
14159
273
            let inst = cranelift_assembler_x64::inst::subsd_a::new(xmm1.clone(), xmm_m64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
14160
273
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
14161
14162
            // Return a type ISLE can work with.
14163
273
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
14164
273
            AssemblerOutputs::RetXmm { inst, xmm }
14165
273
        }
14166
159
        fn x64_subps_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned128) -> AssemblerOutputs {
14167
            // Convert ISLE types to assembler types.
14168
159
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
14169
159
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
14170
14171
            // Build the instruction.
14172
159
            let inst = cranelift_assembler_x64::inst::subps_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
14173
159
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
14174
14175
            // Return a type ISLE can work with.
14176
159
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
14177
159
            AssemblerOutputs::RetXmm { inst, xmm }
14178
159
        }
14179
622
        fn x64_subpd_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned128) -> AssemblerOutputs {
14180
            // Convert ISLE types to assembler types.
14181
622
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
14182
622
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
14183
14184
            // Build the instruction.
14185
622
            let inst = cranelift_assembler_x64::inst::subpd_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
14186
622
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
14187
14188
            // Return a type ISLE can work with.
14189
622
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
14190
622
            AssemblerOutputs::RetXmm { inst, xmm }
14191
622
        }
14192
599
        fn x64_psubb_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned128) -> AssemblerOutputs {
14193
            // Convert ISLE types to assembler types.
14194
599
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
14195
599
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
14196
14197
            // Build the instruction.
14198
599
            let inst = cranelift_assembler_x64::inst::psubb_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
14199
599
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
14200
14201
            // Return a type ISLE can work with.
14202
599
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
14203
599
            AssemblerOutputs::RetXmm { inst, xmm }
14204
599
        }
14205
98
        fn x64_psubw_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned128) -> AssemblerOutputs {
14206
            // Convert ISLE types to assembler types.
14207
98
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
14208
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:131
14209
14210
            // Build the instruction.
14211
98
            let inst = cranelift_assembler_x64::inst::psubw_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
14212
98
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
14213
14214
            // Return a type ISLE can work with.
14215
98
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
14216
98
            AssemblerOutputs::RetXmm { inst, xmm }
14217
98
        }
14218
79
        fn x64_psubd_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned128) -> AssemblerOutputs {
14219
            // Convert ISLE types to assembler types.
14220
79
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
14221
79
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
14222
14223
            // Build the instruction.
14224
79
            let inst = cranelift_assembler_x64::inst::psubd_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
14225
79
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
14226
14227
            // Return a type ISLE can work with.
14228
79
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
14229
79
            AssemblerOutputs::RetXmm { inst, xmm }
14230
79
        }
14231
476
        fn x64_psubq_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned128) -> AssemblerOutputs {
14232
            // Convert ISLE types to assembler types.
14233
476
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
14234
476
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
14235
14236
            // Build the instruction.
14237
476
            let inst = cranelift_assembler_x64::inst::psubq_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
14238
476
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
14239
14240
            // Return a type ISLE can work with.
14241
476
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
14242
476
            AssemblerOutputs::RetXmm { inst, xmm }
14243
476
        }
14244
223
        fn x64_psubsb_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned128) -> AssemblerOutputs {
14245
            // Convert ISLE types to assembler types.
14246
223
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
14247
223
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
14248
14249
            // Build the instruction.
14250
223
            let inst = cranelift_assembler_x64::inst::psubsb_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
14251
223
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
14252
14253
            // Return a type ISLE can work with.
14254
223
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
14255
223
            AssemblerOutputs::RetXmm { inst, xmm }
14256
223
        }
14257
13
        fn x64_psubsw_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned128) -> AssemblerOutputs {
14258
            // Convert ISLE types to assembler types.
14259
13
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
14260
13
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
14261
14262
            // Build the instruction.
14263
13
            let inst = cranelift_assembler_x64::inst::psubsw_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
14264
13
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
14265
14266
            // Return a type ISLE can work with.
14267
13
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
14268
13
            AssemblerOutputs::RetXmm { inst, xmm }
14269
13
        }
14270
33
        fn x64_psubusb_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned128) -> AssemblerOutputs {
14271
            // Convert ISLE types to assembler types.
14272
33
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
14273
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:131
14274
14275
            // Build the instruction.
14276
33
            let inst = cranelift_assembler_x64::inst::psubusb_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
14277
33
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
14278
14279
            // Return a type ISLE can work with.
14280
33
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
14281
33
            AssemblerOutputs::RetXmm { inst, xmm }
14282
33
        }
14283
109
        fn x64_psubusw_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned128) -> AssemblerOutputs {
14284
            // Convert ISLE types to assembler types.
14285
109
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
14286
109
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
14287
14288
            // Build the instruction.
14289
109
            let inst = cranelift_assembler_x64::inst::psubusw_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
14290
109
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
14291
14292
            // Return a type ISLE can work with.
14293
109
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
14294
109
            AssemblerOutputs::RetXmm { inst, xmm }
14295
109
        }
14296
1.46k
        fn x64_vsubss_b_raw(&mut self, xmm2: Xmm, xmm_m32: &XmmMem32) -> AssemblerOutputs {
14297
            // Convert ISLE types to assembler types.
14298
1.46k
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
14299
1.46k
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
14300
1.46k
            let xmm_m32 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
14301
14302
            // Build the instruction.
14303
1.46k
            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:144
14304
1.46k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
14305
14306
            // Return a type ISLE can work with.
14307
1.46k
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
14308
1.46k
            AssemblerOutputs::RetXmm { inst, xmm }
14309
1.46k
        }
14310
1.54k
        fn x64_vsubsd_b_raw(&mut self, xmm2: Xmm, xmm_m64: &XmmMem64) -> AssemblerOutputs {
14311
            // Convert ISLE types to assembler types.
14312
1.54k
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
14313
1.54k
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
14314
1.54k
            let xmm_m64 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
14315
14316
            // Build the instruction.
14317
1.54k
            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:144
14318
1.54k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
14319
14320
            // Return a type ISLE can work with.
14321
1.54k
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
14322
1.54k
            AssemblerOutputs::RetXmm { inst, xmm }
14323
1.54k
        }
14324
914
        fn x64_vsubps_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem128) -> AssemblerOutputs {
14325
            // Convert ISLE types to assembler types.
14326
914
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
14327
914
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
14328
914
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
14329
14330
            // Build the instruction.
14331
914
            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:144
14332
914
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
14333
14334
            // Return a type ISLE can work with.
14335
914
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
14336
914
            AssemblerOutputs::RetXmm { inst, xmm }
14337
914
        }
14338
1.81k
        fn x64_vsubpd_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem128) -> AssemblerOutputs {
14339
            // Convert ISLE types to assembler types.
14340
1.81k
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
14341
1.81k
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
14342
1.81k
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
14343
14344
            // Build the instruction.
14345
1.81k
            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:144
14346
1.81k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
14347
14348
            // Return a type ISLE can work with.
14349
1.81k
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
14350
1.81k
            AssemblerOutputs::RetXmm { inst, xmm }
14351
1.81k
        }
14352
2.44k
        fn x64_vpsubb_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem128) -> AssemblerOutputs {
14353
            // Convert ISLE types to assembler types.
14354
2.44k
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
14355
2.44k
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
14356
2.44k
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
14357
14358
            // Build the instruction.
14359
2.44k
            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:144
14360
2.44k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
14361
14362
            // Return a type ISLE can work with.
14363
2.44k
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
14364
2.44k
            AssemblerOutputs::RetXmm { inst, xmm }
14365
2.44k
        }
14366
615
        fn x64_vpsubw_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem128) -> AssemblerOutputs {
14367
            // Convert ISLE types to assembler types.
14368
615
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
14369
615
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
14370
615
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
14371
14372
            // Build the instruction.
14373
615
            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:144
14374
615
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
14375
14376
            // Return a type ISLE can work with.
14377
615
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
14378
615
            AssemblerOutputs::RetXmm { inst, xmm }
14379
615
        }
14380
6.43k
        fn x64_vpsubd_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem128) -> AssemblerOutputs {
14381
            // Convert ISLE types to assembler types.
14382
6.43k
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
14383
6.43k
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
14384
6.43k
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
14385
14386
            // Build the instruction.
14387
6.43k
            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:144
14388
6.43k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
14389
14390
            // Return a type ISLE can work with.
14391
6.43k
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
14392
6.43k
            AssemblerOutputs::RetXmm { inst, xmm }
14393
6.43k
        }
14394
2.39k
        fn x64_vpsubq_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem128) -> AssemblerOutputs {
14395
            // Convert ISLE types to assembler types.
14396
2.39k
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
14397
2.39k
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
14398
2.39k
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
14399
14400
            // Build the instruction.
14401
2.39k
            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:144
14402
2.39k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
14403
14404
            // Return a type ISLE can work with.
14405
2.39k
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
14406
2.39k
            AssemblerOutputs::RetXmm { inst, xmm }
14407
2.39k
        }
14408
356
        fn x64_vpsubsb_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem128) -> AssemblerOutputs {
14409
            // Convert ISLE types to assembler types.
14410
356
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
14411
356
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
14412
356
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
14413
14414
            // Build the instruction.
14415
356
            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:144
14416
356
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
14417
14418
            // Return a type ISLE can work with.
14419
356
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
14420
356
            AssemblerOutputs::RetXmm { inst, xmm }
14421
356
        }
14422
266
        fn x64_vpsubsw_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem128) -> AssemblerOutputs {
14423
            // Convert ISLE types to assembler types.
14424
266
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
14425
266
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
14426
266
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
14427
14428
            // Build the instruction.
14429
266
            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:144
14430
266
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
14431
14432
            // Return a type ISLE can work with.
14433
266
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
14434
266
            AssemblerOutputs::RetXmm { inst, xmm }
14435
266
        }
14436
296
        fn x64_vpsubusb_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem128) -> AssemblerOutputs {
14437
            // Convert ISLE types to assembler types.
14438
296
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
14439
296
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
14440
296
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
14441
14442
            // Build the instruction.
14443
296
            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:144
14444
296
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
14445
14446
            // Return a type ISLE can work with.
14447
296
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
14448
296
            AssemblerOutputs::RetXmm { inst, xmm }
14449
296
        }
14450
183
        fn x64_vpsubusw_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem128) -> AssemblerOutputs {
14451
            // Convert ISLE types to assembler types.
14452
183
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
14453
183
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
14454
183
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
14455
14456
            // Build the instruction.
14457
183
            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:144
14458
183
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
14459
14460
            // Return a type ISLE can work with.
14461
183
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
14462
183
            AssemblerOutputs::RetXmm { inst, xmm }
14463
183
        }
14464
598
        fn x64_unpcklps_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned128) -> AssemblerOutputs {
14465
            // Convert ISLE types to assembler types.
14466
598
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
14467
598
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
14468
14469
            // Build the instruction.
14470
598
            let inst = cranelift_assembler_x64::inst::unpcklps_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
14471
598
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
14472
14473
            // Return a type ISLE can work with.
14474
598
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
14475
598
            AssemblerOutputs::RetXmm { inst, xmm }
14476
598
        }
14477
0
        fn x64_unpcklpd_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned128) -> 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:131
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:131
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:144
14484
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
14488
0
            AssemblerOutputs::RetXmm { inst, xmm }
14489
0
        }
14490
13
        fn x64_unpckhps_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned128) -> AssemblerOutputs {
14491
            // Convert ISLE types to assembler types.
14492
13
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
14493
13
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
14494
14495
            // Build the instruction.
14496
13
            let inst = cranelift_assembler_x64::inst::unpckhps_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
14497
13
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
14498
14499
            // Return a type ISLE can work with.
14500
13
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
14501
13
            AssemblerOutputs::RetXmm { inst, xmm }
14502
13
        }
14503
1.69k
        fn x64_vunpcklps_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem128) -> AssemblerOutputs {
14504
            // Convert ISLE types to assembler types.
14505
1.69k
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
14506
1.69k
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
14507
1.69k
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
14508
14509
            // Build the instruction.
14510
1.69k
            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:144
14511
1.69k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
14512
14513
            // Return a type ISLE can work with.
14514
1.69k
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
14515
1.69k
            AssemblerOutputs::RetXmm { inst, xmm }
14516
1.69k
        }
14517
0
        fn x64_vunpcklpd_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem128) -> 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:131
14520
0
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:131
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:144
14525
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
14529
0
            AssemblerOutputs::RetXmm { inst, xmm }
14530
0
        }
14531
2.43k
        fn x64_vunpckhps_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem128) -> AssemblerOutputs {
14532
            // Convert ISLE types to assembler types.
14533
2.43k
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
14534
2.43k
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
14535
2.43k
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
14536
14537
            // Build the instruction.
14538
2.43k
            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:144
14539
2.43k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
14540
14541
            // Return a type ISLE can work with.
14542
2.43k
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
14543
2.43k
            AssemblerOutputs::RetXmm { inst, xmm }
14544
2.43k
        }
14545
768
        fn x64_punpckhbw_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned128) -> AssemblerOutputs {
14546
            // Convert ISLE types to assembler types.
14547
768
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
14548
768
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
14549
14550
            // Build the instruction.
14551
768
            let inst = cranelift_assembler_x64::inst::punpckhbw_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
14552
768
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
14553
14554
            // Return a type ISLE can work with.
14555
768
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
14556
768
            AssemblerOutputs::RetXmm { inst, xmm }
14557
768
        }
14558
140
        fn x64_punpckhwd_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned128) -> AssemblerOutputs {
14559
            // Convert ISLE types to assembler types.
14560
140
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
14561
140
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
14562
14563
            // Build the instruction.
14564
140
            let inst = cranelift_assembler_x64::inst::punpckhwd_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
14565
140
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
14566
14567
            // Return a type ISLE can work with.
14568
140
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
14569
140
            AssemblerOutputs::RetXmm { inst, xmm }
14570
140
        }
14571
0
        fn x64_punpckhdq_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned128) -> 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:131
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:131
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:144
14578
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
14582
0
            AssemblerOutputs::RetXmm { inst, xmm }
14583
0
        }
14584
0
        fn x64_punpckhqdq_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned128) -> 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:131
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:131
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:144
14591
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
14595
0
            AssemblerOutputs::RetXmm { inst, xmm }
14596
0
        }
14597
158
        fn x64_punpcklwd_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned128) -> AssemblerOutputs {
14598
            // Convert ISLE types to assembler types.
14599
158
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
14600
158
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
14601
14602
            // Build the instruction.
14603
158
            let inst = cranelift_assembler_x64::inst::punpcklwd_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
14604
158
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
14605
14606
            // Return a type ISLE can work with.
14607
158
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
14608
158
            AssemblerOutputs::RetXmm { inst, xmm }
14609
158
        }
14610
780
        fn x64_punpcklbw_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned128) -> AssemblerOutputs {
14611
            // Convert ISLE types to assembler types.
14612
780
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
14613
780
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
14614
14615
            // Build the instruction.
14616
780
            let inst = cranelift_assembler_x64::inst::punpcklbw_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
14617
780
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
14618
14619
            // Return a type ISLE can work with.
14620
780
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
14621
780
            AssemblerOutputs::RetXmm { inst, xmm }
14622
780
        }
14623
82
        fn x64_punpckldq_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned128) -> AssemblerOutputs {
14624
            // Convert ISLE types to assembler types.
14625
82
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
14626
82
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
14627
14628
            // Build the instruction.
14629
82
            let inst = cranelift_assembler_x64::inst::punpckldq_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
14630
82
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
14631
14632
            // Return a type ISLE can work with.
14633
82
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
14634
82
            AssemblerOutputs::RetXmm { inst, xmm }
14635
82
        }
14636
101
        fn x64_punpcklqdq_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned128) -> AssemblerOutputs {
14637
            // Convert ISLE types to assembler types.
14638
101
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
14639
101
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
14640
14641
            // Build the instruction.
14642
101
            let inst = cranelift_assembler_x64::inst::punpcklqdq_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
14643
101
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
14644
14645
            // Return a type ISLE can work with.
14646
101
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
14647
101
            AssemblerOutputs::RetXmm { inst, xmm }
14648
101
        }
14649
1.98k
        fn x64_vpunpckhbw_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem128) -> AssemblerOutputs {
14650
            // Convert ISLE types to assembler types.
14651
1.98k
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
14652
1.98k
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
14653
1.98k
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
14654
14655
            // Build the instruction.
14656
1.98k
            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:144
14657
1.98k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
14658
14659
            // Return a type ISLE can work with.
14660
1.98k
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
14661
1.98k
            AssemblerOutputs::RetXmm { inst, xmm }
14662
1.98k
        }
14663
1.56k
        fn x64_vpunpckhwd_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem128) -> AssemblerOutputs {
14664
            // Convert ISLE types to assembler types.
14665
1.56k
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
14666
1.56k
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
14667
1.56k
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
14668
14669
            // Build the instruction.
14670
1.56k
            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:144
14671
1.56k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
14672
14673
            // Return a type ISLE can work with.
14674
1.56k
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
14675
1.56k
            AssemblerOutputs::RetXmm { inst, xmm }
14676
1.56k
        }
14677
0
        fn x64_vpunpckhdq_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem128) -> 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:131
14680
0
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:131
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:144
14685
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
14689
0
            AssemblerOutputs::RetXmm { inst, xmm }
14690
0
        }
14691
0
        fn x64_vpunpckhqdq_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem128) -> 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:131
14694
0
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:131
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:144
14699
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
14703
0
            AssemblerOutputs::RetXmm { inst, xmm }
14704
0
        }
14705
102
        fn x64_vpunpcklwd_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem128) -> AssemblerOutputs {
14706
            // Convert ISLE types to assembler types.
14707
102
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
14708
102
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
14709
102
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
14710
14711
            // Build the instruction.
14712
102
            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:144
14713
102
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
14714
14715
            // Return a type ISLE can work with.
14716
102
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
14717
102
            AssemblerOutputs::RetXmm { inst, xmm }
14718
102
        }
14719
652
        fn x64_vpunpcklbw_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem128) -> AssemblerOutputs {
14720
            // Convert ISLE types to assembler types.
14721
652
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
14722
652
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
14723
652
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
14724
14725
            // Build the instruction.
14726
652
            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:144
14727
652
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
14728
14729
            // Return a type ISLE can work with.
14730
652
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
14731
652
            AssemblerOutputs::RetXmm { inst, xmm }
14732
652
        }
14733
89
        fn x64_vpunpckldq_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem128) -> AssemblerOutputs {
14734
            // Convert ISLE types to assembler types.
14735
89
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
14736
89
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
14737
89
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
14738
14739
            // Build the instruction.
14740
89
            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:144
14741
89
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
14742
14743
            // Return a type ISLE can work with.
14744
89
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
14745
89
            AssemblerOutputs::RetXmm { inst, xmm }
14746
89
        }
14747
55
        fn x64_vpunpcklqdq_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem128) -> AssemblerOutputs {
14748
            // Convert ISLE types to assembler types.
14749
55
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
14750
55
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
14751
55
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
14752
14753
            // Build the instruction.
14754
55
            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:144
14755
55
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
14756
14757
            // Return a type ISLE can work with.
14758
55
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
14759
55
            AssemblerOutputs::RetXmm { inst, xmm }
14760
55
        }
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:131
14764
0
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
14768
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
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:131
14777
0
            let imm16 = cranelift_assembler_x64::Imm16::new(imm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
14781
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
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:131
14790
0
            let imm32 = cranelift_assembler_x64::Imm32::new(imm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
14794
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
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:131
14803
0
            let imm32 = cranelift_assembler_x64::Simm32::new(imm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
14807
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
14811
0
            AssemblerOutputs::RetGpr { inst, gpr }
14812
0
        }
14813
22
        fn x64_xorb_mi_raw(&mut self, rm8: &GprMem8, imm8: u8) -> AssemblerOutputs {
14814
            // Convert ISLE types to assembler types.
14815
22
            let rm8 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
14816
22
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
14817
14818
            // Build the instruction.
14819
22
            let inst = cranelift_assembler_x64::inst::xorb_mi::new(rm8.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
14820
22
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
14821
14822
            // Return a type ISLE can work with.
14823
22
            match rm8 {
14824
22
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
14825
22
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
14826
22
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
14827
                }
14828
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
14829
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
14830
                }
14831
            }
14832
22
        }
14833
27
        fn x64_xorw_mi_raw(&mut self, rm16: &GprMem16, imm16: u16) -> AssemblerOutputs {
14834
            // Convert ISLE types to assembler types.
14835
27
            let rm16 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
14836
27
            let imm16 = cranelift_assembler_x64::Imm16::new(imm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
14837
14838
            // Build the instruction.
14839
27
            let inst = cranelift_assembler_x64::inst::xorw_mi::new(rm16.clone(), imm16.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
14840
27
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
14841
14842
            // Return a type ISLE can work with.
14843
27
            match rm16 {
14844
27
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
14845
27
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
14846
27
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
14847
                }
14848
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
14849
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
14850
                }
14851
            }
14852
27
        }
14853
43.2k
        fn x64_xorl_mi_raw(&mut self, rm32: &GprMem32, imm32: u32) -> AssemblerOutputs {
14854
            // Convert ISLE types to assembler types.
14855
43.2k
            let rm32 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
14856
43.2k
            let imm32 = cranelift_assembler_x64::Imm32::new(imm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
14857
14858
            // Build the instruction.
14859
43.2k
            let inst = cranelift_assembler_x64::inst::xorl_mi::new(rm32.clone(), imm32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
14860
43.2k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
14861
14862
            // Return a type ISLE can work with.
14863
43.2k
            match rm32 {
14864
11.9k
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
14865
11.9k
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
14866
11.9k
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
14867
                }
14868
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
14869
31.3k
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
14870
                }
14871
            }
14872
43.2k
        }
14873
36.1k
        fn x64_xorq_mi_sxl_raw(&mut self, rm64: &GprMem64, imm32: i32) -> AssemblerOutputs {
14874
            // Convert ISLE types to assembler types.
14875
36.1k
            let rm64 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
14876
36.1k
            let imm32 = cranelift_assembler_x64::Simm32::new(imm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
14877
14878
            // Build the instruction.
14879
36.1k
            let inst = cranelift_assembler_x64::inst::xorq_mi_sxl::new(rm64.clone(), imm32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
14880
36.1k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
14881
14882
            // Return a type ISLE can work with.
14883
36.1k
            match rm64 {
14884
3.68k
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
14885
3.68k
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
14886
3.68k
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
14887
                }
14888
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
14889
32.4k
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
14890
                }
14891
            }
14892
36.1k
        }
14893
27.2k
        fn x64_xorl_mi_sxb_raw(&mut self, rm32: &GprMem32, imm8: i8) -> AssemblerOutputs {
14894
            // Convert ISLE types to assembler types.
14895
27.2k
            let rm32 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
14896
27.2k
            let imm8 = cranelift_assembler_x64::Simm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
14897
14898
            // Build the instruction.
14899
27.2k
            let inst = cranelift_assembler_x64::inst::xorl_mi_sxb::new(rm32.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
14900
27.2k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
14901
14902
            // Return a type ISLE can work with.
14903
27.2k
            match rm32 {
14904
2.06k
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
14905
2.06k
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
14906
2.06k
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
14907
                }
14908
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
14909
25.1k
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
14910
                }
14911
            }
14912
27.2k
        }
14913
10.1k
        fn x64_xorq_mi_sxb_raw(&mut self, rm64: &GprMem64, imm8: i8) -> AssemblerOutputs {
14914
            // Convert ISLE types to assembler types.
14915
10.1k
            let rm64 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
14916
10.1k
            let imm8 = cranelift_assembler_x64::Simm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
14917
14918
            // Build the instruction.
14919
10.1k
            let inst = cranelift_assembler_x64::inst::xorq_mi_sxb::new(rm64.clone(), imm8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
14920
10.1k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
14921
14922
            // Return a type ISLE can work with.
14923
10.1k
            match rm64 {
14924
1.31k
                cranelift_assembler_x64::GprMem::Gpr(reg) =>  {
14925
1.31k
                    let gpr = reg.write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:184
14926
1.31k
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
14927
                }
14928
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
14929
8.86k
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
14930
                }
14931
            }
14932
10.1k
        }
14933
0
        fn x64_xorb_mr_raw(&mut self, rm8: &GprMem8, 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:131
14936
0
            let r8 = cranelift_assembler_x64::Gpr::new(r8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
14940
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:184
14946
0
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
14947
                }
14948
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
14949
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
14950
                }
14951
            }
14952
0
        }
14953
0
        fn x64_xorw_mr_raw(&mut self, rm16: &GprMem16, 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:131
14956
0
            let r16 = cranelift_assembler_x64::Gpr::new(r16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
14960
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:184
14966
0
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
14967
                }
14968
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
14969
0
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
14970
                }
14971
            }
14972
0
        }
14973
159k
        fn x64_xorl_mr_raw(&mut self, rm32: &GprMem32, r32: Gpr) -> AssemblerOutputs {
14974
            // Convert ISLE types to assembler types.
14975
159k
            let rm32 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
14976
159k
            let r32 = cranelift_assembler_x64::Gpr::new(r32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
14977
14978
            // Build the instruction.
14979
159k
            let inst = cranelift_assembler_x64::inst::xorl_mr::new(rm32.clone(), r32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
14980
159k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
14981
14982
            // Return a type ISLE can work with.
14983
159k
            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:184
14986
0
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
14987
                }
14988
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
14989
159k
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
14990
                }
14991
            }
14992
159k
        }
14993
203k
        fn x64_xorq_mr_raw(&mut self, rm64: &GprMem64, r64: Gpr) -> AssemblerOutputs {
14994
            // Convert ISLE types to assembler types.
14995
203k
            let rm64 = self.convert_gpr_mem_to_assembler_read_write_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
14996
203k
            let r64 = cranelift_assembler_x64::Gpr::new(r64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
14997
14998
            // Build the instruction.
14999
203k
            let inst = cranelift_assembler_x64::inst::xorq_mr::new(rm64.clone(), r64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
15000
203k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
15001
15002
            // Return a type ISLE can work with.
15003
203k
            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:184
15006
0
                    AssemblerOutputs::RetGpr { inst, gpr }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:185
15007
                }
15008
                cranelift_assembler_x64::GprMem::Mem(_) =>  {
15009
203k
                    AssemblerOutputs::SideEffect { inst }  // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:188
15010
                }
15011
            }
15012
203k
        }
15013
0
        fn x64_xorb_rm_raw(&mut self, r8: Gpr, rm8: &GprMem8) -> 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:131
15016
0
            let rm8 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
15020
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
15024
0
            AssemblerOutputs::RetGpr { inst, gpr }
15025
0
        }
15026
0
        fn x64_xorw_rm_raw(&mut self, r16: Gpr, rm16: &GprMem16) -> 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:131
15029
0
            let rm16 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
15033
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:174
15037
0
            AssemblerOutputs::RetGpr { inst, gpr }
15038
0
        }
15039
1.38M
        fn x64_xorl_rm_raw(&mut self, r32: Gpr, rm32: &GprMem32) -> AssemblerOutputs {
15040
            // Convert ISLE types to assembler types.
15041
1.38M
            let r32 = self.convert_gpr_to_assembler_read_write_gpr(r32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
15042
1.38M
            let rm32 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
15043
15044
            // Build the instruction.
15045
1.38M
            let inst = cranelift_assembler_x64::inst::xorl_rm::new(r32.clone(), rm32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
15046
1.38M
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
15047
15048
            // Return a type ISLE can work with.
15049
1.38M
            let gpr = r32.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
15050
1.38M
            AssemblerOutputs::RetGpr { inst, gpr }
15051
1.38M
        }
15052
1.27M
        fn x64_xorq_rm_raw(&mut self, r64: Gpr, rm64: &GprMem64) -> AssemblerOutputs {
15053
            // Convert ISLE types to assembler types.
15054
1.27M
            let r64 = self.convert_gpr_to_assembler_read_write_gpr(r64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
15055
1.27M
            let rm64 = self.convert_gpr_mem_to_assembler_read_gpr_mem(rm64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
15056
15057
            // Build the instruction.
15058
1.27M
            let inst = cranelift_assembler_x64::inst::xorq_rm::new(r64.clone(), rm64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
15059
1.27M
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
15060
15061
            // Return a type ISLE can work with.
15062
1.27M
            let gpr = r64.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
15063
1.27M
            AssemblerOutputs::RetGpr { inst, gpr }
15064
1.27M
        }
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:131
15068
0
            let imm8 = cranelift_assembler_x64::Imm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
15072
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:131
15080
0
            let imm16 = cranelift_assembler_x64::Imm16::new(imm16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
15084
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:131
15092
0
            let imm32 = cranelift_assembler_x64::Imm32::new(imm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
15096
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:131
15104
0
            let imm32 = cranelift_assembler_x64::Simm32::new(imm32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
15108
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:131
15116
0
            let imm8 = cranelift_assembler_x64::Simm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
15120
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
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:131
15128
0
            let imm8 = cranelift_assembler_x64::Simm8::new(imm8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
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:144
15132
0
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
15133
15134
            // Return a type ISLE can work with.
15135
0
            AssemblerOutputs::SideEffect { inst }
15136
0
        }
15137
9
        fn x64_lock_xorb_mr_raw(&mut self, m8: &SyntheticAmode, r8: Gpr) -> AssemblerOutputs {
15138
            // Convert ISLE types to assembler types.
15139
9
            let m8 = self.convert_amode_to_assembler_amode(m8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
15140
9
            let r8 = cranelift_assembler_x64::Gpr::new(r8); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
15141
15142
            // Build the instruction.
15143
9
            let inst = cranelift_assembler_x64::inst::lock_xorb_mr::new(m8.clone(), r8.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
15144
9
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
15145
15146
            // Return a type ISLE can work with.
15147
9
            AssemblerOutputs::SideEffect { inst }
15148
9
        }
15149
19
        fn x64_lock_xorw_mr_raw(&mut self, m16: &SyntheticAmode, r16: Gpr) -> AssemblerOutputs {
15150
            // Convert ISLE types to assembler types.
15151
19
            let m16 = self.convert_amode_to_assembler_amode(m16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
15152
19
            let r16 = cranelift_assembler_x64::Gpr::new(r16); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
15153
15154
            // Build the instruction.
15155
19
            let inst = cranelift_assembler_x64::inst::lock_xorw_mr::new(m16.clone(), r16.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
15156
19
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
15157
15158
            // Return a type ISLE can work with.
15159
19
            AssemblerOutputs::SideEffect { inst }
15160
19
        }
15161
19
        fn x64_lock_xorl_mr_raw(&mut self, m32: &SyntheticAmode, r32: Gpr) -> AssemblerOutputs {
15162
            // Convert ISLE types to assembler types.
15163
19
            let m32 = self.convert_amode_to_assembler_amode(m32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
15164
19
            let r32 = cranelift_assembler_x64::Gpr::new(r32); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
15165
15166
            // Build the instruction.
15167
19
            let inst = cranelift_assembler_x64::inst::lock_xorl_mr::new(m32.clone(), r32.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
15168
19
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
15169
15170
            // Return a type ISLE can work with.
15171
19
            AssemblerOutputs::SideEffect { inst }
15172
19
        }
15173
12
        fn x64_lock_xorq_mr_raw(&mut self, m64: &SyntheticAmode, r64: Gpr) -> AssemblerOutputs {
15174
            // Convert ISLE types to assembler types.
15175
12
            let m64 = self.convert_amode_to_assembler_amode(m64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
15176
12
            let r64 = cranelift_assembler_x64::Gpr::new(r64); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
15177
15178
            // Build the instruction.
15179
12
            let inst = cranelift_assembler_x64::inst::lock_xorq_mr::new(m64.clone(), r64.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
15180
12
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
15181
15182
            // Return a type ISLE can work with.
15183
12
            AssemblerOutputs::SideEffect { inst }
15184
12
        }
15185
11.7k
        fn x64_xorps_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned128) -> AssemblerOutputs {
15186
            // Convert ISLE types to assembler types.
15187
11.7k
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
15188
11.7k
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
15189
15190
            // Build the instruction.
15191
11.7k
            let inst = cranelift_assembler_x64::inst::xorps_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
15192
11.7k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
15193
15194
            // Return a type ISLE can work with.
15195
11.7k
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
15196
11.7k
            AssemblerOutputs::RetXmm { inst, xmm }
15197
11.7k
        }
15198
25.8k
        fn x64_xorpd_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned128) -> AssemblerOutputs {
15199
            // Convert ISLE types to assembler types.
15200
25.8k
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
15201
25.8k
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem_aligned(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
15202
15203
            // Build the instruction.
15204
25.8k
            let inst = cranelift_assembler_x64::inst::xorpd_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
15205
25.8k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
15206
15207
            // Return a type ISLE can work with.
15208
25.8k
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
15209
25.8k
            AssemblerOutputs::RetXmm { inst, xmm }
15210
25.8k
        }
15211
9.82k
        fn x64_pxor_a_raw(&mut self, xmm1: Xmm, xmm_m128: &XmmMemAligned128) -> AssemblerOutputs {
15212
            // Convert ISLE types to assembler types.
15213
9.82k
            let xmm1 = self.convert_xmm_to_assembler_read_write_xmm(xmm1); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
15214
9.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:131
15215
15216
            // Build the instruction.
15217
9.82k
            let inst = cranelift_assembler_x64::inst::pxor_a::new(xmm1.clone(), xmm_m128.clone()).into(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:144
15218
9.82k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
15219
15220
            // Return a type ISLE can work with.
15221
9.82k
            let xmm = xmm1.as_ref().write.to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
15222
9.82k
            AssemblerOutputs::RetXmm { inst, xmm }
15223
9.82k
        }
15224
402k
        fn x64_vxorps_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem128) -> AssemblerOutputs {
15225
            // Convert ISLE types to assembler types.
15226
402k
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
15227
402k
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
15228
402k
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
15229
15230
            // Build the instruction.
15231
402k
            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:144
15232
402k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
15233
15234
            // Return a type ISLE can work with.
15235
402k
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
15236
402k
            AssemblerOutputs::RetXmm { inst, xmm }
15237
402k
        }
15238
645k
        fn x64_vxorpd_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem128) -> AssemblerOutputs {
15239
            // Convert ISLE types to assembler types.
15240
645k
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
15241
645k
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
15242
645k
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
15243
15244
            // Build the instruction.
15245
645k
            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:144
15246
645k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
15247
15248
            // Return a type ISLE can work with.
15249
645k
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
15250
645k
            AssemblerOutputs::RetXmm { inst, xmm }
15251
645k
        }
15252
162k
        fn x64_vpxor_b_raw(&mut self, xmm2: Xmm, xmm_m128: &XmmMem128) -> AssemblerOutputs {
15253
            // Convert ISLE types to assembler types.
15254
162k
            let xmm1 = cranelift_assembler_x64::Xmm::new(self.temp_writable_xmm()); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
15255
162k
            let xmm2 = cranelift_assembler_x64::Xmm::new(xmm2); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
15256
162k
            let xmm_m128 = self.convert_xmm_mem_to_assembler_read_xmm_mem(xmm_m128); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:131
15257
15258
            // Build the instruction.
15259
162k
            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:144
15260
162k
            let inst = MInst::External { inst }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:148
15261
15262
            // Return a type ISLE can work with.
15263
162k
            let xmm = xmm1.as_ref().to_reg(); // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:174
15264
162k
            AssemblerOutputs::RetXmm { inst, xmm }
15265
162k
        }
15266
    }; // /src/wasmtime/cranelift/codegen/meta/src/gen_asm.rs:244
15267
}