rs6000.c (output_mi_thunk): Improve test for local branch.
authorDavid Edelsohn <dje@gcc.gnu.org>
Mon, 16 Nov 1998 15:00:10 +0000 (10:00 -0500)
committerDavid Edelsohn <dje@gcc.gnu.org>
Mon, 16 Nov 1998 15:00:10 +0000 (10:00 -0500)
* rs6000.c (output_mi_thunk): Improve test for local branch.
* rs6000.c (output_mi_thunk): Correct test for aggregate values.

From-SVN: r23676

gcc/ChangeLog
gcc/config/rs6000/rs6000.c

index af1367a8bbd51e1a7450b20124b50acca0627ce2..e895e957d4b07aad34f5160cde4ea4a6080bcfbd 100644 (file)
@@ -1,3 +1,11 @@
+Mon Nov 16 17:56:07 1998  David Edelsohn  <edelsohn@mhpcc.edu>
+
+       * rs6000.c (output_mi_thunk): Improve test for local branch.
+
+Mon Nov 16 17:56:07 1998  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
+
+       * rs6000.c (output_mi_thunk): Correct test for aggregate values.
+
 Mon Nov 16 21:02:52 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
 
        * reload1.c (reload_reg_free_before_p): Delete.
@@ -5350,7 +5358,7 @@ Sun Aug 16 01:53:21 1998  Richard Henderson  <rth@cygnus.com>
        * reload.c (find_equiv_reg): Reject equivalences separated
        by a volatile instruction.
 
-Sun Aug 16 00:21:44 1998 Franz Sirl <Franz.Sirl-kernel@lauterbach.com> 
+Sun Aug 16 00:21:44 1998 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
 
         * rs6000/linux.h (CPP_OS_DEFAULT_SPEC): Define.
 
index 9ae69e8b649e48ab066aa146c2825ec23de529e8..6f96bf1eacf062995c9a94277a81dfe5299aa1a7 100644 (file)
@@ -4474,7 +4474,7 @@ output_mi_thunk (file, thunk_fndecl, delta, function)
      int delta;
      tree function;
 {
-  char *this_reg = reg_names[ aggregate_value_p (TREE_TYPE (function)) ? 3 : 4 ];
+  char *this_reg = reg_names[ aggregate_value_p (TREE_TYPE (TREE_TYPE (function))) ? 4 : 3 ];
   char *r0      = reg_names[0];
   char *sp      = reg_names[1];
   char *toc     = reg_names[2];
@@ -4559,7 +4559,7 @@ output_mi_thunk (file, thunk_fndecl, delta, function)
   fprintf (file, "\n");
 
 #else
-  if (TREE_ASM_WRITTEN (function)
+  if (current_file_function_operand (XEXP (DECL_RTL (function), 0))
       && !lookup_attribute ("longcall", TYPE_ATTRIBUTES (TREE_TYPE (function))))
     {
       fprintf (file, "\tb %s", prefix);