From f2b52d4f07cd9aebec65d1255c588abba8a6f544 Mon Sep 17 00:00:00 2001 From: uros Date: Tue, 18 Aug 2009 17:50:44 +0000 Subject: [PATCH] * 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@150883 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/ChangeLog | 8 ++++++++ gcc/config/alpha/alpha.c | 8 +++++--- gcc/testsuite/ChangeLog | 2 +- 3 files changed, 14 insertions(+), 4 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 8228ad2..206656d 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,11 @@ +2009-08-18 Uros Bizjak + + * 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 * config/elfos.h (ASM_DECLARE_OBJECT_NAME): Use gnu_unique_object diff --git a/gcc/config/alpha/alpha.c b/gcc/config/alpha/alpha.c index 442dd17..e164491 100644 --- a/gcc/config/alpha/alpha.c +++ b/gcc/config/alpha/alpha.c @@ -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); diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index f2583ec..a0c52bd 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -42,7 +42,7 @@ 2009-08-17 Uros Bizjak * 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 -- 2.7.4