aboutsummaryrefslogtreecommitdiff
path: root/gcc/config/sh/sh.h
diff options
context:
space:
mode:
authorNick Clifton <nickc@redhat.com>2009-07-06 13:55:09 +0000
committerNick Clifton <nickc@gcc.gnu.org>2009-07-06 13:55:09 +0000
commit7a61cf6f09d0a08de70d1f15f089a79cbec1ab1e (patch)
treef2b4569c011e34c11f7d7c4e6539913dbbd5f507 /gcc/config/sh/sh.h
parent83f63251d92b61d083e7801e762089b372cbcf8e (diff)
downloadgcc-7a61cf6f09d0a08de70d1f15f089a79cbec1ab1e.zip
gcc-7a61cf6f09d0a08de70d1f15f089a79cbec1ab1e.tar.gz
gcc-7a61cf6f09d0a08de70d1f15f089a79cbec1ab1e.tar.bz2
lib1funcs.h (FMOVD_WORKS): Only define if __FMOVD_ENABLED__ is defined.
* config.sh/lib1funcs.h (FMOVD_WORKS): Only define if __FMOVD_ENABLED__ is defined. * config/sh/sh.h (TARGET_FMOVD): Provide a default definition. (MASK_FMOVD): Likewise. (TARGET_CPU_CPP_BUILTINS): Define __FMOVD_ENABLED__ if TARGET_FMOVD is true. * config/sh/sh.md (movdf_i4): For alternative 0 use either one or two fmov instructions depending upon whether TARGET_FMOVD is enabled. (split for DF load from memory into register): Also handle MEMs which consist of REG+DISP addressing. (split for DF store from register to memory): Likewise. (movsf_ie): Always use single fp_mode. * config/sh/sh.c (sh_override_options): Do not automatically enable TARGET_MOVD for the SH2A when supporting doubles - leave that to the -mfmovd command line switch. (broken_move): Do not restrict fldi test to only the SH4 and SH4A. (fldi_ok): Always allow. * config/sh/sh.opt (mfmovd): Remove this switch. * doc/invoke.texi (-mfmovd): Remove documentation of this switch. Co-Authored-By: DJ Delorie <dj@redhat.com> From-SVN: r149283
Diffstat (limited to 'gcc/config/sh/sh.h')
-rw-r--r--gcc/config/sh/sh.h7
1 files changed, 7 insertions, 0 deletions
diff --git a/gcc/config/sh/sh.h b/gcc/config/sh/sh.h
index d8b9a29..d9a4c5f 100644
--- a/gcc/config/sh/sh.h
+++ b/gcc/config/sh/sh.h
@@ -28,6 +28,11 @@ along with GCC; see the file COPYING3. If not see
#define TARGET_VERSION \
fputs (" (Hitachi SH)", stderr);
+#ifndef TARGET_FMOVD
+#define TARGET_FMOVD 0
+#define MASK_FMOVD 0
+#endif
+
/* Unfortunately, insn-attrtab.c doesn't include insn-codes.h. We can't
include it here, because bconfig.h is also included by gencodes.c . */
/* ??? No longer true. */
@@ -91,6 +96,8 @@ do { \
builtin_define ("__SH_FPU_DOUBLE__"); \
if (TARGET_HITACHI) \
builtin_define ("__HITACHI__"); \
+ if (TARGET_FMOVD) \
+ builtin_define ("__FMOVD_ENABLED__"); \
builtin_define (TARGET_LITTLE_ENDIAN \
? "__LITTLE_ENDIAN__" : "__BIG_ENDIAN__"); \
} while (0)