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/16/2012 10:58 AM, Richard Sandiford wrote:
>> 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
>> 	...
> 
> Ooh, nice (if that's the word).  It certainly fixes the testcase,
> although I had to use -4 rather than -1 in order to defeat
> DWARF2_CIE_DATA_ALIGNMENT.  That should still be OK, since the
> stack is 8-byte aligned.
> 
> GDB doesn't seem to be able to backtrace through this, but that
> has to come second to correctness.  I'll aim to get a tested fix
> in this weekend.

Hmm.  I wonder if GDB would be happier with a val_expression,
rather than the "odd" .cfi_register:

	// DW_CFA_val_expression r29, { DW_OP_reg29 }
	.cfi_escape	0x16,29,1,0x6d


r~


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