]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
Allow SUBREGs in place of REGs in soft_df_operand and di_operand
authorNick Clifton <nickc@cygnus.com>
Sat, 10 Apr 1999 13:12:10 +0000 (13:12 +0000)
committerNick Clifton <nickc@gcc.gnu.org>
Sat, 10 Apr 1999 13:12:10 +0000 (13:12 +0000)
From-SVN: r26336

gcc/ChangeLog
gcc/config/arm/arm.c

index fc06842aadc7a1569b3c75d9e0466b12ecacd552..f50a947ede269a32248f8130f53adc94116af9f0 100644 (file)
@@ -1,3 +1,8 @@
+Sat Apr 10 13:09:18 1999  Nick Clifton  <nickc@cygnus.com>
+
+       * config/arm/arm.c (di_operand): Allow SUBREGs as well.
+       (soft_df_operand): Allow SUBREGs as well.
+
 Sat Apr 10 06:14:31 1999  Jan Hubicka  <hubicka@paru.cas.cz>
 
        * extend.texi (Assembler Instructions with C Expression Operands):
index 52257bae6fdee20a1eb8d1f18ae43f92b87a8856..d84efe7ce1cb830a2638c5b7a17e4ab9f1167159 100644 (file)
@@ -2192,7 +2192,7 @@ power_of_two_operand (op, mode)
 }
 
 /* Return TRUE for a valid operand of a DImode operation.
-   Either: REG, CONST_DOUBLE or MEM(DImode_address).
+   Either: REG, SUBREG, CONST_DOUBLE or MEM(DImode_address).
    Note that this disallows MEM(REG+REG), but allows
    MEM(PRE/POST_INC/DEC(REG)).  */
 
@@ -2204,6 +2204,9 @@ di_operand (op, mode)
   if (s_register_operand (op, mode))
     return TRUE;
 
+  if (GET_CODE (op) == SUBREG)
+    op = SUBREG_REG (op);
+
   switch (GET_CODE (op))
     {
     case CONST_DOUBLE:
@@ -2219,7 +2222,7 @@ di_operand (op, mode)
 }
 
 /* Return TRUE for a valid operand of a DFmode operation when -msoft-float.
-   Either: REG, CONST_DOUBLE or MEM(DImode_address).
+   Either: REG, SUBREG, CONST_DOUBLE or MEM(DImode_address).
    Note that this disallows MEM(REG+REG), but allows
    MEM(PRE/POST_INC/DEC(REG)).  */
 
@@ -2231,6 +2234,9 @@ soft_df_operand (op, mode)
   if (s_register_operand (op, mode))
     return TRUE;
 
+  if (GET_CODE (op) == SUBREG)
+    op = SUBREG_REG (op);
+
   switch (GET_CODE (op))
     {
     case CONST_DOUBLE: