Commit 9cf218a3 by Jakub Jelinek Committed by Jakub Jelinek

reg-stack.c (stack_result): Unconditionally use FUNCTION_OUTGOING_VALUE resp.

	* reg-stack.c (stack_result): Unconditionally use
	FUNCTION_OUTGOING_VALUE resp. FUNCTION_VALUE.

	* g++.old-deja/g++.other/regstack.C: New test.

From-SVN: r40457
parent a58dc194
2001-03-14 Jakub Jelinek <jakub@redhat.com>
* reg-stack.c (stack_result): Unconditionally use
FUNCTION_OUTGOING_VALUE resp. FUNCTION_VALUE.
Wed Mar 14 16:36:25 CET 2001 Jan Hubicka <jh@suse.cz>
* expr.c (emit_move_insn_1): Split push of complex value when
......
......@@ -786,11 +786,7 @@ stack_result (decl)
return 0;
result = DECL_RTL (DECL_RESULT (decl));
/* ?!? What is this code supposed to do? Can this code actually
trigger if we kick out aggregates above? */
if (result != 0
&& ! (GET_CODE (result) == REG
&& REGNO (result) < FIRST_PSEUDO_REGISTER))
if (result != 0)
{
#ifdef FUNCTION_OUTGOING_VALUE
result
......
2001-03-14 Jakub Jelinek <jakub@redhat.com>
* g++.old-deja/g++.other/regstack.C: New test.
2001-03-12 Nathan Sidwell <nathan@codesourcery.com>
* g++.old-deja/g++.other/ref4.C: New test.
......
// Special g++ Options: -O2
// Skip if not target: i?86-*-*
inline double foo (double x)
{
register double r;
asm volatile ("fsqrt" : "=t" (r) : "0" (x));
return r;
}
struct X
{
~X() {}
};
int b;
double bar (X x)
{
if (b)
return 1.0;
return 36.0 * foo (36.0);
}
int main ()
{
X x;
if (bar (x) != 216.0)
return 1;
return 0;
}
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