aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJim Wilson <wilson@gcc.gnu.org>1994-03-11 11:53:44 -0800
committerJim Wilson <wilson@gcc.gnu.org>1994-03-11 11:53:44 -0800
commit8248e2bc367d28c3176b41364c75ad0b59fae666 (patch)
tree1a8a3530444df7e4ecca98a5b4e13f597cbf356e
parent7c699529a5e9fd025827ae62952a4548749e4a06 (diff)
downloadgcc-8248e2bc367d28c3176b41364c75ad0b59fae666.zip
gcc-8248e2bc367d28c3176b41364c75ad0b59fae666.tar.gz
gcc-8248e2bc367d28c3176b41364c75ad0b59fae666.tar.bz2
(TARGET_HARD_QUAD): New macro.
(TARGET_SWITCHES): Add hard-quad-float, soft-quad-float. (TARGET_DEFAULT): Use parentheses. ({ADDTF3,SUBTF3,MULTF3,DIVTF3,SQRTTF2,FLOATSITF2,FIX_TRUNCTFSI2, EXTENDSFTF2,TRUNCTFSF2,EXTENDDFTF2,TRUNCTFDF2,EQTF2,NETF2,GTTF2, GETF2,LTTF2,LETF2}_LIBCALL): New macros. From-SVN: r6751
-rw-r--r--gcc/config/sparc/sparc.h29
1 files changed, 28 insertions, 1 deletions
diff --git a/gcc/config/sparc/sparc.h b/gcc/config/sparc/sparc.h
index 3a915f1..ccac3b6 100644
--- a/gcc/config/sparc/sparc.h
+++ b/gcc/config/sparc/sparc.h
@@ -135,6 +135,11 @@ extern int target_flags;
application software. This is the default. */
#define TARGET_APP_REGS (target_flags & 1024)
+/* Option to select how quad word floating point is implemented.
+ When TARGET_HARD_QUAD is true, we use the hardware quad instructions.
+ Otherwise, we use the SPARC ABI quad library functions. */
+#define TARGET_HARD_QUAD (target_flags & 2048)
+
/* Macro to define tables used to set the flags.
This is a list in braces of pairs in braces,
each pair being { "NAME", VALUE }
@@ -168,10 +173,12 @@ extern int target_flags;
{"f934", 128}, \
{"app-regs", 1024}, \
{"no-app-regs", -1024}, \
+ {"hard-quad-float", 2048}, \
+ {"soft-quad-float", -2048}, \
SUBTARGET_SWITCHES \
{ "", TARGET_DEFAULT}}
-#define TARGET_DEFAULT 1024+3
+#define TARGET_DEFAULT (1024+3)
/* This is meant to be redefined in the host dependent files */
#define SUBTARGET_SWITCHES
@@ -1486,6 +1493,26 @@ extern struct rtx_def *legitimize_pic_address ();
/* .umul is a little faster than .mul. */
#define MULSI3_LIBCALL "*.umul"
+/* Define library calls for quad FP operations. These are all part of the
+ SPARC ABI. */
+#define ADDTF3_LIBCALL "*_Q_add"
+#define SUBTF3_LIBCALL "*_Q_sub"
+#define MULTF3_LIBCALL "*_Q_mul"
+#define DIVTF3_LIBCALL "*_Q_div"
+#define SQRTTF2_LIBCALL "*_Q_sqrt"
+#define FLOATSITF2_LIBCALL "*_Q_itoq"
+#define FIX_TRUNCTFSI2_LIBCALL "*_Q_qtoi"
+#define EXTENDSFTF2_LIBCALL "*_Q_stoq"
+#define TRUNCTFSF2_LIBCALL "*_Q_qtos"
+#define EXTENDDFTF2_LIBCALL "*_Q_dtoq"
+#define TRUNCTFDF2_LIBCALL "*_Q_qtod"
+#define EQTF2_LIBCALL "*_Q_feq"
+#define NETF2_LIBCALL "*_Q_fne"
+#define GTTF2_LIBCALL "*_Q_fgt"
+#define GETF2_LIBCALL "*_Q_fge"
+#define LTTF2_LIBCALL "*_Q_flt"
+#define LETF2_LIBCALL "*_Q_fle"
+
/* Compute the cost of computing a constant rtl expression RTX
whose rtx-code is CODE. The body of this macro is a portion
of a switch statement. If the code is computed here,