From 8dd38b01cd30ccb1fd94b99615402547bc319023 Mon Sep 17 00:00:00 2001 From: Andrea Peruffo Date: Fri, 13 Oct 2023 12:14:11 +0100 Subject: [PATCH] plus endianness --- runtime/pom.xml | 3 ++- .../com/dylibso/chicory/runtime/Machine.java | 20 ++++++++++++++++++- 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/runtime/pom.xml b/runtime/pom.xml index 42c1dc7fa..5a6919e29 100644 --- a/runtime/pom.xml +++ b/runtime/pom.xml @@ -46,7 +46,8 @@ const.wast, align.wast, int_literals.wast, - int_exprs.wast + int_exprs.wast, + endianness.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 f84391b4e..bda90e4cc 100644 --- a/runtime/src/main/java/com/dylibso/chicory/runtime/Machine.java +++ b/runtime/src/main/java/com/dylibso/chicory/runtime/Machine.java @@ -1084,7 +1084,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: @@ -1111,6 +1111,24 @@ void eval(List code) throws ChicoryException { 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);