mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-03-21 05:30:24 +08:00
sh.c (multcosts): Check sh_multcost rather than sh_multcost_str.
* config/sh/sh.c (multcosts): Check sh_multcost rather than sh_multcost_str. (sh_register_move_cost): Likewise sh_gettrcost and sh_gettrcost_str. (sh_multcost_str, sh_gettrcost_str, sh_div_str, sh_divsi3_libfunc) (cut2_workaround_str): Delete. * config/sh/sh.h (SUBTARGET_OPTIONS, TARGET_OPTIONS) (TARGET_SH5_CUT2_WORKAROUND, sh_multcost_str, sh_gettrcost_str) (sh_div_str, sh_divsi3_libfunc, cut2_workaround_str): Delete. * config/sh/sh.opt (mcut2-workaround, mdiv=, mdivsi3_libfunc=) (mgettrcost=, multcost=): New options. From-SVN: r100431
This commit is contained in:
parent
5c60a0172d
commit
7dd2f19b2f
@ -1,3 +1,16 @@
|
||||
2005-06-01 Richard Sandiford <rsandifo@redhat.com>
|
||||
|
||||
* config/sh/sh.c (multcosts): Check sh_multcost rather than
|
||||
sh_multcost_str.
|
||||
(sh_register_move_cost): Likewise sh_gettrcost and sh_gettrcost_str.
|
||||
(sh_multcost_str, sh_gettrcost_str, sh_div_str, sh_divsi3_libfunc)
|
||||
(cut2_workaround_str): Delete.
|
||||
* config/sh/sh.h (SUBTARGET_OPTIONS, TARGET_OPTIONS)
|
||||
(TARGET_SH5_CUT2_WORKAROUND, sh_multcost_str, sh_gettrcost_str)
|
||||
(sh_div_str, sh_divsi3_libfunc, cut2_workaround_str): Delete.
|
||||
* config/sh/sh.opt (mcut2-workaround, mdiv=, mdivsi3_libfunc=)
|
||||
(mgettrcost=, multcost=): New options.
|
||||
|
||||
2005-06-01 Richard Sandiford <rsandifo@redhat.com>
|
||||
|
||||
* opts.h (cl_option_state): New structure.
|
||||
|
@ -1965,8 +1965,8 @@ addsubcosts (rtx x)
|
||||
static inline int
|
||||
multcosts (rtx x ATTRIBUTE_UNUSED)
|
||||
{
|
||||
if (*sh_multcost_str)
|
||||
return atoi (sh_multcost_str);
|
||||
if (sh_multcost >= 0)
|
||||
return sh_multcost;
|
||||
if (TARGET_SHMEDIA)
|
||||
/* ??? We have a mul insn, but it has a latency of three, and doesn't
|
||||
accept constants. Ideally, we would use a cost of one or two and
|
||||
@ -10069,8 +10069,8 @@ sh_register_move_cost (enum machine_mode mode,
|
||||
if (TARGET_SHMEDIA
|
||||
&& ((srcclass) == TARGET_REGS || (srcclass) == SIBCALL_REGS))
|
||||
{
|
||||
if (*sh_gettrcost_str)
|
||||
return atoi (sh_gettrcost_str);
|
||||
if (sh_gettrcost >= 0)
|
||||
return sh_gettrcost;
|
||||
else if (!TARGET_PT_FIXED)
|
||||
return 100;
|
||||
}
|
||||
@ -11233,11 +11233,6 @@ shmedia_prepare_call_address (rtx fnaddr, int is_sibcall)
|
||||
return fnaddr;
|
||||
}
|
||||
|
||||
const char *sh_multcost_str = "";
|
||||
const char *sh_gettrcost_str = "";
|
||||
const char *sh_div_str = "";
|
||||
const char *sh_divsi3_libfunc = "";
|
||||
const char *cut2_workaround_str = "";
|
||||
enum sh_divide_strategy_e sh_div_strategy = SH_DIV_STRATEGY_DEFAULT;
|
||||
|
||||
/* This defines the storage for the variable part of a -mboard= option.
|
||||
|
@ -334,26 +334,6 @@ do { \
|
||||
#define TARGET_DEFAULT \
|
||||
(TARGET_CPU_DEFAULT | TARGET_ENDIAN_DEFAULT | TARGET_OPT_DEFAULT)
|
||||
|
||||
#ifndef SUBTARGET_OPTIONS
|
||||
#define SUBTARGET_OPTIONS
|
||||
#endif
|
||||
|
||||
#define TARGET_OPTIONS \
|
||||
{ { "ultcost=", &sh_multcost_str, \
|
||||
N_("Cost to assume for a multiply insn"), 0 }, \
|
||||
{ "gettrcost=", &sh_gettrcost_str, \
|
||||
N_("Cost to assume for gettr insn"), 0 }, \
|
||||
{ "div=", &sh_div_str, \
|
||||
N_("division strategy, one of: call, call2, fp, inv, inv:minlat, inv20u, inv20l, inv:call, inv:call2, inv:fp"), 0 }, \
|
||||
{ "divsi3_libfunc=", &sh_divsi3_libfunc, \
|
||||
N_("Specify name for 32 bit signed division function"), 0 }, \
|
||||
{ "cut2-workaround", &cut2_workaround_str, \
|
||||
N_("Enable SH5 cut2 workaround"), "\1" }, \
|
||||
SUBTARGET_OPTIONS \
|
||||
}
|
||||
|
||||
#define TARGET_SH5_CUT2_WORKAROUND (*cut2_workaround_str)
|
||||
|
||||
#ifndef SH_MULTILIB_CPU_DEFAULT
|
||||
#define SH_MULTILIB_CPU_DEFAULT "m1"
|
||||
#endif
|
||||
@ -3460,12 +3440,6 @@ extern struct rtx_def *sp_switch;
|
||||
|
||||
#define SIMULTANEOUS_PREFETCHES 2
|
||||
|
||||
extern const char *sh_multcost_str;
|
||||
extern const char *sh_gettrcost_str;
|
||||
extern const char *sh_div_str;
|
||||
extern const char *sh_divsi3_libfunc;
|
||||
extern const char *cut2_workaround_str;
|
||||
|
||||
/* FIXME: middle-end support for highpart optimizations is missing. */
|
||||
#define high_life_started reload_in_progress
|
||||
|
||||
|
@ -148,13 +148,29 @@ mbigtable
|
||||
Target Report RejectNegative Mask(BIGTABLE)
|
||||
Generate 32-bit offsets in switch tables
|
||||
|
||||
mcut2-workaround
|
||||
Target RejectNegative Var(TARGET_SH5_CUT2_WORKAROUND)
|
||||
Enable SH5 cut2 workaround
|
||||
|
||||
mdalign
|
||||
Target Report RejectNegative Mask(ALIGN_DOUBLE)
|
||||
Align doubles at 64-bit boundaries
|
||||
|
||||
mdiv=
|
||||
Target RejectNegative Joined Var(sh_div_str) Init("")
|
||||
Division strategy, one of: call, call2, fp, inv, inv:minlat, inv20u, inv20l, inv:call, inv:call2, inv:fp
|
||||
|
||||
mdivsi3_libfunc=
|
||||
Target RejectNegative Joined Var(sh_divsi3_libfunc) Init("")
|
||||
Specify name for 32 bit signed division function
|
||||
|
||||
mfmovd
|
||||
Target RejectNegative Mask(FMOVD) Undocumented
|
||||
|
||||
mgettrcost=
|
||||
Target RejectNegative Joined UInteger Var(sh_gettrcost) Init(-1)
|
||||
Cost to assume for gettr insn
|
||||
|
||||
mhitachi
|
||||
Target Report RejectNegative Mask(HITACHI)
|
||||
Follow Renesas (formerly Hitachi) / SuperH calling conventions
|
||||
@ -209,6 +225,10 @@ mspace
|
||||
Target Report RejectNegative Mask(SMALLCODE)
|
||||
Deprecated. Use -Os instead
|
||||
|
||||
multcost=
|
||||
Target RejectNegative Joined UInteger Var(sh_multcost) Init(-1)
|
||||
Cost to assume for a multiply insn
|
||||
|
||||
musermode
|
||||
Target Report RejectNegative Mask(USERMODE)
|
||||
Generate library function call to invalidate instruction cache entries after fixing trampoline
|
||||
|
Loading…
x
Reference in New Issue
Block a user