Hi Richard,
I've now updated this patch.  How does this version look?
Catherine

2013-04-02  Catherine Moore  <c...@codesourcery.com>

        * config/mips/micromips.md (jraddiusp): New pattern.
        * config/mips/mips.c (mips_expand_epilogue): Use the JRADDIUSP
        instruction if possible.

> -----Original Message-----
> From: Richard Sandiford [mailto:rdsandif...@googlemail.com]
> Sent: Thursday, March 14, 2013 5:38 PM
> To: Moore, Catherine
> Cc: gcc-patches@gcc.gnu.org; Rozycki, Maciej
> Subject: Re: [Patch] Add microMIPS jraddiusp support
> 
> "Moore, Catherine" <catherine_mo...@mentor.com> writes:
> > Hi Richard,
> >
> > I updated this patch using your suggestions.  I'm having a problem
> > though, that I'm having trouble nailing.  Building libstdc++ for
> > microMIPS is failing trying to generate dwarf2 CFI info:
> >
> > _Unwind_Ptr base_of_encoded_value(unsigned char,
> _Unwind_Context*)
> > Analyzing compilation unit Performing interprocedural optimizations
> > <*free_lang_data> <visibility> <early_local_cleanups>
> <*free_inline_summary> <whole-program> <profile_estimate> <cp>
> <inline> <pure-const> <static-var>Assembling functions:
> >  _Unwind_Ptr base_of_encoded_value(unsigned char,
> _Unwind_Context*)
> > mm.cc: In function '_Unwind_Ptr base_of_encoded_value(unsigned char,
> _Unwind_Context*)':
> > mm.cc:34:1: internal compiler error: in maybe_record_trace_start, at
> > dwarf2cfi.c:2209
> > 0x8570656 maybe_record_trace_start
> >
> > /scratch/cmoore/umips-elf/src/gcc-4.7-2012.09/gcc/dwarf2cfi.c:2209
> > 0x857113f create_trace_edges
> >
> > /scratch/cmoore/umips-elf/src/gcc-4.7-2012.09/gcc/dwarf2cfi.c:2301
> > 0x8572505 scan_trace
> >
> > /scratch/cmoore/umips-elf/src/gcc-4.7-2012.09/gcc/dwarf2cfi.c:2514
> > 0x85726b3 create_cfi_notes
> >
> > /scratch/cmoore/umips-elf/src/gcc-4.7-2012.09/gcc/dwarf2cfi.c:2540
> > 0x8572703 execute_dwarf2_frame
> >
> > /scratch/cmoore/umips-elf/src/gcc-4.7-2012.09/gcc/dwarf2cfi.c:2897
> > Please submit a full bug report,
> > with preprocessed source if appropriate.
> > Please include the complete backtrace with any bug report.
> > See <https://support.codesourcery.com/GNUToolchain/> for instructions.
> >
> > I've attached a testcase hoping that you might have some ideas.  I
> > plan to keep debugging in the meanwhile.  I was able to reproduce with
> > ./cc1plus -mmicromips -Os mm.ii.
> 
> Ah, sorry, I expect it should be:
> 
>       mips_epilogue_set_cfa (stack_pointer_rtx, 0);
> 
> instead of:
> 
>       mips_epilogue_emit_cfa_restores ();
> 
> It would probably be better to call mips_epilogue_set_cfa immediately after
> emitting the jraddiusp, if that works (in which case making the assert
> conditional is OK).
> 
> Richard

Attachment: jraddiusp.patch
Description: jraddiusp.patch

Reply via email to