diff --git a/runtime/pom.xml b/runtime/pom.xml
index a1f70810e..0aff45c63 100644
--- a/runtime/pom.xml
+++ b/runtime/pom.xml
@@ -44,7 +44,10 @@
load.wast,
address.wast,
const.wast,
- align.wast
+ align.wast,
+ int_literals.wast,
+ int_exprs.wast,
+ endianness.wast
memory_grow.wast,
memory_size.wast
diff --git a/runtime/src/main/java/com/dylibso/chicory/runtime/Machine.java b/runtime/src/main/java/com/dylibso/chicory/runtime/Machine.java
index e64d58ef2..16cfa69ca 100644
--- a/runtime/src/main/java/com/dylibso/chicory/runtime/Machine.java
+++ b/runtime/src/main/java/com/dylibso/chicory/runtime/Machine.java
@@ -1087,7 +1087,7 @@ void eval(List code) throws ChicoryException {
case F64_REINTERPRET_I64:
{
var tos = this.stack.pop();
- this.stack.push(Value.i64(tos.asLong()));
+ this.stack.push(Value.f64(tos.asLong()));
break;
}
case I64_TRUNC_F64_S:
@@ -1096,6 +1096,42 @@ void eval(List code) throws ChicoryException {
this.stack.push(Value.i64(Double.valueOf(tos.asDouble()).longValue()));
break;
}
+ case I32_WRAP_I64:
+ {
+ var tos = this.stack.pop();
+ this.stack.push(Value.i32(tos.asInt()));
+ break;
+ }
+ case I64_EXTEND_I32_S:
+ {
+ var tos = this.stack.pop();
+ this.stack.push(Value.i64(Integer.valueOf(tos.asInt()).longValue()));
+ break;
+ }
+ case I64_EXTEND_I32_U:
+ {
+ var tos = this.stack.pop();
+ this.stack.push(Value.i64(tos.asUInt()));
+ break;
+ }
+ case I32_REINTERPRET_F32:
+ {
+ var tos = this.stack.pop();
+ this.stack.push(Value.i32(tos.asInt()));
+ break;
+ }
+ case I64_REINTERPRET_F64:
+ {
+ var tos = this.stack.pop();
+ this.stack.push(Value.i64(tos.asLong()));
+ break;
+ }
+ case F32_REINTERPRET_I32:
+ {
+ var tos = this.stack.pop();
+ this.stack.push(Value.f32(tos.asInt()));
+ break;
+ }
default:
throw new RuntimeException(
"Machine doesn't recognize Instruction " + instruction);