summaryrefslogtreecommitdiff
path: root/module/language/assembly/compile-bytecode.scm
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2009-02-18 00:54:05 +0100
committerLudovic Courtès <ludo@gnu.org>2009-02-18 00:54:05 +0100
commitb912a1cd6b5d22e1fd3eadca10858d8d0dd9c027 (patch)
treecbd35bdcee9c0d3da264ceaa3ffba2917cbddb53 /module/language/assembly/compile-bytecode.scm
parent4e29767187774d44a899a82c3d2a7d509ed9e5b9 (diff)
downloadguile-b912a1cd6b5d22e1fd3eadca10858d8d0dd9c027.tar.gz
Add `load-unsigned-integer' instruction.
* libguile/vm-i-loader.c (load_unsigned_integer): New loader. * module/language/assembly.scm (byte-length): Handle `load-unsigned-integer'. * module/language/assembly/compile-bytecode.scm (write-bytecode): Likewise. * module/language/glil/compile-assembly.scm (dump-object): Emit a `load-unsigned-integer' instruction for positive integers. This fixes loading of integers greater than 2^31 - 1. * testsuite/Makefile.am (vm_test_files): Add `t-literal-integers.scm'. * doc/ref/vm.texi (Loading Instructions): Add `load-unsigned-integer'.
Diffstat (limited to 'module/language/assembly/compile-bytecode.scm')
-rw-r--r--module/language/assembly/compile-bytecode.scm3
1 files changed, 2 insertions, 1 deletions
diff --git a/module/language/assembly/compile-bytecode.scm b/module/language/assembly/compile-bytecode.scm
index a96b56147..6e7e34efc 100644
--- a/module/language/assembly/compile-bytecode.scm
+++ b/module/language/assembly/compile-bytecode.scm
@@ -1,6 +1,6 @@
;;; Guile VM assembler
-;; Copyright (C) 2001 Free Software Foundation, Inc.
+;; Copyright (C) 2001, 2009 Free Software Foundation, Inc.
;; This program is free software; you can redistribute it and/or modify
;; it under the terms of the GNU General Public License as published by
@@ -107,6 +107,7 @@
(if (> i 0) (write-byte x))))
(get-addr (lambda () i)))
(write-bytecode meta write get-addr '()))))
+ ((load-unsigned-integer ,str) (write-loader str))
((load-integer ,str) (write-loader str))
((load-number ,str) (write-loader str))
((load-string ,str) (write-loader str))