This large checkin brings the amd64 port up-to-date with the current
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.
Showing
- code/pred.lisp 34 additions, 1 deletioncode/pred.lisp
- code/sap.lisp 7 additions, 1 deletioncode/sap.lisp
- code/unix-glibc2.lisp 2 additions, 2 deletionscode/unix-glibc2.lisp
- compiler/amd64/float.lisp 786 additions, 46 deletionscompiler/amd64/float.lisp
- compiler/amd64/parms.lisp 56 additions, 20 deletionscompiler/amd64/parms.lisp
- compiler/amd64/type-vops.lisp 2 additions, 2 deletionscompiler/amd64/type-vops.lisp
- compiler/amd64/vm.lisp 21 additions, 2 deletionscompiler/amd64/vm.lisp
- compiler/float-tran.lisp 3 additions, 1 deletioncompiler/float-tran.lisp
- lisp/Config.amd64 39 additions, 4 deletionslisp/Config.amd64
- lisp/Linux-os.c 58 additions, 21 deletionslisp/Linux-os.c
- lisp/Linux-os.h 4 additions, 1 deletionlisp/Linux-os.h
- lisp/amd64-arch.c 31 additions, 52 deletionslisp/amd64-arch.c
- lisp/amd64-assem.S 2 additions, 2 deletionslisp/amd64-assem.S
- lisp/amd64-lispregs.h 5 additions, 3 deletionslisp/amd64-lispregs.h
- lisp/backtrace.c 5 additions, 2 deletionslisp/backtrace.c
- lisp/gencgc.c 7 additions, 2 deletionslisp/gencgc.c
- lisp/gencgc.h 2 additions, 2 deletionslisp/gencgc.h
- lisp/globals.h 2 additions, 2 deletionslisp/globals.h
- lisp/interrupt.c 3 additions, 1 deletionlisp/interrupt.c
- tools/clean-target.sh 1 addition, 0 deletionstools/clean-target.sh
Loading
Please register or sign in to comment