Changeset 10575
- Timestamp:
- 08/27/08 05:49:59 (3 months ago)
- Files:
-
- trunk/source/level-0/X86/X8632 (modified) (1 prop)
- trunk/source/level-0/X86/X8632/x8632-bignum.lisp (modified) (4 diffs)
- trunk/source/level-0/X86/X8632/x8632-def.lisp (modified) (12 diffs)
- trunk/source/level-0/X86/X8632/x8632-float.lisp (modified) (3 diffs)
- trunk/source/level-0/X86/X8632/x8632-misc.lisp (modified) (1 diff)
- trunk/source/level-0/X86/X8632/x8632-symbol.lisp (modified) (1 diff)
- trunk/source/level-0/X86/X8632/x8632-utils.lisp (modified) (2 diffs)
- trunk/source/level-0/X86/x86-def.lisp (modified) (5 diffs)
- trunk/source/level-0/X86/x86-float.lisp (modified) (1 diff)
- trunk/source/level-0/X86/x86-io.lisp (modified) (2 diffs)
- trunk/source/level-0/X86/x86-misc.lisp (modified) (13 diffs)
- trunk/source/level-0/X86/x86-symbol.lisp (modified) (1 diff)
- trunk/source/level-0/X86/x86-utils.lisp (modified) (2 diffs)
- trunk/source/level-0/l0-init.lisp (modified) (2 diffs)
- trunk/source/level-0/l0-io.lisp (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/source/level-0/X86/X8632
- Property svn:ignore set to
*.dx32fsl
- Property svn:ignore set to
trunk/source/level-0/X86/X8632/x8632-bignum.lisp
r9797 r10575 784 784 (defx8632lapfunction %floor-loop-quo ((x 8) (res 4) #|(ra 0)|# (yhi arg_y) (ylo arg_z)) 785 785 (compose-digit yhi ylo imm0) 786 (movl (% imm0) ( @ (% :rcontext)x8632::tcr.unboxed0))786 (movl (% imm0) (:rcontext x8632::tcr.unboxed0)) 787 787 (pop (% temp0)) 788 788 (pop (% arg_z)) ;res … … 798 798 @loop 799 799 (movl (@ x8632::misc-data-offset (% bignum) (% temp0)) (% eax)) 800 (divl ( @ (% :rcontext)x8632::tcr.unboxed0))800 (divl (:rcontext x8632::tcr.unboxed0)) 801 801 (movl (% eax) (@ x8632::misc-data-offset (% result) (% temp0))) 802 802 @next … … 822 822 (defx8632lapfunction %floor-loop-no-quo ((x 4) #|(ra 0)|# (yhi arg_y) (ylo arg_z)) 823 823 (compose-digit yhi ylo imm0) 824 (movl (% imm0) ( @ (% :rcontext)x8632::tcr.unboxed0))824 (movl (% imm0) (:rcontext x8632::tcr.unboxed0)) 825 825 (pop (% temp0)) 826 826 (pop (% arg_y)) … … 835 835 @loop 836 836 (movl (@ x8632::misc-data-offset (% bignum) (% temp0)) (% eax)) 837 (divl ( @ (% :rcontext)x8632::tcr.unboxed0))837 (divl (:rcontext x8632::tcr.unboxed0)) 838 838 ;;(movl (% eax) (@ x8632::misc-data-offset (% result) (% temp0))) 839 839 @next trunk/source/level-0/X86/X8632/x8632-def.lisp
r10560 r10575 211 211 (defx8632lapfunction %current-tsp () 212 212 (check-nargs 0) 213 (movl ( @ (% :rcontext)x8632::tcr.save-tsp) (% arg_z))213 (movl (:rcontext x8632::tcr.save-tsp) (% arg_z)) 214 214 (single-value-return)) 215 215 … … 271 271 (check-nargs 1) 272 272 (movl ($ x8632::nil-value) (% arg_y)) 273 (movl ( @ (% :rcontext)x8632::tcr.catch-top) (% arg_z))273 (movl (:rcontext x8632::tcr.catch-top) (% arg_z)) 274 274 (testb (%b arg_z) (%b arg_z)) 275 275 (cmovel (% arg_y) (% arg_z)) … … 292 292 (defx8632lapfunction %save-standard-binding-list ((bindings arg_z)) 293 293 (mark-as-imm temp0) 294 (movl ( @ (% :rcontext)x8632::tcr.vs-area) (% imm0))294 (movl (:rcontext x8632::tcr.vs-area) (% imm0)) 295 295 (movl (@ x8632::area.high (% imm0)) (% temp0)) 296 296 (subl ($ x8632::node-size) (% temp0)) … … 301 301 (defx8632lapfunction %saved-bindings-address () 302 302 (mark-as-imm temp0) 303 (movl ( @ (% :rcontext)x8632::tcr.vs-area) (% imm0))303 (movl (:rcontext x8632::tcr.vs-area) (% imm0)) 304 304 (movl (@ x8632::area.high (% imm0)) (% temp0)) 305 305 (leal (@ (- x8632::node-size) (% temp0)) (% arg_z)) … … 339 339 ;; * Set nargs to 0, then spread "args" on stack (clobbers regs) 340 340 ;; * Jump to function (saved previously) 341 (popl ( @ (% :rcontext)x8632::tcr.save0)) ;return address342 (popl ( @ (% :rcontext)x8632::tcr.next-method-context)) ;magic arg341 (popl (:rcontext x8632::tcr.save0)) ;return address 342 (popl (:rcontext x8632::tcr.next-method-context)) ;magic arg 343 343 (discard-reserved-frame) 344 (movl (% function) ( @ (% :rcontext)x8632::tcr.save1))344 (movl (% function) (:rcontext x8632::tcr.save1)) 345 345 (set-nargs 0) 346 346 (movl (@ (% args)) (% temp0)) ;lexpr-count … … 368 368 (jmp @two) 369 369 @go 370 (pushl ( @ (% :rcontext)x8632::tcr.save0)) ;return address371 (movl ( @ (% :rcontext)x8632::tcr.save1) (% temp0)) ;function372 (movapd (% fpzero) ( @ (% :rcontext)x8632::tcr.save0)) ;clear spill area370 (pushl (:rcontext x8632::tcr.save0)) ;return address 371 (movl (:rcontext x8632::tcr.save1) (% temp0)) ;function 372 (movapd (% fpzero) (:rcontext x8632::tcr.save0)) ;clear spill area 373 373 (jmp (% temp0))) 374 374 … … 378 378 (args arg_z)) 379 379 ;; Similar to above. 380 (popl ( @ (% :rcontext)x8632::tcr.save0)) ;save return address381 (popl ( @ (% :rcontext)x8632::tcr.next-method-context)) ;380 (popl (:rcontext x8632::tcr.save0)) ;save return address 381 (popl (:rcontext x8632::tcr.next-method-context)) ; 382 382 (discard-reserved-frame) 383 (movl (% args) ( @ (% :rcontext)x8632::tcr.save2)) ;in case of error383 (movl (% args) (:rcontext x8632::tcr.save2)) ;in case of error 384 384 (set-nargs 0) 385 385 (pushl ($ target::reserved-frame-marker)) ;reserve frame (might discard it … … 413 413 (je @discard-and-go) 414 414 @go 415 (pushl ( @ (% :rcontext)x8632::tcr.save0)) ;return address416 (movapd (% fpzero) ( @ (% :rcontext)x8632::tcr.save0)) ;clear out spill area415 (pushl (:rcontext x8632::tcr.save0)) ;return address 416 (movapd (% fpzero) (:rcontext x8632::tcr.save0)) ;clear out spill area 417 417 (jmp (% temp0)) 418 418 @bad 419 419 (addl (% nargs) (% esp)) 420 (movl ( @ (% :rcontext)x8632::tcr.save1) (% arg_z)) ;saved args421 (movapd (% fpzero) ( @ (% :rcontext)x8632::tcr.save0)) ;clear out spill area420 (movl (:rcontext x8632::tcr.save1) (% arg_z)) ;saved args 421 (movapd (% fpzero) (:rcontext x8632::tcr.save0)) ;clear out spill area 422 422 (movl ($ '#.$XNOSPREAD) (% arg_y)) 423 423 (set-nargs 2) … … 474 474 (:arglist (function arg1 arg2 &rest other-args)) 475 475 (check-nargs 3 nil) 476 (popl ( @ (% :rcontext)x8632::tcr.save0)) ;save return address476 (popl (:rcontext x8632::tcr.save0)) ;save return address 477 477 ;; only two arg regs on x8632, so the caller will always push a frame 478 478 (movl (% arg_z) (% temp0)) ; last … … 482 482 ;; Do .SPspreadargz inline here 483 483 (xorl (%l temp1) (%l temp1)) 484 (movl (% arg_z) ( @ (% :rcontext)x8632::tcr.save1)) ; save in case of error484 (movl (% arg_z) (:rcontext x8632::tcr.save1)) ; save in case of error 485 485 (cmp-reg-to-nil arg_z) 486 486 (je @done) … … 505 505 (addl ($ '1) (% nargs)) 506 506 (load-constant funcall temp0) 507 (pushl ( @ (% :rcontext)x8632::tcr.save0)) ;return address508 (movapd (% fpzero) ( @ (% :rcontext)x8632::tcr.save0)) ;clear out spill area507 (pushl (:rcontext x8632::tcr.save0)) ;return address 508 (movapd (% fpzero) (:rcontext x8632::tcr.save0)) ;clear out spill area 509 509 (jmp-subprim .SPfuncall) 510 510 @bad ;error spreading list. 511 511 (add (% temp1) (% esp)) ;discard whatever's been pushed 512 (movl ( @ (% :rcontext)x8632::tcr.save1) (% arg_z))513 (movapd (% fpzero) ( @ (% :rcontext)x8632::tcr.save0)) ;clear out spill area512 (movl (:rcontext x8632::tcr.save1) (% arg_z)) 513 (movapd (% fpzero) (:rcontext x8632::tcr.save0)) ;clear out spill area 514 514 (movl ($ '#.$XNOSPREAD) (% arg_y)) 515 515 (set-nargs 2) … … 535 535 ;; there might be an fp result on x87 stack, so don't use 536 536 ;; any mmx instructions until the result has been read. 537 (movd ( @ (% :rcontext)x8632::tcr.foreign-sp) (% xmm0))537 (movd (:rcontext x8632::tcr.foreign-sp) (% xmm0)) 538 538 (movd (% xmm0) (@ (% frame))) 539 (movl (% frame) ( @ (% :rcontext)x8632::tcr.foreign-sp))539 (movl (% frame) (:rcontext x8632::tcr.foreign-sp)) 540 540 (cmpl ($ '1) (@ -4 (% ebp))) 541 541 (je @single) trunk/source/level-0/X86/X8632/x8632-float.lisp
r9482 r10575 266 266 ;;; Return the MXCSR as a fixnum 267 267 (defx8632lapfunction %get-mxcsr () 268 (stmxcsr ( @ (% :rcontext)x8632::tcr.scratch-mxcsr))269 (movl ( @ (% :rcontext)x8632::tcr.scratch-mxcsr) (% imm0))268 (stmxcsr (:rcontext x8632::tcr.scratch-mxcsr)) 269 (movl (:rcontext x8632::tcr.scratch-mxcsr) (% imm0)) 270 270 (box-fixnum imm0 arg_z) 271 271 (single-value-return)) … … 277 277 (unbox-fixnum val imm0) 278 278 (andl ($ x86::mxcsr-write-mask) (% imm0)) 279 (movl (% imm0) ( @ (% :rcontext)x8632::tcr.scratch-mxcsr))280 (ldmxcsr ( @ (% :rcontext)x8632::tcr.scratch-mxcsr))279 (movl (% imm0) (:rcontext x8632::tcr.scratch-mxcsr)) 280 (ldmxcsr (:rcontext x8632::tcr.scratch-mxcsr)) 281 281 (single-value-return)) 282 282 … … 306 306 (defx8632lapfunction %get-post-ffi-mxcsr () 307 307 (xor (% arg_z) (% arg_z)) 308 (movl ( @ (% :rcontext)x8632::tcr.ffi-exception) (%l imm0))309 (movl (%l arg_z) ( @ (% :rcontext)x8632::tcr.ffi-exception))308 (movl (:rcontext x8632::tcr.ffi-exception) (%l imm0)) 309 (movl (%l arg_z) (:rcontext x8632::tcr.ffi-exception)) 310 310 (box-fixnum imm0 arg_z) 311 311 (single-value-return)) trunk/source/level-0/X86/X8632/x8632-misc.lisp
r10559 r10575 805 805 (single-value-return)) 806 806 807 (defx86 lapfunction %get-gs-register ()807 (defx8632lapfunction %get-gs-register () 808 808 (xorl (% imm0) (% imm0)) 809 809 (:byte #x66) ;movw %gs,%ax trunk/source/level-0/X86/X8632/x8632-symbol.lisp
r10446 r10575 58 58 (defx8632lapfunction %symptr-binding-address ((symptr arg_z)) 59 59 (movl (@ x8632::symbol.binding-index (% symptr)) (% arg_y)) 60 (rcmp (% arg_y) ( @ (% :rcontext)x8632::tcr.tlb-limit))61 (movl ( @ (% :rcontext)x8632::tcr.tlb-pointer) (% temp0))60 (rcmp (% arg_y) (:rcontext x8632::tcr.tlb-limit)) 61 (movl (:rcontext x8632::tcr.tlb-pointer) (% temp0)) 62 62 (jae @sym) 63 63 (cmpb ($ x8632::subtag-no-thread-local-binding) (@ (% temp0) (% arg_y))) trunk/source/level-0/X86/X8632/x8632-utils.lisp
r10450 r10575 25 25 26 26 ; update active pointer for tsp area. 27 (movl ( @ (% :rcontext)x8632::tcr.ts-area) (% address))28 (movl ( @ (% :rcontext)x8632::tcr.save-tsp) (% temp))27 (movl (:rcontext x8632::tcr.ts-area) (% address)) 28 (movl (:rcontext x8632::tcr.save-tsp) (% temp)) 29 29 (movl (% temp) (@ x8632::area.active (% address))) 30 30 31 31 ;; Update active pointer for vsp area. 32 (movl ( @ (% :rcontext)x8632::tcr.vs-area) (% address))32 (movl (:rcontext x8632::tcr.vs-area) (% address)) 33 33 (movl (% esp) (@ x8632::area.active (% address))) 34 34 … … 174 174 (push (% f)) 175 175 (subl ($ (- x8632::cons.size x8632::fulltag-cons)) 176 ( @ (% :rcontext)x8632::tcr.save-allocptr))177 (movl ( @ (% :rcontext)x8632::tcr.save-allocptr) (% allocptr)) ;aka temp0178 (cmpl ( @ (% :rcontext)x8632::tcr.save-allocbase) (% allocptr))176 (:rcontext x8632::tcr.save-allocptr)) 177 (movl (:rcontext x8632::tcr.save-allocptr) (% allocptr)) ;aka temp0 178 (cmpl (:rcontext x8632::tcr.save-allocbase) (% allocptr)) 179 179 (jg @ok) 180 180 (uuo-alloc) 181 181 @ok 182 182 (andb ($ (lognot x8632::fulltagmask)) 183 ( @ (% :rcontext)x8632::tcr.save-allocptr))183 (:rcontext x8632::tcr.save-allocptr)) 184 184 (push (% allocptr)) ;sentinel 185 185 (ref-global tenured-area a) trunk/source/level-0/X86/x86-def.lisp
r10145 r10575 235 235 (defx86lapfunction %current-tsp () 236 236 (check-nargs 0) 237 (movq ( @ (% :rcontext)x8664::tcr.save-tsp) (% arg_z))237 (movq (:rcontext x8664::tcr.save-tsp) (% arg_z)) 238 238 (single-value-return)) 239 239 … … 298 298 (check-nargs 1) 299 299 (movl ($ x8664::nil-value) (%l arg_y)) 300 (movq ( @ (% :rcontext)x8664::tcr.catch-top) (% arg_z))300 (movq (:rcontext x8664::tcr.catch-top) (% arg_z)) 301 301 (testb (%b arg_z) (%b arg_z)) 302 302 (cmoveq (% arg_y) (% arg_z)) … … 320 320 321 321 (defx86lapfunction %save-standard-binding-list ((bindings arg_z)) 322 (movq ( @ (% :rcontext)x8664::tcr.vs-area) (% imm0))322 (movq (:rcontext x8664::tcr.vs-area) (% imm0)) 323 323 (movq (@ x8664::area.high (% imm0)) (% imm1)) 324 324 (subq ($ x8664::node-size) (% imm1)) … … 327 327 328 328 (defx86lapfunction %saved-bindings-address () 329 (movq ( @ (% :rcontext)x8664::tcr.vs-area) (% imm0))329 (movq (:rcontext x8664::tcr.vs-area) (% imm0)) 330 330 (movq (@ x8664::area.high (% imm0)) (% imm1)) 331 331 (lea (@ (- x8664::node-size) (% imm1)) (% arg_z)) … … 580 580 (movq (@ 56 (% temp0)) (% fp7)) 581 581 (call-subprim .SPffcall) 582 (movq ( @ (% :rcontext)x8664::tcr.foreign-sp) (% mm5))582 (movq (:rcontext x8664::tcr.foreign-sp) (% mm5)) 583 583 (movq (% mm5) (@ (% frame))) 584 (movq (% frame) ( @ (% :rcontext)x8664::tcr.foreign-sp))584 (movq (% frame) (:rcontext x8664::tcr.foreign-sp)) 585 585 (movq (% rax) (@ 8 (% frame))) 586 586 (movq (% fp0) (@ 16 (% frame))) trunk/source/level-0/X86/x86-float.lisp
r10145 r10575 199 199 (defx86lapfunction %get-post-ffi-mxcsr () 200 200 (xor (% arg_z) (% arg_z)) 201 (movl ( @ (% :rcontext)x8664::tcr.ffi-exception) (%l imm0))202 (movl (%l arg_z) ( @ (% :rcontext)x8664::tcr.ffi-exception))201 (movl (:rcontext x8664::tcr.ffi-exception) (%l imm0)) 202 (movl (%l arg_z) (:rcontext x8664::tcr.ffi-exception)) 203 203 (box-fixnum imm0 arg_z) 204 204 (single-value-return)) trunk/source/level-0/X86/x86-io.lisp
r10143 r10575 23 23 #+x8664-target 24 24 (defx86lapfunction %get-errno () 25 (movq ( @ (% :rcontext)x8664::tcr.errno-loc) (% imm1))25 (movq (:rcontext x8664::tcr.errno-loc) (% imm1)) 26 26 (movslq (@ (% imm1)) (% imm0)) 27 27 (movss (% fpzero) (@ (% imm1))) … … 32 32 #+x8632-target 33 33 (defx8632lapfunction %get-errno () 34 (movl ( @ (% :rcontext)x8632::tcr.errno-loc) (% imm0))34 (movl (:rcontext x8632::tcr.errno-loc) (% imm0)) 35 35 (movl (@ (% imm0)) (% imm0)) 36 36 (neg (% imm0)) 37 37 (box-fixnum imm0 arg_z) 38 (movl ( @ (% :rcontext)x8632::tcr.errno-loc) (% imm0))38 (movl (:rcontext x8632::tcr.errno-loc) (% imm0)) 39 39 (movss (% fpzero) (@ (% imm0))) 40 40 (single-value-return)) trunk/source/level-0/X86/x86-misc.lisp
r10405 r10575 216 216 217 217 (defx86lapfunction %heap-bytes-allocated () 218 (movq ( @ (% :rcontext)x8664::tcr.save-allocptr) (% temp1))219 (movq ( @ (% :rcontext)x8664::tcr.last-allocptr) (% temp0))218 (movq (:rcontext x8664::tcr.save-allocptr) (% temp1)) 219 (movq (:rcontext x8664::tcr.last-allocptr) (% temp0)) 220 220 (cmpq ($ -16) (% temp1)) 221 (movq ( @ (% :rcontext)x8664::tcr.total-bytes-allocated) (% imm0))221 (movq (:rcontext x8664::tcr.total-bytes-allocated) (% imm0)) 222 222 (jz @go) 223 223 (movq (% temp0) (% temp2)) … … 315 315 316 316 (defx86lapfunction interrupt-level () 317 (movq ( @ (% :rcontext)x8664::tcr.tlb-pointer) (% imm1))317 (movq (:rcontext x8664::tcr.tlb-pointer) (% imm1)) 318 318 (movq (@ x8664::interrupt-level-binding-index (% imm1)) (% arg_z)) 319 319 (single-value-return)) 320 320 321 321 (defx86lapfunction set-interrupt-level ((new arg_z)) 322 (movq ( @ (% :rcontext)x8664::tcr.tlb-pointer) (% imm1))322 (movq (:rcontext x8664::tcr.tlb-pointer) (% imm1)) 323 323 (trap-unless-fixnum new) 324 324 (movq (% new) (@ x8664::interrupt-level-binding-index (% imm1))) … … 326 326 327 327 (defx86lapfunction %current-tcr () 328 (movq ( @ (% :rcontext)x8664::tcr.linear) (% arg_z))328 (movq (:rcontext x8664::tcr.linear) (% arg_z)) 329 329 (single-value-return)) 330 330 331 331 (defx86lapfunction %tcr-toplevel-function ((tcr arg_z)) 332 332 (check-nargs 1) 333 (cmpq (% tcr) ( @ (% :rcontext)x8664::tcr.linear))333 (cmpq (% tcr) (:rcontext x8664::tcr.linear)) 334 334 (movq (% rsp) (% imm0)) 335 335 (movq (@ x8664::tcr.vs-area (% tcr)) (% temp0)) … … 345 345 (defx86lapfunction %set-tcr-toplevel-function ((tcr arg_y) (fun arg_z)) 346 346 (check-nargs 2) 347 (cmpq (% tcr) ( @ (% :rcontext)x8664::tcr.linear))347 (cmpq (% tcr) (:rcontext x8664::tcr.linear)) 348 348 (movq (% rsp) (% imm0)) 349 349 (movq (@ x8664::tcr.vs-area (% tcr)) (% temp0)) … … 608 608 (push (% save1)) 609 609 (push (% save2)) 610 (push (% save3)) 610 (push (% save3)) ; this'd be the TCR on Win64. 611 611 (set-nargs 4) 612 612 (jmp-subprim .SPvalues)) … … 614 614 615 615 (defx86lapfunction %current-db-link () 616 (movq ( @ (% :rcontext)x8664::tcr.db-link) (% arg_z))616 (movq (:rcontext x8664::tcr.db-link) (% arg_z)) 617 617 (single-value-return)) 618 618 … … 643 643 (macptr-ptr src imm0) 644 644 (leaq (@ (:^ done) (% fn)) (% ra0)) 645 (movq (% imm0) ( @ (% :rcontext)x8664::tcr.safe-ref-address))645 (movq (% imm0) (:rcontext x8664::tcr.safe-ref-address)) 646 646 (movq (@ (% imm0)) (% imm0)) 647 647 (jmp done) 648 648 (:tra done) 649 649 (recover-fn-from-rip) 650 (movq ($ 0) ( @ (% :rcontext)x8664::tcr.safe-ref-address))650 (movq ($ 0) (:rcontext x8664::tcr.safe-ref-address)) 651 651 (movq (% imm0) (@ x8664::macptr.address (% dest))) 652 652 (restore-simple-frame) … … 658 658 659 659 (defx86lapfunction %check-deferred-gc () 660 (btq ($ (+ arch::tcr-flag-bit-pending-suspend target::fixnumshift)) ( @ (% :rcontext)x8664::tcr.flags))660 (btq ($ (+ arch::tcr-flag-bit-pending-suspend target::fixnumshift)) (:rcontext x8664::tcr.flags)) 661 661 (movl ($ x8664::nil-value) (% arg_z.l)) 662 662 (jae @done) … … 716 716 (movq (@ '*spin-lock-timeouts* (% fn)) (% temp1)) 717 717 (movq (@ target::symbol.vcell (% temp0)) (% temp0)) 718 (movq ( @ (% :rcontext)x8664::tcr.linear) (% arg_y))718 (movq (:rcontext x8664::tcr.linear) (% arg_y)) 719 719 @try-swap 720 720 (xorq (% rax) (% rax)) … … 743 743 ;;; and this protoype is cloned (with the right parameters). 744 744 745 ;;; For win64 (which doesn't really have a "save3" register), the code 746 ;;; which instantiates this should always set save3-offset to 0. 745 747 (defx86lapfunction %%apply-in-frame-proto () 746 748 (:fixed-constants (target-frame target-catch target-db-link target-xcf target-tsp target-foreign-sp save0-offset save1-offset save2-offset save3-offset function args)) … … 750 752 (xorl (%l imm0) (%l imm0)) 751 753 (cmpb ($ x8664::fulltag-nil) (%b temp0)) 752 (movq ( @ (% :rcontext)target::tcr.catch-top) (% arg_z))754 (movq (:rcontext target::tcr.catch-top) (% arg_z)) 753 755 (jz @did-catch) 754 756 @find-catch … … 819 821 (movq (@ target::xcf.prev-xframe (% arg_z)) (% temp0)) 820 822 (movq (@ target::xcf.foreign-sp (% arg_z)) (% imm0)) 821 (movq (% temp0) ( @ (% :rcontext)target::tcr.xframe))822 (movq (% imm0) ( @ (% :rcontext)target::tcr.foreign-sp))823 (movq (% temp0) (:rcontext target::tcr.xframe)) 824 (movq (% imm0) (:rcontext target::tcr.foreign-sp)) 823 825 ;; All done processing the xcf. NVRs may have been 824 826 ;; saved between the last catch/last xcf and the … … 832 834 (movq (@ 'target-foreign-sp (% fn)) (% temp0)) 833 835 (je @no-tsp) 834 (movq (% imm0) ( @ (% :rcontext)target::tcr.save-tsp))835 (movq (% imm0) ( @ (% :rcontext)target::tcr.next-tsp))836 (movq (% imm0) (:rcontext target::tcr.save-tsp)) 837 (movq (% imm0) (:rcontext target::tcr.next-tsp)) 836 838 @no-tsp 837 839 (cmpb ($ x8664::fulltag-nil) (%b temp0)) 838 840 (je @no-sp) 839 (movq (% temp0) ( @ (% :rcontext)target::tcr.foreign-sp))841 (movq (% temp0) (:rcontext target::tcr.foreign-sp)) 840 842 @no-sp 841 843 (movq (@ 'target-frame (% fn)) (% rbp)) trunk/source/level-0/X86/x86-symbol.lisp
r10446 r10575 92 92 (defx86lapfunction %symptr-binding-address ((symptr arg_z)) 93 93 (movq (@ x8664::symbol.binding-index (% symptr)) (% arg_y)) 94 (rcmp (% arg_y) ( @ (% :rcontext)x8664::tcr.tlb-limit))95 (movq ( @ (% :rcontext)x8664::tcr.tlb-pointer) (% arg_x))94 (rcmp (% arg_y) (:rcontext x8664::tcr.tlb-limit)) 95 (movq (:rcontext x8664::tcr.tlb-pointer) (% arg_x)) 96 96 (jae @sym) 97 97 (cmpb ($ x8664::no-thread-local-binding-marker) (@ (% arg_x) (% arg_y))) trunk/source/level-0/X86/x86-utils.lisp
r10145 r10575 46 46 47 47 ; update active pointer for tsp area. 48 (movq ( @ (% :rcontext)x8664::tcr.ts-area) (% address))49 (movq ( @ (% :rcontext)x8664::tcr.save-tsp) (% temp))48 (movq (:rcontext x8664::tcr.ts-area) (% address)) 49 (movq (:rcontext x8664::tcr.save-tsp) (% temp)) 50 50 (movq (% temp) (@ x8664::area.active (% address))) 51 51 52 52 ;; Update active pointer for vsp area. 53 (movq ( @ (% :rcontext)x8664::tcr.vs-area) (% address))53 (movq (:rcontext x8664::tcr.vs-area) (% address)) 54 54 (movq (% rsp) (@ x8664::area.active (% address))) 55 55 … … 217 217 (movq (@ x8664::area.low (% a)) (% obj)) 218 218 (subq ($ (- x8664::cons.size x8664::fulltag-cons)) 219 ( @ (% :rcontext)x8664::tcr.save-allocptr))220 (movq ( @ (% :rcontext)x8664::tcr.save-allocptr) (% allocptr))221 (cmpq ( @ (% :rcontext)x8664::tcr.save-allocbase) (% allocptr))219 (:rcontext x8664::tcr.save-allocptr)) 220 (movq (:rcontext x8664::tcr.save-allocptr) (% allocptr)) 221 (cmpq (:rcontext x8664::tcr.save-allocbase) (% allocptr)) 222 222 (jg @ok) 223 223 (uuo-alloc) 224 224 @ok 225 225 (andb ($ (lognot x8664::fulltagmask)) 226 ( @ (% :rcontext)x8664::tcr.save-allocptr))226 (:rcontext x8664::tcr.save-allocptr)) 227 227 (movq (% allocptr) (% limit)) 228 228 (jmp @test) trunk/source/level-0/l0-init.lisp
r10148 r10575 82 82 #+darwinx8664-target :darwinx8664-target 83 83 #+darwinx8664-target :darwinx8664-host 84 #+windows-target :windows-host 85 #+windows-target :windows-target 86 #+win64-target :win64-target 87 #+win64-target :win64-host 84 88 #+solaris-target :solaris-host 85 89 #+solaris-target :solaris-target … … 100 104 #+freebsd-target :freebsd 101 105 #+solaris-target :solaris 106 #+windows-target :windows 102 107 ;; :mcl ;deprecated 103 108 ) trunk/source/level-0/l0-io.lisp
r10184 r10575 32 32 #+solarisx8664-target 33 33 (require "X8664-SOLARIS-SYSCALLS") 34 #+win64-target 35 (require "X86-WIN64-SYSCALLS") 34 36 ) 35 37 … … 51 53 3 52 54 4)))))) 55 0)) 56 57 (defun utf-16-octets-in-string (string start end) 58 (if (>= end start) 59 (do* ((noctets 0) 60 (i start (1+ i))) 61 ((= i end) noctets) 62 (declare (fixnum noctets)) 63 (let* ((code (char-code (schar string i)))) 64 (declare (type (mod #x110000) code)) 65 (incf noctets 66 (if (< code #x10000) 67 2 68 4)))) 53 69 0)) 54 70 … … 87 103 (logior #x80 (logand #x3f code))) 88 104 (incf idx 4)))))) 105 106 (defun native-utf-16-memory-encode (string pointer idx start end) 107 (declare (fixnum idx)) 108 (do* ((i start (1+ i))) 109 ((>= i end) idx) 110 (let* ((code (char-code (schar string i))) 111 (highbits (- code #x10000))) 112 (declare (type (mod #x110000) code) 113 (fixnum highbits)) 114 (cond ((< highbits 0) 115 (setf (%get-unsigned-word pointer idx) code) 116 (incf idx 2)) 117 (t 118 (setf (%get-unsigned-word pointer idx) (logior #xd800 (the fixnum (ash highbits -10)))) 119 (incf idx 2) 120 (setf (%get-unsigned-word pointer idx) (logior #xdc00 (the fixnum (logand highbits #x3ff)))) 121 (incf idx 2)))))) 89 122 90 123 (defun utf-8-memory-decode (pointer noctets idx string) … … 175 208 176 209 (defun fd-open (path flags &optional (create-mode #o666)) 177 (#+darwin-target with-utf-8-cstrs #-darwin-target with-cstrs ((p path)) 210 (#+darwin-target with-utf-8-cstrs 211 #+windows-target with-native-utf-16-cstrs 212 #-(or darwin-target windows-target) with-cstrs 213 ((p path)) 178 214 (let* ((fd (syscall syscalls::open p flags create-mode))) 179 215 (declare (fixnum fd))
