Commit b8105705 by Eric Botcazou Committed by Eric Botcazou

* explow.c (validize_mem): Do not modify the argument in-place.

From-SVN: r241247
parent 80b841ba
2016-10-17 Eric Botcazou <ebotcazou@adacore.com>
* explow.c (validize_mem): Do not modify the argument in-place.
2016-10-17 Thomas Schwinge <thomas@codesourcery.com> 2016-10-17 Thomas Schwinge <thomas@codesourcery.com>
* tree-streamer.c (record_common_node): Explicitly list expected * tree-streamer.c (record_common_node): Explicitly list expected
...@@ -95,7 +99,7 @@ ...@@ -95,7 +99,7 @@
(lookup_descr_for_decl): New function. (lookup_descr_for_decl): New function.
(convert_tramp_reference_op): Deal with descriptors. (convert_tramp_reference_op): Deal with descriptors.
(build_init_call_stmt): New function extracted from... (build_init_call_stmt): New function extracted from...
(finalize_nesting_tree_1): ...here. Adjust and deal withdescriptors. (finalize_nesting_tree_1): ...here. Adjust and deal with descriptors.
* defaults.h (FUNCTION_ALIGNMENT): Define. * defaults.h (FUNCTION_ALIGNMENT): Define.
(TRAMPOLINE_ALIGNMENT): Set to above instead of FUNCTION_BOUNDARY. (TRAMPOLINE_ALIGNMENT): Set to above instead of FUNCTION_BOUNDARY.
* config/i386/i386.h (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): Define. * config/i386/i386.h (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): Define.
......
...@@ -496,9 +496,8 @@ memory_address_addr_space (machine_mode mode, rtx x, addr_space_t as) ...@@ -496,9 +496,8 @@ memory_address_addr_space (machine_mode mode, rtx x, addr_space_t as)
return x; return x;
} }
/* If REF is a MEM with an invalid address, change it into a valid address. /* Convert a mem ref into one with a valid memory address.
Pass through anything else unchanged. REF must be an unshared rtx and Pass through anything else unchanged. */
the function may modify it in-place. */
rtx rtx
validize_mem (rtx ref) validize_mem (rtx ref)
...@@ -510,7 +509,8 @@ validize_mem (rtx ref) ...@@ -510,7 +509,8 @@ validize_mem (rtx ref)
MEM_ADDR_SPACE (ref))) MEM_ADDR_SPACE (ref)))
return ref; return ref;
return replace_equiv_address (ref, XEXP (ref, 0), true); /* Don't alter REF itself, since that is probably a stack slot. */
return replace_equiv_address (ref, XEXP (ref, 0));
} }
/* If X is a memory reference to a member of an object block, try rewriting /* If X is a memory reference to a member of an object block, try rewriting
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment