Index: /branches/arm/compiler/ARM/arm-asm.lisp
===================================================================
--- /branches/arm/compiler/ARM/arm-asm.lisp	(revision 13806)
+++ /branches/arm/compiler/ARM/arm-asm.lisp	(revision 13807)
@@ -586,4 +586,20 @@
      #x0fb00fb0
      ())
+   (define-arm-instruction fnegd (:dd :dm)
+     #x0ed10b40
+     #x0fff0ff0
+     ())
+   (define-arm-instruction fnegs (:sd :sm)
+     #x0ed10a40
+     #x0bff0fb0
+     ())
+   (define-arm-instruction fsqrtd (:dd :dm)
+     #x0eb10bc0
+     #x0fff0ff0
+     ())
+   (define-arm-instruction fsqrts (:sd :sm)
+     #x0eb10ac0
+     #x0bff0fb0
+     ())   
    (define-arm-instruction faddd (:dd :dn :dm)
      #x0e300b00
@@ -664,5 +680,9 @@
    (define-arm-instruction fcvtsd (:sd :dm)
      #x0eb70bc0
-     #x0fbf0fc0
+     #x0fbf0ff0
+     ())
+   (define-arm-instruction fcvtds (:dd :sm)
+     #x0eb70ac0
+     #x0ff70ac0
      ())
    (define-arm-instruction smull (:rd :rn :rm :rn)
@@ -675,5 +695,5 @@
      ())
 
-   (define-arm-instruction fstd (:sd :fpaddr)
+   (define-arm-instruction fstd (:dd :fpaddr)
      #x0d000b00
      #x0f700f00
@@ -683,5 +703,5 @@
      #x0f300f00
      ())
-   (define-arm-instruction fldd (:sd :fpaddr)
+   (define-arm-instruction fldd (:dd :fpaddr)
      #x0d100b00
      #x0f700f00
@@ -691,4 +711,20 @@
      #x0f300f00
      ())
+   (define-arm-instruction ftosid (:sd :dm)
+     #x0ebd0b40
+     #x0fbf0fc0
+     ())
+   (define-arm-instruction ftosizd (:sd :dm)
+     #x0ebd0bc0
+     #x0fbf0fc0
+     ())
+   (define-arm-instruction ftosis (:sd :sm)
+     #x0ebd0a40
+     #x0fbf0fc0
+     ())
+   (define-arm-instruction ftosizs (:sd :sm)
+     #x0ebd0ac0
+     #x0fbf0fc0
+     ())   
    (define-arm-instruction ldrex (:rd :@rn)
      #x01900f9f
@@ -834,5 +870,5 @@
 
 (defun need-arm-dfpr (form)
-  (or (get-arm-sfpr form)
+  (or (get-arm-dfpr form)
       (error "Expected an ARM double FP register, got ~s" form)))
 
@@ -1158,5 +1194,5 @@
       (unless (and (consp offset) (eq (keywordize (car offset)) :$))
         (error "Invalid FP address offset ~s in ~s." offset form))
-      (destructuring-bind (offset-form) (cadr offset)
+      (destructuring-bind (offset-form) (cdr offset)
         (let* ((offset-val (eval offset-form)))
           (when (logtest offset-val 3)
