From 9bb6e64ce8f4d7ac731d72b5b6d6f1d6b4ef35cb Mon Sep 17 00:00:00 2001 From: Volker Berlin Date: Sat, 3 Aug 2019 20:51:00 +0200 Subject: [PATCH] Add support for "copysign" for the text format. --- .../jwebassembly/binary/BinaryModuleWriter.java | 11 +++++++++++ .../jwebassembly/wasm/NumericOperator.java | 1 + .../jwebassembly/watparser/WatParser.java | 6 ++++++ 3 files changed, 18 insertions(+) diff --git a/src/de/inetsoftware/jwebassembly/binary/BinaryModuleWriter.java b/src/de/inetsoftware/jwebassembly/binary/BinaryModuleWriter.java index 633b1c2..80627ff 100644 --- a/src/de/inetsoftware/jwebassembly/binary/BinaryModuleWriter.java +++ b/src/de/inetsoftware/jwebassembly/binary/BinaryModuleWriter.java @@ -1039,6 +1039,17 @@ public class BinaryModuleWriter extends ModuleWriter implements InstructionOpcod default: } break; + case copysign: + switch( valueType ) { + case f32: + op = F32_COPYSIGN; + break; + case f64: + op = F64_COPYSIGN; + break; + default: + } + break; default: } diff --git a/src/de/inetsoftware/jwebassembly/wasm/NumericOperator.java b/src/de/inetsoftware/jwebassembly/wasm/NumericOperator.java index d1dec44..bbb6b40 100644 --- a/src/de/inetsoftware/jwebassembly/wasm/NumericOperator.java +++ b/src/de/inetsoftware/jwebassembly/wasm/NumericOperator.java @@ -50,4 +50,5 @@ public enum NumericOperator { floor, trunc, nearest, + copysign, } diff --git a/src/de/inetsoftware/jwebassembly/watparser/WatParser.java b/src/de/inetsoftware/jwebassembly/watparser/WatParser.java index 00993f8..bdbbc2e 100644 --- a/src/de/inetsoftware/jwebassembly/watparser/WatParser.java +++ b/src/de/inetsoftware/jwebassembly/watparser/WatParser.java @@ -114,6 +114,9 @@ public class WatParser extends WasmCodeBuilder { case "f32.reinterpret_i32": addConvertInstruction( ValueTypeConvertion.i2f_re, javaCodePos, lineNumber ); break; + case "f32.copysign": + addNumericInstruction( NumericOperator.copysign, ValueType.f32, javaCodePos, lineNumber ); + break; case "f32.sqrt": addNumericInstruction( NumericOperator.sqrt, ValueType.f32, javaCodePos, lineNumber ); break; @@ -153,6 +156,9 @@ public class WatParser extends WasmCodeBuilder { case "f64.reinterpret_i64": addConvertInstruction( ValueTypeConvertion.l2d_re, javaCodePos, lineNumber ); break; + case "f64.copysign": + addNumericInstruction( NumericOperator.copysign, ValueType.f64, javaCodePos, lineNumber ); + break; case "f64.sqrt": addNumericInstruction( NumericOperator.sqrt, ValueType.f64, javaCodePos, lineNumber ); break;