+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>
* ipa-icf.c (sem_item_optimizer::process_cong_reduction):
(define_constraint "G"
"Double constant 0."
(and (match_code "const_double")
- (match_test "fp_zero_operand (op) && fldi_ok ()")))
+ (match_test "fp_zero_operand (op)")))
(define_constraint "H"
"Double constant 1."
(and (match_code "const_double")
- (match_test "fp_one_operand (op) && fldi_ok ()")))
+ (match_test "fp_one_operand (op)")))
;; Extra constraints
(define_constraint "Q"
extern void sh_expand_epilogue (bool);
extern void sh_set_return_address (rtx, rtx);
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_cfun_interrupt_handler_p (void);
extern bool sh_cfun_resbank_handler_p (void);
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. */
enum tls_model
tls_symbolic_operand (rtx op, enum machine_mode mode ATTRIBUTE_UNUSED)
if (REGCLASS_HAS_FP_REG (rclass)
&& ! TARGET_SHMEDIA
&& immediate_operand ((x), mode)
- && ! ((fp_zero_operand (x) || fp_one_operand (x))
- && mode == SFmode && fldi_ok ()))
+ && ! ((fp_zero_operand (x) || fp_one_operand (x)) && mode == SFmode))
switch (mode)
{
case SFmode: