2626import javax .annotation .Nonnull ;
2727import javax .annotation .Nullable ;
2828
29- import de .inetsoftware .classparser .MethodInfo ;
3029import de .inetsoftware .jwebassembly .WasmException ;
3130import de .inetsoftware .jwebassembly .module .FunctionName ;
3231import de .inetsoftware .jwebassembly .module .ModuleWriter ;
@@ -310,19 +309,19 @@ protected void writeMethodFinish( List<ValueType> locals ) throws IOException {
310309 protected void writeConst ( Number value , ValueType valueType ) throws IOException {
311310 switch ( valueType ) {
312311 case i32 :
313- codeStream .write ( I32_CONST );
312+ codeStream .writeOpCode ( I32_CONST );
314313 codeStream .writeVarint ( value .intValue () );
315314 break ;
316315 case i64 :
317- codeStream .write ( I64_CONST );
316+ codeStream .writeOpCode ( I64_CONST );
318317 codeStream .writeVarint ( value .longValue () );
319318 break ;
320319 case f32 :
321- codeStream .write ( F32_CONST );
320+ codeStream .writeOpCode ( F32_CONST );
322321 codeStream .writeFloat ( value .floatValue () );
323322 break ;
324323 case f64 :
325- codeStream .write ( F64_CONST );
324+ codeStream .writeOpCode ( F64_CONST );
326325 codeStream .writeDouble ( value .doubleValue () );
327326 break ;
328327 default :
@@ -335,7 +334,7 @@ protected void writeConst( Number value, ValueType valueType ) throws IOExceptio
335334 */
336335 @ Override
337336 protected void writeLoad ( int idx ) throws IOException {
338- codeStream .write ( GET_LOCAL );
337+ codeStream .writeOpCode ( GET_LOCAL );
339338 codeStream .writeVaruint32 ( idx );
340339 }
341340
@@ -344,7 +343,7 @@ protected void writeLoad( int idx ) throws IOException {
344343 */
345344 @ Override
346345 protected void writeStore ( int idx ) throws IOException {
347- codeStream .write ( SET_LOCAL );
346+ codeStream .writeOpCode ( SET_LOCAL );
348347 codeStream .writeVaruint32 ( idx );
349348 }
350349
@@ -599,7 +598,7 @@ protected void writeNumericOperator( NumericOperator numOp, @Nullable ValueType
599598 if ( op == 0 ) {
600599 throw new Error ( valueType + "." + numOp );
601600 }
602- codeStream .write ( op );
601+ codeStream .writeOpCode ( op );
603602 }
604603
605604 /**
@@ -654,10 +653,7 @@ protected void writeCast( ValueTypeConvertion cast ) throws IOException {
654653 default :
655654 throw new Error ( "Unknown cast: " + cast );
656655 }
657- if ( op > 255 ) {
658- codeStream .write ( op >> 8 );
659- }
660- codeStream .write ( op );
656+ codeStream .writeOpCode ( op );
661657 }
662658
663659 /**
@@ -677,7 +673,7 @@ protected void writeFunctionCall( String name ) throws IOException {
677673 throw new WasmException ( "Call to unknown function: " + name , null , -1 );
678674 }
679675 }
680- codeStream .write ( CALL );
676+ codeStream .writeOpCode ( CALL );
681677 codeStream .writeVaruint32 ( id );
682678 }
683679
@@ -688,47 +684,47 @@ protected void writeFunctionCall( String name ) throws IOException {
688684 protected void writeBlockCode ( @ Nonnull WasmBlockOperator op , @ Nullable Object data ) throws IOException {
689685 switch ( op ) {
690686 case RETURN :
691- codeStream .write ( RETURN );
687+ codeStream .writeOpCode ( RETURN );
692688 break ;
693689 case IF :
694- codeStream .write ( IF );
690+ codeStream .writeOpCode ( IF );
695691 codeStream .write ( ((ValueType )data ).getCode () );
696692 break ;
697693 case ELSE :
698- codeStream .write ( ELSE );
694+ codeStream .writeOpCode ( ELSE );
699695 break ;
700696 case END :
701- codeStream .write ( END );
697+ codeStream .writeOpCode ( END );
702698 break ;
703699 case DROP :
704- codeStream .write ( DROP );
700+ codeStream .writeOpCode ( DROP );
705701 break ;
706702 case BLOCK :
707- codeStream .write ( BLOCK );
703+ codeStream .writeOpCode ( BLOCK );
708704 codeStream .write ( ValueType .empty .getCode () ); // void; the return type of the block. currently we does not use it
709705 break ;
710706 case BR :
711- codeStream .write ( BR );
707+ codeStream .writeOpCode ( BR );
712708 codeStream .writeVaruint32 ( (Integer )data );
713709 break ;
714710 case BR_IF :
715- codeStream .write ( BR_IF );
711+ codeStream .writeOpCode ( BR_IF );
716712 codeStream .writeVaruint32 ( (Integer )data );
717713 break ;
718714 case BR_TABLE :
719- codeStream .write ( BR_TABLE );
715+ codeStream .writeOpCode ( BR_TABLE );
720716 int [] targets = (int [])data ;
721717 codeStream .writeVaruint32 ( targets .length - 1 );
722718 for ( int i : targets ) {
723719 codeStream .writeVaruint32 ( i );
724720 }
725721 break ;
726722 case LOOP :
727- codeStream .write ( LOOP );
723+ codeStream .writeOpCode ( LOOP );
728724 codeStream .write ( ValueType .empty .getCode () ); // void; the return type of the loop. currently we does not use it
729725 break ;
730726 case UNREACHABLE :
731- codeStream .write ( UNREACHABLE );
727+ codeStream .writeOpCode ( UNREACHABLE );
732728 break ;
733729 default :
734730 throw new Error ( "Unknown block: " + op );
0 commit comments