From: Jeffrey A Law Date: Wed, 8 Mar 2000 05:02:46 +0000 (+0000) Subject: [multiple changes] X-Git-Tag: prereleases/gcc-2.95.3-test1~84 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=8de8e8e585a131c600e7e911af7d8acbbe236d49;p=thirdparty%2Fgcc.git [multiple changes] 2000-01-05 Bernd Schmidt * reload1.c (choose_reload_regs): When disabling a reload, also set reload_spill_index to -1. Thu Nov 4 15:52:35 1999 Andrew Haley * reload1.c (reload_reg_free_for_value_p): Don't use a register that is in reload_reg_used. From-SVN: r32405 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 6c89e4a74bea..448a0c146f82 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,13 @@ Tue Mar 7 21:41:17 2000 Jeffrey A Law (law@cygnus.com) + 2000-01-05 Bernd Schmidt + * reload1.c (choose_reload_regs): When disabling a reload, also + set reload_spill_index to -1. + + Thu Nov 4 15:52:35 1999 Andrew Haley + * reload1.c (reload_reg_free_for_value_p): Don't use a register + that is in reload_reg_used. + 2000-01-18 Clinton Popetz * loop.c (check_dbra_loop): When checking a loop for reversability, check the source of any stores to ensure they diff --git a/gcc/reload1.c b/gcc/reload1.c index 0ec2a9248308..d9245b0595c0 100644 --- a/gcc/reload1.c +++ b/gcc/reload1.c @@ -5204,6 +5204,13 @@ reload_reg_free_for_value_p (regno, opnum, type, value, out, reloadnum, int i; int copy = 0; + /* ??? reload_reg_used is abused to hold the registers that are not + available as spill registers, including hard registers that are + earlyclobbered in asms. As a temporary measure, reject anything + in reload_reg_used. */ + if (TEST_HARD_REG_BIT (reload_reg_used, regno)) + return 0; + if (out == const0_rtx) { copy = 1; @@ -6330,6 +6337,7 @@ choose_reload_regs (chain) clear_reload_reg_in_use (regno, reload_opnum[j], reload_when_needed[j], reload_mode[j]); reload_reg_rtx[j] = 0; + reload_spill_index[j] = -1; } /* Record which pseudos and which spill regs have output reloads. */