Changeset 4814
- Timestamp:
- Jun 25, 2006, 7:32:38 PM (18 years ago)
- File:
-
- 1 edited
-
trunk/ccl/compiler/X86/X8664/x8664-backend.lisp (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/ccl/compiler/X86/X8664/x8664-backend.lisp
r4596 r4814 182 182 :little-endian-target 183 183 :64-bit-target) 184 :target-fasl-pathname (make-pathname :type "d 64fsl")184 :target-fasl-pathname (make-pathname :type "dx64fsl") 185 185 :target-platform (logior platform-cpu-x86 186 186 platform-os-darwin … … 195 195 )) 196 196 197 #+freebsdx86-target 198 (defvar *freebsdx8664-backend* 199 (make-backend :lookup-opcode 'lookup-x86-opcode 200 :lookup-macro #'false 201 :lap-opcodes x86::*x8664-opcode-templates* 202 :define-vinsn 'define-x86-vinsn 203 :p2-dispatch *x862-specials* 204 :p2-vinsn-templates *x8664-vinsn-templates* 205 :p2-template-hash-name '*x8664-vinsn-templates* 206 :p2-compile 'x862-compile 207 :target-specific-features 208 '(:x8664 :x86-target :freebsd-target :freebsdx86-target :x8664-target 209 :little-endian-target 210 :64-bit-target) 211 :target-fasl-pathname (make-pathname :type "fx64fsl") 212 :target-platform (logior platform-cpu-x86 213 platform-os-freebsd 214 platform-word-size-64) 215 :target-os :freebsdx86 216 :name :freebsdx8664 217 :target-arch-name :x8664 218 :target-foreign-type-data nil 219 :target-arch x8664::*x8664-target-arch* 220 :define-callback 'define-x8664-callback 221 :defcallback-body 'defcallback-body-x8664 222 )) 223 197 224 #+(or linuxx86-target (not x86-target)) 198 225 (pushnew *linuxx8664-backend* *known-x8664-backends* :key #'backend-name) … … 201 228 #+darwinx86-target 202 229 (pushnew *darwinx8664-backend* *known-x8664-backends* :key #'backend-name) 230 231 #+freebsdx86-target 232 (pushnew *freebsdx8664-backend* *known-x8664-backends* :key #'backend-name) 203 233 204 234 (defvar *x8664-backend* (car *known-x8664-backends*)) … … 219 249 (setq *host-backend* *x8664-backend* *target-backend* *x8664-backend*) 220 250 251 (defun setup-x8664-ftd (backend) 252 (or (backend-target-foreign-type-data backend) 253 (let* ((name (backend-name backend)) 254 (ftd 255 (case name 256 (:linuxx8664 257 (make-ftd :interface-db-directory "ccl:x86-headers64;" 258 :interface-package-name "X86-LINUX64" 259 :attributes '(:bits-per-word 64 260 :struct-by-value t))) 261 (:darwinx8664 262 (make-ftd :interface-db-directory "ccl:darwin-x86-headers64;" 263 :interface-package-name "X86-DARWIN64" 264 :attributes '(:bits-per-word 64 265 :signed-char t 266 :struct-by-value t 267 :prepend-underscore t))) 268 (:freebsdx8664 269 (make-ftd :interface-db-directory "ccl:freebsd-headers64;" 270 :interface-package-name "X86-FREEBSD64" 271 :attributes '(:bits-per-word 64 272 :struct-by-value t)))))) 273 (install-standard-foreign-types ftd) 274 (use-interface-dir :libc ftd) 275 (setf (backend-target-foreign-type-data backend) ftd)))) 276 221 277 #-x8664-target 222 (unless (backend-target-foreign-type-data *x8664-backend*) 223 (let* ((ftd (make-ftd 224 :interface-db-directory 225 #+darwinx86-target "ccl:darwin-x86-headers64;" 226 #+(or linuxx86-target (not x86-target)) "ccl:x86-headers64;" 227 :interface-package-name 228 #+darwinx86-target "X86-DARWIN64" 229 #+(or linuxx86-target (not x86-target)) "X86-LINUX64" 230 :attributes 231 #+darwinx86-target 232 '(:signed-char t 233 :struct-by-value t 234 :prepend-underscores t 235 :bits-per-word 64) 236 #+(or linuxx86-target (not x86-target)) 237 '(:bits-per-word 64 238 :struct-by-value t)))) 239 (install-standard-foreign-types ftd) 240 (use-interface-dir :libc ftd) 241 (setf (backend-target-foreign-type-data *x8664-backend*) ftd))) 278 (setup-x8664-ftd *x8664-backend*) 242 279 243 280 (pushnew *x8664-backend* *known-backends* :key #'backend-name)
Note:
See TracChangeset
for help on using the changeset viewer.
