diff --git a/compiler/X86/X8664/x8664-vinsns.lisp b/compiler/X86/X8664/x8664-vinsns.lisp index 70de8a7c..30182c4d 100644 --- a/compiler/X86/X8664/x8664-vinsns.lisp +++ b/compiler/X86/X8664/x8664-vinsns.lisp @@ -574,12 +574,20 @@ (cur-vsp :stack-offset))) (movq (:@ (:apply - (:apply + frame-offset x8664::word-size-in-bytes)) (:%q x8664::rbp)) (:%q dest))) +#-NIL (define-x8664-vinsn (compare-vframe-offset-to-nil :vsp :ref :needs-frame-pointer) (() ((frame-offset :u16const) (cur-vsp :u16const))) (cmpb (:$b x8664::fulltag-nil) (:@ (:apply - (:apply + frame-offset x8664::word-size-in-bytes)) (:%q x8664::rbp)))) +#+NIL +(define-x8664-vinsn (compare-vframe-offset-to-nil :vsp :ref :needs-frame-pointer) + (() + ((frame-offset :u16const) + (cur-vsp :u16const))) + (cmpq (:% x8664::r14) (:@ (:apply - (:apply + frame-offset x8664::word-size-in-bytes)) (:%q x8664::rbp)))) + (define-x8664-vinsn (compare-vframe-offset-to-fixnum :vsp :ref :needs-frame-pointer) (() ((frame-offset :stack-offset) @@ -634,9 +642,17 @@ (popq (:%q x8664::rbp)) ) +#-NIL (define-x8664-vinsn compare-to-nil (() ((arg0 t))) - (cmpq (:$l (target-nil-value)) (:%q arg0))) + (cmpq (:$l (target-nil-value)) (:%q arg0))) ;What the fuck! + +#+NIL +(define-x8664-vinsn compare-to-nil (() + ((arg0 t))) + (cmpq (:$l (:apply target-nil-value)) (:%q arg0)) + ;; (cmpq (:% x8664::r14) (:%q arg0)) + ) (define-x8664-vinsn compare-to-t (() ((arg0 t))) diff --git a/compiler/X86/x86-disassemble.lisp b/compiler/X86/x86-disassemble.lisp index f9bd148c..7da7098a 100644 --- a/compiler/X86/x86-disassemble.lisp +++ b/compiler/X86/x86-disassemble.lisp @@ -2922,7 +2922,7 @@ (format t ")~vt;~8<[~D]~>" (+ comment-start-offset tab-stop) pc)) (format t "~&"))) -(defun x86-print-di-raw (ds instruction tab-stop pc) +(defun x86-print-di-raw (ds instruction tab-stop pc &aux (n-per-line 12)) (declare (ignore tab-stop)) (let* ((op0 (x86-di-op0 instruction)) (op1 (x86-di-op1 instruction)) @@ -2933,10 +2933,10 @@ (code-vector (x86-ds-code-vector ds)) (byteidx istart)) (format t "~5@d: " pc) - (dotimes (i (min nbytes 4)) + (dotimes (i (min nbytes n-per-line)) (format t "~(~2,'0x~) " (aref code-vector byteidx)) (incf byteidx)) - (format t "~20t(~a" (x86-di-mnemonic instruction)) + (format t "~vt(~a" (+ 8 (* n-per-line 3)) (x86-di-mnemonic instruction)) (when op0 (write-x86-lap-operand t op0 ds) (when op1 @@ -2944,13 +2944,13 @@ (when op2 (write-x86-lap-operand t op2 ds)))) (format t ")~&") - (decf nbytes 4) + (decf nbytes n-per-line) (while (plusp nbytes) - (dotimes (i (min nbytes 4)) + (dotimes (i (min nbytes n-per-line)) (format t "~7t~(~2,'0x~)" (aref code-vector byteidx)) (incf byteidx)) (format t "~%") - (decf nbytes 4)))) + (decf nbytes n-per-line)))) (defun x86-print-disassembled-instruction (ds instruction seq function) (let* ((addr (x86-di-address instruction)) diff --git a/compiler/X86/x862.lisp b/compiler/X86/x862.lisp index 9446dd90..60af1b7c 100644 --- a/compiler/X86/x862.lisp +++ b/compiler/X86/x862.lisp @@ -625,6 +625,7 @@ (defun x862-compile (afunc &optional lambda-form *x862-record-symbols*) + (set'/afunc afunc) (progn (dolist (a (afunc-inner-functions afunc)) (unless (afunc-lfun a) @@ -7260,6 +7261,7 @@ (svset *x862-specials* (%ilogand #.operator-id-mask (%nx1-operator ,locative)) ,fun)))))) ) +(defvar *hack* nil) (defx862 x862-lambda lambda-list (seg vreg xfer req opt rest keys auxen body p2decls &optional code-note) (with-x86-local-vinsn-macros (seg vreg xfer) @@ -7444,6 +7446,10 @@ (declare (fixnum nwords-vpushed nbytes-vpushed)) (x862-set-vstack nbytes-vpushed) (setq optsupvloc (- *x862-vstack* (* num-opt *x862-target-node-size*))))))) + ;; + (when *hack* + (break "*hack*?") + (x862-adjust-vstack 8)) ;; Caller's context is saved; *x862-vstack* is valid. Might ;; still have method-var to worry about. (unless handled-simple-lambda diff --git a/level-1/l1-reader.lisp b/level-1/l1-reader.lisp index 2a27919f..24f91268 100644 --- a/level-1/l1-reader.lisp +++ b/level-1/l1-reader.lisp @@ -3411,3 +3411,13 @@ non-atomic nested subforms." ; end +(defx86lapfunction get-rnil () + (movq (% temp4) (% arg_z)) + (single-value-return)) + +(defx86lapfunction set-rnil ((z arg_z)) + (movq (% arg_z) (% temp4)) + (single-value-return)) + +(export 'get-rnil) +(export 'set-rnil) diff --git a/lib/x8664env.lisp b/lib/x8664env.lisp index a0bf4073..b46f276f 100644 --- a/lib/x8664env.lisp +++ b/lib/x8664env.lisp @@ -33,7 +33,7 @@ (ash 1 x8664::temp1) (ash 1 x8664::temp2) (ash 1 x8664::temp3) - (ash 1 x8664::temp4) + ;; xxx (ash 1 x8664::temp4) (ash 1 x8664::temp5))) @@ -49,7 +49,7 @@ x8664::temp1 x8664::temp2 x8664::temp3 - x8664::temp4 + ;; xxx x8664::temp4 x8664::temp5 x8664::arg_x x8664::arg_y diff --git a/lisp-kernel/darwinx8664/Makefile b/lisp-kernel/darwinx8664/Makefile index e2085582..43cd6e0d 100644 --- a/lisp-kernel/darwinx8664/Makefile +++ b/lisp-kernel/darwinx8664/Makefile @@ -23,11 +23,12 @@ CC=cc AS = as M4 = gm4 -M4FLAGS = -DDARWIN -DX86 -DX8664 -DTCR_IN_GPR +M4FLAGS = -DDARWIN -DX86 -DX8664 -DTCR_IN_GPR -DHAVE_RNIL ASFLAGS = -arch x86_64 -g CDEFINES = -DDARWIN -DX86 -DX8664 -DTCR_IN_GPR -DVC_REVISION=$(VC_REVISION) \ - -DUSE_DTRACE + -DUSE_DTRACE \ + -DHAVE_RNIL CDEBUG = -g COPT = -O # Once in a while, -Wformat says something useful. The odds are against that, diff --git a/lisp-kernel/image.c b/lisp-kernel/image.c index 91646b20..8a13cd41 100644 --- a/lisp-kernel/image.c +++ b/lisp-kernel/image.c @@ -394,6 +394,8 @@ load_openmcl_image(int fd, openmcl_image_file_header *h) image_nil = (LispObj)(a->low) + (1024*4) + fulltag_nil; #endif set_nil(image_nil); + fprintf(stderr, "image_nil = 0x%llx\n", (unsigned long long)image_nil); + fprintf(stderr, "bias = 0x%llx\n", (unsigned long long)bias); if (bias) { LispObj weakvll = lisp_global(WEAKVLL); diff --git a/lisp-kernel/platform-darwinx8664.h b/lisp-kernel/platform-darwinx8664.h index ef5d018a..3883ad6f 100644 --- a/lisp-kernel/platform-darwinx8664.h +++ b/lisp-kernel/platform-darwinx8664.h @@ -30,12 +30,14 @@ typedef mcontext_t MCONTEXT_T; typedef ucontext_t ExceptionInformation; #define UC_MCONTEXT(UC) UC->uc_mcontext -#define MAXIMUM_MAPPABLE_MEMORY (512L<<30L) -#define IMAGE_BASE_ADDRESS 0x300000000000L #include "lisptypes.h" #include "x86-constants64.h" +#define MAXIMUM_MAPPABLE_MEMORY (512L<<30L) +//#define IMAGE_BASE_ADDRESS 0x400000000000L +extern natural IMAGE_BASE_ADDRESS; + #define REG_RAX 0 #define REG_RBX 1 #define REG_RCX 2 diff --git a/lisp-kernel/pmcl-kernel.c b/lisp-kernel/pmcl-kernel.c index 6f107377..ee651531 100644 --- a/lisp-kernel/pmcl-kernel.c +++ b/lisp-kernel/pmcl-kernel.c @@ -543,6 +543,7 @@ raise_limit() area * create_reserved_area(natural totalsize) { + fprintf(stderr, "create_reserved_area\n"); Ptr h; natural base, refbits_size; BytePtr @@ -1853,6 +1854,8 @@ init_consing_areas() } } +natural IMAGE_BASE_ADDRESS; + int #ifdef CCLSHARED cclmain @@ -1865,6 +1868,21 @@ main #endif ) { + fprintf(stderr,"hey!\n"); + + { + char *s; + if((s = getenv("CCL_IMAGE_BASE_ADDRESS"))) { + unsigned long long v; + char *endptr; + v = strtoull(s, &endptr, 0); + /* xxx */ + IMAGE_BASE_ADDRESS = v; + } + } + + printf("IMAGE_BASE_ADDRESS = 0x%llx\n", (unsigned long long)IMAGE_BASE_ADDRESS); + extern int page_size; Boolean egc_enabled = #ifdef DISABLE_EGC diff --git a/lisp-kernel/x86-constants64.s b/lisp-kernel/x86-constants64.s index bc0e9ca2..b94eaa38 100644 --- a/lisp-kernel/x86-constants64.s +++ b/lisp-kernel/x86-constants64.s @@ -219,6 +219,11 @@ define(`temp3',`r15') define(`temp3_b',`r15b') define(`Rtemp3',`15') +ifdef(`HAVE_RNIL',` + /* We keep a pointer to NIL in r14. We also deduce the SP jump + table from that as well as globals. */ + define(`rnil', `r14') +',`') ifdef(`TCR_IN_GPR',` /* We keep the TCR pointer in r11 */ diff --git a/lisp-kernel/x86-spentry64.s b/lisp-kernel/x86-spentry64.s index 33f81078..6e4bafca 100644 --- a/lisp-kernel/x86-spentry64.s +++ b/lisp-kernel/x86-spentry64.s @@ -1333,6 +1333,7 @@ __(tra(local_label(_nthrowv_back_from_unbind))) local_label(_nthrowv_dont_unbind): __(cmpb $unbound_marker,catch_frame.catch_tag(%temp0)) __(je local_label(_nthrowv_do_unwind)) + /* A catch frame. If the last one, restore context from there. */ __(movq %mm1,%imm0) __(testq %imm0,%imm0) /* last catch frame ? */ @@ -1341,18 +1342,23 @@ local_label(_nthrowv_dont_unbind): __(movq %temp3,rcontext(tcr.xframe)) __(movq catch_frame.nfp(%temp0),%temp3) __(movq %temp3,rcontext(tcr.nfp)) - __(leaq (%rsp,%nargs_q),%temp4) + __(leaq (%rsp,%nargs_q),%temp3) __(movq catch_frame.rsp(%temp0),%temp5) - __(movq %nargs_q,%temp3) + + __(pushq %nargs_q) /* nargs becomes our loop counter, save it */ + /* __(movq %nargs_q,%temp3) */ + __(jmp local_label(_nthrowv_push_test)) local_label(_nthrowv_push_loop): - __(subq $node_size,%temp4) + __(subq $node_size,%temp3) __(subq $node_size,%temp5) - __(movq (%temp4),%temp1) + __(movq (%temp3),%temp1) __(movq %temp1,(%temp5)) local_label(_nthrowv_push_test): - __(subq $node_size,%temp3) + __(subq $node_size,%nargs_q) __(jns local_label(_nthrowv_push_loop)) + __(popq %nargs_q) + __(movq catch_frame.xframe(%temp0),%temp3) __(movq %temp3,rcontext(tcr.xframe)) __(movq catch_frame.nfp(%temp0),%temp3) @@ -1367,11 +1373,13 @@ local_label(_nthrowv_skip): __(movq %imm1,rcontext(tcr.next_tsp)) __(movq %mm1,%imm0) __(jmp local_label(_nthrowv_nextframe)) + local_label(_nthrowv_do_unwind): /* This is harder. Call the cleanup code with the multiple values and */ /* nargs, the throw count, and the caller's return address in a temp */ /* stack frame. */ - __(leaq (%rsp,%nargs_q),%temp4) + + __(leaq (%rsp,%nargs_q),%temp3) __(push catch_frame.pc(%temp0)) __(movq catch_frame.rbp(%temp0),%rbp) __(movq catch_frame.xframe(%temp0),%stack_temp) @@ -1393,15 +1401,17 @@ local_label(_nthrowv_do_unwind): __(movq %ra0,node_size(%imm1)) __(movq %mm1,node_size*2(%imm1)) __(leaq node_size*3(%imm1),%imm1) + __(jmp local_label(_nthrowv_tpushtest)) local_label(_nthrowv_tpushloop): - __(movq -node_size(%temp4),%temp0) - __(subq $node_size,%temp4) + __(movq -node_size(%temp3),%temp0) + __(subq $node_size,%temp3) __(movq %temp0,(%imm1)) __(addq $node_size,%imm1) local_label(_nthrowv_tpushtest): __(subl $node_size,%nargs) __(jns local_label(_nthrowv_tpushloop)) + __(pop %xfn) __(movq %arg_x,%rsp) /* Ready to call cleanup code. set up tra, jmp to %xfn */ @@ -1472,7 +1482,7 @@ local_label(_nthrow1v_dont_unbind): __(movq %temp3,rcontext(tcr.xframe)) __(movq catch_frame.nfp(%temp0),%temp3) __(movq %temp3,rcontext(tcr.nfp)) - __(leaq (%rsp,%nargs_q),%temp4) + /* __(leaq (%rsp,%nargs_q),%temp 4) appears dead --GB */ __(movq catch_frame.xframe(%temp0),%temp3) __(movq %temp3,rcontext(tcr.xframe)) __(movq catch_frame.nfp(%temp0),%temp3) @@ -2444,16 +2454,17 @@ local_label(even): __(push $nil_value) 4: __(subq $fixnumone,%arg_y) __(jge 3b) + /* Push the %saveN registers, so that we can use them in this loop */ /* Also, borrow %arg_y for a bit */ __(push %arg_y) __(push %temp5) - __(push %temp4) + __(push %temp2) __(push %temp3) __(leaq 4*node_size(%rsp,%imm0,2),%temp3) /* %temp3 points to the 0th value/supplied-p pair */ - __(leaq (%arg_z,%imm1),%temp4) - /* %temp4 is the end of the provided keyword/value pairs (the old %tsp). */ + __(leaq (%arg_z,%imm1),%temp2) + /* %temp2 is the end of the provided keyword/value pairs (the old %tsp). */ __(movq %imm0,%temp5) /* %temp5 is the length of the keyword vector */ 5: __(movq (%arg_z),%arg_y) /* %arg_y is current keyword */ @@ -2486,12 +2497,13 @@ local_label(next_keyvect_entry): __(je 9f) /* :allow-other-keys is never "unknown" */ 8: __(btsq $keyword_flags_unknown_keys_bit,%temp1) 9: __(addq $dnode_size,%arg_z) - __(cmpq %arg_z,%temp4) + __(cmpq %arg_z,%temp2) __(jne 5b) __(pop %temp3) - __(pop %temp4) + __(pop %temp2) __(pop %temp5) __(pop %arg_y) + /* If the function takes an &rest arg, or if we got an unrecognized */ /* keyword and don't allow that, copy the incoming keyword/value */ /* pairs from the temp stack back to the value stack */ @@ -3124,13 +3136,13 @@ local_label(push_pair_test): /* Push the %saveN registers, so that we can use them in this loop */ /* Also, borrow %arg_z */ __(push %temp3) - __(push %temp4) + __(push %temp2) __(push %temp5) __(push %arg_z) /* save0 points to the 0th value/supplied-p pair */ __(movq %arg_y,%temp3) /* save1 is the length of the keyword vector */ - __(vector_length(%arg_x,%temp4)) + __(vector_length(%arg_x,%temp2)) /* save2 is the current keyword */ /* arg_z is the value of the current keyword */ __(xorl %imm0_l,%imm0_l) /* count unknown keywords seen */ @@ -3148,7 +3160,7 @@ local_label(match_loop): __(je local_label(matched)) __(addq $node_size,%arg_y) local_label(match_test): - __(cmpq %arg_y,%temp4) + __(cmpq %arg_y,%temp2) __(jne local_label(match_loop)) /* No match. Note unknown keyword, check for :allow-other-keys */ __(addl $1,%imm0_l) @@ -3180,7 +3192,7 @@ local_label(matched): local_label(matched_keys): __(pop %arg_z) __(pop %temp5) - __(pop %temp4) + __(pop %temp2) __(pop %temp3) __(testl %imm0_l,%imm0_l) __(je local_label(keys_ok)) @@ -4288,7 +4300,7 @@ LocalLabelPrefix`'ffcall_call_end: __(clr %temp6) __endif __(clr %temp5) - __(clr %temp4) + /* __(clr %temp4) --GB */ __(clr %temp3) __(clr %arg_z) __(clr %arg_y) @@ -4332,6 +4344,10 @@ LocalLabelPrefix`'ffcall_call_end: __ifdef(`WINDOWS') __(ldmxcsr rcontext(tcr.lisp_mxcsr)) __endif + __ifdef(`HAVE_RNIL') + /* Set up our NIL global register */ + __(movq $0x1300B, %rnil) + __endif __(check_pending_interrupt(%temp0)) __(pop %temp0) __(leave) @@ -4355,18 +4371,18 @@ LocalLabelPrefix`'ffcall_call_end: __ifdef(`DARWIN') /* Handle exceptions, for ObjC 2.0 */ LocalLabelPrefix`'ffcallLandingPad: - __(movq %rax,%temp4) + __(movq %rax,%temp2) __(cmpq $1,%rdx) __(je 1f) __(movq %rax,%rdi) LocalLabelPrefix`'ffcallUnwindResume: __(call *lisp_global(unwind_resume)) LocalLabelPrefix`'ffcallUnwindResume_end: -1: __(movq %temp4,%rdi) +1: __(movq %temp2,%rdi) LocalLabelPrefix`'ffcallBeginCatch: __(call *lisp_global(objc_2_begin_catch)) LocalLabelPrefix`'ffcallBeginCatch_end: - __(movq (%rax),%temp4) /* indirection is necessary because we don't provide type info in lsda */ + __(movq (%rax),%temp2) /* indirection is necessary because we don't provide type info in lsda */ LocalLabelPrefix`'ffcallEndCatch: __(call *lisp_global(objc_2_end_catch)) LocalLabelPrefix`'ffcallEndCatch_end: @@ -4374,7 +4390,7 @@ LocalLabelPrefix`'ffcallEndCatch_end: __(movq $1,%rdi) __(call *%rax) __(btsq $TCR_FLAG_BIT_FOREIGN_EXCEPTION,tcr.flags(%rax)) - __(movq %temp4,%rax) + __(movq %temp2,%rax) __(jmp LocalLabelPrefix`'ffcall_call_end) LocalLabelPrefix`'ffcall_end: __endif @@ -4492,7 +4508,7 @@ LocalLabelPrefix`'ffcall_return_registers_call_end: __(clr %temp6) __endif __(clr %temp5) - __(clr %temp4) + /* __(clr %temp4) --GB */ __(clr %temp3) __(clr %arg_z) __(clr %arg_y) @@ -4526,6 +4542,10 @@ LocalLabelPrefix`'ffcall_return_registers_call_end: __(pop %arg_x) __(pop %temp2) __(pop %temp1) + __ifdef(`HAVE_RNIL') + /* Set up our NIL global register */ + __(movq $0x1300B, %rnil) + __endif __(check_pending_interrupt(%temp0)) __(pop %temp0) __(leave) @@ -4549,18 +4569,18 @@ LocalLabelPrefix`'ffcall_return_registers_call_end: __ifdef(`DARWIN') /* Handle exceptions, for ObjC 2.0 */ LocalLabelPrefix`'ffcall_return_registersLandingPad: - __(movq %rax,%temp4) + __(movq %rax,%temp2) __(cmpq $1,%rdx) __(je 1f) __(movq %rax,%rdi) LocalLabelPrefix`'ffcall_return_registersUnwindResume: __(call *lisp_global(unwind_resume)) LocalLabelPrefix`'ffcall_return_registersUnwindResume_end: -1: __(movq %temp4,%rdi) +1: __(movq %temp2,%rdi) LocalLabelPrefix`'ffcall_return_registersBeginCatch: __(call *lisp_global(objc_2_begin_catch)) LocalLabelPrefix`'ffcall_return_registersBeginCatch_end: - __(movq (%rax),%temp4) /* indirection is necessary because we don't provide type info in lsda */ + __(movq (%rax),%temp2) /* indirection is necessary because we don't provide type info in lsda */ LocalLabelPrefix`'ffcall_return_registersEndCatch: __(call *lisp_global(objc_2_end_catch)) LocalLabelPrefix`'ffcall_return_registersEndCatch_end: @@ -4568,7 +4588,7 @@ LocalLabelPrefix`'ffcall_return_registersEndCatch_end: __(movq $1,%rdi) __(call *%rax) __(btsq $TCR_FLAG_BIT_FOREIGN_EXCEPTION,tcr.flags(%rax)) - __(movq %temp4,%rax) + __(movq %temp2,%rax) __(jmp LocalLabelPrefix`'ffcall_return_registers_call_end) LocalLabelPrefix`'ffcall_return_registers_end: __endif @@ -4675,7 +4695,7 @@ _spentry(syscall) __(clr %temp6) __endif __(clr %temp5) - __(clr %temp4) + /* __(clr %temp4) --GB */ __(clr %temp3) __(clr %arg_z) __(clr %arg_y) @@ -4700,6 +4720,10 @@ _spentry(syscall) __(pop %arg_x) __(pop %temp2) __(pop %temp1) + __ifdef(`HAVE_RNIL') + /* Set up our NIL global register */ + __(movq $0x1300B, %rnil) + __endif __(check_pending_interrupt(%temp0)) __(pop %temp0) __(leave) @@ -4857,7 +4881,7 @@ _spentry(callback) __(clr %temp6) __endif __(clr %temp5) - __(clr %temp4) + /* __(clr %temp4) --GB */ __(clr %temp3) __(clr %arg_z) __(clr %arg_y) @@ -4878,6 +4902,11 @@ _spentry(callback) __ifndef(`TCR_IN_GPR') __(movq 24(%rsp),%temp6) __endif + __ifdef(`HAVE_RNIL') + /* Set up our NIL global register */ + __(movq $0x1300B, %rnil) + __endif + __(ldmxcsr rcontext(tcr.lisp_mxcsr)) __(movq $nrs.callbacks,%fname) __(lea local_label(back_from_callback)(%rip),%ra0) diff --git a/lisp-kernel/x86-subprims64.s b/lisp-kernel/x86-subprims64.s index 865b8d38..dc179beb 100644 --- a/lisp-kernel/x86-subprims64.s +++ b/lisp-kernel/x86-subprims64.s @@ -57,6 +57,8 @@ __(tra(local_label(back_from_catch))) __(leaq local_label(back_from_funcall)(%rip),%ra0) __(push %ra0) __(set_nargs(0)) + __(movq $0x1300B, %temp4) /* xxx */ + __(jmp _SPfuncall) __(tra(local_label(back_from_funcall))) __(movl $fixnumone,%imm0_l) @@ -122,6 +124,10 @@ _exportfn(C(start_lisp)) __(andb $~mxcsr_all_exceptions,rcontext(tcr.foreign_mxcsr)) __(ldmxcsr rcontext(tcr.lisp_mxcsr)) __(movq $TCR_STATE_LISP,rcontext(tcr.valence)) + __ifdef(`HAVE_RNIL') + /* Set up our NIL global register */ + __(movq $0x1300B, %rnil) + __endif __(call toplevel_loop) __(movq $TCR_STATE_FOREIGN,rcontext(tcr.valence)) __(emms) diff --git a/xdump/xx8664-fasload.lisp b/xdump/xx8664-fasload.lisp index 45694493..169b909c 100644 --- a/xdump/xx8664-fasload.lisp +++ b/xdump/xx8664-fasload.lisp @@ -105,7 +105,7 @@ :default-startup-file-name "level-1.dx64fsl" :subdirs '("ccl:level-0;X86;X8664;" "ccl:level-0;X86;") :compiler-target-name :darwinx8664 - :image-base-address #x300000000000 + :image-base-address #x400000000000 :nil-relative-symbols x86::*x86-nil-relative-symbols* :static-space-init-function 'x8664-initialize-static-space :purespace-reserve (ash 128 30)