From 85b82324d9343b18e62a11dd26e2171374e668b6 Mon Sep 17 00:00:00 2001 From: uros Date: Mon, 12 Aug 2013 17:23:43 +0000 Subject: [PATCH] 2013-08-12 Uros Bizjak * config/i386/i386.md (floatunssi2 expand): Use MODEF mode iterator instead of X87MODEF. 2013-08-12 Perez Read PR target/58132 * config/i386/i386.md (*movabs_1): Add PTR before operand 0 for intel asm alternative. (*movabs_2): Ditto for operand 1. testsuite/ChangeLog: 2013-08-12 Perez Read PR target/58132 * gcc.target/i386/movabs-1.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@201668 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/ChangeLog | 36 +++++++++++++++++++------------- gcc/config/i386/i386.md | 14 ++++++------- gcc/testsuite/ChangeLog | 5 +++++ gcc/testsuite/gcc.target/i386/movabs-1.c | 10 +++++++++ 4 files changed, 44 insertions(+), 21 deletions(-) create mode 100644 gcc/testsuite/gcc.target/i386/movabs-1.c diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 34d18b8fd41..85d0527fef9 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,15 @@ +2013-08-12 Uros Bizjak + + * config/i386/i386.md (floatunssi2 expand): Use MODEF mode + iterator instead of X87MODEF. + +2013-08-12 Perez Read + + PR target/58132 + * config/i386/i386.md (*movabs_1): Add PTR before + operand 0 for intel asm alternative. + (*movabs_2): Ditto for operand 1. + 2013-08-12 James Greenhalgh * config/aarch64/arm_none.h @@ -43,14 +55,13 @@ * 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 - * 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 @@ -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. @@ -96,8 +106,8 @@ 2013-08-09 Jan Hubicka - * 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. @@ -107,8 +117,7 @@ (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. @@ -151,10 +160,8 @@ (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 @@ -250,7 +257,8 @@ * 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. diff --git a/gcc/config/i386/i386.md b/gcc/config/i386/i386.md index b8788746d26..35bb09c6027 100644 --- a/gcc/config/i386/i386.md +++ b/gcc/config/i386/i386.md @@ -2255,7 +2255,7 @@ "TARGET_LP64 && ix86_check_movabs (insn, 0)" "@ movabs{}\t{%1, %P0|[%P0], %1} - mov{}\t{%1, %a0|%a0, %1}" + mov{}\t{%1, %a0| PTR %a0, %1}" [(set_attr "type" "imov") (set_attr "modrm" "0,*") (set_attr "length_address" "8,0") @@ -2269,7 +2269,7 @@ "TARGET_LP64 && ix86_check_movabs (insn, 1)" "@ movabs{}\t{%P1, %0|%0, [%P1]} - mov{}\t{%a1, %0|%0, %a1}" + mov{}\t{%a1, %0|%0, PTR %a1}" [(set_attr "type" "imov") (set_attr "modrm" "0,*") (set_attr "length_address" "8,0") @@ -5037,15 +5037,15 @@ && reload_completed" [(set (match_dup 0) (float:X87MODEF (match_dup 1)))]) -(define_expand "floatuns2" - [(set (match_operand:X87MODEF 0 "register_operand") - (unsigned_float:X87MODEF +(define_expand "floatuns2" + [(set (match_operand:MODEF 0 "register_operand") + (unsigned_float:MODEF (match_operand:SWI12 1 "nonimmediate_operand")))] "!TARGET_64BIT - && SSE_FLOAT_MODE_P (mode) && TARGET_SSE_MATH" + && SSE_FLOAT_MODE_P (mode) && TARGET_SSE_MATH" { operands[1] = convert_to_mode (SImode, operands[1], 1); - emit_insn (gen_floatsi2 (operands[0], operands[1])); + emit_insn (gen_floatsi2 (operands[0], operands[1])); DONE; }) diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 4f0e3f12944..da7f54f1cd9 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2013-08-12 Perez Read + + PR target/58132 + * gcc.target/i386/movabs-1.c: New test. + 2013-08-12 Marek Polacek 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 index 00000000000..75ef8d2a6cb --- /dev/null +++ b/gcc/testsuite/gcc.target/i386/movabs-1.c @@ -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; +} -- 2.11.4.GIT