mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-05-16 18:50:23 +02:00
* 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'.
5 lines
223 B
Scheme
5 lines
223 B
Scheme
;; Check whether literal integers are correctly signed.
|
|
|
|
(and (= 4294967295 (- (expt 2 32) 1)) ;; unsigned
|
|
(= -2147483648 (- (expt 2 31))) ;; signed
|
|
(= 2147483648 (expt 2 31))) ;; unsigned
|