]> rtime.felk.cvut.cz Git - fpga/lx-cpu1/gcc-tumbl.git/commitdiff
Backport from mainline
authoruros <uros@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 9 Feb 2013 06:58:54 +0000 (06:58 +0000)
committeruros <uros@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 9 Feb 2013 06:58:54 +0000 (06:58 +0000)
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-4_7-branch@195912 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/config/i386/gnu-user.h
gcc/config/i386/gnu-user64.h
gcc/config/i386/sse.md

index ccc45937858ed8b8dd047b76c44e3da3adb33390..bc85158238213c3c14961d398d0f6dab24ecd5e7 100644 (file)
@@ -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.
 
index 98d0a25cbe36dc2efef48027af682cca4814de76..91318a4783a09dadecc4ce12d3eba9bc9d29d543 100644 (file)
@@ -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
index 954f3b2ff24a273f88f9ccc5aafc7ec960d04cf7..fd96df41e0e7de4301578f05a39213297df78f72 100644 (file)
@@ -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
index bf4b136b9c8183db34a86c77d8929c3648a54ba8..8fc267807a32038b211c0cb6e223ef395b1a22f8 100644 (file)
 ;;
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
-(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