diff options
author | Alan Modra <amodra@bigpond.net.au> | 2001-09-20 02:35:00 +0000 |
---|---|---|
committer | David Edelsohn <dje@gcc.gnu.org> | 2001-09-19 22:35:00 -0400 |
commit | 40501e5f72f1d3dc0eac9d392cd8d7a5d4196035 (patch) | |
tree | 7111ceeada09720a99749ab721caffa5486a8fd4 /gcc/config/rs6000/aix.h | |
parent | e3aafbad8771a52e23ca48f58c7d2ad35381be31 (diff) | |
download | gcc-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.h | 20 |
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. */ |