Package: gcc-3.3
Version: 1:3.3.2-0pre1
Followup-For: Bug #207915

MontaVista hit the same problem.  Here's the patch (written by Michael
Eager) we're using to avoid it:

diff -urNp gcc-3.3-orig/gcc/config/mips/mips.md gcc-3.3/gcc/config/mips/mips.md
--- gcc-3.3-orig/gcc/config/mips/mips.md        Fri Aug 15 11:16:29 2003
+++ gcc-3.3/gcc/config/mips/mips.md     Mon Aug 18 08:22:37 2003
@@ -104,7 +104,7 @@
 (define_attr "length" ""
    (cond [(eq_attr "type" "branch")
           (cond [(lt (abs (minus (match_dup 1) (plus (pc) (const_int 4))))
-                     (const_int 131072))
+                     (const_int 65536))
                  (const_int 4)
                 (ne (symbol_ref "flag_pic && ! TARGET_EMBEDDED_PIC")
                     (const_int 0))
@@ -9624,7 +9624,7 @@ move\\t%0,%z4\\n\\
                  (const_int 0))
              (lt (abs (minus (match_dup 0)
                              (plus (pc) (const_int 4))))
-                 (const_int 131072)))
+                 (const_int 65536)))
         (const_int 4) (const_int 16)))])
 
 ;; We need a different insn for the mips16, because a mips16 branch


In other words, make GCC think that the maximum length of a short branch is
64K instead of 128K.  It's a big hammer, but it works.

We're also using this:

@@ -9606,9 +9606,9 @@ move\\t%0,%z4\\n\\
       if (get_attr_length (insn) <= 8)
        return \"%*b\\t%l0\";
       else if (Pmode == DImode)
-       return \"%[dla\\t%@,%l0\;[EMAIL PROTECTED]";
+       return \"dla\\t%@,%l0\;[EMAIL PROTECTED]";
       else
-       return \"%[la\\t%@,%l0\;[EMAIL PROTECTED]";
+       return \"la\\t%@,%l0\;[EMAIL PROTECTED]";
     }
   else
     return \"%*j\\t%l0\";

but that just trades one set of assembly warnings for another.  The %[%] are
.set noat/.set at; but la is a macro which expands to a use of $at...

-- System Information:
Debian Release: testing/unstable
Architecture: i386
Kernel: Linux nevyn 2.6.0-test4-nevyn #1 SMP Sat Aug 23 11:19:59 EDT 2003 i686
Locale: LANG=en_US, LC_CTYPE=en_US

Versions of packages gcc-3.3 depends on:
ii  binutils                 2.14.90.0.5-0.2 The GNU assembler, linker and bina
ii  cpp-3.3                  1:3.3.2-0pre1   The GNU C preprocessor
ii  gcc-3.3-base             1:3.3.2-0pre1   The GNU Compiler Collection (base 
ii  libc6                    2.3.2-4         GNU C Library: Shared libraries an
ii  libgcc1                  1:3.3.2-0pre1   GCC support library

-- no debconf information


-- 
Daniel Jacobowitz
MontaVista Software                         Debian GNU/Linux Developer


Reply via email to