Changeset 199


Ignore:
Timestamp:
Jan 5, 2004, 5:56:18 PM (21 years ago)
Author:
Gary Byers
Message:

Most stuff that's truly PPC-specific should be here (in the PPC package) now.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/ccl/compiler/PPC/ppc-arch.lisp

    r191 r199  
    1515;;;   http://opensource.franz.com/preamble.html
    1616
     17(defpackage "PPC"
     18  (:use "CL"))
     19
     20
    1721(in-package "PPC")
    18 
    1922;;; Lisp registers.
    2023(eval-when (:compile-toplevel :execute)
     
    140143
    141144
    142 (defconstant fname temp3)
    143145
    144146;;; Calling sequence may pass additional arguments in temp registers.
     
    215217  so
    216218)
     219
     220; Kernel globals are allocated "below" nil.  This list (used to map symbolic names to
     221; rnil-relative offsets) must (of course) exactly match the kernel's notion of where
     222; things are.
     223; The order here matches "ccl:pmcl;lisp_globals.h" & the lisp_globals record
     224; in "ccl:pmcl;constants.s"
     225(defparameter *ppc-kernel-globals*
     226  '(get-tcr                             ; callback to obtain (real) tcr
     227    tcr-count
     228    interrupt-signal                    ; used by PROCESS-INTERRUPT
     229    kernel-imports                      ; some things we need to have imported for us.
     230    tcr-lock
     231    emulator-registers                  ; Where the 68K registers are kept.
     232    appmain                             ; application's (c-runtime) main() function
     233    subprims-base                       ; start of dynamic subprims jump table
     234    ret1valaddr                         ; magic multiple-values return address.
     235    tcr-key                             ; tsd key for thread's tcr
     236    gc-lock                             ; serialize access to gc
     237    exception-lock                      ; serialize exception handling
     238    go-tag-counter                      ; counter for (immediate) go tag
     239    block-tag-counter                   ; counter for (immediate) block tag
     240    intflag                             ; interrupt-pending flag
     241    gc-inhibit-count                    ; for gc locking
     242    os-trap-call                        ; callostrapunivesalproc's descriptor
     243    tb-trap-call                        ; CallUniversalProc's descriptor
     244    qd-globals                          ; (untagged) pointer to QD globals.
     245    fwdnum                              ; fixnum: GC "forwarder" call count.
     246    gc-count                            ; fixnum: GC call count.
     247    gcable-pointers                     ; linked-list of weak macptrs.
     248    heap-start                          ; start of lisp heap
     249    heap-end                            ; end of lisp heap
     250    statically-linked                   ; current control-stack area
     251    bad-current-vs                      ; current value-stack area
     252    bad-current-ts                      ; current temp-stack area
     253    bad-cs-overflow-limit               ; limit for control-stack overflow check
     254    all-areas                           ; doubly-linked area list
     255    lexpr-return                        ; multiple-value lexpr return address
     256    lexpr-return1v                      ; single-value lexpr return address
     257    in-gc                               ; non-zero when GC-ish thing active
     258    metering-info                       ; kernel metering structure
     259    doh-head                            ; creole
     260    short-float-zero                    ; low half of 1.0d0
     261    double-float-one                    ; high half of 1.0d0
     262    ffi-exception                       ; ffi fpscr[fex] bit
     263    exception-saved-registers           ; saved registers from exception frame
     264    oldest-ephemeral                    ; doubleword address of oldest ephemeral object or 0
     265    tenured-area                        ; the tenured_area.
     266    errno                               ; address of C lib errno
     267    argv                                ; address of C lib argv
     268    host-platform                       ; 0 on MacOS, 1 on PPC Linux, 2 on VxWorks ...
     269    batch-flag                          ; non-zero if --batch specified
     270    fpscr-save                          ; lisp's fpscr when in FFI-land
     271    fpscr-save-high                     ; high word of FP reg used to save FPSCR
     272    image-name                          ; current image name
     273    initial-tcr                         ; initial thread's context record
     274    ))
     275
     276; The order here matches "ccl:pmcl;lisp_globals.h" and the nrs record
     277; in "ccl:pmcl;constants.s".
     278(defparameter *ppc-nilreg-relative-symbols*
     279  '(t
     280    nil
     281    ccl::%err-disp
     282    ccl::cmain
     283    eval
     284    ccl::apply-evaluated-function
     285    error   
     286    ccl::%defun
     287    ccl::%defvar
     288    ccl::%defconstant
     289    ccl::%macro
     290    ccl::%kernel-restart
     291    *package*
     292    ccl::*total-bytes-freed*
     293    :allow-other-keys   
     294    ccl::%toplevel-catch%
     295    ccl::%toplevel-function%
     296    ccl::%pascal-functions%   
     297    ccl::*all-metered-functions*
     298    ccl::*total-gc-microseconds*
     299    ccl::%builtin-functions%
     300    ccl::%unbound-function%
     301    ccl::%init-misc
     302    ccl::%macro-code%
     303    ccl::%closure-code%
     304    ccl::%new-gcable-ptr
     305    ccl::*gc-event-status-bits*
     306    ccl::*post-gc-hook*
     307    ccl::%handlers%
     308    ccl::%all-packages%
     309    ccl::*keyword-package*
     310    ccl::%finalization-alist%
     311    ccl::%foreign-thread-control
     312    ))
Note: See TracChangeset for help on using the changeset viewer.