haifa-sched.c (ENCODE_BLOCKAGE): Don't shift unit too far.
authorRichard Henderson <rth@cygnus.com>
Sun, 7 Mar 1999 11:50:32 +0000 (03:50 -0800)
committerRichard Henderson <rth@gcc.gnu.org>
Sun, 7 Mar 1999 11:50:32 +0000 (03:50 -0800)
        * haifa-sched.c (ENCODE_BLOCKAGE): Don't shift unit too far.
        (print_exp): Special case addition of a constant.
        (print_value) [CONST_INT]: Use HOST_WIDE_INT_PRINT_HEX.

From-SVN: r25629

gcc/ChangeLog
gcc/haifa-sched.c

index 4bb5592e04ff1e10eedad117f48b5458a586235b..a151f23f54a79c3daf50eb3d3d761408634aa05f 100644 (file)
@@ -1,3 +1,9 @@
+Sun Mar  7 11:48:56 1999  Richard Henderson  <rth@cygnus.com>
+
+       * haifa-sched.c (ENCODE_BLOCKAGE): Don't shift unit too far.
+       (print_exp): Special case addition of a constant.
+       (print_value) [CONST_INT]: Use HOST_WIDE_INT_PRINT_HEX.
+
 Sun Mar  7 11:21:02 1999  Richard Henderson  <rth@cygnus.com>
 
        * haifa-sched.c (reg_last_clobbers): New.
index 3e3985163107456d2b6bbb7e9d21e3cffb8cd54c..ca9040c35970b469b1357528779897884fbbb739 100644 (file)
@@ -296,9 +296,9 @@ static unsigned int *insn_blockage;
 #define UNIT_BITS 5
 #define BLOCKAGE_MASK ((1 << BLOCKAGE_BITS) - 1)
 #define ENCODE_BLOCKAGE(U, R)                          \
-((((U) << UNIT_BITS) << BLOCKAGE_BITS                  \
+(((U) << BLOCKAGE_BITS                                 \
   | MIN_BLOCKAGE_COST (R)) << BLOCKAGE_BITS            \
 | MAX_BLOCKAGE_COST (R))
+ | MAX_BLOCKAGE_COST (R))
 #define UNIT_BLOCKED(B) ((B) >> (2 * BLOCKAGE_BITS))
 #define BLOCKAGE_RANGE(B)                                                \
   (((((B) >> BLOCKAGE_BITS) & BLOCKAGE_MASK) << (HOST_BITS_PER_INT / 2)) \
@@ -5832,8 +5832,17 @@ print_exp (buf, x, verbose)
     {
     case PLUS:
       op[0] = XEXP (x, 0);
-      st[1] = "+";
-      op[1] = XEXP (x, 1);
+      if (GET_CODE (XEXP (x, 1)) == CONST_INT
+         && INTVAL (XEXP (x, 1)) < 0)
+       {
+         st[1] = "-";
+         op[1] = GEN_INT (-INTVAL (XEXP (x, 1)));
+       }
+      else
+       {
+         st[1] = "+";
+         op[1] = XEXP (x, 1);
+       }
       break;
     case LO_SUM:
       op[0] = XEXP (x, 0);
@@ -6159,7 +6168,7 @@ print_value (buf, x, verbose)
   switch (GET_CODE (x))
     {
     case CONST_INT:
-      sprintf (t, "0x%lx", (long)INTVAL (x));
+      sprintf (t, HOST_WIDE_INT_PRINT_HEX, INTVAL (x));
       cur = safe_concat (buf, cur, t);
       break;
     case CONST_DOUBLE: