summaryrefslogtreecommitdiff
path: root/libguile/vm-i-loader.c
diff options
context:
space:
mode:
Diffstat (limited to 'libguile/vm-i-loader.c')
-rw-r--r--libguile/vm-i-loader.c20
1 files changed, 19 insertions, 1 deletions
diff --git a/libguile/vm-i-loader.c b/libguile/vm-i-loader.c
index 66b07b1f5..bba4f4b9c 100644
--- a/libguile/vm-i-loader.c
+++ b/libguile/vm-i-loader.c
@@ -18,12 +18,30 @@
/* This file is included in vm_engine.c */
+VM_DEFINE_LOADER (59, load_unsigned_integer, "load-unsigned-integer")
+{
+ size_t len;
+
+ FETCH_LENGTH (len);
+ if (SCM_LIKELY (len <= 4))
+ {
+ unsigned int val = 0;
+ while (len-- > 0)
+ val = (val << 8U) + FETCH ();
+ SYNC_REGISTER ();
+ PUSH (scm_from_uint (val));
+ NEXT;
+ }
+ else
+ SCM_MISC_ERROR ("load-unsigned-integer: not implemented yet", SCM_EOL);
+}
+
VM_DEFINE_LOADER (60, load_integer, "load-integer")
{
size_t len;
FETCH_LENGTH (len);
- if (len <= 4)
+ if (SCM_LIKELY (len <= 4))
{
int val = 0;
while (len-- > 0)