diff --git a/src/compiler/ppc/float.lisp b/src/compiler/ppc/float.lisp
index 200772f3ea81b7339aa26b9f42f452d9d8fac240..c5c944bd46d06cb17ffc9ff1e96a5ef6ea049101 100644
--- a/src/compiler/ppc/float.lisp
+++ b/src/compiler/ppc/float.lisp
@@ -1445,6 +1445,9 @@
   ;; operands, if we can.
   (multiple-value-bind (fop format rd rs1 rs2)
       (get-fp-operation scp)
+    (unless fop
+      ;; Give up if we don't know the operation
+      (return-from get-fp-operands (values nil (list nil nil))))
     (let ((traps (logand (ldb float-exceptions-byte modes)
 			 (ldb float-traps-byte modes)))
 	  (fs1 (and fop rs1 (sigcontext-float-register scp rs1 format)))