This is the mail archive of the gcc@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: Help with cfi markup for MIPS16 hard-float stubs


On 02/15/2012 11:53 AM, Richard Sandiford wrote:
> We then trip:
> 
>       /* Don't let us unwind past the handler context.  */
>       gcc_assert (!match_handler);
> 
> in _Unwind_RaiseException_Phase2.  What's the right thing to do here?
> 

Ug.  The Right Thing is to fix the unwinder so that it identifies
frames by pc+cfa, like gdb does, rather than by cfa alone.  The
assumption has been that a function without a frame can't perform
a call, and can only by unwound to via signals.

As a workaround for 4.7, you can try this hack:

	.cfi_startproc simple
	.cfi_def_cfa	29, -1		# fake cfa one byte below sp
	.cfi_register	29, 29		# "save" sp in itself so we don't use the fake cfa
	move	$18,$31
	.cfi_register 31, 18
	...


r~


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