[Patch, Ada, Darwin] Restore PowerPC Darwin Ada bootstrap (after a looong time, it seems).

Iain Sandoe developer@sandoe-acoustics.co.uk
Wed Sep 7 07:28:00 GMT 2011


Hi Eric,

On 6 Sep 2011, at 17:17, Mike Stump wrote:

> On Sep 6, 2011, at 1:12 AM, Eric Botcazou wrote:
>>> That's a good question, and one that I haven't got to the bottom  
>>> of -
>>> but the exclusion was there in the original code-base [still in the
>>> vendor's tree too].
>>> (also, the rs6000 pro/epilogue code is not the easiest to navigate).
>>
>> Assuming that this is because the non-local goto handler needs to  
>> find a
>> register saved at a canonical place, you can try !cfun- 
>> >has_nonlocal_label.
>
>> This will subsume the original check !(cfun->calls_setjmp &&  
>> flag_exceptions)
>> as both the regular SJLJ scheme and the GNAT SJLJ scheme use it.
>
> I can't confirm the assumption, but, if it holds, sounds nicer to  
> me, thanks.

Much nicer ... and works...
Bootstrap with ada succeeds + no regressions esp. objc and obj-c++  
which use SjLj for exceptions @m32.
(java not tested).

OK for trunk ( + 4.6 after a re-check and with a suitable variant of  
system-darwin-ppc64.ads )?
Iain

gcc:

	(+Eric)
	* config/rs6000/rs6000.c (compute_save_world_info): Test
	cfun->has_nonlocal_label to determine if the out-of-line save
	world call may be used.
	
ada:

	* gcc-interface/Makefile.in (darwin): Provide powerpc64 system
	implementation.
	* system-darwin-ppc64.ads: New file.

-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: 178608-ppc-darwin-ada-boot.txt
URL: <http://gcc.gnu.org/pipermail/gcc-patches/attachments/20110907/79b63318/attachment.txt>
-------------- next part --------------



More information about the Gcc-patches mailing list