@@ -187,7 +187,6 @@ impl Executor<'_> {
187
187
/// Used by the execution logic for
188
188
///
189
189
/// - [`Instruction::ReturnMany`]
190
- /// - [`Instruction::ReturnNezMany`]
191
190
/// - [`Instruction::BranchTableMany`]
192
191
pub fn copy_many_return_values ( & mut self , ip : InstructionPtr , values : & [ Reg ] ) {
193
192
let ( mut caller_sp, results) = self . return_caller_results ( ) ;
@@ -224,110 +223,4 @@ impl Executor<'_> {
224
223
} ;
225
224
copy_results ( values) ;
226
225
}
227
-
228
- /// Execute a generic conditional return [`Instruction`].
229
- fn execute_return_nez_impl < T > (
230
- & mut self ,
231
- store : & mut StoreInner ,
232
- condition : Reg ,
233
- value : T ,
234
- f : fn ( & mut Self , & mut StoreInner , T ) -> ControlFlow ,
235
- ) -> ControlFlow {
236
- let condition = self . get_register ( condition) ;
237
- match bool:: from ( condition) {
238
- true => f ( self , store, value) ,
239
- false => {
240
- self . next_instr ( ) ;
241
- ControlFlow :: Continue ( ( ) )
242
- }
243
- }
244
- }
245
-
246
- /// Execute an [`Instruction::ReturnNez`].
247
- pub fn execute_return_nez ( & mut self , store : & mut StoreInner , condition : Reg ) -> ControlFlow {
248
- self . execute_return_nez_impl ( store, condition, ( ) , |this, store, _| {
249
- this. execute_return ( store)
250
- } )
251
- }
252
-
253
- /// Execute an [`Instruction::ReturnNezReg`] returning a single [`Reg`] value.
254
- pub fn execute_return_nez_reg (
255
- & mut self ,
256
- store : & mut StoreInner ,
257
- condition : Reg ,
258
- value : Reg ,
259
- ) -> ControlFlow {
260
- self . execute_return_nez_impl ( store, condition, value, Self :: execute_return_reg)
261
- }
262
-
263
- /// Execute an [`Instruction::ReturnNezReg2`] returning two [`Reg`] values.
264
- pub fn execute_return_nez_reg2 (
265
- & mut self ,
266
- store : & mut StoreInner ,
267
- condition : Reg ,
268
- value : [ Reg ; 2 ] ,
269
- ) -> ControlFlow {
270
- self . execute_return_nez_impl ( store, condition, value, Self :: execute_return_reg2)
271
- }
272
-
273
- /// Execute an [`Instruction::ReturnNezImm32`] returning a single 32-bit immediate value.
274
- pub fn execute_return_nez_imm32 (
275
- & mut self ,
276
- store : & mut StoreInner ,
277
- condition : Reg ,
278
- value : AnyConst32 ,
279
- ) -> ControlFlow {
280
- self . execute_return_nez_impl ( store, condition, value, Self :: execute_return_imm32)
281
- }
282
-
283
- /// Execute an [`Instruction::ReturnNezI64Imm32`] returning a single 32-bit encoded immediate `i64` value.
284
- pub fn execute_return_nez_i64imm32 (
285
- & mut self ,
286
- store : & mut StoreInner ,
287
- condition : Reg ,
288
- value : Const32 < i64 > ,
289
- ) -> ControlFlow {
290
- self . execute_return_nez_impl ( store, condition, value, Self :: execute_return_i64imm32)
291
- }
292
-
293
- /// Execute an [`Instruction::ReturnNezF64Imm32`] returning a single 32-bit encoded immediate `f64` value.
294
- pub fn execute_return_nez_f64imm32 (
295
- & mut self ,
296
- store : & mut StoreInner ,
297
- condition : Reg ,
298
- value : Const32 < f64 > ,
299
- ) -> ControlFlow {
300
- self . execute_return_nez_impl ( store, condition, value, Self :: execute_return_f64imm32)
301
- }
302
-
303
- /// Execute an [`Instruction::ReturnNezSpan`] returning many values.
304
- pub fn execute_return_nez_span (
305
- & mut self ,
306
- store : & mut StoreInner ,
307
- condition : Reg ,
308
- values : BoundedRegSpan ,
309
- ) -> ControlFlow {
310
- self . execute_return_nez_impl ( store, condition, values, Self :: execute_return_span)
311
- }
312
-
313
- /// Execute an [`Instruction::ReturnNezMany`] returning many values.
314
- pub fn execute_return_nez_many (
315
- & mut self ,
316
- store : & mut StoreInner ,
317
- condition : Reg ,
318
- values : [ Reg ; 2 ] ,
319
- ) -> ControlFlow {
320
- let condition = self . get_register ( condition) ;
321
- self . ip . add ( 1 ) ;
322
- match bool:: from ( condition) {
323
- true => {
324
- self . copy_many_return_values ( self . ip , & values) ;
325
- self . return_impl ( store)
326
- }
327
- false => {
328
- self . ip = Self :: skip_register_list ( self . ip ) ;
329
- ControlFlow :: Continue ( ( ) )
330
- }
331
- }
332
- }
333
226
}
0 commit comments