*参照元 [#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]