This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "CMU Common Lisp".
The branch, master has been updated via 8e1b40b35592720147dac16cfef2431b43ccbe5a (commit) from 3c88c09556da4e0f797dc90beba16c76ac972c26 (commit)
Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below.
- Log ----------------------------------------------------------------- commit 8e1b40b35592720147dac16cfef2431b43ccbe5a Author: Raymond Toy toy.raymond@gmail.com Date: Sat Feb 23 08:31:57 2013 -0800
Remove old stuff.
* Remove support for :athlon in fp-pop. * Remove all of the enhanced pentium pro fp comparison code. Use the non ppro everywhere.
diff --git a/src/compiler/x86/float.lisp b/src/compiler/x86/float.lisp index f8f57e6..a515e40 100644 --- a/src/compiler/x86/float.lisp +++ b/src/compiler/x86/float.lisp @@ -33,9 +33,7 @@ ;;; For the AMD Athlon, using ffreep fr0 is faster. ;;; (defun fp-pop () - (if (backend-featurep :athlon) - (inst ffreep fr0-tn) - (inst fstp fr0-tn))) + (inst fstp fr0-tn))
(macrolet ((ea-for-xf-desc (tn slot) @@ -1482,7 +1480,6 @@ (:conditional) (:info target not-p) (:policy :fast-safe) - (:guard (not (backend-featurep :ppro))) (:note _N"inline float comparison") (:ignore temp fr0) (:generator 3 @@ -1571,7 +1568,6 @@ (:conditional) (:info target not-p) (:policy :fast-safe) - (:guard (not (backend-featurep :ppro))) (:note _N"inline float comparison") (:ignore temp fr0) (:generator 3 @@ -1659,7 +1655,6 @@ (:conditional) (:info target not-p) (:policy :fast-safe) - (:guard (not (backend-featurep :ppro))) (:note _N"inline float comparison") (:ignore temp) (:generator 3 @@ -1768,99 +1763,6 @@ (frob = #x40))
- -;;;; Enhanced Pentium Pro floating point comparisons. - -;;; These comparisions use the faster sequences bases upon FCOMI and FUCOMI, -;;; which write to the condition codes. However, correct IEEE handling of -;;; unordered arguments requires the comparision of multiple flags which is -;;; only possible for the comparison (> ST0 operand) in which case the :b and -;;; :be tests can check that both ZF and CF are zero, or either is one -;;; respectively. For the opposite comparision (< ST0 operand), the arguments -;;; may be swapped and the > comparision used, but for equality the slower -;;; FNSTSW variation must be used. - -(define-vop (ppro-</float) - (:args (x) (y)) - (:conditional) - (:info target not-p) - (:policy :fast-safe) - (:guard (backend-featurep :ppro)) - (:note _N"inline float comparison") - (:generator 3 - ;; Handle a few special cases - (cond - ;; x is in ST0; y is in any reg. - ((zerop (tn-offset x)) - (inst fxch y) - (inst fcomi y) - (inst fxch y)) - ;; y is in ST0; x is in another reg. - ((zerop (tn-offset y)) - (inst fcomi x)) - ;; x and y are the same register, not ST0. - ((location= x y) - (inst fxch x) - (inst fcomi fr0-tn) - (inst fxch x)) - ;; x and y are different registers, neither ST0. - (t - (inst fxch y) - (inst fcomi x) - (inst fxch y))) - (inst jmp (if not-p :be :nbe) target))) - -(macrolet ((frob (type sc) - `(define-vop (,(symbolicate "PPRO-</" type) ppro-</float) - (:translate <) - (:args (x :scs (,sc)) - (y :scs (,sc))) - (:arg-types ,type ,type)))) - (frob single-float single-reg) - (frob double-float double-reg) - #+long-float (frob long-float long-reg)) - -(define-vop (ppro->/float) - (:args (x) (y)) - (:conditional) - (:info target not-p) - (:policy :fast-safe) - (:guard (backend-featurep :ppro)) - (:note _N"inline float comparison") - (:generator 3 - ;; Handle a few special cases - (cond - ;; x is in ST0; y is in any reg. - ((zerop (tn-offset x)) - (inst fcomi y)) - ;; y is in ST0; x is in another reg. - ((zerop (tn-offset y)) - (inst fxch x) - (inst fcomi x) - (inst fxch x)) - ;; x and y are the same register, not ST0. - ((location= x y) - (inst fxch x) - (inst fcomi fr0-tn) - (inst fxch x)) - ;; x and y are different registers, neither ST0. - (t - (inst fxch x) - (inst fcomi y) - (inst fxch x))) - (inst jmp (if not-p :be :nbe) target))) - -(macrolet ((frob (type sc) - `(define-vop (,(symbolicate "PPRO->/" type) ppro->/float) - (:translate >) - (:args (x :scs (,sc)) - (y :scs (,sc))) - (:arg-types ,type ,type)))) - (frob single-float single-reg) - (frob double-float double-reg) - #+long-float (frob long-float long-reg)) - - ;;;; Conversion:
(macrolet ((frob (name translate to-sc to-type)
-----------------------------------------------------------------------
Summary of changes: src/compiler/x86/float.lisp | 100 +------------------------------------------ 1 files changed, 1 insertions(+), 99 deletions(-)
hooks/post-receive