[multiple changes]
authorUros Bizjak <uros@gcc.gnu.org>
Mon, 12 Aug 2013 17:23:43 +0000 (19:23 +0200)
committerUros Bizjak <uros@gcc.gnu.org>
Mon, 12 Aug 2013 17:23:43 +0000 (19:23 +0200)
2013-08-12  Uros Bizjak  <ubizjak@gmail.com>

* config/i386/i386.md (floatunssi<mode>2 expand): Use MODEF mode
iterator instead of X87MODEF.

2013-08-12  Perez Read  <netfirewall@gmail.com>

PR target/58132
* config/i386/i386.md (*movabs<mode>_1):  Add <ptrsize> PTR before
operand 0 for intel asm alternative.
(*movabs<mode>_2): Ditto for operand 1.

testsuite/ChangeLog:

2013-08-12  Perez Read  <netfirewall@gmail.com>

         PR target/58132
         * gcc.target/i386/movabs-1.c: New test.

From-SVN: r201668

gcc/ChangeLog
gcc/config/i386/i386.md
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/i386/movabs-1.c [new file with mode: 0644]

index 34d18b8..85d0527 100644 (file)
@@ -1,3 +1,15 @@
+2013-08-12  Uros Bizjak  <ubizjak@gmail.com>
+
+       * config/i386/i386.md (floatunssi<mode>2 expand): Use MODEF mode
+       iterator instead of X87MODEF.
+
+2013-08-12  Perez Read  <netfirewall@gmail.com>
+
+       PR target/58132
+       * config/i386/i386.md (*movabs<mode>_1):  Add <ptrsize> PTR before
+       operand 0 for intel asm alternative.
+       (*movabs<mode>_2): Ditto for operand 1.
+
 2013-08-12  James Greenhalgh  <james.greenhalgh@arm.com>
 
        * config/aarch64/arm_none.h
        * config/i386/i386-opts.h: Include stringopt.def.
        * config/i386/i386.opt: Include stringopt.opt.
        * config/i386/i386.c (ix86_option_override_internal):
-       Override default size based stringop inline strategies
-       with options.
+       Override default size based stringop inline strategies with options.
        * config/i386/i386.c (ix86_parse_stringop_strategy_string):
        New function.
 
 2013-08-09  Jan Hubicka  <jh@suse.cz>
 
-        * ipa-ref.c (ipa_clear_stmts_in_references): Clear lto_stmt_uid, too.
+       * ipa-ref.c (ipa_clear_stmts_in_references): Clear lto_stmt_uid, too.
 
 2013-08-09  Jan Hubicka  <jh@suse.cz>
 
@@ -73,8 +84,7 @@
 
        * cgraph.h (cgraph_node): Add profile_id.
        * value-prof.c (cgraph_node_map): Turn into pointer_map.
-       (init_node_map): Rewrite to handle hashes increas of incremental
-       IDs.
+       (init_node_map): Rewrite to handle hashes increas of incremental IDs.
        (del_node_map): Update.
        (find_func_by_funcdef_no): Replace by ...
        (find_func_by_profile_id): ... this one.
 
 2013-08-09  Jan Hubicka  <jh@suse.cz>
 
-       * cgraphbuild.c (cgraph_rebuild_references): Rebuild only non-speculative
-       refs.
+       * cgraphbuild.c (cgraph_rebuild_references): Rebuild only
+       non-speculative refs.
        * cgraph.c (cgraph_update_edge_in_call_site_hash): New function.
        (cgraph_add_edge_to_call_site_hash): Deal with speculative calls.
        (cgraph_set_call_stmt): Likewise.
        (cgraph_turn_edge_to_speculative): New function.
        (cgraph_speculative_call_info): New function.
        (cgraph_make_edge_direct): Return direct edge; handle speculation.
-       (cgraph_redirect_edge_call_stmt_to_callee): Expand speculative
-       edges.
+       (cgraph_redirect_edge_call_stmt_to_callee): Expand speculative edges.
        (dump_cgraph_node): Dump speculation.
        (verify_edge_count_and_frequency): Accept speculative edges.
        (verify_edge_corresponds_to_fndecl): Handle partitioned cgraph.
        (propagate_controlled_uses): Liekwise.
        * tree-inline.c (copy_bb): Copy speculative edges.
        (redirect_all_calls): New function.
-       (copy_cfg_body): Do redirection after loop info
-       is updated.
-       (delete_unreachable_blocks_update_callgraph): Updadte
-       speculation.
+       (copy_cfg_body): Do redirection after loop info is updated.
+       (delete_unreachable_blocks_update_callgraph): Updadte speculation.
 
 2013-08-09  Jan Hubicka  <jh@suse.cz>
 
        * cgraph.c (verify_cgraph_node): Add basic ipa-ref verifier.
        * ipa-inline-transform.c (inline_transform): Remove all references
        after inlining.
-       * cgraphunit.c (expand_function): Remove all references after expansion.
+       * cgraphunit.c (expand_function): Remove all references after
+       expansion.
        * ipa-ref.c (ipa_ref_has_aliases_p): Fix formatting.
        (ipa_find_reference): Rewrite to iterator.
        (remove_stmt_references): Likewise.
index b878874..35bb09c 100644 (file)
   "TARGET_LP64 && ix86_check_movabs (insn, 0)"
   "@
    movabs{<imodesuffix>}\t{%1, %P0|[%P0], %1}
-   mov{<imodesuffix>}\t{%1, %a0|%a0, %1}"
+   mov{<imodesuffix>}\t{%1, %a0|<iptrsize> PTR %a0, %1}"
   [(set_attr "type" "imov")
    (set_attr "modrm" "0,*")
    (set_attr "length_address" "8,0")
   "TARGET_LP64 && ix86_check_movabs (insn, 1)"
   "@
    movabs{<imodesuffix>}\t{%P1, %0|%0, [%P1]}
-   mov{<imodesuffix>}\t{%a1, %0|%0, %a1}"
+   mov{<imodesuffix>}\t{%a1, %0|%0, <iptrsize> PTR %a1}"
   [(set_attr "type" "imov")
    (set_attr "modrm" "0,*")
    (set_attr "length_address" "8,0")
    && reload_completed"
   [(set (match_dup 0) (float:X87MODEF (match_dup 1)))])
 
-(define_expand "floatuns<SWI12:mode><X87MODEF:mode>2"
-  [(set (match_operand:X87MODEF 0 "register_operand")
-       (unsigned_float:X87MODEF
+(define_expand "floatuns<SWI12:mode><MODEF:mode>2"
+  [(set (match_operand:MODEF 0 "register_operand")
+       (unsigned_float:MODEF
          (match_operand:SWI12 1 "nonimmediate_operand")))]
   "!TARGET_64BIT
-   && SSE_FLOAT_MODE_P (<X87MODEF:MODE>mode) && TARGET_SSE_MATH"
+   && SSE_FLOAT_MODE_P (<MODEF:MODE>mode) && TARGET_SSE_MATH"
 {
   operands[1] = convert_to_mode (SImode, operands[1], 1);
-  emit_insn (gen_floatsi<X87MODEF:mode>2 (operands[0], operands[1]));
+  emit_insn (gen_floatsi<MODEF:mode>2 (operands[0], operands[1]));
   DONE;
 })
 
index 4f0e3f1..da7f54f 100644 (file)
@@ -1,3 +1,8 @@
+2013-08-12  Perez Read  <netfirewall@gmail.com>
+
+         PR target/58132
+         * gcc.target/i386/movabs-1.c: New test.
+
 2013-08-12  Marek Polacek  <polacek@redhat.com>
 
        PR tree-optimization/57980
diff --git a/gcc/testsuite/gcc.target/i386/movabs-1.c b/gcc/testsuite/gcc.target/i386/movabs-1.c
new file mode 100644 (file)
index 0000000..75ef8d2
--- /dev/null
@@ -0,0 +1,10 @@
+/* { dg-do assemble } */
+/* { dg-options "-O2 -masm=intel" } */
+/* { dg-require-effective-target lp64 } */
+/* { dg-require-effective-target masm_intel } */
+
+void
+foo (void)
+{
+  *(volatile long*)0xFFFF800000000000 = -1;
+}