Changeset 11254


Ignore:
Timestamp:
Oct 30, 2008, 1:40:19 PM (11 years ago)
Author:
gb
Message:

Add solaris x8632 backend.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/source/compiler/X86/X8632/x8632-backend.lisp

    r10925 r11254  
    110110(pushnew *win32-backend* *known-x8632-backends* :key #'backend-name)
    111111
     112#+solaris-target
     113(defvar *solaris-x8632-backend*
     114  (make-backend :lookup-opcode 'lookup-x86-opcode
     115                :lookup-macro #'false
     116                :lap-opcodes x86::*x86-opcode-templates*
     117                :define-vinsn 'define-x86-vinsn
     118                :p2-dispatch *x862-specials*
     119                :p2-vinsn-templates *x8632-vinsn-templates*
     120                :p2-template-hash-name '*x8632-vinsn-templates*
     121                :p2-compile 'x862-compile
     122                :platform-syscall-mask (logior platform-os-solaris platform-cpu-x86 platform-word-size-32)
     123                :target-specific-features
     124                '(:x8632 :x86-target :solaris-target :x8632-target
     125                  :solarisx8632-target
     126                  :little-endian-target
     127                  :32-bit-target)
     128                :target-fasl-pathname (make-pathname :type "sx32fsl")
     129                :target-platform (logior platform-cpu-x86
     130                                         platform-os-solaris
     131                                         platform-word-size-32)
     132                :target-os :solarisx8632
     133                :name :solarisx8632
     134                :target-arch-name :x8632
     135                :target-foreign-type-data nil
     136                :target-arch x8632::*x8632-target-arch*
     137                :lisp-context-register x8632::fs
     138                :num-arg-regs 2
     139                ))
     140#+solaris-target
     141(pushnew *solaris-x8632-backend* *known-x8632-backends* :key #'backend-name)
    112142
    113143(defvar *x8632-backend* (car *known-x8632-backends*))
     
    181211                           :callback-return-value-function
    182212                           (intern "GENERATE-CALLBACK-RETURN-VALUE" "WIN32")))
     213                (:solarisx8632
     214                 (make-ftd :interface-db-directory "ccl:solarisx86-headers;"
     215                           :interface-package-name "X86-SOLARIS32"
     216                           :attributes '(:bits-per-word  32
     217                                         :signed-char nil
     218                                         :struct-by-value t
     219                                         :float-results-in-x87 t)
     220                           :ff-call-expand-function
     221                           (intern "EXPAND-FF-CALL" "X86-SOLARIS32")
     222                           :ff-call-struct-return-by-implicit-arg-function
     223                           (intern "RECORD-TYPE-RETURNS-STRUCTURE-AS-FIRST-ARG"
     224                                   "X86-SOLARIS32")
     225                           :callback-bindings-function
     226                           (intern "GENERATE-CALLBACK-BINDINGS" "X86-SOLARIS32")
     227                           :callback-return-value-function
     228                           (intern "GENERATE-CALLBACK-RETURN-VALUE" "X86-SOLARIS32")))
    183229                )))
    184230        (install-standard-foreign-types ftd)
Note: See TracChangeset for help on using the changeset viewer.