Raymond Toy pushed to branch issue-166-integer-decode-float-min-float at cmucl / cmucl
Commits:
f1393af8 by Raymond Toy at 2023-02-27T07:14:42-08:00
Ignore the condition arg; we don't use it.
Also remove the call to `describe` that was used for debugging.
- - - - -
1 changed file:
- src/bootfiles/21d/boot-2021-07-1.lisp
Changes:
=====================================
src/bootfiles/21d/boot-2021-07-1.lisp
=====================================
@@ -10,8 +10,7 @@
(ext:without-package-locks
(handler-bind
((error (lambda (c)
- ;;(declare (ignore c))
- (describe c)
+ (declare (ignore c))
(invoke-restart 'lisp::unintern-conflicting-symbols))))
(export '(DOUBLE-FLOAT-INT-EXPONENT
SINGLE-FLOAT-INT-EXPONENT))))
View it on GitLab: https://gitlab.common-lisp.net/cmucl/cmucl/-/commit/f1393af8f1c50e2fade81a6…
--
View it on GitLab: https://gitlab.common-lisp.net/cmucl/cmucl/-/commit/f1393af8f1c50e2fade81a6…
You're receiving this email because of your account on gitlab.common-lisp.net.
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/963104015b369a7c835bc70…
--
View it on GitLab: https://gitlab.common-lisp.net/cmucl/cmucl/-/commit/963104015b369a7c835bc70…
You're receiving this email because of your account on gitlab.common-lisp.net.
Raymond Toy pushed to branch issue-168-no-negated-forms-for-jmp at cmucl / cmucl
Commits:
4ec28e36 by Raymond Toy at 2023-02-25T18:47:06-08:00
Update CI to use the bootstrap file when building.
- - - - -
b4b8f578 by Raymond Toy at 2023-02-25T18:48:35-08:00
Add comment on what this bootstrap file is supposed to do.
- - - - -
2 changed files:
- .gitlab-ci.yml
- src/bootfiles/21d/boot-2021-07-2.lisp
Changes:
=====================================
.gitlab-ci.yml
=====================================
@@ -1,7 +1,7 @@
variables:
download_url: "https://common-lisp.net/project/cmucl/downloads/snapshots/2021/07"
version: "2021-07-x86"
- bootstrap: ""
+ bootstrap: "-B boot-2021-07-2"
stages:
- install
=====================================
src/bootfiles/21d/boot-2021-07-2.lisp
=====================================
@@ -1,3 +1,8 @@
+;; Bootstrap file for x86 to choose the non-negated forms of the
+;; condition flag for conditional jumps.
+;;
+;; Use bin/build.sh -B boot-2021-07-2 to build this.
+
(in-package :x86)
(ext:without-package-locks
View it on GitLab: https://gitlab.common-lisp.net/cmucl/cmucl/-/compare/6bd3fd00f67e5c4c2275f6…
--
View it on GitLab: https://gitlab.common-lisp.net/cmucl/cmucl/-/compare/6bd3fd00f67e5c4c2275f6…
You're receiving this email because of your account on gitlab.common-lisp.net.
Raymond Toy pushed to branch issue-166-integer-decode-float-min-float at cmucl / cmucl
Commits:
dd122d48 by Raymond Toy at 2023-02-25T07:17:01-08:00
Set version to current 21d in build.sh
Bootstrap files should come from the 21d directory, not the 21c
directory.
- - - - -
62dfe149 by Raymond Toy at 2023-02-25T07:17:59-08:00
Move {DOUBLE,SINGLE}-FLOAT-INT-EXPONENT to KERNEL
Since {DOUBLE,SINGLE}-FLOAT-EXPONENT is in the KERNEL package, let's
do the same for {DOUBLE,SINGLE}-FLOAT-INT-EXPONENT. This requires
removing them from the C package so they can be exported from the
KERNEL package.
To do this, use the bootstrap file boot-2021-07-1 to unintern these
from the C package.
Then update the KERNEL package to export these symbols.
Finally, update the definition of FLOAT-INT-EXPONENT to use
KERNEL:DOUBLE-FLOAT-INT-EXPONENT instead of
C::DOUBLE-FLOAT-INT-EXPONENT.
- - - - -
0dac88e6 by Raymond Toy at 2023-02-25T07:24:24-08:00
Add comment on what the bootfile is doing.
- - - - -
7338f627 by Raymond Toy at 2023-02-25T07:25:19-08:00
Update CI to use the bootstrap file.
We'll have to continue using the bootstrap file until a new
snapshot/release is done.
- - - - -
5 changed files:
- .gitlab-ci.yml
- bin/build.sh
- + src/bootfiles/21d/boot-2021-07-1.lisp
- src/code/exports.lisp
- src/compiler/generic/vm-type.lisp
Changes:
=====================================
.gitlab-ci.yml
=====================================
@@ -1,7 +1,7 @@
variables:
download_url: "https://common-lisp.net/project/cmucl/downloads/snapshots/2021/07"
version: "2021-07-x86"
- bootstrap: ""
+ bootstrap: "-B boot-2021-07-1"
stages:
- install
=====================================
bin/build.sh
=====================================
@@ -39,7 +39,7 @@ ENABLE2="yes"
ENABLE3="yes"
ENABLE4="yes"
-version=21c
+version=21d
SRCDIR=src
BINDIR=bin
TOOLDIR=$BINDIR
=====================================
src/bootfiles/21d/boot-2021-07-1.lisp
=====================================
@@ -0,0 +1,18 @@
+;; Bootstrap file
+;;
+;; Use "bin/build.sh -B boot-2021-07-1" to build this.
+;;
+;; We want to export the symbols from the KERNEL package which also
+;; exists in the C package, so we unintern the conflicting symbols from
+;; the C package.
+
+(in-package "KERNEL")
+(ext:without-package-locks
+ (handler-bind
+ ((error (lambda (c)
+ ;;(declare (ignore c))
+ (describe c)
+ (invoke-restart 'lisp::unintern-conflicting-symbols))))
+ (export '(DOUBLE-FLOAT-INT-EXPONENT
+ SINGLE-FLOAT-INT-EXPONENT))))
+
=====================================
src/code/exports.lisp
=====================================
@@ -2329,6 +2329,7 @@
"DOUBLE-FLOAT-EXPONENT"
"DOUBLE-FLOAT-BITS"
"DOUBLE-FLOAT-HIGH-BITS"
+ "DOUBLE-FLOAT-INT-EXPONENT"
"DOUBLE-FLOAT-LOW-BITS" "DOUBLE-FLOAT-P" "FLOAT-WAIT"
"DYNAMIC-SPACE-FREE-POINTER" "ERROR-NUMBER-OR-LOSE" "FILENAME"
"FLOAT-DIGITS" "FLOAT-EXPONENT" "FLOAT-FORMAT-DIGITS"
@@ -2426,6 +2427,7 @@
"SIMPLE-ARRAY-SIGNED-BYTE-16-P" "SIMPLE-ARRAY-SIGNED-BYTE-30-P"
"SIMPLE-ARRAY-SIGNED-BYTE-32-P" "SIMPLE-ARRAY-SIGNED-BYTE-8-P"
"SIMPLE-UNBOXED-ARRAY" "SINGLE-FLOAT-BITS" "SINGLE-FLOAT-EXPONENT"
+ "SINGLE-FLOAT-INT-EXPONENT"
"SINGLE-FLOAT-P" "SINGLE-VALUE-TYPE" "SPECIFIER-TYPE" "STACK-REF"
"STD-COMPUTE-CLASS-PRECEDENCE-LIST"
"STREAMLIKE" "SIMPLE-STREAM-BUFFER" "STRINGABLE" "STRINGLIKE"
=====================================
src/compiler/generic/vm-type.lisp
=====================================
@@ -51,7 +51,7 @@
#-long-float 'double-float-exponent
#+long-float 'long-float-exponent)
(deftype float-int-exponent ()
- 'c::double-float-int-exponent)
+ 'double-float-int-exponent)
(deftype float-digits ()
#-long-float `(integer 0 ,vm:double-float-digits)
#+long-float `(integer 0 ,vm:long-float-digits))
View it on GitLab: https://gitlab.common-lisp.net/cmucl/cmucl/-/compare/1683679d5ac48e16e0bf9b…
--
View it on GitLab: https://gitlab.common-lisp.net/cmucl/cmucl/-/compare/1683679d5ac48e16e0bf9b…
You're receiving this email because of your account on gitlab.common-lisp.net.