aboutsummaryrefslogtreecommitdiff
path: root/gcc/reload.c
diff options
context:
space:
mode:
authorAndreas Krebbel <Andreas.Krebbel@de.ibm.com>2011-09-22 18:54:34 +0000
committerAndreas Krebbel <krebbel@gcc.gnu.org>2011-09-22 18:54:34 +0000
commit1907712374ed4ab9ce8446916508fd0bafba971d (patch)
tree7f69972f28e4826c4963b4d12d00f72aaef0ecd1 /gcc/reload.c
parent22deafa84406b3a1106582929c49af55bb45d0ce (diff)
downloadgcc-1907712374ed4ab9ce8446916508fd0bafba971d.zip
gcc-1907712374ed4ab9ce8446916508fd0bafba971d.tar.gz
gcc-1907712374ed4ab9ce8446916508fd0bafba971d.tar.bz2
reload.c (find_reloads): Set operand_mode to Pmode for address operands consisting of just a CONST_INT.
2011-09-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> * reload.c (find_reloads): Set operand_mode to Pmode for address operands consisting of just a CONST_INT. From-SVN: r179099
Diffstat (limited to 'gcc/reload.c')
-rw-r--r--gcc/reload.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/gcc/reload.c b/gcc/reload.c
index c671765..53dcd2d 100644
--- a/gcc/reload.c
+++ b/gcc/reload.c
@@ -2825,6 +2825,13 @@ find_reloads (rtx insn, int replace, int ind_levels, int live_known,
/* Address operands are reloaded in their existing mode,
no matter what is specified in the machine description. */
operand_mode[i] = GET_MODE (recog_data.operand[i]);
+
+ /* If the address is a single CONST_INT pick address mode
+ instead otherwise we will later not know in which mode
+ the reload should be performed. */
+ if (operand_mode[i] == VOIDmode)
+ operand_mode[i] = Pmode;
+
}
else if (code == MEM)
{