Fix UNSIGNED-LESS-THAN-FIXNUM? branch condition.
authorTaylor R Campbell <campbell@mumble.net>
Wed, 23 Jan 2019 03:01:43 +0000 (03:01 +0000)
committerTaylor R Campbell <campbell@mumble.net>
Wed, 21 Aug 2019 21:34:05 +0000 (21:34 +0000)
Add some condition code aliases while here and clarify comments.

src/compiler/machines/aarch64/insutl.scm
src/compiler/machines/aarch64/rulfix.scm

index 7bc3a52e4e9b779e71b33b6457cc7c7d890f6db7..ddc75e82fd3a86b3dc30fbf0bbc00f41358754af 100644 (file)
@@ -111,22 +111,22 @@ USA.
   ;; .v = overflow
   ;; Branch if...
   (case condition
-    ((EQ) #b0000)                       ;equal (z)
-    ((NE) #b0001)                       ;not equal (!z)
-    ((CS) #b0010)                       ;carry set (c)
-    ((CC) #b0011)                       ;carry clear (!c)
-    ((MI) #b0100)                       ;negative `minus' (n)
-    ((PL) #b0101)                       ;nonnegative `plus' (!n)
-    ((VS) #b0110)                       ;overflow set (v)
-    ((VC) #b0111)                       ;overflow clear (!v)
-    ((HI) #b1000)                       ;carry and nonzero (c & !z)
-    ((LS) #b1001)                       ;!carry or zero (!c | z)
-    ((GE) #b1010)                       ;greater or equal (n = v)
-    ((LT) #b1011)                       ;less (n != v)
-    ((GT) #b1100)                       ;greater ((n = v) & !z)
-    ((LE) #b1101)                       ;less or equal ((n != v) | z)
-    ((AL) #b1110)                       ;always
-    ;((<never>) #b1111)                 ;never?
+    ((EQ) #b0000)               ;equal (z)
+    ((NE) #b0001)               ;not equal (!z)
+    ((CS HS) #b0010)            ;carry set / unsigned higher|same (c)
+    ((CC LO) #b0011)            ;carry clear / unsigned lower (!c)
+    ((MI) #b0100)               ;negative `minus' (n)
+    ((PL) #b0101)               ;nonnegative `plus' (!n)
+    ((VS) #b0110)               ;overflow set (v)
+    ((VC) #b0111)               ;overflow clear (!v)
+    ((HI) #b1000)               ;carry&nonzero / unsigned higher (c & !z)
+    ((LS) #b1001)               ;(!carry)|zero / unsigned lower|same (!c | z)
+    ((GE) #b1010)               ;greater or equal (n = v)
+    ((LT) #b1011)               ;less (n != v)
+    ((GT) #b1100)               ;greater ((n = v) & !z)
+    ((LE) #b1101)               ;less or equal ((n != v) | z)
+    ((AL) #b1110)               ;always
+    ;((<never>) #b1111)         ;never?
     (else #f)))
 
 (define (invert-branch-condition condition)
index ae0930d79c03e51afd1006e92cf2ecb59bcc9205..8662ed72eeb07f5007d0ea6448ea8a55d31607e1 100644 (file)
@@ -256,9 +256,8 @@ USA.
     ((GREATER-THAN-FIXNUM?)
      (set-condition-branches! 'GT 'LE))
     ((UNSIGNED-LESS-THAN-FIXNUM?)
-     (set-condition-branches! 'MI 'PL))
-    #; ;XXX broken but not sure this ever appears
+     (set-condition-branches! 'LO 'HS))
     ((UNSIGNED-GREATER-THAN-FIXNUM?)
-     (set-condition-branches! 'PL 'MI))
+     (set-condition-branches! 'HI 'LS))
     (else
      (error "Unknown fixnum predicate:" predicate))))