Changeset 10905


Ignore:
Timestamp:
Sep 27, 2008, 6:57:41 AM (11 years ago)
Author:
gb
Message:

Win32 backend.

File:
1 edited

Legend:

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

    r10755 r10905  
    7878(pushnew *linuxx8632-backend* *known-x8632-backends* :key #'backend-name)
    7979
     80#+windows-target
     81(defvar *win32-backend*
     82  (make-backend :lookup-opcode 'lookup-x86-opcode
     83                :lookup-macro #'false
     84                :lap-opcodes x86::*x86-opcode-templates*
     85                :define-vinsn 'define-x86-vinsn
     86                :p2-dispatch *x862-specials*
     87                :p2-vinsn-templates *x8632-vinsn-templates*
     88                :p2-template-hash-name '*x8632-vinsn-templates*
     89                :p2-compile 'x862-compile
     90                :platform-syscall-mask (logior platform-os-windows platform-cpu-x86 platform-word-size-32)
     91                :target-specific-features
     92                '(:x8632 :x86-target :windows-target :win32-target :x8632-target
     93                  :windowsx8632-target
     94                  :little-endian-target
     95                  :32-bit-target)
     96                :target-fasl-pathname (make-pathname :type "wx32fsl")
     97                :target-platform (logior platform-cpu-x86
     98                                         platform-os-windows
     99                                         platform-word-size-32)
     100                :target-os :win32
     101                :name :win32
     102                :target-arch-name :x8632
     103                :target-foreign-type-data nil
     104                :target-arch x8632::*x8632-target-arch*
     105                :lisp-context-register x8632::fs
     106                :num-arg-regs 2
     107                ))
     108
     109#+windows-target
     110(pushnew *win32-backend* *known-x8632-backends* :key #'backend-name)
     111
     112
    80113(defvar *x8632-backend* (car *known-x8632-backends*))
    81114
     
    131164                           (intern "GENERATE-CALLBACK-BINDINGS" "X86-LINUX32")
    132165                           :callback-return-value-function
    133                            (intern "GENERATE-CALLBACK-RETURN-VALUE" "X86-LINUX32")))               
     166                           (intern "GENERATE-CALLBACK-RETURN-VALUE" "X86-LINUX32")))
     167                (:win32
     168                 (make-ftd :interface-db-directory "ccl:win32-headers;"
     169                           :interface-package-name "WIN32"
     170                           :attributes '(:bits-per-word  32
     171                                         :signed-char nil
     172                                         :struct-by-value t
     173                                         :float-results-in-x87 t)
     174                           :ff-call-expand-function
     175                           (intern "EXPAND-FF-CALL" "WIN32")
     176                           :ff-call-struct-return-by-implicit-arg-function
     177                           (intern "RECORD-TYPE-RETURNS-STRUCTURE-AS-FIRST-ARG"
     178                                   "WIN32")
     179                           :callback-bindings-function
     180                           (intern "GENERATE-CALLBACK-BINDINGS" "WIN32")
     181                           :callback-return-value-function
     182                           (intern "GENERATE-CALLBACK-RETURN-VALUE" "WIN32")))
    134183                )))
    135184        (install-standard-foreign-types ftd)
Note: See TracChangeset for help on using the changeset viewer.