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, Ada, Darwin] Restore PowerPC Darwin Ada bootstrap (after a looong time, it seems).


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.

Attachment: 178608-ppc-darwin-ada-boot.txt
Description: Text document



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