From 8a512b77f30c239fb467ba5d32e08c09b8b8cf3a Mon Sep 17 00:00:00 2001 From: Andreas Krebbel Date: Fri, 8 Oct 2004 16:36:09 +0000 Subject: [PATCH] s390.c (s390_register_info): Don't save fprs for -msoft-float. 2004-10-08 Andreas Krebbel * config/s390/s390.c (s390_register_info): Don't save fprs for -msoft-float. (s390_conditional_register_usage): Make fprs 'fixed' for -msoft-float. From-SVN: r88764 --- gcc/ChangeLog | 6 ++++++ gcc/config/s390/s390.c | 11 +++++++++-- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 4c4dda6..5ce5119 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2004-10-08 Andreas Krebbel + + * config/s390/s390.c (s390_register_info): Don't save fprs for + -msoft-float. + (s390_conditional_register_usage): Make fprs 'fixed' for -msoft-float. + 2004-10-08 Ulrich Weigand * config/s390/s390.h (TARGET_DEFAULT_BACKCHAIN): New define. diff --git a/gcc/config/s390/s390.c b/gcc/config/s390/s390.c index c2fb505..1d4d813 100644 --- a/gcc/config/s390/s390.c +++ b/gcc/config/s390/s390.c @@ -6219,8 +6219,9 @@ s390_register_info (int live_regs[]) cfun_frame_layout.last_save_gpr = 6; /* Mark f0, f2 for 31 bit and f0-f4 for 64 bit to be saved. */ - for (i = 0; i < (TARGET_64BIT ? 4 : 2); i++) - cfun_set_fpr_bit (i); + if (TARGET_HARD_FLOAT) + for (i = 0; i < (TARGET_64BIT ? 4 : 2); i++) + cfun_set_fpr_bit (i); } if (!TARGET_64BIT) @@ -8403,6 +8404,12 @@ s390_conditional_register_usage (void) for (i = 18; i < 20; i++) call_used_regs[i] = call_really_used_regs[i] = 0; } + + if (TARGET_SOFT_FLOAT) + { + for (i = 16; i < 32; i++) + call_used_regs[i] = fixed_regs[i] = 1; + } } /* Corresponding function to eh_return expander. */ -- 2.7.4