*参照元 [#vc23dc5e]
#backlinks

*説明 [#ec04806b]
-パス: [[gcc-8.3/gcc/lra-spills.c]]

-FIXME: これは何?
--説明


**引数 [#t9a35109]
-rtx *loc
--
--[[gcc-8.3/gcc/rtx]]
-bool final_p
--


**返り値 [#f5d62cd8]
-bool
--


**参考 [#g688eb53]


*実装 [#f26d827c]
 /* Apply alter_subreg for subregs of regs in *LOC.  Use FINAL_P for
    alter_subreg calls. Return true if any subreg of reg is
    processed.  */
 static bool
 alter_subregs (rtx *loc, bool final_p)
 {
   int i;
   rtx x = *loc;
   bool res;
   const char *fmt;
   enum rtx_code code;
 
-
--[[gcc-8.3/gcc/rtx]]
--[[gcc-8.3/gcc/rtx_code]]

   if (x == NULL_RTX)
     return false;
   code = GET_CODE (x);
   if (code == SUBREG && REG_P (SUBREG_REG (x)))
     {
       lra_assert (REGNO (SUBREG_REG (x)) < FIRST_PSEUDO_REGISTER);
       alter_subreg (loc, final_p);
       return true;
     }
-
--[[gcc-8.3/gcc/GET_CODE()]]
--[[gcc-8.3/gcc/REG_P()]]
--[[gcc-8.3/gcc/SUBREG_REG()]]
--[[gcc-8.3/gcc/lra_assert()]]
--[[gcc-8.3/gcc/REGNO()]]
--[[gcc-8.3/gcc/alter_subreg()]]

   fmt = GET_RTX_FORMAT (code);
   res = false;
   for (i = GET_RTX_LENGTH (code) - 1; i >= 0; i--)
     {
       if (fmt[i] == 'e')
 	{
 	  if (alter_subregs (&XEXP (x, i), final_p))
 	    res = true;
 	}
       else if (fmt[i] == 'E')
 	{
 	  int j;
 
 	  for (j = XVECLEN (x, i) - 1; j >= 0; j--)
 	    if (alter_subregs (&XVECEXP (x, i, j), final_p))
 	      res = true;
 	}
     }
-
--[[gcc-8.3/gcc/GET_RTX_FORMAT()]]
--[[gcc-8.3/gcc/GET_RTX_LENGTH()]]
--[[gcc-8.3/gcc/XEXP()]]
--[[gcc-8.3/gcc/XVECLEN()]]
--[[gcc-8.3/gcc/XVECEXP()]]

   return res;
 }


*コメント [#jd29c92c]

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS