Changeset 10046


Ignore:
Timestamp:
Jul 15, 2008, 1:37:20 PM (11 years ago)
Author:
gb
Message:

Solaris backend.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/source/compiler/X86/X8664/x8664-backend.lisp

    r7624 r10046  
    119119                ))
    120120
     121#+solarisx64-target
     122(defvar *solarisx8664-backend*
     123  (make-backend :lookup-opcode 'lookup-x86-opcode
     124                :lookup-macro #'false
     125                :lap-opcodes x86::*x8664-opcode-templates*
     126                :define-vinsn 'define-x86-vinsn
     127                :p2-dispatch *x862-specials*
     128                :p2-vinsn-templates *x8664-vinsn-templates*
     129                :p2-template-hash-name '*x8664-vinsn-templates*
     130                :p2-compile 'x862-compile
     131                :target-specific-features
     132                '(:x8664 :x86-target :solaris-target :solarisx86-target :x8664-target
     133                  :solarisx8664-target
     134                  :solarisx64-target
     135                  :little-endian-target
     136                  :64-bit-target)
     137                :target-fasl-pathname (make-pathname :type "sx64fsl")
     138                :target-platform (logior platform-cpu-x86
     139                                         platform-os-solaris
     140                                         platform-word-size-64)
     141                :target-os :solarisx86
     142                :name :solarisx8664
     143                :target-arch-name :x8664
     144                :target-foreign-type-data nil
     145                :target-arch x8664::*x8664-target-arch*
     146                :platform-syscall-mask (logior platform-os-solaris platform-cpu-x86 platform-word-size-64)
     147                :lisp-context-register x8664::gs
     148                ))
     149
    121150#+(or linuxx86-target (not x86-target))
    122151(pushnew *linuxx8664-backend* *known-x8664-backends* :key #'backend-name)
     
    128157#+freebsdx86-target
    129158(pushnew *freebsdx8664-backend* *known-x8664-backends* :key #'backend-name)
     159
     160#+solarisx86-target
     161(pushnew *solarisx8664-backend* *known-x8664-backends* :key #'backend-name)
    130162
    131163(defvar *x8664-backend* (car *known-x8664-backends*))
     
    203235                           (intern "GENERATE-CALLBACK-BINDINGS" "X86-FREEBSD64")
    204236                           :callback-return-value-function
    205                            (intern "GENERATE-CALLBACK-RETURN-VALUE" "X86-FREEBSD64"))))))
     237                           (intern "GENERATE-CALLBACK-RETURN-VALUE" "X86-FREEBSD64")))
     238                (:solarisx8664
     239                 (make-ftd :interface-db-directory
     240                           (if (eq backend *host-backend*)
     241                             "ccl:solarisx64-headers;"
     242                             "ccl:cross-solarisx64-headers;")
     243                           :interface-package-name "X86-SOLARIS64"
     244                           :attributes '(:bits-per-word  64
     245                                         :struct-by-value t)
     246                           :ff-call-expand-function
     247                           (intern "EXPAND-FF-CALL" "X86-SOLARIS64")
     248                           :ff-call-struct-return-by-implicit-arg-function
     249                           (intern "RECORD-TYPE-RETURNS-STRUCTURE-AS-FIRST-ARG"
     250                                   "X86-SOLARIS64")
     251                           :callback-bindings-function
     252                           (intern "GENERATE-CALLBACK-BINDINGS" "X86-SOLARIS64")
     253                           :callback-return-value-function
     254                           (intern "GENERATE-CALLBACK-RETURN-VALUE" "X86-SOLARIS64"))))))
    206255        (install-standard-foreign-types ftd)
    207256        (use-interface-dir :libc ftd)
Note: See TracChangeset for help on using the changeset viewer.