Changeset 11326


Ignore:
Timestamp:
Nov 9, 2008, 9:25:03 PM (11 years ago)
Author:
gb
Message:

FreeBSD x8632 changes.

File:
1 edited

Legend:

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

    r11254 r11326  
    140140#+solaris-target
    141141(pushnew *solaris-x8632-backend* *known-x8632-backends* :key #'backend-name)
     142
     143#+freebsd-target
     144(defvar *freebsd-x8632-backend*
     145  (make-backend :lookup-opcode 'lookup-x86-opcode
     146                :lookup-macro #'false
     147                :lap-opcodes x86::*x86-opcode-templates*
     148                :define-vinsn 'define-x86-vinsn
     149                :p2-dispatch *x862-specials*
     150                :p2-vinsn-templates *x8632-vinsn-templates*
     151                :p2-template-hash-name '*x8632-vinsn-templates*
     152                :p2-compile 'x862-compile
     153                :platform-syscall-mask (logior platform-os-freebsd platform-cpu-x86 platform-word-size-32)
     154                :target-specific-features
     155                '(:x8632 :x86-target :freebsd-target :x8632-target
     156                  :freebsdsx8632-target
     157                  :little-endian-target
     158                  :32-bit-target)
     159                :target-fasl-pathname (make-pathname :type "fx32fsl")
     160                :target-platform (logior platform-cpu-x86
     161                                         platform-os-freebsd
     162                                         platform-word-size-32)
     163                :target-os :freebsdx8632
     164                :name :freebsdx8632
     165                :target-arch-name :x8632
     166                :target-foreign-type-data nil
     167                :target-arch x8632::*x8632-target-arch*
     168                :lisp-context-register x8632::fs
     169                :num-arg-regs 2
     170                ))
     171
     172#+freebsd-target
     173(pushnew *freebsd-x8632-backend* *known-x8632-backends* :key #'backend-name)
    142174
    143175(defvar *x8632-backend* (car *known-x8632-backends*))
     
    227259                           :callback-return-value-function
    228260                           (intern "GENERATE-CALLBACK-RETURN-VALUE" "X86-SOLARIS32")))
     261                (:freebsdx8632
     262                 (make-ftd :interface-db-directory "ccl:freebsd-headers;"
     263                           :interface-package-name "X86-FREEBSD32"
     264                           :attributes '(:bits-per-word  32
     265                                         :signed-char nil
     266                                         :struct-by-value t
     267                                         :float-results-in-x87 t)
     268                           :ff-call-expand-function
     269                           (intern "EXPAND-FF-CALL" "X86-FREEBSD32")
     270                           :ff-call-struct-return-by-implicit-arg-function
     271                           (intern "RECORD-TYPE-RETURNS-STRUCTURE-AS-FIRST-ARG"
     272                                   "X86-FREEBSD32")
     273                           :callback-bindings-function
     274                           (intern "GENERATE-CALLBACK-BINDINGS" "X86-FREEBSD32")
     275                           :callback-return-value-function
     276                           (intern "GENERATE-CALLBACK-RETURN-VALUE" "X86-FREEBSD32")))
    229277                )))
    230278        (install-standard-foreign-types ftd)
Note: See TracChangeset for help on using the changeset viewer.