Commit 1f48e56d by Jan Hubicka Committed by Jan Hubicka

i386.c (standard_80387_constant_p): Accept TFmode constants too.

	* i386.c (standard_80387_constant_p): Accept TFmode constants too.
	(init_ext_80387_constants): Likewise.
	(standard_80387_constant_rtx): Likewise.
	* i386.md (atanxf): Disable for TARGET_128BIT_LONG_LONG
	(atantf): Disable for !TARGET_128BIT_LONG_LONG
	(fyl2x_sfxf3, fyl2x_dfxf3): Accept TFmode operands.
	(fyl2x_xfxf3, fyl2x_tfxf3): Enable/disable as needed.
	(fscale_sfxf3, fscale_dfxf3): Accept TFmode operands.
	(fscale_xfxf3, fscale_tfxf3): Enable/disable as needed.
	(frndinttf2): New.
	(f2xm1tf2): New.
	(exp?f2): Use expsf2_tf when needed.
	(exp?f2_tf): New.
	(exptf): New.

From-SVN: r68693
parent 8f48afc1
Mon Jun 30 09:52:39 CEST 2003 Jan Hubicka <jh@suse.cz>
* i386.c (standard_80387_constant_p): Accept TFmode constants too.
(init_ext_80387_constants): Likewise.
(standard_80387_constant_rtx): Likewise.
* i386.md (atanxf): Disable for TARGET_128BIT_LONG_LONG
(atantf): Disable for !TARGET_128BIT_LONG_LONG
(fyl2x_sfxf3, fyl2x_dfxf3): Accept TFmode operands.
(fyl2x_xfxf3, fyl2x_tfxf3): Enable/disable as needed.
(fscale_sfxf3, fscale_dfxf3): Accept TFmode operands.
(fscale_xfxf3, fscale_tfxf3): Enable/disable as needed.
(frndinttf2): New.
(f2xm1tf2): New.
(exp?f2): Use expsf2_tf when needed.
(exp?f2_tf): New.
(exptf): New.
2003-06-29 Uwe Stieber <uwe@kaos-group.de>
* config.gcc (sh*-*-kaos*): Put tm_file setting in separate case
......
......@@ -4292,7 +4292,8 @@ init_ext_80387_constants ()
{
real_from_string (&ext_80387_constants_table[i], cst[i]);
/* Ensure each constant is rounded to XFmode precision. */
real_convert (&ext_80387_constants_table[i], XFmode,
real_convert (&ext_80387_constants_table[i],
TARGET_128BIT_LONG_DOUBLE ? TFmode : XFmode,
&ext_80387_constants_table[i]);
}
......@@ -4316,7 +4317,7 @@ standard_80387_constant_p (x)
/* For XFmode constants, try to find a special 80387 instruction on
those CPUs that benefit from them. */
if (GET_MODE (x) == XFmode
if ((GET_MODE (x) == XFmode || GET_MODE (x) == TFmode)
&& x86_ext_80387_constants & TUNEMASK)
{
REAL_VALUE_TYPE r;
......@@ -4388,7 +4389,8 @@ standard_80387_constant_rtx (idx)
abort ();
}
return CONST_DOUBLE_FROM_REAL_VALUE (ext_80387_constants_table[i], XFmode);
return CONST_DOUBLE_FROM_REAL_VALUE (ext_80387_constants_table[i],
TARGET_128BIT_LONG_DOUBLE ? TFmode : XFmode);
}
/* Return 1 if X is FP constant we can load to SSE register w/o using memory.
......
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