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>
|
||||
|
||||
* 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)
|
||||
replacement->new = gen_reg_rtx (GET_MODE (var));
|
||||
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
|
||||
tem = fixup_memory_subreg (tem, insn, 0);
|
||||
|
Loading…
Reference in New Issue
Block a user