This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] Fix ppc64 unwinding problem


On Mon, Jul 14, 2003 at 11:46:54PM +0200, Jakub Jelinek wrote:
> > Actually, it won't.  DW_CFA_expression is defined to yield an address
> > (not a value), and thus DW_OP_reg2 doesn't give us what we want.
> 
> Isn't it something that should be fixed in the standard?

It does seem that there ought to be some way to describe this, yes.
I don't think it's terribly urgent though.

> 	* unwind-dw2.c (MD_FROB_UPDATE_CONTEXT): Define.
> 	(uw_update_context_1): Use it.
> 	* config/rs6000/rs6000.c (insn_after_throw): Remove.
> 	(rs6000_aix_emit_builtin_unwind_init): Save $r2 to its location
> 	in parent frame if _Unwind_* called directly instead of through
> 	.plt.
> 	(rs6000_emit_eh_toc_restore): Remove.
> 	(rs6000_emit_prologue): Update stack pointer before doing any saving
> 	if current_function_calls_eh_return.  Generate unwind info for $r2.
> 	(rs6000_emit_epilogue): Restore stack pointer after doing all
> 	restoring if current_function_calls_eh_return.  Restore $r2.
> 	* config/rs6000/rs6000-protos.h (rs6000_emit_eh_toc_restore): Remove.
> 	* config/rs6000/rs6000.md (eh_return): Remove call to
> 	rs6000_emit_eh_toc_restore.
> 	* config/rs6000/linux64.h (MD_FROB_UPDATE_CONTEXT): Define.
> 	* config/rs6000/aix.h (MD_FROB_UPDATE_CONTEXT): Define.
> 
> 	* gcc.dg/cleanup-8.c: New test.

Ok.


r~


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]