(perform_divsi3, perform_modsi3): Add '&' in constraint for DX;
authorRichard Kenner <kenner@gcc.gnu.org>
Sat, 20 Nov 1993 21:38:20 +0000 (16:38 -0500)
committerRichard Kenner <kenner@gcc.gnu.org>
Sat, 20 Nov 1993 21:38:20 +0000 (16:38 -0500)
explicitly copy arg arg1 to cx.

From-SVN: r6123

gcc/config/i386/perform.h

index e1103a763abdf711cf4e7a341f554e1908c9fb5c..4fdd7b3067404f649fc4d639503a78e8c800c4f7 100644 (file)
@@ -1,5 +1,5 @@
 /* Definitions for AT&T assembler syntax for the Intel 80386.
-   Copyright (C) 1992 Free Software Foundation, Inc.
+   Copyright (C) 1993 Free Software Foundation, Inc.
 
 This file is part of GNU CC.
 
@@ -41,9 +41,11 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.  */
 {                                                                      \
   register int dx asm("dx");                                           \
   register int ax asm("ax");                                           \
+  register int cx asm("cx");                                           \
                                                                        \
   ax = arg0;                                                           \
-  asm ("cltd\n\tidivl %3" : "=a" (ax), "=d" (dx) : "a" (ax), "g" (arg1)); \
+  cx = arg1;                                                           \
+  asm ("cltd\n\tidivl %3" : "=a" (ax), "=&d" (dx) : "a" (ax), "c" (cx)); \
   return ax;                                                           \
 }
 
@@ -62,9 +64,11 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.  */
 {                                                                      \
   register int dx asm("dx");                                           \
   register int ax asm("ax");                                           \
+  register int cx asm("cx");                                           \
                                                                        \
   ax = arg0;                                                           \
-  asm ("cltd\n\tidivl %3" : "=a" (ax), "=d" (dx) : "a" (ax), "g" (arg1)); \
+  cx = arg1;                                                           \
+  asm ("cltd\n\tidivl %3" : "=a" (ax), "=&d" (dx) : "a" (ax), "c" (cx)); \
   return dx;                                                           \
 }