mirror of
https://github.com/i-net-software/JWebAssembly.git
synced 2025-03-15 02:44:47 +01:00
add i32.div_s, i64.div_s, i64.eqz and throw to the wat parser
This commit is contained in:
parent
d99eb77de8
commit
1ce3e97464
@ -29,7 +29,6 @@ import de.inetsoftware.jwebassembly.WasmException;
|
||||
import de.inetsoftware.jwebassembly.module.FunctionName;
|
||||
import de.inetsoftware.jwebassembly.module.ValueTypeConvertion;
|
||||
import de.inetsoftware.jwebassembly.module.WasmCodeBuilder;
|
||||
import de.inetsoftware.jwebassembly.module.TypeManager.StructType;
|
||||
import de.inetsoftware.jwebassembly.wasm.AnyType;
|
||||
import de.inetsoftware.jwebassembly.wasm.MemoryOperator;
|
||||
import de.inetsoftware.jwebassembly.wasm.NamedStorageType;
|
||||
@ -88,6 +87,9 @@ public class WatParser extends WasmCodeBuilder {
|
||||
case "i32.eq":
|
||||
addNumericInstruction( NumericOperator.eq, ValueType.i32, javaCodePos, lineNumber );
|
||||
break;
|
||||
case "i32.div_s":
|
||||
addNumericInstruction( NumericOperator.div, ValueType.i32, javaCodePos, lineNumber );
|
||||
break;
|
||||
case "i32.eqz":
|
||||
addNumericInstruction( NumericOperator.eqz, ValueType.i32, javaCodePos, lineNumber );
|
||||
break;
|
||||
@ -106,6 +108,12 @@ public class WatParser extends WasmCodeBuilder {
|
||||
case "i64.const":
|
||||
addConstInstruction( Long.parseLong( get( tokens, ++i ) ), ValueType.i64, javaCodePos, lineNumber );
|
||||
break;
|
||||
case "i64.div_s":
|
||||
addNumericInstruction( NumericOperator.div, ValueType.i64, javaCodePos, lineNumber );
|
||||
break;
|
||||
case "i64.eqz":
|
||||
addNumericInstruction( NumericOperator.eqz, ValueType.i64, javaCodePos, lineNumber );
|
||||
break;
|
||||
case "i64.extend_i32_s":
|
||||
addConvertInstruction( ValueTypeConvertion.i2l, javaCodePos, lineNumber );
|
||||
break;
|
||||
@ -226,7 +234,7 @@ public class WatParser extends WasmCodeBuilder {
|
||||
FunctionName name = new FunctionName( builder.substring( 1 ) );
|
||||
addCallInstruction( name, javaCodePos, lineNumber );
|
||||
} catch( Exception ex ) {
|
||||
throw new WasmException( "The syntax for a function name is $package.ClassName.methodName(paramSignature)returnSignature", lineNumber );
|
||||
throw WasmException.create( "The syntax for a function name is $package.ClassName.methodName(paramSignature)returnSignature", ex );
|
||||
}
|
||||
break;
|
||||
case "return":
|
||||
@ -262,6 +270,9 @@ public class WatParser extends WasmCodeBuilder {
|
||||
case "br_if":
|
||||
addBlockInstruction( WasmBlockOperator.BR_IF, getInt( tokens, ++i ), javaCodePos, lineNumber );
|
||||
break;
|
||||
case "throw":
|
||||
addBlockInstruction( WasmBlockOperator.THROW, null, javaCodePos, lineNumber );
|
||||
break;
|
||||
case "unreachable":
|
||||
addBlockInstruction( WasmBlockOperator.UNREACHABLE, null, javaCodePos, lineNumber );
|
||||
break;
|
||||
|
Loading…
x
Reference in New Issue
Block a user