Commit 5d3018ce by Richard Henderson Committed by Richard Henderson

i386.c (ix86_function_ok_for_sibcall): Fix test for fp return matching.

        * config/i386/i386.c (ix86_function_ok_for_sibcall): Fix test for
        fp return matching.

From-SVN: r103679
parent dc38a610
2005-08-31 Richard Henderson <rth@redhat.com>
* config/i386/i386.c (ix86_function_ok_for_sibcall): Fix test for
fp return matching.
2005-08-31 Fariborz Jahanian <fjahanian@apple.com> 2005-08-31 Fariborz Jahanian <fjahanian@apple.com>
* expr.c (expand_expr_real_1): Compare size of address * expr.c (expand_expr_real_1): Compare size of address
......
...@@ -1907,7 +1907,6 @@ ix86_function_ok_for_sibcall (tree decl, tree exp) ...@@ -1907,7 +1907,6 @@ ix86_function_ok_for_sibcall (tree decl, tree exp)
{ {
tree func; tree func;
rtx a, b; rtx a, b;
bool one_void, one_reg;
/* If we are generating position-independent code, we cannot sibcall /* If we are generating position-independent code, we cannot sibcall
optimize any indirect call, or a direct call to a global function, optimize any indirect call, or a direct call to a global function,
...@@ -1936,12 +1935,14 @@ ix86_function_ok_for_sibcall (tree decl, tree exp) ...@@ -1936,12 +1935,14 @@ ix86_function_ok_for_sibcall (tree decl, tree exp)
a = ix86_function_value (TREE_TYPE (exp), func, false); a = ix86_function_value (TREE_TYPE (exp), func, false);
b = ix86_function_value (TREE_TYPE (DECL_RESULT (cfun->decl)), b = ix86_function_value (TREE_TYPE (DECL_RESULT (cfun->decl)),
cfun->decl, false); cfun->decl, false);
one_void = (VOID_TYPE_P (TREE_TYPE (exp)) if (STACK_REG_P (a) || STACK_REG_P (b))
|| VOID_TYPE_P (TREE_TYPE (DECL_RESULT (cfun->decl)))); {
one_reg = ((REG_P (a) && !STACK_REG_P (a)) if (!rtx_equal_p (a, b))
|| (REG_P (b) && !STACK_REG_P (b))); return false;
if (!(one_void && one_reg) }
&& !rtx_equal_p (a, b)) else if (VOID_TYPE_P (TREE_TYPE (DECL_RESULT (cfun->decl))))
;
else if (!rtx_equal_p (a, b))
return false; return false;
/* If this call is indirect, we'll need to be able to use a call-clobbered /* If this call is indirect, we'll need to be able to use a call-clobbered
......
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