mips.md: Fix branch length attribute definition.
authorEric Christopher <echristo@redhat.com>
Mon, 3 May 2004 22:28:55 +0000 (22:28 +0000)
committerEric Christopher <echristo@gcc.gnu.org>
Mon, 3 May 2004 22:28:55 +0000 (22:28 +0000)
2004-05-03  Eric Christopher  <echristo@redhat.com>

* config/mips/mips.md: Fix branch length attribute definition.

From-SVN: r81457

gcc/ChangeLog
gcc/config/mips/mips.md

index 155888f8a780c3e3bcc15f4e63d179e755370f15..ef26693da6544b0c66a890c3d737fe1087ae3623 100644 (file)
@@ -1,3 +1,7 @@
+2004-05-03  Eric Christopher  <echristo@redhat.com>
+
+       * config/mips/mips.md: Fix branch length attribute definition.
+
 2004-05-03  Aldy Hernandez  <aldyh@redhat.com>
 
        * config.gcc: Remove --enable-altivec support.
        * config/alpha/alpha.c (alpha_rtx_costs): Fix shiftadd costs.
 
 2004-05-01  Ulrich Weigand  <uweigand@de.ibm.com>
-       
+
        PR middle-end/15054
-       * expr.c (expand_expr_real): Do not call preserve_temp_slots 
+       * expr.c (expand_expr_real): Do not call preserve_temp_slots
        on a TARGET_EXPR temp.
        * function.c (assign_stack_temp_for_type): Set 'keep' flag for
        TARGET_EXPR temp slots.
index 6b9316d6fb9df1f5249c0ae3b76bb26259238e35..0469d4a34692892ff87f856b310db25738f7f954 100644 (file)
          ;; Note that this value does not account for the delay slot
          ;; instruction, whose length is added separately.  If the RTL
          ;; pattern has no explicit delay slot, mips_adjust_insn_length
-         ;; will add the length of the implicit nop.
+         ;; will add the length of the implicit nop.  The values for
+         ;; forward and backward branches will be different as well.
          (eq_attr "type" "branch")
-          (cond [(lt (abs (minus (match_dup 1) (plus (pc) (const_int 4))))
-                     (const_int 131072))
-                 (const_int 4)
+         (cond [(and (le (minus (match_dup 1) (pc)) (const_int 131064))
+                      (le (minus (pc) (match_dup 1)) (const_int 131068)))
+                  (const_int 4)
                 (ne (symbol_ref "flag_pic") (const_int 0))
                 (const_int 24)
                 ] (const_int 12))
@@ -6143,7 +6144,7 @@ sra\t%M0,%M1,%2\n\
 ;; to make it simple enough for combine to understand.
 ;;
 ;; The length here is the worst case: the length of the split version
-;; will be more accurate. 
+;; will be more accurate.
 (define_insn_and_split ""
   [(set (match_operand:SI 0 "register_operand" "=d")
        (lshiftrt:SI (match_operand:SI 1 "memory_operand" "m")