diff options
author | Richard Henderson <rth@redhat.com> | 2001-07-17 20:32:46 -0700 |
---|---|---|
committer | Richard Henderson <rth@gcc.gnu.org> | 2001-07-17 20:32:46 -0700 |
commit | a7c07f1ef066dd8817eb2da0c66f60aef5fb3e84 (patch) | |
tree | b72fd7286c470e398eb0effb79fbba959dd03943 /gcc | |
parent | 3affaf29346bfaea9af3b75fcb0e8acaa26a6eb8 (diff) | |
download | gcc-a7c07f1ef066dd8817eb2da0c66f60aef5fb3e84.zip gcc-a7c07f1ef066dd8817eb2da0c66f60aef5fb3e84.tar.gz gcc-a7c07f1ef066dd8817eb2da0c66f60aef5fb3e84.tar.bz2 |
* reload.c (push_secondary_reload): Accept empty-string for ALL_REGS.
From-SVN: r44096
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/reload.c | 17 |
2 files changed, 16 insertions, 5 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index b0525f8..19e715e 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,9 @@ 2001-07-17 Richard Henderson <rth@redhat.com> + * reload.c (push_secondary_reload): Accept empty-string for ALL_REGS. + +2001-07-17 Richard Henderson <rth@redhat.com> + * calls.c (prepare_call_address): New parameter SIBCALLP. If true, don't force the function address into a register. (expand_call, emit_library_call_value_1): Update callers. diff --git a/gcc/reload.c b/gcc/reload.c index 03e5d21..b4d8212 100644 --- a/gcc/reload.c +++ b/gcc/reload.c @@ -372,11 +372,18 @@ push_secondary_reload (in_p, x, opnum, optional, reload_class, reload_mode, in operand 1. Outputs should have an initial "=", which we must skip. */ - char insn_letter - = insn_data[(int) icode].operand[!in_p].constraint[in_p]; - enum reg_class insn_class - = (insn_letter == 'r' ? GENERAL_REGS - : REG_CLASS_FROM_LETTER ((unsigned char) insn_letter)); + enum reg_class insn_class; + + if (insn_data[(int) icode].operand[!in_p].constraint[0] == 0) + insn_class = ALL_REGS; + else + { + char insn_letter + = insn_data[(int) icode].operand[!in_p].constraint[in_p]; + insn_class + = (insn_letter == 'r' ? GENERAL_REGS + : REG_CLASS_FROM_LETTER ((unsigned char) insn_letter)); + } if (insn_class == NO_REGS || (in_p |