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
jraddiusp.patch
Description: jraddiusp.patch