aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNick Clifton <nickc@cambridge.redhat.com>2002-01-16 16:54:21 +0000
committerNick Clifton <nickc@gcc.gnu.org>2002-01-16 16:54:21 +0000
commitab8081c171034a815d0eca70af7c517c8e6f4ba6 (patch)
tree06f03dceeed2de05f3016fd1b2ddb9a3b4af8a93
parent54c5eaff957df6b16d212eab6d0632fefcbb6511 (diff)
downloadgcc-ab8081c171034a815d0eca70af7c517c8e6f4ba6.zip
gcc-ab8081c171034a815d0eca70af7c517c8e6f4ba6.tar.gz
gcc-ab8081c171034a815d0eca70af7c517c8e6f4ba6.tar.bz2
Do not accept the IP register as a DFmode operand
From-SVN: r48914
-rw-r--r--gcc/ChangeLog2
-rw-r--r--gcc/config/arm/arm.c12
2 files changed, 8 insertions, 6 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index ab046ed..ca4a661 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -4,6 +4,8 @@
to frame pointer initialisation instruction.
(thumb_expand_prologue): Add REG_MAYBE_DEAD note to frame pointer
initialisation instruction.
+ (soft_df_operand): Do not accept the IP register.
+ (nonimmediate_soft_df_operand): Do not accept the IP register.
2002-01-16 Jakub Jelinek <jakub@redhat.com>
diff --git a/gcc/config/arm/arm.c b/gcc/config/arm/arm.c
index 8ef7355..f69d751 100644
--- a/gcc/config/arm/arm.c
+++ b/gcc/config/arm/arm.c
@@ -3362,9 +3362,9 @@ soft_df_operand (op, mode)
if (GET_CODE (op) == SUBREG)
op = SUBREG_REG (op);
- if (REGNO (op) == IP_REGNUM)
- return FALSE;
- return TRUE;
+ /* The IP register must not be used, since its higher
+ numbered counterpart is 13 - the stack pointer. */
+ return REGNO (op) != IP_REGNUM;
}
if (mode != VOIDmode && GET_MODE (op) != mode)
@@ -3401,9 +3401,9 @@ nonimmediate_soft_df_operand (op, mode)
if (GET_CODE (op) == SUBREG)
op = SUBREG_REG (op);
- if (REGNO (op) == IP_REGNUM)
- return FALSE;
- return TRUE;
+ /* The IP register must not be used, since its higher
+ numbered counterpart is 13 - the stack pointer. */
+ return REGNO (op) != IP_REGNUM;
}
if (mode != VOIDmode && GET_MODE (op) != mode)