aboutsummaryrefslogtreecommitdiff
path: root/gcc/config/m88k
diff options
context:
space:
mode:
authorStan Cox <coxs@gnu.org>1994-10-06 15:13:26 +0000
committerStan Cox <coxs@gnu.org>1994-10-06 15:13:26 +0000
commit9a9a996b7b83ac05a2ff8715051a86a3abf59f39 (patch)
tree94ea0c49ba1c83be3bd3536869ab8f92c2f81866 /gcc/config/m88k
parent22619c3f61d8e60b5a45a75b4edec2d442f0ee02 (diff)
downloadgcc-9a9a996b7b83ac05a2ff8715051a86a3abf59f39.zip
gcc-9a9a996b7b83ac05a2ff8715051a86a3abf59f39.tar.gz
gcc-9a9a996b7b83ac05a2ff8715051a86a3abf59f39.tar.bz2
If operand1 is an invalid PIC address, then legitimize it before doing anything else.
From-SVN: r8228
Diffstat (limited to 'gcc/config/m88k')
-rw-r--r--gcc/config/m88k/m88k.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/gcc/config/m88k/m88k.c b/gcc/config/m88k/m88k.c
index 28ac763..b8ec1bd2 100644
--- a/gcc/config/m88k/m88k.c
+++ b/gcc/config/m88k/m88k.c
@@ -224,6 +224,10 @@ emit_move_sequence (operands, mode, scratch)
register rtx operand0 = operands[0];
register rtx operand1 = operands[1];
+ if (CONSTANT_P (operand1) && flag_pic
+ && pic_address_needs_scratch (operand1))
+ operands[1] = operand1 = legitimize_address (1, operand1, 0, 0);
+
/* Handle most common case first: storing into a register. */
if (register_operand (operand0, mode))
{