recog.c (asm_operand_ok): Allow float CONST_VECTORs for 'F'.

* recog.c (asm_operand_ok): Allow float CONST_VECTORs for 'F'.
	(constrain_operands): Likewise.
	* regclass.c (record_reg_classes): Likewise.
	* reload.c (find_reloads): Likewise.
	* doc/md.texi: Likewise.

From-SVN: r55689
This commit is contained in:
J"orn Rennecke 2002-07-23 20:51:00 +00:00 committed by Joern Rennecke
parent 13fd931e49
commit bf7cd75401
5 changed files with 23 additions and 7 deletions

View File

@ -1,4 +1,10 @@
Tue Jul 23 21:02:16 2002 J"orn Rennecke <joern.rennecke@superh.com>
Tue Jul 23 21:49:24 2002 J"orn Rennecke <joern.rennecke@superh.com>
* recog.c (asm_operand_ok): Allow float CONST_VECTORs for 'F'.
(constrain_operands): Likewise.
* regclass.c (record_reg_classes): Likewise.
* reload.c (find_reloads): Likewise.
* doc/md.texi: Likewise.
* reload.c (find_reloads_toplev): Use simplify_gen_subreg.
* simplify-rtx.c (simplify_subreg): When converting to a non-int

View File

@ -845,8 +845,8 @@ that of the host machine (on which the compiler is running).
@cindex @samp{F} in constraint
@item @samp{F}
An immediate floating operand (expression code @code{const_double}) is
allowed.
An immediate floating operand (expression code @code{const_double} or
@code{const_vector}) is allowed.
@cindex @samp{G} in constraint
@cindex @samp{H} in constraint

View File

@ -1745,7 +1745,9 @@ asm_operand_ok (op, constraint)
case 'E':
case 'F':
if (GET_CODE (op) == CONST_DOUBLE)
if (GET_CODE (op) == CONST_DOUBLE
|| (GET_CODE (op) == CONST_VECTOR
&& GET_MODE_CLASS (GET_MODE (op)) == MODE_VECTOR_FLOAT))
return 1;
break;
@ -2513,7 +2515,9 @@ constrain_operands (strict)
case 'E':
case 'F':
if (GET_CODE (op) == CONST_DOUBLE)
if (GET_CODE (op) == CONST_DOUBLE
|| (GET_CODE (op) == CONST_VECTOR
&& GET_MODE_CLASS (GET_MODE (op)) == MODE_VECTOR_FLOAT))
win = 1;
break;

View File

@ -1635,7 +1635,10 @@ record_reg_classes (n_alts, n_ops, ops, modes,
case 'E':
case 'F':
if (GET_CODE (op) == CONST_DOUBLE)
if (GET_CODE (op) == CONST_DOUBLE
|| (GET_CODE (op) == CONST_VECTOR
&& (GET_MODE_CLASS (GET_MODE (op))
== MODE_VECTOR_FLOAT)))
win = 1;
break;

View File

@ -3142,7 +3142,10 @@ find_reloads (insn, replace, ind_levels, live_known, reload_reg_p)
case 'E':
case 'F':
if (GET_CODE (operand) == CONST_DOUBLE)
if (GET_CODE (operand) == CONST_DOUBLE
|| (GET_CODE (operand) == CONST_VECTOR
&& (GET_MODE_CLASS (GET_MODE (operand))
== MODE_VECTOR_FLOAT)))
win = 1;
break;