Re: PowerPC prologue and epilogue 6

2012-05-31 Thread Alan Modra
On Thu, May 31, 2012 at 10:41:26AM +0930, Alan Modra wrote: Looks like it is one I introduced. gcc-4.6 uses r12 to save altivec regs, my new code tries to use r11. Will fix. Please try out this patch on Darwin. Bootstrapped and regression tested powerpc-linux. gcc/ *

Re: PowerPC prologue and epilogue 6

2012-05-31 Thread Dominique Dhumieres
Please try out this patch on Darwin. Bootstrapped and regression tested powerpc-linux. I have applied the patch to r188026 and updated the build. As patched the test gcc.target/powerpc/savres.c now fails with FAIL: gcc.target/powerpc/savres.c (test for excess errors) Excess errors:

Re: PowerPC prologue and epilogue 6

2012-05-31 Thread Alan Modra
On Thu, May 31, 2012 at 02:16:32PM +0200, Dominique Dhumieres wrote: (the final patch will require the suitable dg directives;-). This is really stretching my testsuite knowledge. Maybe add /* { dg-additional-options -mdynamic-no-pic { target *-*-darwin* } } */ -- Alan Modra Australia

Re: PowerPC prologue and epilogue 6

2012-05-31 Thread Dominique Dhumieres
This is really stretching my testsuite knowledge. Maybe add /* { dg-additional-options -mdynamic-no-pic { target *-*-darwin* } } */ Using /* { dg-options -fno-inline -fomit-frame-pointer } */ /* { dg-additional-options -mdynamic-no-pic { target *-*-darwin* } } */ works for me on

Re: PowerPC prologue and epilogue 6

2012-05-31 Thread Mike Stump
On May 31, 2012, at 6:42 AM, Dominique Dhumieres wrote: This is really stretching my testsuite knowledge. Maybe add /* { dg-additional-options -mdynamic-no-pic { target *-*-darwin* } } */ Using /* { dg-options -fno-inline -fomit-frame-pointer } */ /* { dg-additional-options

Re: PowerPC prologue and epilogue 6

2012-05-30 Thread Dominique Dhumieres
Yes indeed, and it would be wise to ensure torture-options.exp is loaded too. I'm committing the following as obvious. Thanks Hmm, this will be because darwin is PIC by default. Does adding -static to the dg-options line in savres.c fix the darwin fail? With the following change ---

Re: PowerPC prologue and epilogue 6

2012-05-30 Thread Alan Modra
On Wed, May 30, 2012 at 03:21:28PM +0200, Dominique Dhumieres wrote: I get an ICE of the form /opt/gcc/work/gcc/testsuite/gcc.target/powerpc/savres.c: In function 'nb_all': /opt/gcc/work/gcc/testsuite/gcc.target/powerpc/savres.c:473:3: internal compiler error: in rs6000_emit_prologue, at

Re: PowerPC prologue and epilogue 6

2012-05-30 Thread Alan Modra
On Thu, May 31, 2012 at 09:43:09AM +0930, Alan Modra wrote: real bug that the register checks have uncovered. I haven't determined whether this is a new bug introduced with my prologue changes, or whether it's a long-standing bug. I suspect the latter. Looks like it is one I introduced.

Re: PowerPC prologue and epilogue 6

2012-05-29 Thread Dominique Dhumieres
Alan, I think the following patch --- ../_gcc_clean/gcc/testsuite/gcc.target/powerpc/powerpc.exp 2012-05-02 14:25:40.0 +0200 +++ ../work/gcc/testsuite/gcc.target/powerpc/powerpc.exp2012-05-29 21:14:48.0 +0200 @@ -47,4 +47,5 @@ set-torture-options $SAVRES_TEST_OPTS

Re: PowerPC prologue and epilogue 6

2012-04-25 Thread David Edelsohn
On Wed, Apr 25, 2012 at 1:20 AM, Alan Modra amo...@gmail.com wrote: This patch adds a testcase to verify register saves and restores. I tried to write it so that it will run on all powerpc targets.  From past experience it probably won't.  OK to apply anyway, and fix fallout later?        *

Re: PowerPC prologue and epilogue 4

2012-04-24 Thread David Edelsohn
On Tue, Apr 17, 2012 at 11:13 AM, Alan Modra amo...@gmail.com wrote: This provides some protection against misuse of r0, r11 and r12.  I found it useful when enabling out-of-line saves for large frames.  ;-)        * config/rs6000/rs6000.c (START_USE, END_USE, NOT_INUSE): Define.        

Re: PowerPC prologue and epilogue 5

2012-04-24 Thread David Edelsohn
On Thu, Apr 19, 2012 at 11:36 AM, Alan Modra amo...@gmail.com wrote: On Thu, Apr 19, 2012 at 08:00:15PM +0930, Alan Modra wrote: On Wed, Apr 18, 2012 at 12:45:16AM +0930, Alan Modra wrote: This enables out-of-line save and restore for large frames, and for ABI_AIX when using the static

Re: PowerPC prologue and epilogue 6

2012-04-24 Thread David Edelsohn
On Sat, Apr 21, 2012 at 2:48 AM, Alan Modra amo...@gmail.com wrote: This patch adds out-of-line vector saves and restores.  To do this I made some infrastructure changes to various functions like rs6000_emit_savres_rtx that currently take boolean parameters (savep, gpr, and lr).  Rather than

Re: PowerPC prologue and epilogue 6

2012-04-24 Thread Alan Modra
On Tue, Apr 24, 2012 at 07:19:42PM -0400, David Edelsohn wrote: This patch is okay with the macro usage fix. Thanks, series 2 to 6 committed as 186796, 186797, 186798, 186799, 186800. I noticed after I committed the lot that 186797 has some duplicated lines (harmless), corrected in 186798, and

Re: PowerPC prologue and epilogue 2

2012-04-22 Thread David Edelsohn
On Tue, Apr 17, 2012 at 11:12 AM, Alan Modra amo...@gmail.com wrote: This fixes a lot of confusion in rs6000_frame_related call arguments. At the time rs6000_frame_related first appeared, the prologue only used sp_reg_rtx (r1) or frame_ptr_rtx (r12) as frame_reg_rtx to access register save

Re: PowerPC prologue and epilogue 3

2012-04-22 Thread David Edelsohn
On Tue, Apr 17, 2012 at 11:13 AM, Alan Modra amo...@gmail.com wrote: This continues the prologue and epilogue cleanup.  Not many user visible changes here, except for: - a bugfix to the LR save RTL emitted by rs6000_emit_savres_rtx which  may affect SPE, - a bugfix for SPE code emitted when

PowerPC prologue and epilogue 6

2012-04-21 Thread Alan Modra
This patch adds out-of-line vector saves and restores. To do this I made some infrastructure changes to various functions like rs6000_emit_savres_rtx that currently take boolean parameters (savep, gpr, and lr). Rather than add yet another boolean to specify vector regs, I chose to lump them all

Re: PowerPC prologue and epilogue 5

2012-04-19 Thread Alan Modra
On Wed, Apr 18, 2012 at 12:45:16AM +0930, Alan Modra wrote: This enables out-of-line save and restore for large frames, and for ABI_AIX when using the static chain. Further testing revealed two problems when compiling nested functions. 1) The logic I had for cr_save_regno is wrong, resulting in

Re: PowerPC prologue and epilogue 5

2012-04-19 Thread Alan Modra
On Thu, Apr 19, 2012 at 08:00:15PM +0930, Alan Modra wrote: On Wed, Apr 18, 2012 at 12:45:16AM +0930, Alan Modra wrote: This enables out-of-line save and restore for large frames, and for ABI_AIX when using the static chain. Further testing revealed two problems when compiling nested

Re: PowerPC prologue and epilogue

2012-04-19 Thread David Edelsohn
On Tue, Apr 17, 2012 at 11:08 AM, Alan Modra amo...@gmail.com wrote: This is the first in a series of patches cleaning up rs6000 prologue and epilogue generating code.  This one is just the formatting/style changes plus renaming two variables to better reflect their usage, and moving code

PowerPC prologue and epilogue

2012-04-17 Thread Alan Modra
This is the first in a series of patches cleaning up rs6000 prologue and epilogue generating code. This one is just the formatting/style changes plus renaming two variables to better reflect their usage, and moving code around. The patch series has been bootstrapped and regression tested

PowerPC prologue and epilogue 2

2012-04-17 Thread Alan Modra
This fixes a lot of confusion in rs6000_frame_related call arguments. At the time rs6000_frame_related first appeared, the prologue only used sp_reg_rtx (r1) or frame_ptr_rtx (r12) as frame_reg_rtx to access register save slots. If r12 was used, it was necessary to add a note that gave the

PowerPC prologue and epilogue 3

2012-04-17 Thread Alan Modra
This continues the prologue and epilogue cleanup. Not many user visible changes here, except for: - a bugfix to the LR save RTL emitted by rs6000_emit_savres_rtx which may affect SPE, - a bugfix for SPE code emitted when using a static chain, - vector saves will be done using r1 for large

PowerPC prologue and epilogue 4

2012-04-17 Thread Alan Modra
This provides some protection against misuse of r0, r11 and r12. I found it useful when enabling out-of-line saves for large frames. ;-) * config/rs6000/rs6000.c (START_USE, END_USE, NOT_INUSE): Define. (rs6000_emit_prologue): Use the above to catch register overlap. diff -urp

PowerPC prologue and epilogue 5

2012-04-17 Thread Alan Modra
This enables out-of-line save and restore for large frames, and for ABI_AIX when using the static chain. * config/rs6000/rs6000.c (rs6000_savres_strategy): Allow out-of-line save/restore for large frames. Don't disable out-of-line saves on ABI_AIX when using static chain