Commit 1600081c authored by Nathan Froyd's avatar Nathan Froyd
Browse files

0.9.16.28:

	Shorten pseudo-atomic sequence on x86 and x86-64.

	Do this by combining *pseudo-atomic-{atomic,interrupted}* into
	  a single variable, *pseudo-atomic-bits*, which is a fixnum
	  bitmask where bit 0 denotes atomic-ness and bit 1 denotes
	  interruptedness.
	* Change genesis to initialize this variable properly (this
	  didn't need to be done for the old variables because the
	  allocation sequences would set them upon entrance);
	* Modify functions and macros accessing pseudo-atomic variables
	  to reflect the new state of the world;
parent 970dd272
Loading
Loading
Loading
Loading
+1 −2
Original line number Diff line number Diff line
@@ -1395,8 +1395,7 @@ is a good idea, but see SB-SYS re. blurring of boundaries."
               "PACKAGE-INTERNAL-SYMBOLS" "PACKAGE-EXTERNAL-SYMBOLS"
               "PARSE-DEFMACRO" "PARSE-UNKNOWN-TYPE"
               "PARSE-UNKNOWN-TYPE-SPECIFIER" "PATHNAME-DESIGNATOR"
               #!+(or x86 x86-64) "*PSEUDO-ATOMIC-ATOMIC*"
               #!+(or x86 x86-64) "*PSEUDO-ATOMIC-INTERRUPTED*"
               #!+(or x86 x86-64) "*PSEUDO-ATOMIC-BITS*"
               "PUNT-PRINT-IF-TOO-LONG" "READER-IMPOSSIBLE-NUMBER-ERROR"
               "READER-PACKAGE-ERROR" "READER-EOF-ERROR"
               "RESTART-DESIGNATOR"
+2 −1
Original line number Diff line number Diff line
@@ -76,7 +76,7 @@
;;; versions which break binary compatibility. But it certainly should
;;; be incremented for release versions which break binary
;;; compatibility.
(def!constant +fasl-file-version+ 69)
(def!constant +fasl-file-version+ 70)
;;; (record of versions before 2003 deleted in 2003-04-26/0.pre8.107 or so)
;;; 38: (2003-01-05) changed names of internal SORT machinery
;;; 39: (2003-02-20) in 0.7.12.1 a slot was added to
@@ -140,6 +140,7 @@
;;;     0.9.14.something
;;; 68: (2006-08-14) changed number of arguments of LOAD-DEFMETHOD
;;; 69: (2006-08-17) changed validity of various initargs for methods
;;; 70: (2006-09-13) changes to *PSEUDO-ATOMIC* on x86 and x86-64

;;; the conventional file extension for our fasl files
(declaim (type simple-string *fasl-file-type*))
+1 −2
Original line number Diff line number Diff line
@@ -33,8 +33,7 @@
                  ;; :X86. (Note that non-X86 ports mention
                  ;; pseudo-atomicity too, but they handle it without
                  ;; messing with special variables.)
                  #!+(or x86 x86-64) *pseudo-atomic-atomic*
                  #!+(or x86 x86-64) *pseudo-atomic-interrupted*
                  #!+(or x86 x86-64) *pseudo-atomic-bits*
                  sb!unix::*interrupts-enabled*
                  sb!unix::*interrupt-pending*
                  *free-interrupt-context-index*
+1 −2
Original line number Diff line number Diff line
@@ -25,8 +25,7 @@
;;; specials initialized by !COLD-INIT

;;; FIXME: These could be converted to DEFVARs.
(declaim (special #!+(or x86 x86-64) *pseudo-atomic-atomic*
                  #!+(or x86 x86-64) *pseudo-atomic-interrupted*
(declaim (special #!+(or x86 x86-64) *pseudo-atomic-bits*
                  sb!unix::*interrupts-enabled*
                  sb!unix::*interrupt-pending*
                  *type-system-initialized*))
+7 −1
Original line number Diff line number Diff line
@@ -1223,7 +1223,13 @@ core and return a descriptor to it."
                offset-wanted))))
    ;; Establish the value of T.
    (let ((t-symbol (cold-intern t)))
      (cold-set t-symbol t-symbol))))
      (cold-set t-symbol t-symbol))
    ;; Establish the value of *PSEUDO-ATOMIC-BITS* so that the
    ;; allocation sequences that expect it to be zero upon entrance
    ;; actually find it to be so.
    #!+(or x86-64 x86)
    (let ((p-a-a-symbol (cold-intern 'sb!kernel:*pseudo-atomic-bits*)))
      (cold-set p-a-a-symbol (make-fixnum-descriptor 0)))))

;;; a helper function for FINISH-SYMBOLS: Return a cold alist suitable
;;; to be stored in *!INITIAL-LAYOUTS*.
Loading