@@ -194,31 +194,32 @@ impl<'ctx, 'engine> Executor<'ctx, 'engine> {
194
194
fn execute ( mut self ) -> Result < WasmOutcome , TrapCode > {
195
195
use Instruction as Instr ;
196
196
loop {
197
- match * self . ip . get ( ) {
198
- Instr :: LocalGet { local_depth } => self . visit_local_get ( local_depth) ,
199
- Instr :: LocalSet { local_depth } => self . visit_local_set ( local_depth) ,
200
- Instr :: LocalTee { local_depth } => self . visit_local_tee ( local_depth) ,
201
- Instr :: Br ( params) => self . visit_br ( params) ,
202
- Instr :: BrIfEqz ( params) => self . visit_br_if_eqz ( params) ,
203
- Instr :: BrIfNez ( params) => self . visit_br_if_nez ( params) ,
204
- Instr :: BrTable { len_targets } => self . visit_br_table ( len_targets) ,
197
+ let ip = self . ip ;
198
+ match ip. get ( ) {
199
+ Instr :: LocalGet { local_depth } => self . visit_local_get ( * local_depth) ,
200
+ Instr :: LocalSet { local_depth } => self . visit_local_set ( * local_depth) ,
201
+ Instr :: LocalTee { local_depth } => self . visit_local_tee ( * local_depth) ,
202
+ Instr :: Br ( params) => self . visit_br ( * params) ,
203
+ Instr :: BrIfEqz ( params) => self . visit_br_if_eqz ( * params) ,
204
+ Instr :: BrIfNez ( params) => self . visit_br_if_nez ( * params) ,
205
+ Instr :: BrTable { len_targets } => self . visit_br_table ( * len_targets) ,
205
206
Instr :: Unreachable => self . visit_unreachable ( ) ?,
206
- Instr :: ConsumeFuel { amount } => self . visit_consume_fuel ( amount) ?,
207
+ Instr :: ConsumeFuel { amount } => self . visit_consume_fuel ( * amount) ?,
207
208
Instr :: Return ( drop_keep) => {
208
- if let ReturnOutcome :: Host = self . visit_ret ( drop_keep) {
209
+ if let ReturnOutcome :: Host = self . visit_ret ( * drop_keep) {
209
210
return Ok ( WasmOutcome :: Return ) ;
210
211
}
211
212
}
212
213
Instr :: ReturnIfNez ( drop_keep) => {
213
- if let ReturnOutcome :: Host = self . visit_return_if_nez ( drop_keep) {
214
+ if let ReturnOutcome :: Host = self . visit_return_if_nez ( * drop_keep) {
214
215
return Ok ( WasmOutcome :: Return ) ;
215
216
}
216
217
}
217
218
Instr :: ReturnCall { drop_keep, func } => {
218
219
if let CallOutcome :: Call {
219
220
host_func,
220
221
instance,
221
- } = self . visit_return_call ( drop_keep, func) ?
222
+ } = self . visit_return_call ( * drop_keep, * func) ?
222
223
{
223
224
return Ok ( WasmOutcome :: Call {
224
225
host_func,
@@ -234,7 +235,7 @@ impl<'ctx, 'engine> Executor<'ctx, 'engine> {
234
235
if let CallOutcome :: Call {
235
236
host_func,
236
237
instance,
237
- } = self . visit_return_call_indirect ( drop_keep, table, func_type) ?
238
+ } = self . visit_return_call_indirect ( * drop_keep, * table, * func_type) ?
238
239
{
239
240
return Ok ( WasmOutcome :: Call {
240
241
host_func,
@@ -246,7 +247,7 @@ impl<'ctx, 'engine> Executor<'ctx, 'engine> {
246
247
if let CallOutcome :: Call {
247
248
host_func,
248
249
instance,
249
- } = self . visit_call ( func) ?
250
+ } = self . visit_call ( * func) ?
250
251
{
251
252
return Ok ( WasmOutcome :: Call {
252
253
host_func,
@@ -258,7 +259,7 @@ impl<'ctx, 'engine> Executor<'ctx, 'engine> {
258
259
if let CallOutcome :: Call {
259
260
host_func,
260
261
instance,
261
- } = self . visit_call_indirect ( table, func_type) ?
262
+ } = self . visit_call_indirect ( * table, * func_type) ?
262
263
{
263
264
return Ok ( WasmOutcome :: Call {
264
265
host_func,
@@ -268,47 +269,47 @@ impl<'ctx, 'engine> Executor<'ctx, 'engine> {
268
269
}
269
270
Instr :: Drop => self . visit_drop ( ) ,
270
271
Instr :: Select => self . visit_select ( ) ,
271
- Instr :: GlobalGet ( global_idx) => self . visit_global_get ( global_idx) ,
272
- Instr :: GlobalSet ( global_idx) => self . visit_global_set ( global_idx) ,
273
- Instr :: I32Load ( offset) => self . visit_i32_load ( offset) ?,
274
- Instr :: I64Load ( offset) => self . visit_i64_load ( offset) ?,
275
- Instr :: F32Load ( offset) => self . visit_f32_load ( offset) ?,
276
- Instr :: F64Load ( offset) => self . visit_f64_load ( offset) ?,
277
- Instr :: I32Load8S ( offset) => self . visit_i32_load_i8_s ( offset) ?,
278
- Instr :: I32Load8U ( offset) => self . visit_i32_load_i8_u ( offset) ?,
279
- Instr :: I32Load16S ( offset) => self . visit_i32_load_i16_s ( offset) ?,
280
- Instr :: I32Load16U ( offset) => self . visit_i32_load_i16_u ( offset) ?,
281
- Instr :: I64Load8S ( offset) => self . visit_i64_load_i8_s ( offset) ?,
282
- Instr :: I64Load8U ( offset) => self . visit_i64_load_i8_u ( offset) ?,
283
- Instr :: I64Load16S ( offset) => self . visit_i64_load_i16_s ( offset) ?,
284
- Instr :: I64Load16U ( offset) => self . visit_i64_load_i16_u ( offset) ?,
285
- Instr :: I64Load32S ( offset) => self . visit_i64_load_i32_s ( offset) ?,
286
- Instr :: I64Load32U ( offset) => self . visit_i64_load_i32_u ( offset) ?,
287
- Instr :: I32Store ( offset) => self . visit_i32_store ( offset) ?,
288
- Instr :: I64Store ( offset) => self . visit_i64_store ( offset) ?,
289
- Instr :: F32Store ( offset) => self . visit_f32_store ( offset) ?,
290
- Instr :: F64Store ( offset) => self . visit_f64_store ( offset) ?,
291
- Instr :: I32Store8 ( offset) => self . visit_i32_store_8 ( offset) ?,
292
- Instr :: I32Store16 ( offset) => self . visit_i32_store_16 ( offset) ?,
293
- Instr :: I64Store8 ( offset) => self . visit_i64_store_8 ( offset) ?,
294
- Instr :: I64Store16 ( offset) => self . visit_i64_store_16 ( offset) ?,
295
- Instr :: I64Store32 ( offset) => self . visit_i64_store_32 ( offset) ?,
272
+ Instr :: GlobalGet ( global_idx) => self . visit_global_get ( * global_idx) ,
273
+ Instr :: GlobalSet ( global_idx) => self . visit_global_set ( * global_idx) ,
274
+ Instr :: I32Load ( offset) => self . visit_i32_load ( * offset) ?,
275
+ Instr :: I64Load ( offset) => self . visit_i64_load ( * offset) ?,
276
+ Instr :: F32Load ( offset) => self . visit_f32_load ( * offset) ?,
277
+ Instr :: F64Load ( offset) => self . visit_f64_load ( * offset) ?,
278
+ Instr :: I32Load8S ( offset) => self . visit_i32_load_i8_s ( * offset) ?,
279
+ Instr :: I32Load8U ( offset) => self . visit_i32_load_i8_u ( * offset) ?,
280
+ Instr :: I32Load16S ( offset) => self . visit_i32_load_i16_s ( * offset) ?,
281
+ Instr :: I32Load16U ( offset) => self . visit_i32_load_i16_u ( * offset) ?,
282
+ Instr :: I64Load8S ( offset) => self . visit_i64_load_i8_s ( * offset) ?,
283
+ Instr :: I64Load8U ( offset) => self . visit_i64_load_i8_u ( * offset) ?,
284
+ Instr :: I64Load16S ( offset) => self . visit_i64_load_i16_s ( * offset) ?,
285
+ Instr :: I64Load16U ( offset) => self . visit_i64_load_i16_u ( * offset) ?,
286
+ Instr :: I64Load32S ( offset) => self . visit_i64_load_i32_s ( * offset) ?,
287
+ Instr :: I64Load32U ( offset) => self . visit_i64_load_i32_u ( * offset) ?,
288
+ Instr :: I32Store ( offset) => self . visit_i32_store ( * offset) ?,
289
+ Instr :: I64Store ( offset) => self . visit_i64_store ( * offset) ?,
290
+ Instr :: F32Store ( offset) => self . visit_f32_store ( * offset) ?,
291
+ Instr :: F64Store ( offset) => self . visit_f64_store ( * offset) ?,
292
+ Instr :: I32Store8 ( offset) => self . visit_i32_store_8 ( * offset) ?,
293
+ Instr :: I32Store16 ( offset) => self . visit_i32_store_16 ( * offset) ?,
294
+ Instr :: I64Store8 ( offset) => self . visit_i64_store_8 ( * offset) ?,
295
+ Instr :: I64Store16 ( offset) => self . visit_i64_store_16 ( * offset) ?,
296
+ Instr :: I64Store32 ( offset) => self . visit_i64_store_32 ( * offset) ?,
296
297
Instr :: MemorySize => self . visit_memory_size ( ) ,
297
298
Instr :: MemoryGrow => self . visit_memory_grow ( ) ?,
298
299
Instr :: MemoryFill => self . visit_memory_fill ( ) ?,
299
300
Instr :: MemoryCopy => self . visit_memory_copy ( ) ?,
300
- Instr :: MemoryInit ( segment) => self . visit_memory_init ( segment) ?,
301
- Instr :: DataDrop ( segment) => self . visit_data_drop ( segment) ,
302
- Instr :: TableSize { table } => self . visit_table_size ( table) ,
303
- Instr :: TableGrow { table } => self . visit_table_grow ( table) ?,
304
- Instr :: TableFill { table } => self . visit_table_fill ( table) ?,
305
- Instr :: TableGet { table } => self . visit_table_get ( table) ?,
306
- Instr :: TableSet { table } => self . visit_table_set ( table) ?,
307
- Instr :: TableCopy { dst, src } => self . visit_table_copy ( dst, src) ?,
308
- Instr :: TableInit { table, elem } => self . visit_table_init ( table, elem) ?,
309
- Instr :: ElemDrop ( segment) => self . visit_element_drop ( segment) ,
310
- Instr :: RefFunc { func_index } => self . visit_ref_func ( func_index) ,
311
- Instr :: Const ( bytes) => self . visit_const ( bytes) ,
301
+ Instr :: MemoryInit ( segment) => self . visit_memory_init ( * segment) ?,
302
+ Instr :: DataDrop ( segment) => self . visit_data_drop ( * segment) ,
303
+ Instr :: TableSize { table } => self . visit_table_size ( * table) ,
304
+ Instr :: TableGrow { table } => self . visit_table_grow ( * table) ?,
305
+ Instr :: TableFill { table } => self . visit_table_fill ( * table) ?,
306
+ Instr :: TableGet { table } => self . visit_table_get ( * table) ?,
307
+ Instr :: TableSet { table } => self . visit_table_set ( * table) ?,
308
+ Instr :: TableCopy { dst, src } => self . visit_table_copy ( * dst, * src) ?,
309
+ Instr :: TableInit { table, elem } => self . visit_table_init ( * table, * elem) ?,
310
+ Instr :: ElemDrop ( segment) => self . visit_element_drop ( * segment) ,
311
+ Instr :: RefFunc { func_index } => self . visit_ref_func ( * func_index) ,
312
+ Instr :: Const ( bytes) => self . visit_const ( * bytes) ,
312
313
Instr :: I32Eqz => self . visit_i32_eqz ( ) ,
313
314
Instr :: I32Eq => self . visit_i32_eq ( ) ,
314
315
Instr :: I32Ne => self . visit_i32_ne ( ) ,
0 commit comments