mirror of
https://github.com/i-net-software/JWebAssembly.git
synced 2025-03-15 02:44:47 +01:00
Math.min/max operation
This commit is contained in:
parent
03ed725262
commit
c2b8505634
@ -948,6 +948,17 @@ public class BinaryModuleWriter extends ModuleWriter implements InstructionOpcod
|
||||
default:
|
||||
}
|
||||
break;
|
||||
case min:
|
||||
switch( valueType ) {
|
||||
case f32:
|
||||
op = F32_MIN;
|
||||
break;
|
||||
case f64:
|
||||
op = F64_MIN;
|
||||
break;
|
||||
default:
|
||||
}
|
||||
break;
|
||||
case ifnull:
|
||||
op = REF_ISNULL;
|
||||
break;
|
||||
|
@ -39,6 +39,7 @@ public enum NumericOperator {
|
||||
le,
|
||||
ge,
|
||||
max,
|
||||
min,
|
||||
ifnull,
|
||||
ifnonnull,
|
||||
ref_eq,
|
||||
|
@ -102,6 +102,9 @@ public class WatParser extends WasmCodeBuilder {
|
||||
case "f32.max":
|
||||
addNumericInstruction( NumericOperator.max, ValueType.f32, javaCodePos, lineNumber );
|
||||
break;
|
||||
case "f32.min":
|
||||
addNumericInstruction( NumericOperator.min, ValueType.f32, javaCodePos, lineNumber );
|
||||
break;
|
||||
case "f32.mul":
|
||||
addNumericInstruction( NumericOperator.mul, ValueType.f32, javaCodePos, lineNumber );
|
||||
break;
|
||||
@ -138,6 +141,9 @@ public class WatParser extends WasmCodeBuilder {
|
||||
case "f64.max":
|
||||
addNumericInstruction( NumericOperator.max, ValueType.f64, javaCodePos, lineNumber );
|
||||
break;
|
||||
case "f64.min":
|
||||
addNumericInstruction( NumericOperator.min, ValueType.f64, javaCodePos, lineNumber );
|
||||
break;
|
||||
case "f64.mul":
|
||||
addNumericInstruction( NumericOperator.mul, ValueType.f64, javaCodePos, lineNumber );
|
||||
break;
|
||||
|
@ -166,6 +166,11 @@ public class WatParserTest {
|
||||
test( "f32.max" );
|
||||
}
|
||||
|
||||
@Test
|
||||
public void f32_min() throws IOException {
|
||||
test( "f32.min" );
|
||||
}
|
||||
|
||||
@Test
|
||||
public void f32_mul() throws IOException {
|
||||
test( "f32.mul" );
|
||||
@ -226,6 +231,11 @@ public class WatParserTest {
|
||||
test( "f64.max" );
|
||||
}
|
||||
|
||||
@Test
|
||||
public void f64_min() throws IOException {
|
||||
test( "f64.min" );
|
||||
}
|
||||
|
||||
@Test
|
||||
public void f64_mul() throws IOException {
|
||||
test( "f64.mul" );
|
||||
|
@ -72,6 +72,10 @@ public class MathAPI extends AbstractBaseTest {
|
||||
addParam( list, script, "random" );
|
||||
addParam( list, script, "absF" );
|
||||
addParam( list, script, "absD" );
|
||||
addParam( list, script, "maxF" );
|
||||
addParam( list, script, "maxD" );
|
||||
addParam( list, script, "minF" );
|
||||
addParam( list, script, "minD" );
|
||||
}
|
||||
rule.setTestParameters( list );
|
||||
return list;
|
||||
@ -243,5 +247,25 @@ public class MathAPI extends AbstractBaseTest {
|
||||
static double absD() {
|
||||
return Math.abs( -3.8 );
|
||||
}
|
||||
|
||||
@Export
|
||||
static float maxF() {
|
||||
return Math.max( -3.8F, 7.5F );
|
||||
}
|
||||
|
||||
@Export
|
||||
static double maxD() {
|
||||
return Math.max( -3.8, 7.5 );
|
||||
}
|
||||
|
||||
@Export
|
||||
static float minF() {
|
||||
return Math.min( -3.8F, 7.5F );
|
||||
}
|
||||
|
||||
@Export
|
||||
static double minD() {
|
||||
return Math.min( -3.8, 7.5 );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user