Commit ddfe2bdb by Oleg Endo

sh-protos.h (fldi_ok): Remove.

gcc/
	* config/sh/sh-protos.h (fldi_ok): Remove.
	* config/sh/sh.c (fldi_ok): Likewise.
	(sh_secondary_reload): Don't use fldi_ok.
	* config/sh/constraints.md (G constraint, H constraint): Don't use
	fldi_ok.

From-SVN: r216320
parent 10568163
2014-10-16 Oleg Endo <olegendo@gcc.gnu.org>
* config/sh/sh-protos.h (fldi_ok): Remove.
* config/sh/sh.c (fldi_ok): Likewise.
(sh_secondary_reload): Don't use fldi_ok.
* config/sh/constraints.md (G constraint, H constraint): Don't use
fldi_ok.
2014-10-16 Martin Liska <mliska@suse.cz> 2014-10-16 Martin Liska <mliska@suse.cz>
* ipa-icf.c (sem_item_optimizer::process_cong_reduction): * ipa-icf.c (sem_item_optimizer::process_cong_reduction):
...@@ -210,12 +210,12 @@ ...@@ -210,12 +210,12 @@
(define_constraint "G" (define_constraint "G"
"Double constant 0." "Double constant 0."
(and (match_code "const_double") (and (match_code "const_double")
(match_test "fp_zero_operand (op) && fldi_ok ()"))) (match_test "fp_zero_operand (op)")))
(define_constraint "H" (define_constraint "H"
"Double constant 1." "Double constant 1."
(and (match_code "const_double") (and (match_code "const_double")
(match_test "fp_one_operand (op) && fldi_ok ()"))) (match_test "fp_one_operand (op)")))
;; Extra constraints ;; Extra constraints
(define_constraint "Q" (define_constraint "Q"
......
...@@ -191,7 +191,6 @@ extern void sh_expand_prologue (void); ...@@ -191,7 +191,6 @@ extern void sh_expand_prologue (void);
extern void sh_expand_epilogue (bool); extern void sh_expand_epilogue (bool);
extern void sh_set_return_address (rtx, rtx); extern void sh_set_return_address (rtx, rtx);
extern int initial_elimination_offset (int, int); extern int initial_elimination_offset (int, int);
extern bool fldi_ok (void);
extern bool sh_hard_regno_rename_ok (unsigned int, unsigned int); extern bool sh_hard_regno_rename_ok (unsigned int, unsigned int);
extern bool sh_cfun_interrupt_handler_p (void); extern bool sh_cfun_interrupt_handler_p (void);
extern bool sh_cfun_resbank_handler_p (void); extern bool sh_cfun_resbank_handler_p (void);
......
...@@ -9875,19 +9875,6 @@ fp_one_operand (rtx op) ...@@ -9875,19 +9875,6 @@ fp_one_operand (rtx op)
return REAL_VALUES_EQUAL (r, dconst1); return REAL_VALUES_EQUAL (r, dconst1);
} }
/* In general mode switching is used. If we are
compiling without -mfmovd, movsf_ie isn't taken into account for
mode switching. We could check in machine_dependent_reorg for
cases where we know we are in single precision mode, but there is
interface to find that out during reload, so we must avoid
choosing an fldi alternative during reload and thus failing to
allocate a scratch register for the constant loading. */
bool
fldi_ok (void)
{
return true;
}
/* Return the TLS type for TLS symbols. */ /* Return the TLS type for TLS symbols. */
enum tls_model enum tls_model
tls_symbolic_operand (rtx op, enum machine_mode mode ATTRIBUTE_UNUSED) tls_symbolic_operand (rtx op, enum machine_mode mode ATTRIBUTE_UNUSED)
...@@ -13106,8 +13093,7 @@ sh_secondary_reload (bool in_p, rtx x, reg_class_t rclass_i, ...@@ -13106,8 +13093,7 @@ sh_secondary_reload (bool in_p, rtx x, reg_class_t rclass_i,
if (REGCLASS_HAS_FP_REG (rclass) if (REGCLASS_HAS_FP_REG (rclass)
&& ! TARGET_SHMEDIA && ! TARGET_SHMEDIA
&& immediate_operand ((x), mode) && immediate_operand ((x), mode)
&& ! ((fp_zero_operand (x) || fp_one_operand (x)) && ! ((fp_zero_operand (x) || fp_one_operand (x)) && mode == SFmode))
&& mode == SFmode && fldi_ok ()))
switch (mode) switch (mode)
{ {
case SFmode: case SFmode:
......
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