[multiple changes]

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
This commit is contained in:
Uros Bizjak 2013-08-12 19:23:43 +02:00
parent f4f4204c89
commit c97fd4b856
4 changed files with 44 additions and 21 deletions

View 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
@ -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 <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.
@ -96,8 +106,8 @@
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.
@ -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 <jh@suse.cz>
@ -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.

View File

@ -2255,7 +2255,7 @@
"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")
@ -2269,7 +2269,7 @@
"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")
@ -5037,15 +5037,15 @@
&& 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;
})

View 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

View File

@ -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;
}