Commit e9c6b69b by Nick Clifton Committed by Nick Clifton

Allow SUBREGs in place of REGs in soft_df_operand and di_operand

From-SVN: r26336
parent 7ac7b28f
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> Sat Apr 10 06:14:31 1999 Jan Hubicka <hubicka@paru.cas.cz>
* extend.texi (Assembler Instructions with C Expression Operands): * extend.texi (Assembler Instructions with C Expression Operands):
......
...@@ -2192,7 +2192,7 @@ power_of_two_operand (op, mode) ...@@ -2192,7 +2192,7 @@ power_of_two_operand (op, mode)
} }
/* Return TRUE for a valid operand of a DImode operation. /* 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 Note that this disallows MEM(REG+REG), but allows
MEM(PRE/POST_INC/DEC(REG)). */ MEM(PRE/POST_INC/DEC(REG)). */
...@@ -2204,6 +2204,9 @@ di_operand (op, mode) ...@@ -2204,6 +2204,9 @@ di_operand (op, mode)
if (s_register_operand (op, mode)) if (s_register_operand (op, mode))
return TRUE; return TRUE;
if (GET_CODE (op) == SUBREG)
op = SUBREG_REG (op);
switch (GET_CODE (op)) switch (GET_CODE (op))
{ {
case CONST_DOUBLE: case CONST_DOUBLE:
...@@ -2219,7 +2222,7 @@ di_operand (op, mode) ...@@ -2219,7 +2222,7 @@ di_operand (op, mode)
} }
/* Return TRUE for a valid operand of a DFmode operation when -msoft-float. /* 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 Note that this disallows MEM(REG+REG), but allows
MEM(PRE/POST_INC/DEC(REG)). */ MEM(PRE/POST_INC/DEC(REG)). */
...@@ -2231,6 +2234,9 @@ soft_df_operand (op, mode) ...@@ -2231,6 +2234,9 @@ soft_df_operand (op, mode)
if (s_register_operand (op, mode)) if (s_register_operand (op, mode))
return TRUE; return TRUE;
if (GET_CODE (op) == SUBREG)
op = SUBREG_REG (op);
switch (GET_CODE (op)) switch (GET_CODE (op))
{ {
case CONST_DOUBLE: case CONST_DOUBLE:
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment