X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcompiler%2Fx86-64%2Finsts.lisp;h=73ca2effaf1fad05e43d77e7cdaf00b0dd54d0d5;hb=3eb0a28fe6a7912d6ff2b97221325c0e3bfc5703;hp=43317d31e30d13a12812ae89f6bfd649b3f34657;hpb=cce8ef57994227f93627e6d132f24d8c50ebd447;p=sbcl.git diff --git a/src/compiler/x86-64/insts.lisp b/src/compiler/x86-64/insts.lisp index 43317d3..73ca2ef 100644 --- a/src/compiler/x86-64/insts.lisp +++ b/src/compiler/x86-64/insts.lisp @@ -1515,8 +1515,9 @@ (emit-mod-reg-r/m-byte segment #b11 #b000 (reg-tn-encoding dst)) (emit-signed-dword segment src)) - ((typep src `(integer ,(- (expt 2 64) (expt 2 31)) - (,(expt 2 64)))) + ((<= (- (expt 2 64) (expt 2 31)) + src + (1- (expt 2 64))) ;; This triggers on positive integers of 64 bits length ;; with the most significant 33 bits being 1. We use the ;; same encoding as in the previous clause.