aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Henderson <rth@redhat.com>2001-07-17 20:32:46 -0700
committerRichard Henderson <rth@gcc.gnu.org>2001-07-17 20:32:46 -0700
commita7c07f1ef066dd8817eb2da0c66f60aef5fb3e84 (patch)
treeb72fd7286c470e398eb0effb79fbba959dd03943 /gcc
parent3affaf29346bfaea9af3b75fcb0e8acaa26a6eb8 (diff)
downloadgcc-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/ChangeLog4
-rw-r--r--gcc/reload.c17
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