summaryrefslogtreecommitdiff
path: root/gcc/optabs.h
diff options
context:
space:
mode:
authoruros <uros@138bc75d-0d04-0410-961f-82ee72b054a4>2007-07-21 21:45:06 +0000
committeruros <uros@138bc75d-0d04-0410-961f-82ee72b054a4>2007-07-21 21:45:06 +0000
commit27eda24040c703c6ecd3eadc44c78eb80098b995 (patch)
tree2e34198e0e1a0497de165774678adb850f5fdf36 /gcc/optabs.h
parentba9293d743480d445cf092990fc04951477c5871 (diff)
downloadgcc-27eda24040c703c6ecd3eadc44c78eb80098b995.tar.gz
* optabs.h (enum optab_index): Add new OTI_signbit.
(signbit_optab): Define corresponding macro. (enum insn_code signbit_optab[]): Remove array. * optabs.c (init_optabs): Initialize signbit_optab using init_optab. (expand_copysign_absneg): If back end provides signbit insn, use it instead of bit operations on floating point argument. * builtins.c (enum insn_code signbit_optab[]): Remove array. (expand_builtin_signbit): Check signbit_optab->handlers[].insn_code for availability of signbit insn. * config/i386/i386.md (signbit<mode>2): New insn pattern to implement signbitf, signbit and signbitl built-ins as inline x87 intrinsics when SSE mode is not active. (isinf<mode>2): Disable for mfpmath=sse,387. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@126813 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/optabs.h')
-rw-r--r--gcc/optabs.h8
1 files changed, 3 insertions, 5 deletions
diff --git a/gcc/optabs.h b/gcc/optabs.h
index aed7a5488a3..d8917ab5734 100644
--- a/gcc/optabs.h
+++ b/gcc/optabs.h
@@ -219,7 +219,8 @@ enum optab_index
OTI_atan,
/* Copy sign */
OTI_copysign,
-
+ /* Signbit */
+ OTI_signbit,
/* Test for infinite value */
OTI_isinf,
@@ -409,7 +410,7 @@ extern GTY(()) optab optab_table[OTI_MAX];
#define tan_optab (optab_table[OTI_tan])
#define atan_optab (optab_table[OTI_atan])
#define copysign_optab (optab_table[OTI_copysign])
-
+#define signbit_optab (optab_table[OTI_signbit])
#define isinf_optab (optab_table[OTI_isinf])
#define cmp_optab (optab_table[OTI_cmp])
@@ -553,9 +554,6 @@ extern enum insn_code vcondu_gen_code[NUM_MACHINE_MODES];
/* This array records the insn_code of insns to perform block moves. */
extern enum insn_code movmem_optab[NUM_MACHINE_MODES];
-/* This array records the insn_code of insns to implement the signbit function. */
-extern enum insn_code signbit_optab[NUM_MACHINE_MODES];
-
/* This array records the insn_code of insns to perform block sets. */
extern enum insn_code setmem_optab[NUM_MACHINE_MODES];