11use crate :: { conversion:: convert_blocktype, Result } ;
22
3- use crate :: conversion:: { convert_heaptype, convert_valtype } ;
3+ use crate :: conversion:: convert_heaptype;
44use alloc:: string:: ToString ;
55use alloc:: { boxed:: Box , vec:: Vec } ;
66use tinywasm_types:: { Instruction , MemoryArg } ;
@@ -319,29 +319,27 @@ impl<'a, R: WasmModuleResources> wasmparser::VisitOperator<'a> for FunctionBuild
319319
320320 fn visit_global_set ( & mut self , global_index : u32 ) -> Self :: Output {
321321 match self . validator . get_operand_type ( 0 ) {
322- Some ( Some ( t) ) => self . instructions . push ( match convert_valtype ( & t) {
323- tinywasm_types:: ValType :: I32 => Instruction :: GlobalSet32 ( global_index) ,
324- tinywasm_types:: ValType :: F32 => Instruction :: GlobalSet32 ( global_index) ,
325- tinywasm_types:: ValType :: I64 => Instruction :: GlobalSet64 ( global_index) ,
326- tinywasm_types:: ValType :: F64 => Instruction :: GlobalSet64 ( global_index) ,
327- tinywasm_types:: ValType :: V128 => Instruction :: GlobalSet128 ( global_index) ,
328- tinywasm_types:: ValType :: RefExtern => Instruction :: GlobalSetRef ( global_index) ,
329- tinywasm_types:: ValType :: RefFunc => Instruction :: GlobalSetRef ( global_index) ,
322+ Some ( Some ( t) ) => self . instructions . push ( match t {
323+ wasmparser:: ValType :: I32 => Instruction :: GlobalSet32 ( global_index) ,
324+ wasmparser:: ValType :: F32 => Instruction :: GlobalSet32 ( global_index) ,
325+ wasmparser:: ValType :: I64 => Instruction :: GlobalSet64 ( global_index) ,
326+ wasmparser:: ValType :: F64 => Instruction :: GlobalSet64 ( global_index) ,
327+ wasmparser:: ValType :: V128 => Instruction :: GlobalSet128 ( global_index) ,
328+ wasmparser:: ValType :: Ref ( _) => Instruction :: GlobalSetRef ( global_index) ,
330329 } ) ,
331330 _ => self . visit_unreachable ( ) ,
332331 }
333332 }
334333
335334 fn visit_drop ( & mut self ) -> Self :: Output {
336335 match self . validator . get_operand_type ( 0 ) {
337- Some ( Some ( t) ) => self . instructions . push ( match convert_valtype ( & t) {
338- tinywasm_types:: ValType :: I32 => Instruction :: Drop32 ,
339- tinywasm_types:: ValType :: F32 => Instruction :: Drop32 ,
340- tinywasm_types:: ValType :: I64 => Instruction :: Drop64 ,
341- tinywasm_types:: ValType :: F64 => Instruction :: Drop64 ,
342- tinywasm_types:: ValType :: V128 => Instruction :: Drop128 ,
343- tinywasm_types:: ValType :: RefExtern => Instruction :: DropRef ,
344- tinywasm_types:: ValType :: RefFunc => Instruction :: DropRef ,
336+ Some ( Some ( t) ) => self . instructions . push ( match t {
337+ wasmparser:: ValType :: I32 => Instruction :: Drop32 ,
338+ wasmparser:: ValType :: F32 => Instruction :: Drop32 ,
339+ wasmparser:: ValType :: I64 => Instruction :: Drop64 ,
340+ wasmparser:: ValType :: F64 => Instruction :: Drop64 ,
341+ wasmparser:: ValType :: V128 => Instruction :: Drop128 ,
342+ wasmparser:: ValType :: Ref ( _) => Instruction :: DropRef ,
345343 } ) ,
346344 _ => self . visit_unreachable ( ) ,
347345 }
@@ -361,14 +359,13 @@ impl<'a, R: WasmModuleResources> wasmparser::VisitOperator<'a> for FunctionBuild
361359 fn visit_local_get ( & mut self , idx : u32 ) -> Self :: Output {
362360 let resolved_idx = self . local_addr_map [ idx as usize ] ;
363361 match self . validator . get_local_type ( idx) {
364- Some ( t) => self . instructions . push ( match convert_valtype ( & t) {
365- tinywasm_types:: ValType :: I32 => Instruction :: LocalGet32 ( resolved_idx) ,
366- tinywasm_types:: ValType :: F32 => Instruction :: LocalGet32 ( resolved_idx) ,
367- tinywasm_types:: ValType :: I64 => Instruction :: LocalGet64 ( resolved_idx) ,
368- tinywasm_types:: ValType :: F64 => Instruction :: LocalGet64 ( resolved_idx) ,
369- tinywasm_types:: ValType :: V128 => Instruction :: LocalGet128 ( resolved_idx) ,
370- tinywasm_types:: ValType :: RefExtern => Instruction :: LocalGetRef ( resolved_idx) ,
371- tinywasm_types:: ValType :: RefFunc => Instruction :: LocalGetRef ( resolved_idx) ,
362+ Some ( t) => self . instructions . push ( match t {
363+ wasmparser:: ValType :: I32 => Instruction :: LocalGet32 ( resolved_idx) ,
364+ wasmparser:: ValType :: F32 => Instruction :: LocalGet32 ( resolved_idx) ,
365+ wasmparser:: ValType :: I64 => Instruction :: LocalGet64 ( resolved_idx) ,
366+ wasmparser:: ValType :: F64 => Instruction :: LocalGet64 ( resolved_idx) ,
367+ wasmparser:: ValType :: V128 => Instruction :: LocalGet128 ( resolved_idx) ,
368+ wasmparser:: ValType :: Ref ( _) => Instruction :: LocalGetRef ( resolved_idx) ,
372369 } ) ,
373370 _ => self . visit_unreachable ( ) ,
374371 }
@@ -377,14 +374,13 @@ impl<'a, R: WasmModuleResources> wasmparser::VisitOperator<'a> for FunctionBuild
377374 fn visit_local_set ( & mut self , idx : u32 ) -> Self :: Output {
378375 let resolved_idx = self . local_addr_map [ idx as usize ] ;
379376 match self . validator . get_operand_type ( 0 ) {
380- Some ( Some ( t) ) => self . instructions . push ( match convert_valtype ( & t) {
381- tinywasm_types:: ValType :: I32 => Instruction :: LocalSet32 ( resolved_idx) ,
382- tinywasm_types:: ValType :: F32 => Instruction :: LocalSet32 ( resolved_idx) ,
383- tinywasm_types:: ValType :: I64 => Instruction :: LocalSet64 ( resolved_idx) ,
384- tinywasm_types:: ValType :: F64 => Instruction :: LocalSet64 ( resolved_idx) ,
385- tinywasm_types:: ValType :: V128 => Instruction :: LocalSet128 ( resolved_idx) ,
386- tinywasm_types:: ValType :: RefExtern => Instruction :: LocalSetRef ( resolved_idx) ,
387- tinywasm_types:: ValType :: RefFunc => Instruction :: LocalSetRef ( resolved_idx) ,
377+ Some ( Some ( t) ) => self . instructions . push ( match t {
378+ wasmparser:: ValType :: I32 => Instruction :: LocalSet32 ( resolved_idx) ,
379+ wasmparser:: ValType :: F32 => Instruction :: LocalSet32 ( resolved_idx) ,
380+ wasmparser:: ValType :: I64 => Instruction :: LocalSet64 ( resolved_idx) ,
381+ wasmparser:: ValType :: F64 => Instruction :: LocalSet64 ( resolved_idx) ,
382+ wasmparser:: ValType :: V128 => Instruction :: LocalSet128 ( resolved_idx) ,
383+ wasmparser:: ValType :: Ref ( _) => Instruction :: LocalSetRef ( resolved_idx) ,
388384 } ) ,
389385 _ => self . visit_unreachable ( ) ,
390386 }
@@ -393,14 +389,13 @@ impl<'a, R: WasmModuleResources> wasmparser::VisitOperator<'a> for FunctionBuild
393389 fn visit_local_tee ( & mut self , idx : u32 ) -> Self :: Output {
394390 let resolved_idx = self . local_addr_map [ idx as usize ] ;
395391 match self . validator . get_operand_type ( 0 ) {
396- Some ( Some ( t) ) => self . instructions . push ( match convert_valtype ( & t) {
397- tinywasm_types:: ValType :: I32 => Instruction :: LocalTee32 ( resolved_idx) ,
398- tinywasm_types:: ValType :: F32 => Instruction :: LocalTee32 ( resolved_idx) ,
399- tinywasm_types:: ValType :: I64 => Instruction :: LocalTee64 ( resolved_idx) ,
400- tinywasm_types:: ValType :: F64 => Instruction :: LocalTee64 ( resolved_idx) ,
401- tinywasm_types:: ValType :: V128 => Instruction :: LocalTee128 ( resolved_idx) ,
402- tinywasm_types:: ValType :: RefExtern => Instruction :: LocalTeeRef ( resolved_idx) ,
403- tinywasm_types:: ValType :: RefFunc => Instruction :: LocalTeeRef ( resolved_idx) ,
392+ Some ( Some ( t) ) => self . instructions . push ( match t {
393+ wasmparser:: ValType :: I32 => Instruction :: LocalTee32 ( resolved_idx) ,
394+ wasmparser:: ValType :: F32 => Instruction :: LocalTee32 ( resolved_idx) ,
395+ wasmparser:: ValType :: I64 => Instruction :: LocalTee64 ( resolved_idx) ,
396+ wasmparser:: ValType :: F64 => Instruction :: LocalTee64 ( resolved_idx) ,
397+ wasmparser:: ValType :: V128 => Instruction :: LocalTee128 ( resolved_idx) ,
398+ wasmparser:: ValType :: Ref ( _) => Instruction :: LocalTeeRef ( resolved_idx) ,
404399 } ) ,
405400 _ => self . visit_unreachable ( ) ,
406401 }
@@ -537,14 +532,13 @@ impl<'a, R: WasmModuleResources> wasmparser::VisitOperator<'a> for FunctionBuild
537532 }
538533
539534 fn visit_typed_select ( & mut self , ty : wasmparser:: ValType ) -> Self :: Output {
540- self . instructions . push ( match convert_valtype ( & ty) {
541- tinywasm_types:: ValType :: I32 => Instruction :: Select32 ,
542- tinywasm_types:: ValType :: F32 => Instruction :: Select32 ,
543- tinywasm_types:: ValType :: I64 => Instruction :: Select64 ,
544- tinywasm_types:: ValType :: F64 => Instruction :: Select64 ,
545- tinywasm_types:: ValType :: V128 => Instruction :: Select128 ,
546- tinywasm_types:: ValType :: RefExtern => Instruction :: SelectRef ,
547- tinywasm_types:: ValType :: RefFunc => Instruction :: SelectRef ,
535+ self . instructions . push ( match ty {
536+ wasmparser:: ValType :: I32 => Instruction :: Select32 ,
537+ wasmparser:: ValType :: F32 => Instruction :: Select32 ,
538+ wasmparser:: ValType :: I64 => Instruction :: Select64 ,
539+ wasmparser:: ValType :: F64 => Instruction :: Select64 ,
540+ wasmparser:: ValType :: V128 => Instruction :: Select128 ,
541+ wasmparser:: ValType :: Ref ( _) => Instruction :: SelectRef ,
548542 } )
549543 }
550544
0 commit comments