summaryrefslogtreecommitdiff
path: root/libguile/vm-engine.c
diff options
context:
space:
mode:
authorAndy Wingo <wingo@pobox.com>2018-05-08 12:03:53 +0200
committerAndy Wingo <wingo@pobox.com>2018-05-08 12:03:53 +0200
commit0a8a7e9fd0eedfcf7e7acb1a6ecbc4a3bb9a5f16 (patch)
treebb2fa7ba3d71fcabd03225dd72edc7d5d65f3609 /libguile/vm-engine.c
parent41bc98985f39ed512594402cf150cebaff498656 (diff)
downloadguile-0a8a7e9fd0eedfcf7e7acb1a6ecbc4a3bb9a5f16.tar.gz
VM calls "<?" through intrinsic.
* libguile/intrinsics.c (less_p): New intrinsic. (scm_bootstrap_intrinsics): Wire up intrinsic. * libguile/intrinsics.h: Declare new intrinsic. * libguile/vm-engine.c (less_p): Call through intrinsic.
Diffstat (limited to 'libguile/vm-engine.c')
-rw-r--r--libguile/vm-engine.c7
1 files changed, 1 insertions, 6 deletions
diff --git a/libguile/vm-engine.c b/libguile/vm-engine.c
index 184cd1ef7..0c3a0ae6f 100644
--- a/libguile/vm-engine.c
+++ b/libguile/vm-engine.c
@@ -2897,12 +2897,7 @@ VM_NAME (scm_i_thread *thread, struct scm_vm *vp,
y = SP_REF (b);
SYNC_IP ();
- if (scm_is_true (scm_nan_p (x)) || scm_is_true (scm_nan_p (y)))
- vp->compare_result = SCM_F_COMPARE_INVALID;
- else if (scm_is_true (scm_less_p (x, y)))
- vp->compare_result = SCM_F_COMPARE_LESS_THAN;
- else
- vp->compare_result = SCM_F_COMPARE_NONE;
+ vp->compare_result = scm_vm_intrinsics.less_p (x, y);
CACHE_SP ();
NEXT (1);
}