Skip to content
  • rtoy's avatar
    This large checkin brings the amd64 port up-to-date with the current · 2bafb654
    rtoy authored
    sources.  No real attempt has been made to make it work, but the
    cross-compile does create a kernel.core, and the C code compiles (on
    openSuSE 10.3).  The resulting kernel.core does not yet work.
    
    Use cross-x86-amd64.lisp as the cross-compile script.  This is
    intended to be cross-compiled using the 20a release for Linux, and
    only supports x87.  The sse2 support has not be ported yet.
    
    tools/cross-scripts/cross-x86-amd64.lisp:
    o Update cross-compile with some missing constants, and frob new
      symbols.
    
    tools/clean-target.sh:
    o Remove amd64f files too.
    
    code/pred.lisp:
    o Define predicates for double-doubles for bootstrapping to work
      around recursive known function problems with these predicates.
    
    code/sap.lisp:
    o Define int-sap with (unsigned-byte 64) type declaration.  (May not
      be needed?)
    
    code/unix-glibc2.lisp:
    o Build fails defining map_failed to (int-sap -1).  Just hard-wire to
      0 for now so we can build.
    
    compiler/float-tran.lisp:
    o Add missing conditional for %complex-double-double-float.
    
    compiler/amd64/float.lisp:
    o Merge double-double support for amd64.  Not really tested yet.
    
    compiler/amd64/parms.lisp:
    o Update to match x86 build.  In particular, get the space address
      correct and update the static symbols.
    
    compiler/amd64/type-vops.lisp:
    o DYLAN-FUNCTION-HEADER-TYPE no longer exists.
    
    compiler/amd64/vm.lisp:
    o Add double-double storage classes and register definitions.
    
    lisp/Config.amd64:
    o Bring in line with Config.x86 and friends.
    
    lisp/Linux-os.c:
    o Bring amd64 code up-to-date with x86/linux code.
    
    lisp/Linux-os.h
    o Need to include sys/ucontext.h to get ucontext defined.  (Why?)
    o Also define __USE_GNU so we get the register offsets in the ucontext
      defined.  (Why?)
    
    lisp/amd64-arch.c:
    o Change struct sigcontext to os_context_t.
    o Use SC_PC instead of context->sc_pc.
    o Merge some changes in from x86 version, like SC_EFLAGS.  May need
      more work.
    
    lisp/amd64-assem.s:
    o Use rbx instead of ebx for jmp.
    
    lisp/amd64-lispregs.h:
    o Define SC_REG, SC_PC, SC_SP using the new x86 style.
    
    lisp/backtrace.c:
    o Remove inline assembly for now until I figure out what the amd64
      version should be.
    
    lisp/gencgc.c:
    o Conditionalize out weak hash table support for now.
    
    lisp/gencgc.h:
    o Set PAGE_SIZE for amd64.  (Is 4096 right?)
    
    lisp/globals.h:
    o Export current_dynamic_space_free_pointer and
      current_auto_gc_trigger like for x86.
    2bafb654