From 652d6c3d6aaccdf57025bf254a8471b077f18fc1 Mon Sep 17 00:00:00 2001 From: Volker Berlin Date: Sun, 20 May 2018 11:52:16 +0200 Subject: [PATCH] Add support for the loop operator --- .../inetsoftware/jwebassembly/binary/BinaryModuleWriter.java | 4 ++++ .../inetsoftware/jwebassembly/module/WasmBlockOperator.java | 1 + src/de/inetsoftware/jwebassembly/text/TextModuleWriter.java | 4 ++++ 3 files changed, 9 insertions(+) diff --git a/src/de/inetsoftware/jwebassembly/binary/BinaryModuleWriter.java b/src/de/inetsoftware/jwebassembly/binary/BinaryModuleWriter.java index 481eaa7..6423e3b 100644 --- a/src/de/inetsoftware/jwebassembly/binary/BinaryModuleWriter.java +++ b/src/de/inetsoftware/jwebassembly/binary/BinaryModuleWriter.java @@ -656,6 +656,10 @@ public class BinaryModuleWriter extends ModuleWriter implements InstructionOpcod codeStream.writeVaruint32( i ); } break; + case LOOP: + codeStream.write( LOOP ); + codeStream.write( 0x40 ); // void; the return type of the loop. currently we does not use it + break; default: throw new Error( "Unknown block: " + op ); } diff --git a/src/de/inetsoftware/jwebassembly/module/WasmBlockOperator.java b/src/de/inetsoftware/jwebassembly/module/WasmBlockOperator.java index 68c2cf2..8a6b14a 100644 --- a/src/de/inetsoftware/jwebassembly/module/WasmBlockOperator.java +++ b/src/de/inetsoftware/jwebassembly/module/WasmBlockOperator.java @@ -32,4 +32,5 @@ public enum WasmBlockOperator { BR, BR_IF, BR_TABLE, + LOOP, } diff --git a/src/de/inetsoftware/jwebassembly/text/TextModuleWriter.java b/src/de/inetsoftware/jwebassembly/text/TextModuleWriter.java index e6c7eae..ea3eb4c 100644 --- a/src/de/inetsoftware/jwebassembly/text/TextModuleWriter.java +++ b/src/de/inetsoftware/jwebassembly/text/TextModuleWriter.java @@ -289,6 +289,10 @@ public class TextModuleWriter extends ModuleWriter { } name = builder.toString(); break; + case LOOP: + name = "loop"; + insetAfter++; + break; default: throw new Error( "Unknown block: " + op ); }