Bug#207915: gcc-3.3: [mips/el] Potential solution
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\;%*jr\\t%@%]\";
+ return \"dla\\t%@,%l0\;%*jr\\t%@\";
else
- return \"%[la\\t%@,%l0\;%*jr\\t%@%]\";
+ return \"la\\t%@,%l0\;%*jr\\t%@\";
}
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 to: