Allow a port to use pseudos as call args; don't put them in the fusage.
authorBernd Schmidt <bernds@codesourcery.com>
Thu, 6 Nov 2014 17:20:05 +0000 (17:20 +0000)
committerBernd Schmidt <bernds@gcc.gnu.org>
Thu, 6 Nov 2014 17:20:05 +0000 (17:20 +0000)
* expr.c (use_reg_mode): Just return for pseudo registers.

From-SVN: r217198

gcc/ChangeLog
gcc/expr.c

index 4e9a739f0ec2ad9422c5dbbaaa253d53830f73ac..085f0b1ec2a67069d95ba9f62003e4a20130ee78 100644 (file)
@@ -1,5 +1,7 @@
 2014-11-06  Bernd Schmidt  <bernds@codesourcery.com>
 
+       * expr.c (use_reg_mode): Just return for pseudo registers.
+
        * combine.c (try_combine): Don't allow a call as one of the source
        insns.
 
index f824cef3894f985ea983c243ade30a12af8fc4f9..203e28f56d18ecd9321c727115f19de5c3908a41 100644 (file)
@@ -2342,7 +2342,10 @@ copy_blkmode_to_reg (machine_mode mode, tree src)
 void
 use_reg_mode (rtx *call_fusage, rtx reg, machine_mode mode)
 {
-  gcc_assert (REG_P (reg) && REGNO (reg) < FIRST_PSEUDO_REGISTER);
+  gcc_assert (REG_P (reg));
+
+  if (!HARD_REGISTER_P (reg))
+    return;
 
   *call_fusage
     = gen_rtx_EXPR_LIST (mode, gen_rtx_USE (VOIDmode, reg), *call_fusage);