OSDN Git Service

* config/alpha/alpha.c (alpha_output_mi_thunk_osf): Allocate insn
authoruros <uros@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 18 Aug 2009 17:50:44 +0000 (17:50 +0000)
committeruros <uros@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 18 Aug 2009 17:50:44 +0000 (17:50 +0000)
locators before emit_insn is called.  Remove assert that
cfun->is_thunk.
(alpha_end_function): Clear crtl->emit structure and free insn
locators if cfun->is_thunk is true.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@150883 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/config/alpha/alpha.c
gcc/testsuite/ChangeLog

index 8228ad2..206656d 100644 (file)
@@ -1,3 +1,11 @@
+2009-08-18  Uros Bizjak  <ubizjak@gmail.com>
+
+       * config/alpha/alpha.c (alpha_output_mi_thunk_osf): Allocate insn
+       locators before emit_insn is called.  Remove assert that
+       cfun->is_thunk.
+       (alpha_end_function): Clear crtl->emit structure and free insn
+       locators if cfun->is_thunk is true.
+
 2009-08-18  Jason Merrill  <jason@redhat.com>
 
        * config/elfos.h (ASM_DECLARE_OBJECT_NAME): Use gnu_unique_object
index 442dd17..e164491 100644 (file)
@@ -8615,7 +8615,10 @@ alpha_end_function (FILE *file, const char *fnname, tree decl ATTRIBUTE_UNUSED)
 
 #if TARGET_ABI_OSF
   if (cfun->is_thunk)
-    free_after_compilation (cfun);
+    {
+      memset (&crtl->emit, 0, sizeof (struct emit_status));
+      insn_locators_free ();
+    }
 #endif
 
 #if TARGET_ABI_OPEN_VMS
@@ -8666,7 +8669,7 @@ alpha_output_mi_thunk_osf (FILE *file, tree thunk_fndecl ATTRIBUTE_UNUSED,
   HOST_WIDE_INT hi, lo;
   rtx this_rtx, insn, funexp;
 
-  gcc_assert (cfun->is_thunk);
+  insn_locators_alloc ();
 
   /* We always require a valid GP.  */
   emit_insn (gen_prologue_ldgp ());
@@ -8744,7 +8747,6 @@ alpha_output_mi_thunk_osf (FILE *file, tree thunk_fndecl ATTRIBUTE_UNUSED,
      instruction scheduling worth while.  Note that use_thunk calls
      assemble_start_function and assemble_end_function.  */
   insn = get_insns ();
-  insn_locators_alloc ();
   shorten_branches (insn);
   final_start_function (insn, file, 1);
   final (insn, file, 1);
index f2583ec..a0c52bd 100644 (file)
@@ -42,7 +42,7 @@
 2009-08-17  Uros Bizjak  <ubizjak@gmail.com>
 
        * lib/target-supports.exp
-       (check_effective_target_vect_cmdline_needed):: Add alpha to the list
+       (check_effective_target_vect_cmdline_needed): Add alpha to the list
        of targets that do not need command line argument to enable SIMD.
 
 2009-08-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>