0.7.3.18:
[sbcl.git] / src / compiler / alpha / insts.lisp
index 54c79cc..b6bfa75 100644 (file)
@@ -54,7 +54,7 @@
               (t (make-symbol (concatenate 'string "$" name)))))
        *register-names*))
 
-(sb!disassem:define-argument-type reg
+(sb!disassem:define-arg-type reg
   :printer (lambda (value stream dstate)
             (declare (stream stream) (fixnum value))
             (let ((regname (aref reg-symbols value)))
@@ -70,7 +70,7 @@
    (loop for n from 0 to 31 collect (make-symbol (format nil "~D" n)))
    'vector))
 
-(sb!disassem:define-argument-type fp-reg
+(sb!disassem:define-arg-type fp-reg
   :printer (lambda (value stream dstate)
             (declare (stream stream) (fixnum value))
             (let ((regname (aref float-reg-symbols value)))
@@ -81,7 +81,7 @@
                regname
                dstate))))
 
-(sb!disassem:define-argument-type relative-label
+(sb!disassem:define-arg-type relative-label
   :sign-extend t
   :use-label (lambda (value dstate)
               (declare (type (signed-byte 21) value)
   (define-fp-operate subt #x16 #x0a1)
 
 ;;; IEEE support
-  (defconstant +su+   #x500)           ; software, underflow enabled
-  (defconstant +sui+  #x700)           ; software, inexact & underflow enabled
-  (defconstant +sv+   #x500)           ; software, interger overflow enabled
-  (defconstant +svi+  #x700)
-  (defconstant +rnd+  #x0c0)           ; dynamic rounding mode
-  (defconstant +sud+  #x5c0)
-  (defconstant +svid+ #x7c0)
-  (defconstant +suid+ #x7c0)
+  (def!constant +su+   #x500)          ; software, underflow enabled
+  (def!constant +sui+  #x700)          ; software, inexact & underflow enabled
+  (def!constant +sv+   #x500)          ; software, interger overflow enabled
+  (def!constant +svi+  #x700)
+  (def!constant +rnd+  #x0c0)          ; dynamic rounding mode
+  (def!constant +sud+  #x5c0)
+  (def!constant +svid+ #x7c0)
+  (def!constant +suid+ #x7c0)
 
   (define-fp-operate cvtqs_su #x16 (logior +su+ #x0bc) 2)
+  (define-fp-operate cvtqs_sui #x16 (logior +sui+ #x0bc) 2)
   (define-fp-operate cvtqt_su #x16 (logior +su+ #x0be) 2)
+  (define-fp-operate cvtqt_sui #x16 (logior +sui+ #x0be) 2)
   (define-fp-operate cvtts_su #x16 (logior +su+ #x0ac) 2)
 
+  (define-fp-operate cvttq_sv #x16 (logior +su+ #x0af) 2)
+  (define-fp-operate cvttq/c_sv #x16 (logior +su+ #x02f) 2)
+  
   (define-fp-operate adds_su #x16 (logior +su+ #x080))
   (define-fp-operate addt_su #x16 (logior +su+ #x0a0))
   (define-fp-operate divs_su #x16 (logior +su+ #x083))
 (define-instruction trapb (segment)
   (:emitter (emit-lword segment #x63ff0000)))
 
+(define-instruction imb (segment)
+  (:emitter (emit-lword segment #x00000086)))
+
 (define-instruction gentrap (segment code)
   (:printer call-pal ((palcode #xaa0000)))
   (:emitter