sh.c (sh_builtin_saveregs): Use copy_to_mode_reg and plus_constant.
authorJ"orn Rennecke <joern.rennecke@st.com>
Thu, 5 May 2005 21:19:19 +0000 (21:19 +0000)
committerKaz Kojima <kkojima@gcc.gnu.org>
Thu, 5 May 2005 21:19:19 +0000 (21:19 +0000)
* config/sh/sh.c (sh_builtin_saveregs): Use copy_to_mode_reg
and plus_constant.

Co-Authored-By: Kaz Kojima <kkojima@gcc.gnu.org>
From-SVN: r99287

gcc/ChangeLog
gcc/config/sh/sh.c

index 3cbd31f0f659010464a0e4c1cf12c36cc4d0ce53..e8e5775b8169e687195db1da073a360c5c7106d3 100644 (file)
@@ -1,3 +1,9 @@
+2005-05-05  J"orn Rennecke  <joern.rennecke@st.com>
+           Kaz Kojima  <kkojima@gcc.gnu.org>
+
+       * config/sh/sh.c (sh_builtin_saveregs): Use copy_to_mode_reg
+       and plus_constant.
+
 2005-05-05  Aldy Hernandez  <aldyh@redhat.com>
 
        * config.gcc: Add .opt magic for the rs6000 ports.
index e5c1dedd13997feecc3f033017c1f149203342cd..20eddb6464cc2bbd50dc13a6c1aadb472379655c 100644 (file)
@@ -6248,10 +6248,9 @@ sh_builtin_saveregs (void)
      saved).
      We emit the moves in reverse order so that we can use predecrement.  */
 
-  fpregs = gen_reg_rtx (Pmode);
-  emit_move_insn (fpregs, XEXP (regbuf, 0));
-  emit_insn (gen_addsi3 (fpregs, fpregs,
-                        GEN_INT (n_floatregs * UNITS_PER_WORD)));
+  fpregs = copy_to_mode_reg (Pmode,
+                            plus_constant (XEXP (regbuf, 0),
+                                            n_floatregs * UNITS_PER_WORD));
   if (TARGET_SH4 || TARGET_SH2A_DOUBLE)
     {
       rtx mem;