summaryrefslogtreecommitdiff
path: root/gcc/config/rs6000/aix.h
diff options
context:
space:
mode:
authorAlan Modra <amodra@bigpond.net.au>2001-09-20 02:35:00 +0000
committerDavid Edelsohn <dje@gcc.gnu.org>2001-09-19 22:35:00 -0400
commit40501e5f72f1d3dc0eac9d392cd8d7a5d4196035 (patch)
tree7111ceeada09720a99749ab721caffa5486a8fd4 /gcc/config/rs6000/aix.h
parente3aafbad8771a52e23ca48f58c7d2ad35381be31 (diff)
downloadgcc-40501e5f72f1d3dc0eac9d392cd8d7a5d4196035.tar.gz
revert: rs6000.c (logical_operand): CONST_INTs are already sign-extended.
2001-09-19 Alan Modra <amodra@bigpond.net.au> David Edelsohn <edelsohn@gnu.org> Revert: * config/rs6000/rs6000.c (logical_operand): CONST_INTs are already sign-extended. * config/rs6000/aix.h (INIT_TARGET_OPTABS): Define TFmode handlers. * config/rs6000/rs6000.c (logical_operand): Streamline comparison with HOST_WIDE_INT. (rs6000_emit_set_long_const): Avoid unnecessary shift. (output_profile_hook): Declare label_name const. * config/rs6000/rs6000.md (boolcsi3, boolcdi3): Change predicates to match constraints. Co-Authored-By: David Edelsohn <edelsohn@gnu.org> From-SVN: r45699
Diffstat (limited to 'gcc/config/rs6000/aix.h')
-rw-r--r--gcc/config/rs6000/aix.h20
1 files changed, 18 insertions, 2 deletions
diff --git a/gcc/config/rs6000/aix.h b/gcc/config/rs6000/aix.h
index 28bf98aab13..d807ee2a9db 100644
--- a/gcc/config/rs6000/aix.h
+++ b/gcc/config/rs6000/aix.h
@@ -146,8 +146,13 @@ Boston, MA 02111-1307, USA. */
/* Define cutoff for using external functions to save floating point. */
#define FP_SAVE_INLINE(FIRST_REG) ((FIRST_REG) == 62 || (FIRST_REG) == 63)
-/* Optabs entries for the int->float routines, using the standard
- AIX names. */
+/* Optabs entries for the int->float routines and quad FP operations
+ using the standard AIX names. */
+#define ADDTF3_LIBCALL "_xlqadd"
+#define DIVTF3_LIBCALL "_xlqdiv"
+#define MULTF3_LIBCALL "_xlqmul"
+#define SUBTF3_LIBCALL "_xlqsub"
+
#define INIT_TARGET_OPTABS \
do { \
if (! TARGET_POWER2 && ! TARGET_POWERPC && TARGET_HARD_FLOAT) \
@@ -155,6 +160,17 @@ Boston, MA 02111-1307, USA. */
fixdfsi_libfunc = init_one_libfunc (RS6000_ITRUNC); \
fixunsdfsi_libfunc = init_one_libfunc (RS6000_UITRUNC); \
} \
+ if (TARGET_HARD_FLOAT) \
+ { \
+ add_optab->handlers[(int) TFmode].libfunc \
+ = init_one_libfunc (ADDTF3_LIBCALL); \
+ sub_optab->handlers[(int) TFmode].libfunc \
+ = init_one_libfunc (SUBTF3_LIBCALL); \
+ smul_optab->handlers[(int) TFmode].libfunc \
+ = init_one_libfunc (MULTF3_LIBCALL); \
+ sdiv_optab->handlers[(int) TFmode].libfunc \
+ = init_one_libfunc (DIVTF3_LIBCALL); \
+ } \
} while (0)
/* AIX always has a TOC. */