recog.c (push_operand): Fix error in last change that caused undefined symbol on...
authorRichard Kenner <kenner@vlsi1.ultra.nyu.edu>
Wed, 21 Mar 2001 19:49:54 +0000 (19:49 +0000)
committerRichard Kenner <kenner@gcc.gnu.org>
Wed, 21 Mar 2001 19:49:54 +0000 (14:49 -0500)
* recog.c (push_operand): Fix error in last change that caused
undefined symbol on many targets.

From-SVN: r40712

gcc/ChangeLog
gcc/recog.c

index 042911804ac182de6f1ff275a37cd48c5eebc41e..d0425f7a8a9b1a0300d0c42d3a047be809d33404 100644 (file)
@@ -1,5 +1,8 @@
 Wed Mar 21 14:27:11 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
 
+       * recog.c (push_operand): Fix error in last change that caused
+       undefined symbol on many targets.
+
        * sdbout.c: #include ggc.h.
        (sdbout_init): Move to end of file.
        Call ggc_add_tree_root for anonymous_types.
index 195d3f4c2c91ddd06cf43895de5cb6f484d5d7fb..55f6656a4a3e930b840cd7fc7f4958e20c7bfb2c 100644 (file)
@@ -1350,6 +1350,12 @@ push_operand (op, mode)
      rtx op;
      enum machine_mode mode;
 {
+  unsigned int rounded_size = GET_MODE_SIZE (mode);
+
+#ifdef PUSH_ROUNDING
+  rounded_size = PUSH_ROUNDING (rounded_size);
+#endif
+
   if (GET_CODE (op) != MEM)
     return 0;
 
@@ -1358,20 +1364,19 @@ push_operand (op, mode)
 
   op = XEXP (op, 0);
 
-  if (PUSH_ROUNDING (GET_MODE_SIZE (mode)) == GET_MODE_SIZE (mode))
+  if (rounded_size == GET_MODE_SIZE (mode))
     {
       if (GET_CODE (op) != STACK_PUSH_CODE)
        return 0;
     }
   else
     {
-      int rounded_size = PUSH_ROUNDING (GET_MODE_SIZE (mode));
       if (GET_CODE (op) != PRE_MODIFY
          || GET_CODE (XEXP (op, 1)) != PLUS
          || XEXP (XEXP (op, 1), 0) != XEXP (op, 0)
          || GET_CODE (XEXP (XEXP (op, 1), 1)) != CONST_INT
 #ifdef STACK_GROWS_DOWNWARD
-         || INTVAL (XEXP (XEXP (op, 1), 1)) != -rounded_size
+         || INTVAL (XEXP (XEXP (op, 1), 1)) != - (int) rounded_size
 #else
          || INTVAL (XEXP (XEXP (op, 1), 1)) != rounded_size
 #endif