Changes between Version 11 and Version 12 of PortToIA-32


Ignore:
Timestamp:
Oct 12, 2007, 8:29:51 PM (12 years ago)
Author:
rme
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • PortToIA-32

    v11 v12  
    110110=== Bootstrapping notes ===
    111111
    112 Using a "Version 1.1-pre-070722 (DarwinX8664)" image to compile
    113 r7063 sources
     112Using a current OpenMCL to build the ia32 branch:
     113
    114114{{{
     115;;; define some stuff from x86-asm.lisp
     116(in-package "X86")
     117(defparameter *opcode-flags*
     118  `((:jump . ,(ash 1 0))                ;special case for jump insns
     119    (:CpuNo64 . ,(ash 1 16))            ;not supported in 64 bit mode
     120    (:Cpu64 . ,(ash 1 17))              ;64 bit mode required
     121    (:CpuSSE . ,(ash 1 18))             ;SSE extensions required
     122    (:CpuSSE2 . ,(ash 1 19))            ;SSE2 extensions required
     123    (:CpuSSE3 . ,(ash 1 20))            ;SSE3 extensions required
     124))
     125
     126(defun %encode-opcode-flags (flags &optional errorp)
     127  (flet ((encode-atomic-flag (f)
     128           (if f
     129             (cdr (assoc f *opcode-flags*))
     130             0)))
     131    (or
     132     (if (atom flags)
     133       (encode-atomic-flag flags)
     134       (let* ((k 0))
     135         (dolist (f flags k)
     136           (let* ((k0 (encode-atomic-flag f)))
     137             (if k0
     138               (setq k (logior k0 k))
     139               (return))))))
     140     (if errorp (error "Unknown x86 opcode flags: ~s" flags)))))
     141
     142(defmacro encode-opcode-flags (&rest flags)
     143  (%encode-opcode-flags flags t))
     144
     145(in-package "CCL")
     146
    115147(load "compiler/X86/X8632/x8632-arch.lisp")
    116148(load "lib/x8632env.lisp")