Checkin the current code for gencgc. This is a basic port of sparc
gencgc for ppc. This is not yet functional. Allocation seems to work, but GC does not. We're just making a checkpoint now. compiler/ppc/macros.lisp: o Update allocation macro to support gencgc. Need a temp-tn as a scratch register for inline allocation. o Update with-fixed-allocation to use allocation macro correctly for gencgc. assembly/ppc/array.lisp: o Update for new allocation macro for gencgc. code/ppc-vm.lisp: o Define *scavenge-read-only-space* compiler/ppc/alloc.lisp: compiler/ppc/array.lisp: compiler/ppc/call.lisp: o Update to use new allocation macro for gencgc. compiler/ppc/parms.lisp: o Add necessary static symbols to support gencgc. lisp/Config.ppc_darwin: o Update to build with gencgc as needed. lisp/Darwin-os.c: o Update C code for gencgc. Mostly for checking if pointer is in the dynamic space. o Many debugging printf's enabled. lisp/gencgc.c: o Adjust sparc version appropriately for ppc. o Enable many gencgc self-checks. lisp/gencgc.h: o Update PAGE_SIZE for ppc, which is 4K. lisp/ppc-arch.c: o Add necessary code to handle the allocation traps for gencgc. Basically ported sparc version for ppc. lisp/ppc-assem.S: o The way pseudo-atomic is done has been changed, so make the assembly code match. PA is now more like sparc where the LSB is the PA-interrupted bit. o do_pending_interrupt may need work. lisp/ppc-validate.h: o Make the READ_ONLY_SPACE_SIZE right. o Define CONTROL_STACK_END. lisp/purify.c: o Enable debugging printfs o Adjust purify for gencgc, basically copying sparc version.
Loading
Please sign in to comment