rs6000.c (compute_save_world_info): Set lr_save_p if we are going to "save the world".

2008-04-12  Andrew Pinski  <pinskia@gmail.com>

        * config/rs6000/rs6000.c (compute_save_world_info): Set lr_save_p if
        we are going to "save the world".


2008-04-12  Andrew Pinski  <pinskia@gmail.com>

        * gcc.target/powerpc/darwin-save-world-1.c: New test.

From-SVN: r134237
This commit is contained in:
Andrew Pinski 2008-04-12 20:17:01 -07:00 committed by Andrew Pinski
parent 70a7c7f11f
commit 298ac1dd20
4 changed files with 30 additions and 0 deletions

View File

@ -1,3 +1,8 @@
2008-04-12 Andrew Pinski <pinskia@gmail.com>
* config/rs6000/rs6000.c (compute_save_world_info): Set lr_save_p if
we are going to "save the world".
2008-04-13 Hans-Peter Nilsson <hp@axis.com>
* config/cris/cris.md ("*andhi_lowpart_non_v32", "*andhi_lowpart_v32")

View File

@ -14258,6 +14258,9 @@ compute_save_world_info (rs6000_stack_t *info_ptr)
will attempt to save it. */
info_ptr->vrsave_size = 4;
/* If we are going to save the world, we need to save the link register too. */
info_ptr->lr_save_p = 1;
/* "Save" the VRsave register too if we're saving the world. */
if (info_ptr->vrsave_mask == 0)
info_ptr->vrsave_mask = compute_vrsave_mask ();

View File

@ -1,3 +1,7 @@
2008-04-12 Andrew Pinski <pinskia@gmail.com>
* gcc.target/powerpc/darwin-save-world-1.c: New test.
2008-04-11 Richard Guenther <rguenther@suse.de>
PR tree-optimization/35869

View File

@ -0,0 +1,18 @@
/* { dg-do run { target powerpc*-*-* } } */
/* { dg-require-effective-target powerpc_altivec_ok } */
/* { dg-options "-maltivec" } */
/* With altivec turned on, Darwin wants to save the world but we did not mark lr as being saved any more
as saving the lr is not needed for saving altivec registers. */
int main (void)
{
__label__ l1;
void __attribute__((used)) q(void)
{
goto l1;
}
l1:;
return 0;
}