configure.ac (HAVE_AS_IX86_REP_LOCK_PREFIX): Also require that the assembler accept...
authorUros Bizjak <uros@gcc.gnu.org>
Tue, 3 Jul 2012 07:15:09 +0000 (09:15 +0200)
committerUros Bizjak <uros@gcc.gnu.org>
Tue, 3 Jul 2012 07:15:09 +0000 (09:15 +0200)
* configure.ac (HAVE_AS_IX86_REP_LOCK_PREFIX): Also require that the
assembler accept 'rep bsf ...', 'rep bsr ...', 'rep ret' and 'rep nop'.
* configure: Regenerated.
* config/i386/i386.md (simple_return_internal_long): Use %;
(ctz<mode>2): Likewise.
(*pause): Likewise.

From-SVN: r189193

gcc/ChangeLog
gcc/config/i386/i386.md
gcc/configure
gcc/configure.ac

index 231e624..392dbce 100644 (file)
@@ -1,3 +1,12 @@
+2012-07-03  Roland McGrath  <mcgrathr@google.com>
+
+       * configure.ac (HAVE_AS_IX86_REP_LOCK_PREFIX): Also require that the
+       assembler accept 'rep bsf ...', 'rep bsr ...', 'rep ret' and 'rep nop'.
+       * configure: Regenerated.
+       * config/i386/i386.md (simple_return_internal_long): Use %;
+       (ctz<mode>2): Likewise.
+       (*pause): Likewise.
+
 2012-07-02  Oleg Endo  <olegendo@gcc.gnu.org>
 
        PR target/51244
@@ -30,8 +39,7 @@
        (gen_inbound_check): Do not release post-dominator info here.
        (process_switch): Reorder code.  Expand as bit tests if it
        looks like a win.
-       (do_switchconv): Release post-dominator info here if something
-       changed.
+       (do_switchconv): Release post-dominator info here if something changed.
        (struct gimple_opt_pass): Verify more.
        * tree.h (expand_switch_using_bit_tests_p): Remove prototype.
 
@@ -42,9 +50,9 @@
        dynamic type change check.
 
 2012-07-02  Richard Guenther  <rguenther@suse.de>
-       Michael Matz  <matz@suse.de>
-       Tobias Grosser <tobias@grosser.es>
-       Sebastian Pop <sebpop@gmail.com>
+           Michael Matz  <matz@suse.de>
+           Tobias Grosser <tobias@grosser.es>
+           Sebastian Pop <sebpop@gmail.com>
 
        * Makefile.in: Remove PPL flags in favor of ISL ones.
        (BACKENDLIBS): Remove PPL libs.
@@ -55,8 +63,7 @@
        (graphite-poly.o): Likewise.
        * configure.ac: Declare ISL vars instead of PPL ones.
        * configure: Regenerated.
-       * doc/install.texi: Replace PPL requirement documentation
-       with ISL one.
+       * doc/install.texi: Replace PPL requirement documentation with ISL one.
        * graphite-blocking.c: Remove PPL code, add ISL equivalent.
        * graphite-clast-to-gimple.c: Likewise.
        * graphite-dependences.c: Likewise.
@@ -76,7 +83,7 @@
 
        Merge from graphite branch
        2011-07-21  Tobias Grosser  <tobias@grosser.es>
-    
+
        * Makefile.in (graphite-clast-to-gimple.o, graphite-cloog-util.o):
        Remove graphite-cloog-util.h.
        * graphite-clast-to-gimple.c (gcc_type_for_iv_of_clast_loop,
        * graphite-clast-to-gimple.h (scop_to_clast): Remove.
 
        2012-01-11  Tobias Grosser <tobias@grosser.es>
-    
+
        * graphite-clast-to-gimple.c (clast_name_to_index,
        clast_name_to_lb_ub, clast_name_to_gcc): Change types.
        (clast_to_gcc_expression): Add clast_expr_name as a new
        (crc32_byte): ... here.  Use it.
        (crc32_unsigned): New.
 
-2012-06-29   Cary Coutant  <ccoutant@google.com>
+2012-06-29  Cary Coutant  <ccoutant@google.com>
 
        * dwarf2out.c (add_pubname_string): Don't check for want_pubnames.
        (gen_subprogram_die): Don't add pubname if want_pubnames is false.
 2012-06-29  Jakub Jelinek  <jakub@redhat.com>
 
        * tree-vect-generic.c (expand_vector_divmod): For even/odd
-       widening multiply, put even always as first argument to
-       VEC_PERM_EXPR.
+       widening multiply, put even always as first argument to VEC_PERM_EXPR.
 
 2012-06-29  Richard Henderson  <rth@redhat.com>
 
index 60aa65a..bdee324 100644 (file)
   [(simple_return)
    (unspec [(const_int 0)] UNSPEC_REP)]
   "reload_completed"
-  "rep\;ret"
+  "rep%; ret"
   [(set_attr "length" "2")
    (set_attr "atom_unit" "jeu")
    (set_attr "length_immediate" "0")
   else if (optimize_function_for_size_p (cfun))
     ;
   else if (TARGET_GENERIC)
-    /* tzcnt expands to rep;bsf and we can use it even if !TARGET_BMI.  */
-    return "rep; bsf{<imodesuffix>}\t{%1, %0|%0, %1}";
+    /* tzcnt expands to 'rep bsf' and we can use it even if !TARGET_BMI.  */
+    return "rep%; bsf{<imodesuffix>}\t{%1, %0|%0, %1}";
 
   return "bsf{<imodesuffix>}\t{%1, %0|%0, %1}";
 }
   [(set (match_operand:BLK 0)
        (unspec:BLK [(match_dup 0)] UNSPEC_PAUSE))]
   ""
-  "rep; nop"
+  "rep%; nop"
   [(set_attr "length" "2")
    (set_attr "memory" "unknown")])
 
index fd3be52..af08a49 100755 (executable)
@@ -24790,6 +24790,10 @@ else
   gcc_cv_as_ix86_rep_lock_prefix=no
   if test x$gcc_cv_as != x; then
     $as_echo 'rep movsl
+        rep ret
+        rep nop
+        rep bsf %ecx, %eax
+        rep bsr %ecx, %eax
         lock addl %edi, (%eax,%esi)
         lock orl $0, (%esp)' > conftest.s
     if { ac_try='$gcc_cv_as $gcc_cv_as_flags  -o conftest.o conftest.s >&5'
index 89644e2..a95adec 100644 (file)
@@ -3641,6 +3641,10 @@ foo:     nop
     gcc_GAS_CHECK_FEATURE([rep and lock prefix],
         gcc_cv_as_ix86_rep_lock_prefix,,,
        [rep movsl
+        rep ret
+        rep nop
+        rep bsf %ecx, %eax
+        rep bsr %ecx, %eax
         lock addl %edi, (%eax,%esi)
         lock orl $0, (%esp)],,
         [AC_DEFINE(HAVE_AS_IX86_REP_LOCK_PREFIX, 1,