From: J"orn Rennecke Date: Thu, 7 Aug 2003 19:35:52 +0000 (+0000) Subject: sh.h (CALL_USED_REGISTERS): Include PR_REG and PR_MEDIA_REG. X-Git-Tag: releases/gcc-3.4.0~4352 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=97b3d0f016d4ce4b973cda213b0cd6835eca6b15;p=thirdparty%2Fgcc.git sh.h (CALL_USED_REGISTERS): Include PR_REG and PR_MEDIA_REG. * sh.h (CALL_USED_REGISTERS): Include PR_REG and PR_MEDIA_REG. * sh.c (calc_live_regs): Use sh_pr_n_sets to determine if pr needs saving on SHmedia. From-SVN: r70227 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index d299f564f5b2..9568cca24d59 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2003-08-07 J"orn Rennecke + + * sh.h (CALL_USED_REGISTERS): Include PR_REG and PR_MEDIA_REG. + * sh.c (calc_live_regs): Use sh_pr_n_sets to determine if pr + needs saving on SHmedia. + 2003-08-07 Ulrich Weigand * config/s390/s390.md: Replace all occurrences of \\t with \t. diff --git a/gcc/config/sh/sh.c b/gcc/config/sh/sh.c index 8128d4731f81..d64d919fbbc5 100644 --- a/gcc/config/sh/sh.c +++ b/gcc/config/sh/sh.c @@ -4848,7 +4848,7 @@ calc_live_regs (live_regs_mask) the initial value can become the PR_MEDIA_REG hard register, as seen for execute/20010122-1.c:test9. */ if (TARGET_SHMEDIA) - pr_live = regs_ever_live[PR_MEDIA_REG]; + pr_live = sh_pr_n_sets (); else { rtx pr_initial = has_hard_reg_initial_val (Pmode, PR_REG); @@ -4867,7 +4867,7 @@ calc_live_regs (live_regs_mask) has_call = TARGET_SHMEDIA ? ! leaf_function_p () : pr_live; for (count = 0, reg = FIRST_PSEUDO_REGISTER - 1; reg >= 0; reg--) { - if ((! TARGET_SHMEDIA && reg == PR_REG) + if (reg == (TARGET_SHMEDIA ? PR_MEDIA_REG : PR_REG) ? pr_live : (interrupt_handler && ! pragma_trapa) ? (/* Need to save all the regs ever live. */ diff --git a/gcc/config/sh/sh.h b/gcc/config/sh/sh.h index cc94be2f7404..3ab2120e9a51 100644 --- a/gcc/config/sh/sh.h +++ b/gcc/config/sh/sh.h @@ -926,7 +926,7 @@ extern char sh_additional_register_names[ADDREGNAMES_SIZE] \ Only the lower 32bits of R10-R14 are guaranteed to be preserved \ across SH5 function calls. */ \ 0, 0, 0, 0, 0, 0, 0, 1, \ - 1, 1, 0, 1, 1, 1, 1, 1, \ + 1, 1, 1, 1, 1, 1, 1, 1, \ 1, 1, 1, 1, 0, 0, 0, 0, \ 0, 0, 0, 0, 1, 1, 1, 1, \ 1, 1, 1, 1, 0, 0, 0, 0, \ @@ -946,7 +946,7 @@ extern char sh_additional_register_names[ADDREGNAMES_SIZE] \ /* XD registers. */ \ 1, 1, 1, 1, 1, 1, 0, 0, \ /*"gbr", "ap", "pr", "t", "mach", "macl", "fpul", "fpscr", */ \ - 1, 1, 0, 1, 1, 1, 1, 1, \ + 1, 1, 1, 1, 1, 1, 1, 1, \ /*"rap" */ \ 1, \ }