mirror of
https://gcc.gnu.org/git/gcc.git
synced 2024-12-12 05:13:50 +08:00
Fix ia64-linux kernel fn_hash() miscompilation.
* function.c (fixup_var_refs_1, case ZERO_EXTRACT): If we have a paradoxical subreg, then directly substitute the replacement and return. From-SVN: r36515
This commit is contained in:
parent
b542c0fb11
commit
226ed43f1e
@ -1,3 +1,9 @@
|
|||||||
|
2000-09-18 Jim Wilson <wilson@cygnus.com>
|
||||||
|
|
||||||
|
* function.c (fixup_var_refs_1, case ZERO_EXTRACT): If we have a
|
||||||
|
paradoxical subreg, then directly substitute the replacement and
|
||||||
|
return.
|
||||||
|
|
||||||
Mon 18-Sep-2000 22:12:44 BST Neil Booth <NeilB@earthling.net>
|
Mon 18-Sep-2000 22:12:44 BST Neil Booth <NeilB@earthling.net>
|
||||||
|
|
||||||
* cpp.texi: Update documentation, including some clarifications,
|
* cpp.texi: Update documentation, including some clarifications,
|
||||||
|
@ -2015,6 +2015,14 @@ fixup_var_refs_1 (var, promoted_mode, loc, insn, replacements)
|
|||||||
if (replacement->new == 0)
|
if (replacement->new == 0)
|
||||||
replacement->new = gen_reg_rtx (GET_MODE (var));
|
replacement->new = gen_reg_rtx (GET_MODE (var));
|
||||||
SUBREG_REG (tem) = replacement->new;
|
SUBREG_REG (tem) = replacement->new;
|
||||||
|
|
||||||
|
/* The following code works only if we have a MEM, so we
|
||||||
|
need to handle the subreg here. We directly substitute
|
||||||
|
it assuming that a subreg must be OK here. We already
|
||||||
|
scheduled a replacement to copy the mem into the
|
||||||
|
subreg. */
|
||||||
|
XEXP (x, 0) = tem;
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
tem = fixup_memory_subreg (tem, insn, 0);
|
tem = fixup_memory_subreg (tem, insn, 0);
|
||||||
|
Loading…
Reference in New Issue
Block a user