backport: sse.md (FMAMODEM): New mode iterator.
Backport from mainline 2013-02-08 Uros Bizjak <ubizjak@gmail.com> * config/i386/sse.md (FMAMODEM): New mode iterator. (fma<mode>4, fms<mode>4, fnma<mode>4, fnms<mode>4): Use FMAMODEM mode iterator. Do not use TARGET_SSE_MATH in insn constraint. 2013-02-08 Uros Bizjak <ubizjak@gmail.com> * config/i386/gnu-user.h (TARGET_CAN_SPLIT_STACK): Define only when HAVE_GAS_CFI_PERSONALITY_DIRECTIVE is set. * config/i386/gnu-user64.h (TARGET_CAN_SPLIT_STACK): Ditto. From-SVN: r195912
This commit is contained in:
parent
870c10f2dc
commit
5424afe160
|
@ -1,3 +1,18 @@
|
|||
2013-02-09 Uros Bizjak <ubizjak@gmail.com>
|
||||
|
||||
Backport from mainline
|
||||
2013-02-08 Uros Bizjak <ubizjak@gmail.com>
|
||||
|
||||
* config/i386/sse.md (FMAMODEM): New mode iterator.
|
||||
(fma<mode>4, fms<mode>4, fnma<mode>4, fnms<mode>4): Use FMAMODEM
|
||||
mode iterator. Do not use TARGET_SSE_MATH in insn constraint.
|
||||
|
||||
2013-02-08 Uros Bizjak <ubizjak@gmail.com>
|
||||
|
||||
* config/i386/gnu-user.h (TARGET_CAN_SPLIT_STACK): Define only
|
||||
when HAVE_GAS_CFI_PERSONALITY_DIRECTIVE is set.
|
||||
* config/i386/gnu-user64.h (TARGET_CAN_SPLIT_STACK): Ditto.
|
||||
|
||||
2013-02-08 Michael Meissner <meissner@linux.vnet.ibm.com>
|
||||
|
||||
Backport from mainline
|
||||
|
@ -84,7 +99,7 @@
|
|||
value-range for __builtin_constant_p of function parameters.
|
||||
|
||||
2013-01-08 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
|
||||
PR middle-end/55890
|
||||
* tree-ssa-ccp.c (evaluate_stmt): Use gimple_call_builtin_class_p.
|
||||
|
||||
|
|
|
@ -198,7 +198,11 @@ along with GCC; see the file COPYING3. If not see
|
|||
/* i386 glibc provides __stack_chk_guard in %gs:0x14. */
|
||||
#define TARGET_THREAD_SSP_OFFSET 0x14
|
||||
|
||||
/* We steal the last transactional memory word. */
|
||||
/* We only build the -fsplit-stack support in libgcc if the
|
||||
assembler has full support for the CFI directives. */
|
||||
#if HAVE_GAS_CFI_PERSONALITY_DIRECTIVE
|
||||
#define TARGET_CAN_SPLIT_STACK
|
||||
#endif
|
||||
/* We steal the last transactional memory word. */
|
||||
#define TARGET_THREAD_SPLIT_STACK_OFFSET 0x30
|
||||
#endif
|
||||
|
|
|
@ -121,8 +121,12 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
|
|||
#define TARGET_THREAD_SSP_OFFSET \
|
||||
(TARGET_64BIT ? (TARGET_X32 ? 0x18 : 0x28) : 0x14)
|
||||
|
||||
/* We steal the last transactional memory word. */
|
||||
/* We only build the -fsplit-stack support in libgcc if the
|
||||
assembler has full support for the CFI directives. */
|
||||
#if HAVE_GAS_CFI_PERSONALITY_DIRECTIVE
|
||||
#define TARGET_CAN_SPLIT_STACK
|
||||
#endif
|
||||
/* We steal the last transactional memory word. */
|
||||
#define TARGET_THREAD_SPLIT_STACK_OFFSET \
|
||||
(TARGET_64BIT ? (TARGET_X32 ? 0x40 : 0x70) : 0x30)
|
||||
#endif
|
||||
|
|
|
@ -1719,42 +1719,46 @@
|
|||
;;
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
|
||||
(define_mode_iterator FMAMODE [SF DF V4SF V2DF V8SF V4DF])
|
||||
;; The standard names for scalar FMA are only available with SSE math enabled.
|
||||
(define_mode_iterator FMAMODEM [(SF "TARGET_SSE_MATH")
|
||||
(DF "TARGET_SSE_MATH")
|
||||
V4SF V2DF V8SF V4DF])
|
||||
|
||||
;; The standard names for fma is only available with SSE math enabled.
|
||||
(define_expand "fma<mode>4"
|
||||
[(set (match_operand:FMAMODE 0 "register_operand")
|
||||
(fma:FMAMODE
|
||||
(match_operand:FMAMODE 1 "nonimmediate_operand")
|
||||
(match_operand:FMAMODE 2 "nonimmediate_operand")
|
||||
(match_operand:FMAMODE 3 "nonimmediate_operand")))]
|
||||
"(TARGET_FMA || TARGET_FMA4) && TARGET_SSE_MATH")
|
||||
[(set (match_operand:FMAMODEM 0 "register_operand")
|
||||
(fma:FMAMODEM
|
||||
(match_operand:FMAMODEM 1 "nonimmediate_operand")
|
||||
(match_operand:FMAMODEM 2 "nonimmediate_operand")
|
||||
(match_operand:FMAMODEM 3 "nonimmediate_operand")))]
|
||||
"TARGET_FMA || TARGET_FMA4")
|
||||
|
||||
(define_expand "fms<mode>4"
|
||||
[(set (match_operand:FMAMODE 0 "register_operand")
|
||||
(fma:FMAMODE
|
||||
(match_operand:FMAMODE 1 "nonimmediate_operand")
|
||||
(match_operand:FMAMODE 2 "nonimmediate_operand")
|
||||
(neg:FMAMODE (match_operand:FMAMODE 3 "nonimmediate_operand"))))]
|
||||
"(TARGET_FMA || TARGET_FMA4) && TARGET_SSE_MATH")
|
||||
[(set (match_operand:FMAMODEM 0 "register_operand")
|
||||
(fma:FMAMODEM
|
||||
(match_operand:FMAMODEM 1 "nonimmediate_operand")
|
||||
(match_operand:FMAMODEM 2 "nonimmediate_operand")
|
||||
(neg:FMAMODEM (match_operand:FMAMODEM 3 "nonimmediate_operand"))))]
|
||||
"TARGET_FMA || TARGET_FMA4")
|
||||
|
||||
(define_expand "fnma<mode>4"
|
||||
[(set (match_operand:FMAMODE 0 "register_operand")
|
||||
(fma:FMAMODE
|
||||
(neg:FMAMODE (match_operand:FMAMODE 1 "nonimmediate_operand"))
|
||||
(match_operand:FMAMODE 2 "nonimmediate_operand")
|
||||
(match_operand:FMAMODE 3 "nonimmediate_operand")))]
|
||||
"(TARGET_FMA || TARGET_FMA4) && TARGET_SSE_MATH")
|
||||
[(set (match_operand:FMAMODEM 0 "register_operand")
|
||||
(fma:FMAMODEM
|
||||
(neg:FMAMODEM (match_operand:FMAMODEM 1 "nonimmediate_operand"))
|
||||
(match_operand:FMAMODEM 2 "nonimmediate_operand")
|
||||
(match_operand:FMAMODEM 3 "nonimmediate_operand")))]
|
||||
"TARGET_FMA || TARGET_FMA4")
|
||||
|
||||
(define_expand "fnms<mode>4"
|
||||
[(set (match_operand:FMAMODE 0 "register_operand")
|
||||
(fma:FMAMODE
|
||||
(neg:FMAMODE (match_operand:FMAMODE 1 "nonimmediate_operand"))
|
||||
(match_operand:FMAMODE 2 "nonimmediate_operand")
|
||||
(neg:FMAMODE (match_operand:FMAMODE 3 "nonimmediate_operand"))))]
|
||||
"(TARGET_FMA || TARGET_FMA4) && TARGET_SSE_MATH")
|
||||
[(set (match_operand:FMAMODEM 0 "register_operand")
|
||||
(fma:FMAMODEM
|
||||
(neg:FMAMODEM (match_operand:FMAMODEM 1 "nonimmediate_operand"))
|
||||
(match_operand:FMAMODEM 2 "nonimmediate_operand")
|
||||
(neg:FMAMODEM (match_operand:FMAMODEM 3 "nonimmediate_operand"))))]
|
||||
"TARGET_FMA || TARGET_FMA4")
|
||||
|
||||
;; The builtins for intrinsics are not constrained by SSE math enabled.
|
||||
(define_mode_iterator FMAMODE [SF DF V4SF V2DF V8SF V4DF])
|
||||
|
||||
;; The builtin for intrinsics is not constrained by SSE math enabled.
|
||||
(define_expand "fma4i_fmadd_<mode>"
|
||||
[(set (match_operand:FMAMODE 0 "register_operand")
|
||||
(fma:FMAMODE
|
||||
|
|
Loading…
Reference in New Issue