From 28d4fb9b1c7fd458aa4ad5a5302a78e1485359b1 Mon Sep 17 00:00:00 2001 From: Volker Berlin Date: Sun, 16 Apr 2017 11:28:11 +0200 Subject: [PATCH] add support for inc/dec --- src/de/inetsoftware/jwebassembly/module/ModuleWriter.java | 7 +++++++ test/de/inetsoftware/jwebassembly/math/MathOperations.java | 4 +++- 2 files changed, 10 insertions(+), 1 deletion(-) 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); }