diff --git a/bootfiles/19d/boot-2007-05-1-ppc.lisp b/bootfiles/19d/boot-2007-05-1-ppc.lisp
new file mode 100644
index 0000000000000000000000000000000000000000..2803db9a7637ad0170dfbb9d9d5483316d5c8f53
--- /dev/null
+++ b/bootfiles/19d/boot-2007-05-1-ppc.lisp
@@ -0,0 +1,39 @@
+;;; Bootstrap file for fused multiply vops for ppc.
+
+(in-package "VM")
+
+#+ppc
+(progn
+(defknown (vm::fused-multiply-subtract vm::fused-multiply-add)
+    (double-float double-float double-float)
+  double-float
+  (movable flushable))
+
+(export '(fused-multiply-subtract fused-multiply-add))
+
+(define-vop (fused-multiply-subtract/double)
+  (:args (x :scs (double-reg))
+         (y :scs (double-reg))
+	 (z :scs (double-reg)))
+  (:results (r :scs (double-reg)))
+  (:arg-types double-float double-float double-float)
+  (:result-types double-float)
+  (:translate vm::fused-multiply-subtract)
+  (:policy :fast-safe)
+  (:generator 1
+    ;; r = x*y - z	       
+    (inst fmsub r x y z)))
+
+(define-vop (fused-multiply-add/double)
+  (:args (x :scs (double-reg))
+         (y :scs (double-reg))
+	 (z :scs (double-reg)))
+  (:results (r :scs (double-reg)))
+  (:arg-types double-float double-float double-float)
+  (:result-types double-float)
+  (:translate vm::fused-multiply-add)
+  (:policy :fast-safe)
+  (:generator 1
+    ;; r = x*y + z
+    (inst fmadd r x y z)))
+)
\ No newline at end of file