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;