Changeset 7017 for branches


Ignore:
Timestamp:
Aug 7, 2007, 7:35:23 PM (17 years ago)
Author:
R. Matthew Emerson
Message:

Changes for x8632.

Location:
branches/ia32/lisp-kernel
Files:
8 edited

Legend:

Unmodified
Added
Removed
  • branches/ia32/lisp-kernel/image.c

    r6215 r7017  
    2727
    2828
    29 #ifdef PPC64
     29#if defined(PPC64) || defined(X8632)
    3030#define RELOCATABLE_FULLTAG_MASK \
    3131  ((1<<fulltag_cons)|(1<<fulltag_misc))
  • branches/ia32/lisp-kernel/lisp-debug.c

    r6536 r7017  
    107107                     "rbp", "rsp", "r8 ", "r9 ", "r10", "r11", "r12", "r13",
    108108                     "r14", "r15", "rip", "rfl"};
     109#endif
     110#endif
     111
     112#ifdef X8632
     113#ifdef DARWIN
     114char *Iregnames[] = {"eax", "ebx", "ecx", "edx", "edi", "esi",
     115                     "ebp", "???", "efl", "eip"};
    109116#endif
    110117#endif
     
    564571          xpGPR(xp, Iip), xpGPR(xp, Iflags));
    565572#endif
     573
     574#ifdef X8632
     575  fprintf(stderr, "%%eax = 0x%08X  %%ebx = 0x%08X\n  %%ecx = 0x%08X  %%edx = 0x%08X\n",
     576          xpGPR(xp, REG_EAX), xpGPR(xp, REG_EBX), xpGPR(xp, REG_ECX), xpGPR(xp, REG_EDX));
     577  fprintf(stderr, "%%edi = 0x%08X  %%esi = 0x%08X\n  %%ebp = 0x%08X  %%esp = 0x%08X\n",
     578          xpGPR(xp, REG_EDI), xpGPR(xp, REG_ESI), xpGPR(xp, REG_EBP), xpGPR(xp, REG_ESP));
     579  fprintf(stderr, "%%eip = 0x%08X  %%eflags = 0x%08X\n",
     580          xpGPR(xp, REG_EIP), xpGPR(xp, REG_EFL));
     581#endif
     582
    566583  return debug_continue;
    567584}
  • branches/ia32/lisp-kernel/lisp_globals.h

    r6901 r7017  
    8787#endif
    8888
     89/* xxx not sure about this... */
     90#ifdef X8632
     91#define lisp_global(g) (((LispObj *) 0x3000)[(g)])
     92#define nrs_symbol(s) (((lispsymbol *) 0x3008)[(s)])
     93#endif
    8994
    9095#define nrs_T                           (nrs_symbol(0))         /* t */
  • branches/ia32/lisp-kernel/lisptypes.h

    r6535 r7017  
    146146#endif /* _STRUCT_MCONTEXT64 */
    147147#endif /* X86_64 */
     148
     149#ifdef X8632
     150/* Assume rational <i386/ucontext.h> */
     151typedef mcontext_t MCONTEXT_T;
     152typedef ucontext_t ExceptionInformation;
     153#endif
     154
    148155#endif /* #ifdef DARWIN */
    149156
  • branches/ia32/lisp-kernel/pmcl-kernel.c

    r6902 r7017  
    8989Boolean running_under_rosetta = false;
    9090
    91 #if WORD_SIZE == 64
     91#if WORD_SIZE == 64 || defined(X8632)
    9292/* Assume that if the OS is new enough to support PPC64/X8664, it has
    9393   a reasonable dlfcn.h
     
    18381838#endif
    18391839#ifdef DARWIN
    1840 #if defined(PPC64) || defined(X8664)
     1840#if defined(PPC64) || defined(X86)
    18411841  if (handle == NULL) {
    18421842    handle = RTLD_DEFAULT;
  • branches/ia32/lisp-kernel/thread_manager.c

    r6904 r7017  
    10251025#ifdef X8664
    10261026#define NSAVEREGS 4
     1027#endif
     1028#ifdef X8632
     1029#define NSAVEREGS 0
    10271030#endif
    10281031    for (i = 0; i < NSAVEREGS; i++) {
  • branches/ia32/lisp-kernel/x86-constants32.h

    r7015 r7017  
    77#define REG_EDI 4
    88#define REG_ESI 5
    9 #define REG_EAX 6
    10 #define REG_EBP 7
     9#define REG_EBP 6
     10#define REG_ESP 7
    1111#define REG_EFL 9
    1212#define REG_EIP 10
     
    4040
    4141#define tag_fixnum 0
    42 #define tag_lis 1
     42#define tag_list 1
    4343#define tag_misc 2
    4444#define tag_imm 3
     
    119119#define subtag_istruct NODE_SUBTAG(16)
    120120#define max_non_array_node_subtag ((19<<ntagbits)|fulltag_immheader)
     121
     122/* xxx confused about this */
     123#define unbound SUBTAG(fulltag_imm, 6)
     124#define undefined unbound
     125#define unbound_marker unbound
     126#define subtag_character SUBTAG(fulltag_imm, 9)
     127#define slot_unbound SUBTAG(fulltag_imm, 10)
     128#define slot_unbound_marker slot_unbound
     129#define no_thread_local_binding_marker SUBTAG(fulltag_imm,30)
     130
    121131
    122132typedef struct cons {
     
    365375    void *resume;                 /* resumption semaphore */
    366376    natural flags;
    367     ExceptionInformation* gc_context;
     377    ExceptionInformation *gc_context;
    368378    void *termination_semaphore;
    369379    signed_natural unwinding;
     
    377387#define nil_value (0x3000 + (fulltag_cons))
    378388#define t_value (0x3008 + (fulltag_misc))
     389#define misc_header_offset -fulltag_misc
     390#define misc_data_offset misc_header_offset + node_size
    379391
    380392#define heap_segment_size 0x00010000
  • branches/ia32/lisp-kernel/x86-exceptions.h

    r6527 r7017  
    3838#define xpFPRvector(x) ((natural *)(&(UC_MCONTEXT(x)->__fs.__fpu_xmm0)))
    3939#define xpMMXreg(x,n)  (xpFPRvector(x)[n])
     40#else /* X8632 */
     41#define xpGPRvector(x) ((natural *)(&((x)->uc_mcontext->ss)))
     42#define xpGPR(x,gprno) (xpGPRvector(x)[gprno])
     43#define set_xpGPR(x,gpr,new) xpGPR((x),(gpr)) = (natural)(new)
     44#define xpPC(x) (xpGPR(x,Iip))
     45#define xpFPRvector(x) ((natural *)(&((x)->uc_mcontext->fs.fpu_xmm0)))
    4046#endif
    4147#include <mach/mach.h>
Note: See TracChangeset for help on using the changeset viewer.