Changeset 10755


Ignore:
Timestamp:
Sep 15, 2008, 11:18:36 PM (11 years ago)
Author:
gb
Message:

Define linuxx8632-backend.

File:
1 edited

Legend:

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

    r10126 r10755  
    1313(defvar *known-x8632-backends* ())
    1414
    15 ;;#+darwinx86-target
     15#+darwinx86-target
    1616(defvar *darwinx8632-backend*
    1717  (make-backend :lookup-opcode 'lookup-x86-opcode
     
    4242                ))
    4343
    44 ;;#+darwinx86-target
     44
     45#+darwinx86-target
    4546(pushnew *darwinx8632-backend* *known-x8632-backends* :key #'backend-name)
     47
     48#+linuxx86-target
     49(defvar *linuxx8632-backend*
     50  (make-backend :lookup-opcode 'lookup-x86-opcode
     51                :lookup-macro #'false
     52                :lap-opcodes x86::*x86-opcode-templates*
     53                :define-vinsn 'define-x86-vinsn
     54                :p2-dispatch *x862-specials*
     55                :p2-vinsn-templates *x8632-vinsn-templates*
     56                :p2-template-hash-name '*x8632-vinsn-templates*
     57                :p2-compile 'x862-compile
     58                :platform-syscall-mask (logior platform-os-linux platform-cpu-x86 platform-word-size-32)
     59                :target-specific-features
     60                '(:x8632 :x86-target :linux-target :linuxx86-target :x8632-target
     61                  :linuxx8632-target
     62                  :little-endian-target
     63                  :32-bit-target)
     64                :target-fasl-pathname (make-pathname :type "lx32fsl")
     65                :target-platform (logior platform-cpu-x86
     66                                         platform-os-linux
     67                                         platform-word-size-32)
     68                :target-os :linuxx86
     69                :name :linuxx8632
     70                :target-arch-name :x8632
     71                :target-foreign-type-data nil
     72                :target-arch x8632::*x8632-target-arch*
     73                :lisp-context-register x8632::fs
     74                :num-arg-regs 2
     75                ))
     76
     77#+linuxx86-target
     78(pushnew *linuxx8632-backend* *known-x8632-backends* :key #'backend-name)
    4679
    4780(defvar *x8632-backend* (car *known-x8632-backends*))
     
    82115                           (intern "GENERATE-CALLBACK-BINDINGS" "X86-DARWIN32")
    83116                           :callback-return-value-function
    84                            (intern "GENERATE-CALLBACK-RETURN-VALUE" "X86-DARWIN32"))))))
     117                           (intern "GENERATE-CALLBACK-RETURN-VALUE" "X86-DARWIN32")))
     118                (:linuxx8632
     119                 (make-ftd :interface-db-directory "ccl:x86-headers;"
     120                           :interface-package-name "X86-LINUX32"
     121                           :attributes '(:bits-per-word  32
     122                                         :signed-char nil
     123                                         :struct-by-value t
     124                                         :float-results-in-x87 t)
     125                           :ff-call-expand-function
     126                           (intern "EXPAND-FF-CALL" "X86-LINUX32")
     127                           :ff-call-struct-return-by-implicit-arg-function
     128                           (intern "RECORD-TYPE-RETURNS-STRUCTURE-AS-FIRST-ARG"
     129                                   "X86-LINUX32")
     130                           :callback-bindings-function
     131                           (intern "GENERATE-CALLBACK-BINDINGS" "X86-LINUX32")
     132                           :callback-return-value-function
     133                           (intern "GENERATE-CALLBACK-RETURN-VALUE" "X86-LINUX32")))               
     134                )))
    85135        (install-standard-foreign-types ftd)
    86136        (use-interface-dir :libc ftd)
Note: See TracChangeset for help on using the changeset viewer.