X-Git-Url: http://git.sourceforge.jp/view?p=pf3gnuchains%2Fgcc-fork.git;a=blobdiff_plain;f=gcc%2Fopth-gen.awk;h=92c0e7e3723626215c4f32bb345cde3412b0314d;hp=b5a4c57805822557a36502173c398d9803fd103b;hb=c5e839cb5ef14a22e8078adb0ede837f47d750a0;hpb=14321893db58a975cf737cf18631ce7d0ab28cdf diff --git a/gcc/opth-gen.awk b/gcc/opth-gen.awk index b5a4c578058..92c0e7e3723 100644 --- a/gcc/opth-gen.awk +++ b/gcc/opth-gen.awk @@ -75,24 +75,43 @@ for (i = 0; i < n_opts; i++) { } -masknum = 0 for (i = 0; i < n_opts; i++) { name = opt_args("Mask", flags[i]) + vname = var_name(flags[i]) + mask = "MASK_" + if (vname != "") { + mask = "OPTION_MASK_" + } if (name != "" && !flag_set_p("MaskExists", flags[i])) - print "#define MASK_" name " (1 << " masknum++ ")" + print "#define " mask name " (1 << " masknum[vname]++ ")" } for (i = 0; i < n_extra_masks; i++) { - print "#define MASK_" extra_masks[i] " (1 << " masknum++ ")" + print "#define MASK_" extra_masks[i] " (1 << " masknum[""]++ ")" +} + +for (var in masknum) { + if (masknum[var] > 31) { + if (var == "") + print "#error too many target masks" + else + print "#error too many masks for " var + } } -if (masknum > 31) - print "#error too many target masks" print "" for (i = 0; i < n_opts; i++) { name = opt_args("Mask", flags[i]) + vname = var_name(flags[i]) + macro = "OPTION_" + mask = "OPTION_MASK_" + if (vname == "") { + vname = "target_flags" + macro = "TARGET_" + mask = "MASK_" + } if (name != "" && !flag_set_p("MaskExists", flags[i])) - print "#define TARGET_" name \ - " ((target_flags & MASK_" name ") != 0)" + print "#define " macro name \ + " ((" vname " & " mask name ") != 0)" } for (i = 0; i < n_extra_masks; i++) { print "#define TARGET_" extra_masks[i] \