*参照元 [#i0d07667]
#backlinks

*説明 [#b6aea19f]
-パス: [[gcc-8.3/gcc/]]
-パス: [[gcc-8.3/gcc/common/config/riscv/riscv-common.c]]

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


**引数 [#ra5f7eb1]
-const char *isa
--
-int *flags
--
-location_t loc
--
--[[gcc-8.3/gcc/location_t]]


**返り値 [#ib9ae693]
-なし


**参考 [#tfed9407]


*実装 [#ibcda8b3]
 /* Parse a RISC-V ISA string into an option mask.  Must clear or set all arch
    dependent mask bits, in case more than one -march string is passed.  */
 
 static void
 riscv_parse_arch_string (const char *isa, int *flags, location_t loc)
 {
   riscv_subset_list *subset_list;
   subset_list = riscv_subset_list::parse (isa, loc);
   if (!subset_list)
     return;
 
-
--[[gcc-8.3/gcc/riscv_subset_list]]
--[[gcc-8.3/gcc/riscv_subset_list/parse()]]

   if (subset_list->xlen () == 32)
     *flags &= ~MASK_64BIT;
   else if (subset_list->xlen () == 64)
     *flags |= MASK_64BIT;
 
   *flags &= ~MASK_RVE;
   if (subset_list->lookup ("e"))
     *flags |= MASK_RVE;
 
   *flags &= ~MASK_MUL;
   if (subset_list->lookup ("m"))
     *flags |= MASK_MUL;
 
   *flags &= ~MASK_ATOMIC;
   if (subset_list->lookup ("a"))
     *flags |= MASK_ATOMIC;
 
   *flags &= ~(MASK_HARD_FLOAT | MASK_DOUBLE_FLOAT);
   if (subset_list->lookup ("f"))
     *flags |= MASK_HARD_FLOAT;
 
   if (subset_list->lookup ("d"))
     *flags |= MASK_DOUBLE_FLOAT;
 
   *flags &= ~MASK_RVC;
   if (subset_list->lookup ("c"))
     *flags |= MASK_RVC;
 
   if (current_subset_list)
     delete current_subset_list;
 
   current_subset_list = subset_list;
 }
-
--[[gcc-8.3/gcc/current_subset_list(global)]]
--[[gcc-8.3/gcc/subset_list/xlen()]]
--[[gcc-8.3/gcc/subset_list/lookup()]]


*コメント [#i9ac9beb]

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