From eb2df7a8552299622569d6dfdeb8ac70cde6d58e Mon Sep 17 00:00:00 2001 From: dtc <dtc> Date: Sun, 20 Aug 2000 14:44:23 +0000 Subject: [PATCH] Add guards to those VOPS that use the cmpxchg instruction which was first introduced with the i486. --- compiler/x86/cell.lisp | 3 ++- compiler/x86/macros.lisp | 4 +++- compiler/x86/memory.lisp | 4 +++- 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/compiler/x86/cell.lisp b/compiler/x86/cell.lisp index e9b3f2d26..140f21f9f 100644 --- a/compiler/x86/cell.lisp +++ b/compiler/x86/cell.lisp @@ -7,7 +7,7 @@ ;;; Scott Fahlman or slisp-group@cs.cmu.edu. ;;; (ext:file-comment - "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/x86/cell.lisp,v 1.11 1999/12/08 14:19:19 dtc Exp $") + "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/x86/cell.lisp,v 1.12 2000/08/20 14:44:23 dtc Exp $") ;;; ;;; ********************************************************************** ;;; @@ -343,6 +343,7 @@ (:temporary (:sc descriptor-reg :offset eax-offset :from (:argument 2) :to :result :target result) eax) (:results (result :scs (descriptor-reg any-reg))) + (:guard (backend-featurep :i486)) (:policy :fast-safe) (:generator 5 (move eax old-value) diff --git a/compiler/x86/macros.lisp b/compiler/x86/macros.lisp index 06c6b875f..58a6fdcd3 100644 --- a/compiler/x86/macros.lisp +++ b/compiler/x86/macros.lisp @@ -7,7 +7,7 @@ ;;; Scott Fahlman or slisp-group@cs.cmu.edu. ;;; (ext:file-comment - "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/x86/macros.lisp,v 1.14 1999/12/08 14:19:20 dtc Exp $") + "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/x86/macros.lisp,v 1.15 2000/08/20 14:44:23 dtc Exp $") ;;; ;;; ********************************************************************** ;;; @@ -439,6 +439,7 @@ :from (:argument 2) :to :result :target result) eax) (:results (result :scs ,scs)) (:result-types ,el-type) + (:guard (backend-featurep :i486)) (:generator 5 (move eax old-value) (inst cmpxchg (make-ea :dword :base object :index index :scale 1 @@ -458,6 +459,7 @@ :from (:argument 1) :to :result :target result) eax) (:results (result :scs ,scs)) (:result-types ,el-type) + (:guard (backend-featurep :i486)) (:generator 4 (move eax old-value) (inst cmpxchg (make-ea :dword :base object diff --git a/compiler/x86/memory.lisp b/compiler/x86/memory.lisp index f7713aac8..2a8d9649b 100644 --- a/compiler/x86/memory.lisp +++ b/compiler/x86/memory.lisp @@ -7,7 +7,7 @@ ;;; Scott Fahlman or slisp-group@cs.cmu.edu. ;;; (ext:file-comment - "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/x86/memory.lisp,v 1.7 1999/12/08 14:19:20 dtc Exp $") + "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/x86/memory.lisp,v 1.8 2000/08/20 14:44:23 dtc Exp $") ;;; ;;; ********************************************************************** ;;; @@ -92,6 +92,7 @@ :from (:argument 1) :to :result :target result) eax) (:variant-vars offset lowtag) (:results (result :scs (descriptor-reg any-reg))) + (:guard (backend-featurep :i486)) (:generator 4 (move eax old-value) (inst cmpxchg (make-ea :dword :base object @@ -161,6 +162,7 @@ (:variant-vars base lowtag) (:results (result :scs (descriptor-reg any-reg))) (:info offset) + (:guard (backend-featurep :i486)) (:generator 4 (move eax old-value) (inst cmpxchg (make-ea :dword :base object -- GitLab