diff --git a/src/de/inetsoftware/jwebassembly/module/ModuleWriter.java b/src/de/inetsoftware/jwebassembly/module/ModuleWriter.java index cc5daee..da35e55 100644 --- a/src/de/inetsoftware/jwebassembly/module/ModuleWriter.java +++ b/src/de/inetsoftware/jwebassembly/module/ModuleWriter.java @@ -395,6 +395,13 @@ public abstract class ModuleWriter implements Closeable { case 114: // frem case 115: // drem throw new WasmException( "Modulo/Remainder for floating numbers is not supported in WASM. Use int or long data types." + op, sourceFile, lineNumber ); + case 132: // iinc + int idx = byteCode.readUnsignedByte(); + writeLoadStore( true, ValueType.i32, idx ); + writeConstInt( byteCode.readUnsignedByte() ); + writeNumericOperator( NumericOperator.add, ValueType.i32); + writeLoadStore( false, ValueType.i32, idx ); + break; case 136: // l2i writeCast( ValueTypeConvertion.l2i ); break; diff --git a/test/de/inetsoftware/jwebassembly/math/MathOperations.java b/test/de/inetsoftware/jwebassembly/math/MathOperations.java index 42820ef..8d06bbe 100644 --- a/test/de/inetsoftware/jwebassembly/math/MathOperations.java +++ b/test/de/inetsoftware/jwebassembly/math/MathOperations.java @@ -99,6 +99,7 @@ public class MathOperations { @Export static int addInt( int a, int b ) { + b++; return a + b; } @@ -126,8 +127,9 @@ public class MathOperations { @Export static int subLong() { - long a = 1L; + long a = -1L; long b = 3L; + a--; return (int)(a - b); }