Commit bf7cd754 by J"orn Rennecke Committed by Joern Rennecke

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
parent 13fd931e
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
......
......@@ -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
......
......@@ -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;
......
......@@ -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;
......
......@@ -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;
......
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