From 4885745c31400ba00d58edb69d45c5b549f76c83 Mon Sep 17 00:00:00 2001 From: Adam Mathlay Date: Mon, 28 Oct 2024 08:21:15 +0200 Subject: [PATCH] correct conversions --- .kotlin/errors/errors-1730095326003.log | 4 ++++ main.kar | 2 -- .../kotlin/internals/instructions/xFloats/ftoi.kt | 9 +++++++-- .../kotlin/internals/instructions/xFloats/itof.kt | 11 ++++++++--- 4 files changed, 19 insertions(+), 7 deletions(-) create mode 100644 .kotlin/errors/errors-1730095326003.log diff --git a/.kotlin/errors/errors-1730095326003.log b/.kotlin/errors/errors-1730095326003.log new file mode 100644 index 00000000..5088cdec --- /dev/null +++ b/.kotlin/errors/errors-1730095326003.log @@ -0,0 +1,4 @@ +kotlin version: 2.1.0-Beta2 +error message: The daemon has terminated unexpectedly on startup attempt #1 with error code: Unknown. The daemon process output: + 1. Kotlin compile daemon is ready + diff --git a/main.kar b/main.kar index f69c807c..e69de29b 100644 --- a/main.kar +++ b/main.kar @@ -1,2 +0,0 @@ -lit f1 25 -call strings.cheekyfloat \ No newline at end of file diff --git a/src/main/kotlin/internals/instructions/xFloats/ftoi.kt b/src/main/kotlin/internals/instructions/xFloats/ftoi.kt index 5ccd23c2..110ec01a 100644 --- a/src/main/kotlin/internals/instructions/xFloats/ftoi.kt +++ b/src/main/kotlin/internals/instructions/xFloats/ftoi.kt @@ -4,6 +4,11 @@ import data.registers.RegisterType import registers fun XFloats.ftoi(registerX: RegisterType, register: RegisterType) { - val valueFloat = registers.readX(registerX) - registers.write(register, valueFloat.value) + val valueLong = registers.readX(registerX) + + if (valueLong.isDouble) { + registers.writeX(registerX, Double.fromBits(valueLong.value).toLong()) + } else { + registers.writeX(registerX, Float.fromBits(valueLong.value.toInt()).toLong()) + } } \ No newline at end of file diff --git a/src/main/kotlin/internals/instructions/xFloats/itof.kt b/src/main/kotlin/internals/instructions/xFloats/itof.kt index aab37f50..c0c0ccb6 100644 --- a/src/main/kotlin/internals/instructions/xFloats/itof.kt +++ b/src/main/kotlin/internals/instructions/xFloats/itof.kt @@ -1,10 +1,15 @@ package internals.instructions.xFloats -import data.registers.FDRegister import data.registers.RegisterType import registers fun XFloats.itof(register: RegisterType, registerX: RegisterType) { - val valueLong = registers.read(register) - registers.writeX(registerX, FDRegister(false, valueLong)) + val valueLong = registers.readX(register) + if (valueLong.isDouble) { + registers.writeX(registerX, valueLong.value.toDouble().toBits()) + } else { + registers.writeX(registerX, valueLong.value.toFloat().toBits().toLong()) + } + + } \ No newline at end of file