From 9fd95117be995b9e15a19aa182fafe4a489a4ac7 Mon Sep 17 00:00:00 2001 From: Nikodemus Siivola Date: Thu, 8 May 2008 08:21:41 +0000 Subject: [PATCH] 1.0.16.22: FIXED-ALLOC to use MAYBE-PSEUDO-ATOMIC on x86 and x86-64. * PA is not needed with stack allocation. * Also rename the first argument to MAYBE-PSEUDO-ATOMIC to NOT-REALLY-P to avoid confusion. --- src/compiler/x86-64/alloc.lisp | 2 +- src/compiler/x86-64/macros.lisp | 5 ++--- src/compiler/x86/alloc.lisp | 2 +- src/compiler/x86/macros.lisp | 4 ++-- version.lisp-expr | 2 +- 5 files changed, 7 insertions(+), 8 deletions(-) diff --git a/src/compiler/x86-64/alloc.lisp b/src/compiler/x86-64/alloc.lisp index c7b7de2..8a3553c 100644 --- a/src/compiler/x86-64/alloc.lisp +++ b/src/compiler/x86-64/alloc.lisp @@ -255,7 +255,7 @@ (:results (result :scs (descriptor-reg))) (:node-var node) (:generator 50 - (pseudo-atomic + (maybe-pseudo-atomic stack-allocate-p (allocation result (pad-data-block words) node stack-allocate-p) (inst lea result (make-ea :byte :base result :disp lowtag)) (when type diff --git a/src/compiler/x86-64/macros.lisp b/src/compiler/x86-64/macros.lisp index 6c53ab4..9393c2b 100644 --- a/src/compiler/x86-64/macros.lisp +++ b/src/compiler/x86-64/macros.lisp @@ -290,9 +290,8 @@ ;;; place and there's no logical single place to attach documentation. ;;; grep (mostly in src/runtime) is your friend -;;; FIXME: THIS NAME IS BACKWARDS! -(defmacro maybe-pseudo-atomic (really-p &body body) - `(if ,really-p +(defmacro maybe-pseudo-atomic (not-really-p &body body) + `(if ,not-really-p (progn ,@body) (pseudo-atomic ,@body))) diff --git a/src/compiler/x86/alloc.lisp b/src/compiler/x86/alloc.lisp index 59d47f5..23d30a6 100644 --- a/src/compiler/x86/alloc.lisp +++ b/src/compiler/x86/alloc.lisp @@ -305,7 +305,7 @@ ,@cases))))) (aver (null type)) (inst call (make-fixup dst :assembly-routine))) - (pseudo-atomic + (maybe-pseudo-atomic stack-allocate-p (allocation result (pad-data-block words) node stack-allocate-p) (inst lea result (make-ea :byte :base result :disp lowtag)) (when type diff --git a/src/compiler/x86/macros.lisp b/src/compiler/x86/macros.lisp index bfdb6c8..378a2ca 100644 --- a/src/compiler/x86/macros.lisp +++ b/src/compiler/x86/macros.lisp @@ -382,8 +382,8 @@ ;;; does not matter whether a signal occurs during construction of a ;;; dynamic-extent object, as the half-finished construction of the ;;; object will not cause any difficulty. We can therefore elide -(defmacro maybe-pseudo-atomic (really-p &body forms) - `(if ,really-p +(defmacro maybe-pseudo-atomic (not-really-p &body forms) + `(if ,not-really-p (progn ,@forms) (pseudo-atomic ,@forms))) diff --git a/version.lisp-expr b/version.lisp-expr index 7d6374b..ba6f1fa 100644 --- a/version.lisp-expr +++ b/version.lisp-expr @@ -17,4 +17,4 @@ ;;; checkins which aren't released. (And occasionally for internal ;;; versions, especially for internal versions off the main CVS ;;; branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".) -"1.0.16.21" +"1.0.16.22" -- 1.7.10.4