LoongArch: Simplify -mexplicit-reloc definitions
Since we do not need printing or manual parsing of this option, (whether in the driver or for target attributes to be supported later) it can be handled in the .opt file framework. gcc/ChangeLog: * config/loongarch/genopts/loongarch-strings: Remove explicit-reloc argument string definitions. * config/loongarch/loongarch-str.h: Same. * config/loongarch/genopts/loongarch.opt.in: Mark -m[no-]explicit-relocs as aliases to -mexplicit-relocs={always,none} * config/loongarch/loongarch.opt: Regenerate. * config/loongarch/loongarch.cc: Same.
This commit is contained in:
parent
39320de286
commit
1d1faf3264
5 changed files with 5 additions and 28 deletions
|
@ -64,9 +64,3 @@ STR_CMODEL_TS tiny-static
|
|||
STR_CMODEL_MEDIUM medium
|
||||
STR_CMODEL_LARGE large
|
||||
STR_CMODEL_EXTREME extreme
|
||||
|
||||
# -mexplicit-relocs
|
||||
OPTSTR_EXPLICIT_RELOCS explicit-relocs
|
||||
STR_EXPLICIT_RELOCS_AUTO auto
|
||||
STR_EXPLICIT_RELOCS_NONE none
|
||||
STR_EXPLICIT_RELOCS_ALWAYS always
|
||||
|
|
|
@ -181,20 +181,20 @@ Name(explicit_relocs) Type(int)
|
|||
The code model option names for -mexplicit-relocs:
|
||||
|
||||
EnumValue
|
||||
Enum(explicit_relocs) String(@@STR_EXPLICIT_RELOCS_AUTO@@) Value(EXPLICIT_RELOCS_AUTO)
|
||||
Enum(explicit_relocs) String(auto) Value(EXPLICIT_RELOCS_AUTO)
|
||||
|
||||
EnumValue
|
||||
Enum(explicit_relocs) String(@@STR_EXPLICIT_RELOCS_NONE@@) Value(EXPLICIT_RELOCS_NONE)
|
||||
Enum(explicit_relocs) String(none) Value(EXPLICIT_RELOCS_NONE)
|
||||
|
||||
EnumValue
|
||||
Enum(explicit_relocs) String(@@STR_EXPLICIT_RELOCS_ALWAYS@@) Value(EXPLICIT_RELOCS_ALWAYS)
|
||||
Enum(explicit_relocs) String(always) Value(EXPLICIT_RELOCS_ALWAYS)
|
||||
|
||||
mexplicit-relocs=
|
||||
Target RejectNegative Joined Enum(explicit_relocs) Var(la_opt_explicit_relocs) Init(M_OPT_UNSET)
|
||||
Use %reloc() assembly operators.
|
||||
|
||||
mexplicit-relocs
|
||||
Target Var(la_opt_explicit_relocs_backward) Init(M_OPT_UNSET)
|
||||
Target Alias(mexplicit-relocs=, always, none)
|
||||
Use %reloc() assembly operators (for backward compatibility).
|
||||
|
||||
mrecip
|
||||
|
|
|
@ -63,11 +63,6 @@ along with GCC; see the file COPYING3. If not see
|
|||
#define STR_CMODEL_LARGE "large"
|
||||
#define STR_CMODEL_EXTREME "extreme"
|
||||
|
||||
#define OPTSTR_EXPLICIT_RELOCS "explicit-relocs"
|
||||
#define STR_EXPLICIT_RELOCS_AUTO "auto"
|
||||
#define STR_EXPLICIT_RELOCS_NONE "none"
|
||||
#define STR_EXPLICIT_RELOCS_ALWAYS "always"
|
||||
|
||||
#define OPTSTR_FRECIPE "frecipe"
|
||||
#define OPTSTR_DIV32 "div32"
|
||||
#define OPTSTR_LAM_BH "lam-bh"
|
||||
|
|
|
@ -7522,18 +7522,6 @@ loongarch_option_override_internal (struct gcc_options *opts,
|
|||
loongarch_update_gcc_opt_status (&la_target, opts, opts_set);
|
||||
loongarch_cpu_option_override (&la_target, opts, opts_set);
|
||||
|
||||
if (la_opt_explicit_relocs != M_OPT_UNSET
|
||||
&& la_opt_explicit_relocs_backward != M_OPT_UNSET)
|
||||
error ("do not use %qs (with %qs) and %qs (without %qs) together",
|
||||
"-mexplicit-relocs=", "=",
|
||||
la_opt_explicit_relocs_backward ? "-mexplicit-relocs"
|
||||
: "-mno-explicit-relocs", "=");
|
||||
|
||||
if (la_opt_explicit_relocs_backward != M_OPT_UNSET)
|
||||
la_opt_explicit_relocs = (la_opt_explicit_relocs_backward
|
||||
? EXPLICIT_RELOCS_ALWAYS
|
||||
: EXPLICIT_RELOCS_NONE);
|
||||
|
||||
if (la_opt_explicit_relocs == M_OPT_UNSET)
|
||||
la_opt_explicit_relocs = (HAVE_AS_EXPLICIT_RELOCS
|
||||
? (loongarch_mrelax
|
||||
|
|
|
@ -202,7 +202,7 @@ Target RejectNegative Joined Enum(explicit_relocs) Var(la_opt_explicit_relocs) I
|
|||
Use %reloc() assembly operators.
|
||||
|
||||
mexplicit-relocs
|
||||
Target Var(la_opt_explicit_relocs_backward) Init(M_OPT_UNSET)
|
||||
Target Alias(mexplicit-relocs=, always, none)
|
||||
Use %reloc() assembly operators (for backward compatibility).
|
||||
|
||||
mrecip
|
||||
|
|
Loading…
Add table
Reference in a new issue