Changeset 204


Ignore:
Timestamp:
Jan 5, 2004, 6:02:10 PM (21 years ago)
Author:
Gary Byers
Message:

Should be close to having PPC32 stuff (tags, object layout) here. May
need to be reorganized to cross-compile cleanly.

File:
1 edited

Legend:

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

    r188 r204  
    1818;; This file matches "ccl:pmcl;constants.h" & "ccl:pmcl;constants.s"
    1919
     20(defpackage "PPC32"
     21  (:use "CL")
     22  #+ppc32-target
     23  (:nicknames "TARGET"))
     24
     25
    2026(in-package "PPC32")
    2127
    2228(eval-when (:compile-toplevel :load-toplevel :execute)
    23   (require "PPC-ARCH"))
    24 
    25 
    26 (in-package "PPC32")
     29  (require "PPC-ARCH")
    2730
    2831
     
    5457     (defconstant ,(ccl::form-symbol name ".ELEMENT-COUNT") ,(length non-header-cells))))
    5558
     59 
     60)
    5661
    5762(eval-when (:compile-toplevel :load-toplevel :execute)
     
    528533(defconstant eabi-c-frame.minsize eabi-c-frame.size)
    529534
     535(defmacro define-header (name element-count subtag)
     536  `(defconstant ,name (logior (ash ,element-count num-subtag-bits) ,subtag)))
     537
     538(define-header single-float-header single-float.element-count subtag-single-float)
     539(define-header double-float-header double-float.element-count subtag-double-float)
     540(define-header one-digit-bignum-header 1 subtag-bignum)
     541(define-header two-digit-bignum-header 2 subtag-bignum)
     542(define-header symbol-header symbol.element-count subtag-symbol)
     543(define-header value-cell-header value-cell.element-count subtag-value-cell)
     544(define-header macptr-header macptr.element-count subtag-macptr)
    530545
    531546
     
    536551
    537552
     553
     554
     555(defun %kernel-global (sym)
     556  (let* ((pos (position sym ppc::*ppc-kernel-globals* :test #'string=)))
     557    (if pos
     558      (- (+ fulltag-nil (* (1+ pos) 4)))
     559      (error "Unknown kernel global : ~s ." sym))))
     560
     561(defmacro kernel-global (sym)
     562  (let* ((pos (position sym ppc::*ppc-kernel-globals* :test #'string=)))
     563    (if pos
     564      (- (+ fulltag-nil (* (1+ pos) 4)))
     565      (error "Unknown kernel global : ~s ." sym))))
     566
     567; The kernel imports things that are defined in various other libraries for us.
     568; The objects in question are generally fixnum-tagged; the entries in the
     569; "kernel-imports" vector are 4 bytes apart.
     570(ccl::defenum (:prefix "KERNEL-IMPORT-" :start 0 :step 4)
     571  fd-setsize-bytes
     572  do-fd-set
     573  do-fd-clr
     574  do-fd-is-set
     575  do-fd-zero
     576  MakeDataExecutable
     577  GetSharedLibrary
     578  FindSymbol
     579  malloc
     580  free
     581  allocate_tstack
     582  allocate_vstack
     583  register_cstack
     584  condemn-area
     585  metering-control
     586  restore-soft-stack-limit
     587  egc-control
     588  lisp-bug
     589  NewThread
     590  YieldToThread
     591  DisposeThread
     592  ThreadCurrentStackSpace
     593  usage-exit
     594  save-fp-context
     595  restore-fp-context
     596  put-altivec-registers
     597  get-altivec-registers
     598  new-semaphore
     599  wait-on-semaphore
     600  signal-semaphore
     601  destroy-semaphore
     602  new-recursive-lock
     603  lock-recursive-lock
     604  unlock-recursive-lock
     605  destroy-recursive-lock
     606  suspend-other-threads
     607  resume-other-threads
     608  suspend-tcr
     609  resume-tcr
     610  rwlock-new
     611  rwlock-destroy
     612  rwlock-rlock
     613  rwlock-wlock
     614  rwlock-unlock
     615  recursive-lock-trylock
     616  foreign-name-and-offset
     617)
     618
     619(defmacro nrs-offset (name)
     620  (let* ((pos (position name ppc::*ppc-nilreg-relative-symbols* :test #'eq)))
     621    (if pos (+ t-offset (* pos symbol.size)))))
     622
     623
     624(defconstant reservation-discharge #x1004)
     625
    538626(provide "PPC32-ARCH")
Note: See TracChangeset for help on using the changeset viewer.