diff --git a/runtime/pom.xml b/runtime/pom.xml index f41174188..42c1dc7fa 100644 --- a/runtime/pom.xml +++ b/runtime/pom.xml @@ -44,7 +44,9 @@ load.wast, address.wast, const.wast, - align.wast + align.wast, + int_literals.wast, + int_exprs.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 31470a047..f84391b4e 100644 --- a/runtime/src/main/java/com/dylibso/chicory/runtime/Machine.java +++ b/runtime/src/main/java/com/dylibso/chicory/runtime/Machine.java @@ -1093,6 +1093,24 @@ 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; + } default: throw new RuntimeException( "Machine doesn't recognize Instruction " + instruction);