diff --git a/compiler/old-rt/arith.lisp b/compiler/old-rt/arith.lisp index d3b855d0a78c721c062db072961502c7265bace9..81970164248ba5544e1888eba02c55b6ffc6116d 100644 --- a/compiler/old-rt/arith.lisp +++ b/compiler/old-rt/arith.lisp @@ -126,9 +126,10 @@ (inst sli16 r (- n 16)) (inst sli r n))) ((minusp n) - (if (> n 15) - (inst sari16 r (- n 16)) - (inst sari r n)))) + (let ((n (- n))) + (if (> n 15) + (inst sari16 r (- n 16)) + (inst sari r n))))) (unless (location= i r) (inst lr r i))))