vserver 1.9.5.x5
[linux-2.6.git] / arch / sparc / kernel / muldiv.c
index 36a78a9..37b9a49 100644 (file)
@@ -4,6 +4,9 @@
  *
  * Copyright (C) 1996 Jakub Jelinek (jj@sunsite.mff.cuni.cz)
  * Copyright (C) 1996 David S. Miller (davem@caip.rutgers.edu)
+ *
+ * 2004-12-25  Krzysztof Helt (krzysztof.h1@wp.pl) 
+ *             - fixed registers constrains in inline assembly declarations
  */
 
 #include <linux/kernel.h>
@@ -132,7 +135,7 @@ int do_user_muldiv(struct pt_regs *regs, unsigned long pc)
                        "mov    %%o0, %0\n\t"
                        "mov    %%o1, %1\n\t"
                        : "=r" (rs1), "=r" (rs2)
-                       :
+                       : "0" (rs1), "1" (rs2)
                        : "o0", "o1", "o2", "o3", "o4", "o5", "o7", "cc");
 #ifdef DEBUG_MULDIV
                printk ("0x%x%08x\n", rs2, rs1);
@@ -152,7 +155,7 @@ int do_user_muldiv(struct pt_regs *regs, unsigned long pc)
                        "mov    %%o0, %0\n\t"
                        "mov    %%o1, %1\n\t"
                        : "=r" (rs1), "=r" (rs2)
-                       :
+                       : "0" (rs1), "1" (rs2)
                        : "o0", "o1", "o2", "o3", "o4", "o5", "o7", "cc");
 #ifdef DEBUG_MULDIV
                printk ("0x%x%08x\n", rs2, rs1);
@@ -181,7 +184,7 @@ int do_user_muldiv(struct pt_regs *regs, unsigned long pc)
                        "mov    %%o1, %0\n\t"
                        "mov    %%o0, %1\n\t"
                        : "=r" (rs1), "=r" (rs2)
-                       : "r" (regs->y)
+                       : "r" (regs->y), "0" (rs1), "1" (rs2)
                        : "o0", "o1", "o2", "o3", "o4", "o5", "o7",
                          "g1", "g2", "g3", "cc");
 #ifdef DEBUG_MULDIV
@@ -210,7 +213,7 @@ int do_user_muldiv(struct pt_regs *regs, unsigned long pc)
                        "mov    %%o1, %0\n\t"
                        "mov    %%o0, %1\n\t"
                        : "=r" (rs1), "=r" (rs2)
-                       : "r" (regs->y)
+                       : "r" (regs->y), "0" (rs1), "1" (rs2)
                        : "o0", "o1", "o2", "o3", "o4", "o5", "o7",
                          "g1", "g2", "g3", "cc");
 #ifdef DEBUG_MULDIV