From 9ed4207fce7efe340cbdf1017fa0d1271a710487 Mon Sep 17 00:00:00 2001 From: Uros Bizjak Date: Wed, 31 Jan 2007 13:30:20 +0100 Subject: optabs.h (enum optab_index): Add new OTI_isinf. * optabs.h (enum optab_index): Add new OTI_isinf. (isinf_optab): Define corresponding macro. * optabs.c (init_optabs): Initialize isinf_optab. * genopinit.c (optabs): Implement isinf_optab using isinf?f2 patterns. * builtins.c (mathfn_built_in): Handle BUILT_IN_ISINF{,F,L}. (expand_builtin_interclass_mathfn): Expand BUILT_IN_ISINF{,F,L} using isinf_optab. (expand_builtin): Expand BUILT_IN_ISINF{,F,L} using expand_builtin_interclass_mathfn. * reg_stack.c (subst_stack_regs_pat): Handle UNSPEC_FXAM. * config/i386/i386.md (UNSPEC_FXAM): New constant. (fxam2_i387): New insn pattern. (isinf2) New expander to implement isinf, isinff and isinfl built-in functions as x87 inline asm. testsuite/ChangeLog: * gcc.dg/builtins-63.c: New test. From-SVN: r121419 --- gcc/optabs.h | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'gcc/optabs.h') diff --git a/gcc/optabs.h b/gcc/optabs.h index 85d9ca7f32f..d3cfd742136 100644 --- a/gcc/optabs.h +++ b/gcc/optabs.h @@ -204,6 +204,9 @@ enum optab_index /* Copy sign */ OTI_copysign, + /* Test for infinite value */ + OTI_isinf, + /* Compare insn; two operands. */ OTI_cmp, /* Used only for libcalls for unsigned comparisons. */ @@ -370,6 +373,8 @@ extern GTY(()) optab optab_table[OTI_MAX]; #define atan_optab (optab_table[OTI_atan]) #define copysign_optab (optab_table[OTI_copysign]) +#define isinf_optab (optab_table[OTI_isinf]) + #define cmp_optab (optab_table[OTI_cmp]) #define ucmp_optab (optab_table[OTI_ucmp]) #define tst_optab (optab_table[OTI_tst]) -- cgit v1.2.1