diff options
author | Uros Bizjak <ubizjak@gmail.com> | 2009-08-18 19:50:44 +0200 |
---|---|---|
committer | Uros Bizjak <uros@gcc.gnu.org> | 2009-08-18 19:50:44 +0200 |
commit | e72cee90d52ac45df305c99894908df0bf4be392 (patch) | |
tree | e33e4cfed8c9bcec15d96424da15db15f4b299bc /gcc | |
parent | e31bcd1b96a5d6236da6cb4965b112773878e35d (diff) | |
download | gcc-e72cee90d52ac45df305c99894908df0bf4be392.zip gcc-e72cee90d52ac45df305c99894908df0bf4be392.tar.gz gcc-e72cee90d52ac45df305c99894908df0bf4be392.tar.bz2 |
alpha.c (alpha_output_mi_thunk_osf): Allocate insn locators before emit_insn is called.
* 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.
From-SVN: r150883
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 8 | ||||
-rw-r--r-- | gcc/config/alpha/alpha.c | 8 | ||||
-rw-r--r-- | 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 <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 diff --git a/gcc/config/alpha/alpha.c b/gcc/config/alpha/alpha.c index 442dd171..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 <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> |