Changeset 5282


Ignore:
Timestamp:
Oct 2, 2006, 1:46:22 AM (18 years ago)
Author:
Gary Byers
Message:

Try to make x86-64 version compile under 10.4 again; see if this breaks
post-10.4 compilation.

Location:
trunk/ccl/lisp-kernel
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/ccl/lisp-kernel/lisptypes.h

    r5281 r5282  
    8585#ifndef _STRUCT_MCONTEXT64 /* A guess at what'll be defined when this is fixed */
    8686struct mcontext64 {
    87         x86_exception_state64_t es;
    88         x86_thread_state64_t    ss;     
    89         x86_float_state64_t     fs;
     87        x86_exception_state64_t __es;
     88        x86_thread_state64_t    __ss;   
     89        x86_float_state64_t     __fs;
    9090};
    91 #endif /* _STRUCT_MCONTEXT64 */
     91
     92typedef struct mcontext64 *MCONTEXT_T;
     93typedef ucontext64_t ExceptionInformation;
     94#define UC_MCONTEXT(UC) UC->uc_mcontext64
     95#define __rax rax
     96#define __fpu_mxcsr fpu_mxcsr
     97#define __rsp rsp
     98#define __faultvaddr faultvaddr
     99#define __rip rip
     100#define __rsi rsi
     101#define __rdi rdi
     102#define __rdx rdx
     103#define __rcx rcx
     104#else
     105typedef mcontext_t MCONTEXT_T;
    92106typedef ucontext_t ExceptionInformation;
    93107#define UC_MCONTEXT(UC) UC->uc_mcontext
     108#endif /* _STRUCT_MCONTEXT64 */
    94109#endif /* X86_64 */
    95110#endif /* #ifdef DARWIN */
  • trunk/ccl/lisp-kernel/x86-exceptions.c

    r5281 r5282  
    619619{
    620620  if (info->si_code == EXC_I386_SSEEXTERR) {
    621 #ifdef _STRUCT_MCONTEXT64
    622621    uint32_t mxcsr = UC_MCONTEXT(xp)->__fs.__fpu_mxcsr;
    623 #else
    624     uint32_t mxcsr = UC_MCONTEXT(xp)->fs.fpu_mxcsr;
    625 #endif
    626 
    627622
    628623    decode_vector_fp_exception(info, mxcsr);
     
    895890#ifdef DARWIN
    896891LispObj *
    897 copy_darwin_mcontext(mcontext_t context,
     892copy_darwin_mcontext(MCONTEXT_T context,
    898893                     LispObj *current,
    899                      mcontext_t *out)
    900 {
    901   mcontext_t dest = ((mcontext_t)current)-1;
    902   dest = (mcontext_t) (((LispObj)dest) & ~15);
     894                     MCONTEXT_T *out)
     895{
     896  MCONTEXT_T dest = ((MCONTEXT_T)current)-1;
     897  dest = (MCONTEXT_T) (((LispObj)dest) & ~15);
    903898
    904899  *dest = *context;
     
    10681063#endif
    10691064#ifdef DARWIN
    1070   mcontext_t mcontextp = NULL;
     1065  MCONTEXT_T mcontextp = NULL;
    10711066#endif
    10721067  siginfo_t *info_copy = NULL;
     
    11601155#endif
    11611156#ifdef DARWIN
    1162   mcontext_t mcontextp = NULL;
     1157  MCONTEXT_T mcontextp = NULL;
    11631158#endif
    11641159
     
    17201715  kern_return_t kret;
    17211716#if WORD_SIZE == 64
    1722   mcontext_t mc = UC_MCONTEXT(pseudosigcontext);
     1717  MCONTEXT_T mc = UC_MCONTEXT(pseudosigcontext);
    17231718#else
    17241719  struct mcontext * mc = UC_MCONTEXT(pseudosigcontext);
     
    17981793  ExceptionInformation *pseudosigcontext;
    17991794#ifdef X8664
    1800   mcontext_t mc;
     1795  MCONTEXT_T mc;
    18011796#else
    18021797  struct mcontext *mc;
     
    18161811  stackp = TRUNC_DOWN(stackp, sizeof(*mc), C_STK_ALIGN);
    18171812#ifdef X8664
    1818   mc = (mcontext_t) ptr_from_lispobj(stackp);
     1813  mc = (MCONTEXT_T) ptr_from_lispobj(stackp);
    18191814#else
    18201815  mc = (struct mcontext *) ptr_from_lispobj(stackp);
  • trunk/ccl/lisp-kernel/x86-exceptions.h

    r5281 r5282  
    3131#define DarwinSigReturn(context) syscall(SYS_sigreturn,context)
    3232#ifdef X8664
    33 #ifdef _STRUCT_MCONTEXT64
    3433#define xpGPRvector(x) ((natural *)(&(UC_MCONTEXT(x)->__ss.__rax)))
    35 #else
    36 #define xpGPRvector(x) ((natural *)(&(UC_MCONTEXT(x)->ss.rax)))
    37 #endif
    3834#define xpGPR(x,gprno) (xpGPRvector(x)[gprno])
    3935#define set_xpGPR(x,gpr,new) xpGPR((x),(gpr)) = (natural)(new)
    4036#define xpPC(x) (xpGPR(x,Iip))
    41 #ifdef _STRUCT_MCONTEXT64
    4237#define xpFPRvector(x) ((natural *)(&(UC_MCONTEXT(x)->__fs.__fpu_stmm0)))
    43 #else
    44 #define xpFPRvector(x) ((natural *)(&(UC_MCONTEXT(x)->fs.fp_stmm0)))
    45 #endif
    4638#define xpMMXreg(x,n)  (xpFPRvector(x)[gprno])
    4739#endif
Note: See TracChangeset for help on using the changeset viewer.