Skip to content
Snippets Groups Projects
Commit 139c4f23 authored by rtoy's avatar rtoy
Browse files

Make previous changes build for x87.

compiler/x86/vm.lisp:
o Change *float-register-names* to be defparameter.
o Setup float-regs and def-random-reg-tns appropriately for x87 and
  sse2.

lisp/Darwin-os.c:
lisp/Linux-os.c:
o Conditionalize previous change for FEATURE_SSE2.
parent 1fea054f
No related branches found
No related tags found
No related merge requests found
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
;;; Scott Fahlman or slisp-group@cs.cmu.edu. ;;; Scott Fahlman or slisp-group@cs.cmu.edu.
;;; ;;;
(ext:file-comment (ext:file-comment
"$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/x86/vm.lisp,v 1.16 2010/06/22 15:35:23 rtoy Exp $") "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/x86/vm.lisp,v 1.17 2010/06/22 16:55:16 rtoy Exp $")
;;; ;;;
;;; ********************************************************************** ;;; **********************************************************************
;;; ;;;
...@@ -96,7 +96,7 @@ ...@@ -96,7 +96,7 @@
;;; added by jrd ;;; added by jrd
(eval-when (compile load eval) (eval-when (compile load eval)
(defvar *float-register-names* (make-array #-sse2 8 #+sse2 16 :initial-element nil))) (defparameter *float-register-names* (make-array #-sse2 8 #+sse2 16 :initial-element nil)))
(defreg fr0 0 :float) (defreg fr0 0 :float)
(defreg fr1 1 :float) (defreg fr1 1 :float)
(defreg fr2 2 :float) (defreg fr2 2 :float)
...@@ -105,6 +105,8 @@ ...@@ -105,6 +105,8 @@
(defreg fr5 5 :float) (defreg fr5 5 :float)
(defreg fr6 6 :float) (defreg fr6 6 :float)
(defreg fr7 7 :float) (defreg fr7 7 :float)
#+sse2
(progn
(defreg xmm0 8 :float) (defreg xmm0 8 :float)
(defreg xmm1 9 :float) (defreg xmm1 9 :float)
(defreg xmm2 10 :float) (defreg xmm2 10 :float)
...@@ -113,6 +115,12 @@ ...@@ -113,6 +115,12 @@
(defreg xmm5 13 :float) (defreg xmm5 13 :float)
(defreg xmm6 14 :float) (defreg xmm6 14 :float)
(defreg xmm7 15 :float) (defreg xmm7 15 :float)
)
#-sse2
(defregset float-regs fr0 fr1 fr2 fr3 fr4 fr5 fr6 fr7)
#+sse2
(defregset float-regs (defregset float-regs
fr0 fr1 fr2 fr3 fr4 fr5 fr6 fr7 fr0 fr1 fr2 fr3 fr4 fr5 fr6 fr7
xmm0 xmm1 xmm2 xmm3 xmm4 xmm5 xmm6 xmm7) xmm0 xmm1 xmm2 xmm3 xmm4 xmm5 xmm6 xmm7)
...@@ -369,6 +377,10 @@ ...@@ -369,6 +377,10 @@
(def-random-reg-tns byte-reg al ah bl bh cl ch dl dh) (def-random-reg-tns byte-reg al ah bl bh cl ch dl dh)
;; added by jrd ;; added by jrd
#-sse2
(def-random-reg-tns single-reg fr0 fr1 fr2 fr3 fr4 fr5 fr6 fr7)
#+sse2
(def-random-reg-tns single-reg (def-random-reg-tns single-reg
fr0 fr1 fr2 fr3 fr4 fr5 fr6 fr7 fr0 fr1 fr2 fr3 fr4 fr5 fr6 fr7
xmm0 xmm1 xmm2 xmm3 xmm4 xmm5 xmm6 xmm7) xmm0 xmm1 xmm2 xmm3 xmm4 xmm5 xmm6 xmm7)
......
...@@ -14,7 +14,7 @@ ...@@ -14,7 +14,7 @@
* Frobbed for OpenBSD by Pierre R. Mai, 2001. * Frobbed for OpenBSD by Pierre R. Mai, 2001.
* Frobbed for Darwin by Pierre R. Mai, 2003. * Frobbed for Darwin by Pierre R. Mai, 2003.
* *
* $Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/lisp/Darwin-os.c,v 1.29 2010/06/22 15:35:23 rtoy Exp $ * $Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/lisp/Darwin-os.c,v 1.30 2010/06/22 16:55:17 rtoy Rel $
* *
*/ */
...@@ -285,6 +285,7 @@ os_sigcontext_fpu_reg(ucontext_t *scp, int index) ...@@ -285,6 +285,7 @@ os_sigcontext_fpu_reg(ucontext_t *scp, int index)
return (unsigned char *) &scp->uc_mcontext->__fs.__fpu_stmm6; return (unsigned char *) &scp->uc_mcontext->__fs.__fpu_stmm6;
case 7: case 7:
return (unsigned char *) &scp->uc_mcontext->__fs.__fpu_stmm7; return (unsigned char *) &scp->uc_mcontext->__fs.__fpu_stmm7;
#ifdef FEATURE_SSE2
case 8: case 8:
return (unsigned char *) &scp->uc_mcontext->__fs.__fpu_xmm0; return (unsigned char *) &scp->uc_mcontext->__fs.__fpu_xmm0;
case 9: case 9:
...@@ -301,6 +302,7 @@ os_sigcontext_fpu_reg(ucontext_t *scp, int index) ...@@ -301,6 +302,7 @@ os_sigcontext_fpu_reg(ucontext_t *scp, int index)
return (unsigned char *) &scp->uc_mcontext->__fs.__fpu_xmm6; return (unsigned char *) &scp->uc_mcontext->__fs.__fpu_xmm6;
case 15: case 15:
return (unsigned char *) &scp->uc_mcontext->__fs.__fpu_stmm7; return (unsigned char *) &scp->uc_mcontext->__fs.__fpu_stmm7;
#endif
} }
return NULL; return NULL;
} }
......
...@@ -15,7 +15,7 @@ ...@@ -15,7 +15,7 @@
* GENCGC support by Douglas Crosher, 1996, 1997. * GENCGC support by Douglas Crosher, 1996, 1997.
* Alpha support by Julian Dolby, 1999. * Alpha support by Julian Dolby, 1999.
* *
* $Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/lisp/Linux-os.c,v 1.49 2010/06/22 15:35:23 rtoy Exp $ * $Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/lisp/Linux-os.c,v 1.50 2010/06/22 16:55:17 rtoy Rel $
* *
*/ */
...@@ -190,13 +190,16 @@ os_sigcontext_fpu_reg(ucontext_t *scp, int offset) ...@@ -190,13 +190,16 @@ os_sigcontext_fpu_reg(ucontext_t *scp, int offset)
if (fpregs) { if (fpregs) {
if (offset < 8) { if (offset < 8) {
reg = (unsigned char *) &fpregs->_st[offset]; reg = (unsigned char *) &fpregs->_st[offset];
} else { }
#ifdef FEATURE_SSE2
else {
struct _fpstate *fpstate; struct _fpstate *fpstate;
fpstate = (struct _fpstate*) scp->uc_mcontext.fpregs; fpstate = (struct _fpstate*) scp->uc_mcontext.fpregs;
if (fpstate->magic != 0xffff) { if (fpstate->magic != 0xffff) {
reg = (unsigned char *) &fpstate->_xmm[offset - 8]; reg = (unsigned char *) &fpstate->_xmm[offset - 8];
} }
} }
#endif
} }
return reg; return reg;
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment