Commit 3ec6f1a9 by Richard Kenner Committed by Richard Kenner

sparc.c (eligible_for_epilogue_delay): Don't put assignments from FP constants…

sparc.c (eligible_for_epilogue_delay): Don't put assignments from FP constants sonce 'Y' output code can't handle it.

	* config/sparc/sparc.c (eligible_for_epilogue_delay): Don't put
	assignments from FP constants sonce 'Y' output code can't handle it.
	(eligible_for_sibcall_delay): Likewise.

From-SVN: r39854
parent 63c499dc
Sun Feb 18 15:45:17 2001 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> Sun Feb 18 15:45:17 2001 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
* config/sparc/sparc.c (eligible_for_epilogue_delay): Don't put
assignments from FP constants sonce 'Y' output code can't handle it.
(eligible_for_sibcall_delay): Likewise.
* flow.c (print_rtl_and_abort_fcn): Renamed from print_rtl_and_abort. * flow.c (print_rtl_and_abort_fcn): Renamed from print_rtl_and_abort.
Call fancy_abort directly, passing args. Call fancy_abort directly, passing args.
(print_rtl_and_abort): Now a macro, like fancy_abort. (print_rtl_and_abort): Now a macro, like fancy_abort.
......
...@@ -2414,7 +2414,8 @@ eligible_for_epilogue_delay (trial, slot) ...@@ -2414,7 +2414,8 @@ eligible_for_epilogue_delay (trial, slot)
src = SET_SRC (pat); src = SET_SRC (pat);
/* This matches "*return_[qhs]i" or even "*return_di" on TARGET_ARCH64. */ /* This matches "*return_[qhs]i" or even "*return_di" on TARGET_ARCH64. */
if (arith_operand (src, GET_MODE (src))) if (GET_MODE_CLASS (GET_MODE (src)) != MODE_FLOAT
&& arith_operand (src, GET_MODE (src)))
{ {
if (TARGET_ARCH64) if (TARGET_ARCH64)
return GET_MODE_SIZE (GET_MODE (src)) <= GET_MODE_SIZE (DImode); return GET_MODE_SIZE (GET_MODE (src)) <= GET_MODE_SIZE (DImode);
...@@ -2423,7 +2424,8 @@ eligible_for_epilogue_delay (trial, slot) ...@@ -2423,7 +2424,8 @@ eligible_for_epilogue_delay (trial, slot)
} }
/* This matches "*return_di". */ /* This matches "*return_di". */
else if (arith_double_operand (src, GET_MODE (src))) else if (GET_MODE_CLASS (GET_MODE (src)) != MODE_FLOAT
&& arith_double_operand (src, GET_MODE (src)))
return GET_MODE_SIZE (GET_MODE (src)) <= GET_MODE_SIZE (DImode); return GET_MODE_SIZE (GET_MODE (src)) <= GET_MODE_SIZE (DImode);
/* This matches "*return_sf_no_fpu". */ /* This matches "*return_sf_no_fpu". */
...@@ -2520,7 +2522,8 @@ eligible_for_sibcall_delay (trial) ...@@ -2520,7 +2522,8 @@ eligible_for_sibcall_delay (trial)
src = SET_SRC (pat); src = SET_SRC (pat);
if (arith_operand (src, GET_MODE (src))) if (GET_MODE_CLASS (GET_MODE (src)) != MODE_FLOAT
&& arith_operand (src, GET_MODE (src)))
{ {
if (TARGET_ARCH64) if (TARGET_ARCH64)
return GET_MODE_SIZE (GET_MODE (src)) <= GET_MODE_SIZE (DImode); return GET_MODE_SIZE (GET_MODE (src)) <= GET_MODE_SIZE (DImode);
...@@ -2528,7 +2531,8 @@ eligible_for_sibcall_delay (trial) ...@@ -2528,7 +2531,8 @@ eligible_for_sibcall_delay (trial)
return GET_MODE_SIZE (GET_MODE (src)) <= GET_MODE_SIZE (SImode); return GET_MODE_SIZE (GET_MODE (src)) <= GET_MODE_SIZE (SImode);
} }
else if (arith_double_operand (src, GET_MODE (src))) else if (GET_MODE_CLASS (GET_MODE (src)) != MODE_FLOAT
&& arith_double_operand (src, GET_MODE (src)))
return GET_MODE_SIZE (GET_MODE (src)) <= GET_MODE_SIZE (DImode); return GET_MODE_SIZE (GET_MODE (src)) <= GET_MODE_SIZE (DImode);
else if (! TARGET_FPU && restore_operand (SET_DEST (pat), SFmode) else if (! TARGET_FPU && restore_operand (SET_DEST (pat), SFmode)
......
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