This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: RFA: Remove undocumented SH -mfmovd option


Nick Clifton <nickc@redhat.com> wrote:
> Attached is a revised patch which correctly handles big-endian vs 
> little-endian.  Tested with the following multilibs and no regressions:
> 
>      [default]
>      -ml
>      -m2a
>      -m4a
>      -m4a -ml
> 
> OK to apply the patch this time ?

Thanks for doing this!  I've confirmed that there are no
regressions on cross sh4-unknown-linux-gnu with the revised
patch.  Unfortunately native bootstrap on that target fails
with the c++-compat warnings during compiling insn-emit.c:

cc1: warnings being treated as errors
../../LOCAL/trunk/gcc/config/sh/sh.md: In function 'gen_split_632':
../../LOCAL/trunk/gcc/config/sh/sh.md:6061:11: error: enum conversion when passing argument 2 of 'gen_rtx_fmt_ee_stat' is invalid in C++
./genrtl.h:8:12: note: expected 'enum machine_mode' but argument is of type 'int'
../../LOCAL/trunk/gcc/config/sh/sh.md:6085:7: error: enum conversion when passing argument 2 of 'gen_rtx_fmt_ee_stat' is invalid in C++
./genrtl.h:8:12: note: expected 'enum machine_mode' but argument is of type 'int'
../../LOCAL/trunk/gcc/config/sh/sh.md:6088:7: error: enum conversion when passing argument 2 of 'gen_rtx_fmt_ee_stat' is invalid in C++
./genrtl.h:8:12: note: expected 'enum machine_mode' but argument is of type 'int'
../../LOCAL/trunk/gcc/config/sh/sh.md: In function 'gen_split_633':
../../LOCAL/trunk/gcc/config/sh/sh.md:6132:11: error: enum conversion when passing argument 2 of 'gen_rtx_fmt_ee_stat' is invalid in C++
./genrtl.h:8:12: note: expected 'enum machine_mode' but argument is of type 'int'
../../LOCAL/trunk/gcc/config/sh/sh.md:6157:7: error: enum conversion when passing argument 2 of 'gen_rtx_fmt_ee_stat' is invalid in C++
./genrtl.h:8:12: note: expected 'enum machine_mode' but argument is of type 'int'
../../LOCAL/trunk/gcc/config/sh/sh.md:6160:7: error: enum conversion when passing argument 2 of 'gen_rtx_fmt_ee_stat' is invalid in C++
./genrtl.h:8:12: note: expected 'enum machine_mode' but argument is of type 'int'

The mechanical patch below is to silence these warnings.
Your patch is OK with that change.

Regards,
	kaz
--
--- gcc/config/sh/sh.md.orig	2009-07-03 07:40:53.000000000 +0900
+++ gcc/config/sh/sh.md	2009-07-03 07:45:31.000000000 +0900
@@ -6058,7 +6058,7 @@ label:
         {
           XEXP (mem2, 0) = addr = gen_rtx_POST_INC (SImode, addr);
           insn = emit_insn (gen_movsf_ie (reg0, mem2, operands[2]));
-          REG_NOTES (insn) = gen_rtx_EXPR_LIST (REG_INC, XEXP (addr, 0), NULL_RTX);
+          add_reg_note (insn, REG_INC, XEXP (addr, 0));
 	  
 	  emit_insn (gen_movsf_ie (reg1, operands[1], operands[2]));
 
@@ -6082,10 +6082,10 @@ label:
       
     case POST_INC:
       insn = emit_insn (gen_movsf_ie (reg0, operands[1], operands[2]));
-      REG_NOTES (insn) = gen_rtx_EXPR_LIST (REG_INC, XEXP (addr, 0), NULL_RTX);
+      add_reg_note (insn, REG_INC, XEXP (addr, 0));
     
       insn = emit_insn (gen_movsf_ie (reg1, operands[1], operands[2]));
-      REG_NOTES (insn) = gen_rtx_EXPR_LIST (REG_INC, XEXP (addr, 0), NULL_RTX);
+      add_reg_note (insn, REG_INC, XEXP (addr, 0));
       break;
 
     default:
@@ -6129,7 +6129,7 @@ label:
           XEXP (operands[0], 0) = addr = gen_rtx_PRE_DEC (SImode, addr);
 	  
           insn = emit_insn (gen_movsf_ie (operands[0], reg0, operands[2]));
-          REG_NOTES (insn) = gen_rtx_EXPR_LIST (REG_INC, XEXP (addr, 0), NULL_RTX);
+          add_reg_note (insn, REG_INC, XEXP (addr, 0));
 	  break;
         }
       /* Fall through.  */
@@ -6154,10 +6154,10 @@ label:
 	 word to go to the lower address.  */
 
       insn = emit_insn (gen_movsf_ie (operands[0], reg1, operands[2]));
-      REG_NOTES (insn) = gen_rtx_EXPR_LIST (REG_INC, XEXP (addr, 0), NULL_RTX);
+      add_reg_note (insn, REG_INC, XEXP (addr, 0));
 
       insn = emit_insn (gen_movsf_ie (operands[0], reg0, operands[2]));
-      REG_NOTES (insn) = gen_rtx_EXPR_LIST (REG_INC, XEXP (addr, 0), NULL_RTX);
+      add_reg_note (insn, REG_INC, XEXP (addr, 0));
       break;
       
     default:


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]