Commit bdb7ddcc by Oleg Endo

sh.c (hi_const): Remove.

	* config/sh/sh.c (hi_const): Remove.
	(find_barrier, sh_reorg): Use satisfies_constraint_I16 instead
	of hi_const.

From-SVN: r186185
parent 10c17a58
2012-04-06 Oleg Endo <olegendo@gcc.gnu.org> 2012-04-06 Oleg Endo <olegendo@gcc.gnu.org>
* config/sh/sh.c (hi_const): Remove.
(find_barrier, sh_reorg): Use satisfies_constraint_I16 instead
of hi_const.
2012-04-06 Oleg Endo <olegendo@gcc.gnu.org>
* config/sh/sh-protos.h (sh_expand_t_scc): Change return type from int * config/sh/sh-protos.h (sh_expand_t_scc): Change return type from int
to bool. to bool.
* config/sh/sh.c (sh_expand_t_scc): Likewise. * config/sh/sh.c (sh_expand_t_scc): Likewise.
......
...@@ -174,7 +174,6 @@ static void force_into (rtx, rtx); ...@@ -174,7 +174,6 @@ static void force_into (rtx, rtx);
static void print_slot (rtx); static void print_slot (rtx);
static rtx add_constant (rtx, enum machine_mode, rtx); static rtx add_constant (rtx, enum machine_mode, rtx);
static void dump_table (rtx, rtx); static void dump_table (rtx, rtx);
static int hi_const (rtx);
static bool broken_move (rtx); static bool broken_move (rtx);
static bool mova_p (rtx); static bool mova_p (rtx);
static rtx find_barrier (int, rtx, rtx); static rtx find_barrier (int, rtx, rtx);
...@@ -4377,17 +4376,6 @@ dump_table (rtx start, rtx barrier) ...@@ -4377,17 +4376,6 @@ dump_table (rtx start, rtx barrier)
pool_window_last = 0; pool_window_last = 0;
} }
/* Return nonzero if constant would be an ok source for a
mov.w instead of a mov.l. */
static int
hi_const (rtx src)
{
return (CONST_INT_P (src)
&& INTVAL (src) >= -32768
&& INTVAL (src) <= 32767);
}
#define MOVA_LABELREF(mova) XVECEXP (SET_SRC (PATTERN (mova)), 0, 0) #define MOVA_LABELREF(mova) XVECEXP (SET_SRC (PATTERN (mova)), 0, 0)
/* Nonzero if the insn is a move instruction which needs to be fixed. */ /* Nonzero if the insn is a move instruction which needs to be fixed. */
...@@ -4667,7 +4655,8 @@ find_barrier (int num_mova, rtx mova, rtx from) ...@@ -4667,7 +4655,8 @@ find_barrier (int num_mova, rtx mova, rtx from)
front end will generate code to load unsigned constants into front end will generate code to load unsigned constants into
HImode targets without properly sign extending them. */ HImode targets without properly sign extending them. */
if (mode == HImode if (mode == HImode
|| (mode == SImode && hi_const (src) && REGNO (dst) != FPUL_REG)) || (mode == SImode && satisfies_constraint_I16 (src)
&& REGNO (dst) != FPUL_REG))
{ {
found_hi += 2; found_hi += 2;
/* We put the short constants before the long constants, so /* We put the short constants before the long constants, so
...@@ -5810,7 +5799,7 @@ sh_reorg (void) ...@@ -5810,7 +5799,7 @@ sh_reorg (void)
dst = SET_DEST (pat); dst = SET_DEST (pat);
mode = GET_MODE (dst); mode = GET_MODE (dst);
if (mode == SImode && hi_const (src) if (mode == SImode && satisfies_constraint_I16 (src)
&& REGNO (dst) != FPUL_REG) && REGNO (dst) != FPUL_REG)
{ {
int offset = 0; int offset = 0;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment