This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
Re: New trunk breakage on mips-sgi-irix6.2 stage1 compiling libgcc2
- To: "Kaveh R. Ghazi" <ghazi at caip dot rutgers dot edu>
- Subject: Re: New trunk breakage on mips-sgi-irix6.2 stage1 compiling libgcc2
- From: Alexandre Oliva <aoliva at redhat dot com>
- Date: 06 May 2001 08:52:00 -0300
- Cc: gcc-bugs at gcc dot gnu dot org, kenner at vlsi1 dot ultra dot nyu dot edu, mark at codesourcery dot com
- Cc: gcc-patches at gcc dot gnu dot org
- Organization: GCC Team, Red Hat
- References: <200105040247.WAA02728@caip.rutgers.edu>
On May 3, 2001, "Kaveh R. Ghazi" <ghazi@caip.rutgers.edu> wrote:
>> From: Alexandre Oliva <aoliva@redhat.com>
>> Unfortunately, I don't have access to an IRIX box at the moment, and
>> I'm about to take off for tonight, so I won't be able to do much about
>> it in the next 24 hours :-(
> Ok, though lack of access to IRIX shouldn't stop you since I was able
> to trigger it in a cross.
Indeed. Sorry, I had missed this fact in your previous message. I
had thought it was impossible to build a cross compiler to irix
because I lacked the headers and an assembler/linker, but I hadn't
realized I wouldn't even need them, because the crash occurred within
GCC. Doh! :-)
Here's a patch that allowed me to build all of libgcc with and without
-mabi=64, on a x86-hosted compiler. Ok to install?
Index: gcc/ChangeLog
from Alexandre Oliva <aoliva@redhat.com>
* config/mips/mips.md: Sign extend CONST_INTs.
Index: gcc/config/mips/mips.md
--- gcc/config/mips/mips.md~ Sun May 6 08:47:48 2001
+++ gcc/config/mips/mips.md Sun May 6 08:41:41 2001
@@ -2277,7 +2277,10 @@
copy_to_mode_reg (SImode, GEN_INT (-1)),
GEN_INT (0x6)));
emit_insn (gen_div_trap (operands[2],
- copy_to_mode_reg (SImode, GEN_INT (BITMASK_HIGH)),
+ copy_to_mode_reg (SImode,
+ GEN_INT
+ (trunc_int_for_mode
+ (BITMASK_HIGH, SImode))),
GEN_INT (0x6)));
}
@@ -2324,7 +2327,8 @@
copy_to_mode_reg (DImode, GEN_INT (-1)),
GEN_INT (0x6)));
emit_insn (gen_div_trap (operands[2],
- copy_to_mode_reg (DImode, GEN_INT (BITMASK_HIGH)),
+ copy_to_mode_reg (DImode,
+ GEN_INT (BITMASK_HIGH)),
GEN_INT (0x6)));
}
@@ -2535,7 +2539,10 @@
copy_to_mode_reg (SImode, GEN_INT (-1)),
GEN_INT (0x6)));
emit_insn (gen_div_trap (operands[2],
- copy_to_mode_reg (SImode, GEN_INT (BITMASK_HIGH)),
+ copy_to_mode_reg (SImode,
+ GEN_INT
+ (trunc_int_for_mode
+ (BITMASK_HIGH, SImode))),
GEN_INT (0x6)));
}
@@ -2575,7 +2582,8 @@
copy_to_mode_reg (DImode, GEN_INT (-1)),
GEN_INT (0x6)));
emit_insn (gen_div_trap (operands[2],
- copy_to_mode_reg (DImode, GEN_INT (BITMASK_HIGH)),
+ copy_to_mode_reg (DImode,
+ GEN_INT (BITMASK_HIGH)),
GEN_INT (0x6)));
}
@@ -2615,7 +2623,10 @@
copy_to_mode_reg (SImode, GEN_INT (-1)),
GEN_INT (0x6)));
emit_insn (gen_div_trap (operands[2],
- copy_to_mode_reg (SImode, GEN_INT (BITMASK_HIGH)),
+ copy_to_mode_reg (SImode,
+ GEN_INT
+ (trunc_int_for_mode
+ (BITMASK_HIGH, SImode))),
GEN_INT (0x6)));
}
@@ -2655,7 +2666,8 @@
copy_to_mode_reg (DImode, GEN_INT (-1)),
GEN_INT (0x6)));
emit_insn (gen_div_trap (operands[2],
- copy_to_mode_reg (DImode, GEN_INT (BITMASK_HIGH)),
+ copy_to_mode_reg (DImode,
+ GEN_INT (BITMASK_HIGH)),
GEN_INT (0x6)));
}
@@ -4319,7 +4331,8 @@ move\\t%0,%z4\\n\\
emit_label (label1);
emit_move_insn (reg2, gen_rtx_MINUS (DFmode, operands[1], reg1));
- emit_move_insn (reg3, GEN_INT (BITMASK_HIGH));
+ emit_move_insn (reg3, GEN_INT (trunc_int_for_mode
+ (BITMASK_HIGH, SImode)));
emit_insn (gen_fix_truncdfsi2 (operands[0], reg2));
emit_insn (gen_iorsi3 (operands[0], operands[0], reg3));
@@ -4406,7 +4419,8 @@ move\\t%0,%z4\\n\\
emit_label (label1);
emit_move_insn (reg2, gen_rtx_MINUS (SFmode, operands[1], reg1));
- emit_move_insn (reg3, GEN_INT (BITMASK_HIGH));
+ emit_move_insn (reg3, GEN_INT (trunc_int_for_mode (BITMASK_HIGH,
+ SImode)));
emit_insn (gen_fix_truncsfsi2 (operands[0], reg2));
emit_insn (gen_iorsi3 (operands[0], operands[0], reg3));
@@ -5179,7 +5193,9 @@ move\\t%0,%z4\\n\\
(match_dup 3)))]
"
{
- operands[2] = GEN_INT (INTVAL (operands[1]) & BITMASK_UPPER16);
+ operands[2] = GEN_INT (trunc_int_for_mode (INTVAL (operands[1])
+ & BITMASK_UPPER16,
+ SImode));
operands[3] = GEN_INT (INTVAL (operands[1]) & BITMASK_LOWER16);
}")
--
Alexandre Oliva Enjoy Guarana', see http://www.ic.unicamp.br/~oliva/
Red Hat GCC Developer aoliva@{cygnus.com, redhat.com}
CS PhD student at IC-Unicamp oliva@{lsd.ic.unicamp.br, gnu.org}
Free Software Evangelist *Please* write to mailing lists, not to me