Fix FIXNUM-NOT rule: don't set the low bits.
authorTaylor R Campbell <campbell@mumble.net>
Wed, 23 Jan 2019 05:21:52 +0000 (05:21 +0000)
committerTaylor R Campbell <campbell@mumble.net>
Wed, 21 Aug 2019 21:34:05 +0000 (21:34 +0000)
src/compiler/machines/aarch64/rulfix.scm

index 8662ed72eeb07f5007d0ea6448ea8a55d31607e1..8d753b354ce9552315bc34fa5cbbe9ea90b3531e 100644 (file)
@@ -93,7 +93,7 @@ USA.
 (define-arithmetic-method 'FIXNUM-NOT fixnum-methods/1-arg
   (lambda (target source overflow?)
     (assert (not overflow?))
-    (LAP (MVN X ,target ,source))))
+    (LAP (EOR X ,target ,source (& ,(shift-left -1 scheme-type-width))))))
 
 (define-arithmetic-method 'ONE-PLUS-FIXNUM fixnum-methods/1-arg
   (lambda (target source overflow?)