expmed.c (extract_bit_field_1): Avoid clobbering a yet-to-be-used base/index register.
* expmed.c (extract_bit_field_1): Avoid clobbering a yet-to-be-used base/index register. From-SVN: r223885
This commit is contained in:
parent
ec3dfdac4d
commit
7d21a61eb5
|
@ -1,3 +1,8 @@
|
|||
2015-05-28 DJ Delorie <dj@redhat.com>
|
||||
|
||||
* expmed.c (extract_bit_field_1): Avoid clobbering a
|
||||
yet-to-be-used base/index register.
|
||||
|
||||
2015-05-30 Jan Hubicka <hubicka@ucw.cz>
|
||||
|
||||
* alias.c (alias_set_entry_d): Add is_pointer and has_pointer.
|
||||
|
|
|
@ -1616,6 +1616,11 @@ extract_bit_field_1 (rtx str_rtx, unsigned HOST_WIDE_INT bitsize,
|
|||
if (target == 0 || !REG_P (target) || !valid_multiword_target_p (target))
|
||||
target = gen_reg_rtx (mode);
|
||||
|
||||
/* In case we're about to clobber a base register or something
|
||||
(see gcc.c-torture/execute/20040625-1.c). */
|
||||
if (reg_mentioned_p (target, str_rtx))
|
||||
target = gen_reg_rtx (mode);
|
||||
|
||||
/* Indicate for flow that the entire target reg is being set. */
|
||||
emit_clobber (target);
|
||||
|
||||
|
|
Loading…
Reference in New Issue