aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authorCalvin Rose <crose@gmail.com>2021-02-08 11:41:48 -0600
committerCalvin Rose <crose@gmail.com>2021-02-08 11:41:48 -0600
commit6a9bb0f4e470743f2f192f2f73fafcdde677f599 (patch)
tree94fd1204d77667428497658f794cedda9e0f8056 /src
parentMerge pull request #628 from yumaikas/master (diff)
Define immediate comparison instructions for non-integers.
Previous, the instructions were defined only for values that fit into 32 bit integers for legacy reasons.
Diffstat (limited to 'src')
-rw-r--r--src/core/vm.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/src/core/vm.c b/src/core/vm.c
index 7a09ce33..22d817c7 100644
--- a/src/core/vm.c
+++ b/src/core/vm.c
@@ -780,7 +780,7 @@ static JanetSignal run_vm(JanetFiber *fiber, Janet in) {
vm_compop( <=);
VM_OP(JOP_LESS_THAN_IMMEDIATE)
- stack[A] = janet_wrap_boolean(janet_unwrap_integer(stack[B]) < CS);
+ stack[A] = janet_wrap_boolean(janet_unwrap_number(stack[B]) < (double) CS);
vm_pcnext();
VM_OP(JOP_GREATER_THAN)
@@ -790,7 +790,7 @@ static JanetSignal run_vm(JanetFiber *fiber, Janet in) {
vm_compop( >=);
VM_OP(JOP_GREATER_THAN_IMMEDIATE)
- stack[A] = janet_wrap_boolean(janet_unwrap_integer(stack[B]) > CS);
+ stack[A] = janet_wrap_boolean(janet_unwrap_number(stack[B]) > (double) CS);
vm_pcnext();
VM_OP(JOP_EQUALS)
@@ -798,7 +798,7 @@ static JanetSignal run_vm(JanetFiber *fiber, Janet in) {
vm_pcnext();
VM_OP(JOP_EQUALS_IMMEDIATE)
- stack[A] = janet_wrap_boolean(janet_unwrap_integer(stack[B]) == CS);
+ stack[A] = janet_wrap_boolean(janet_unwrap_number(stack[B]) == (double) CS);
vm_pcnext();
VM_OP(JOP_NOT_EQUALS)
@@ -806,7 +806,7 @@ static JanetSignal run_vm(JanetFiber *fiber, Janet in) {
vm_pcnext();
VM_OP(JOP_NOT_EQUALS_IMMEDIATE)
- stack[A] = janet_wrap_boolean(janet_unwrap_integer(stack[B]) != CS);
+ stack[A] = janet_wrap_boolean(janet_unwrap_number(stack[B]) != (double) CS);
vm_pcnext();
VM_OP(JOP_COMPARE)