[Git][cmucl/cmucl][issue-168-no-negated-forms-for-jmp] Add some comments on what the different jmp conditions mean

Raymond Toy (@rtoy) gitlab at common-lisp.net
Mon Feb 27 00:21:31 UTC 2023



Raymond Toy pushed to branch issue-168-no-negated-forms-for-jmp at cmucl / cmucl


Commits:
96310401 by Raymond Toy at 2023-02-26T16:19:45-08:00
Add some comments on what the different jmp conditions mean

I always forget the difference between, say, `:be` and `:le`.  The
former is for unsigned comparisons and the later for signed.

So add some short comments on what the conditions really mean.

- - - - -


1 changed file:

- src/compiler/x86/insts.lisp


Changes:

=====================================
src/compiler/x86/insts.lisp
=====================================
@@ -259,21 +259,38 @@
 ;; the first one is the one that is preferred when printing the
 ;; condition code out.
 (defconstant conditions
-  '((:o . 0)
+  '(
+    ;; OF = 1
+    (:o . 0)
+    ;; OF = 0
     (:no . 1)
+    ;; Unsigned <; CF = 1
     (:b . 2) (:nae . 2) (:c . 2)
+    ;; Unsigned >=; CF = 0
     (:ae . 3) (:nb . 3) (:nc . 3)
+    ;; Equal; ZF = 1
     (:e . 4) (:eq . 4) (:z . 4)
+    ;; Not equal; ZF = 0
     (:ne . 5) (:nz . 5)
+    ;; Unsigned <=; CF = 1 or ZF = 1
     (:be . 6) (:na . 6)
+    ;; Unsigned >; CF = 1 and ZF = 0
     (:a . 7) (:nbe . 7)
+    ;; SF = 1
     (:s . 8)
+    ;; SF = 0
     (:ns . 9)
+    ;; Parity even
     (:p . 10) (:pe . 10)
+    ;; Parity odd
     (:np . 11) (:po . 11)
+    ;; Signed <; SF /= OF
     (:l . 12) (:nge . 12)
+    ;; Signed >=; SF = OF
     (:ge . 13) (:nl . 13)
+    ;; Signed <=; ZF = 1 or SF /= OF
     (:le . 14) (:ng . 14)
+    ;; Signed >; ZF =0 and SF = OF
     (:g . 15) (:nle . 15)))
 
 (defun conditional-opcode (condition)



View it on GitLab: https://gitlab.common-lisp.net/cmucl/cmucl/-/commit/963104015b369a7c835bc70330e24ace0975429c

-- 
View it on GitLab: https://gitlab.common-lisp.net/cmucl/cmucl/-/commit/963104015b369a7c835bc70330e24ace0975429c
You're receiving this email because of your account on gitlab.common-lisp.net.


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mailman.common-lisp.net/pipermail/cmucl-cvs/attachments/20230227/18561de1/attachment-0001.html>


More information about the cmucl-cvs mailing list