diff options
author | Doug Evans <dje@gnu.org> | 1994-05-27 23:27:50 +0000 |
---|---|---|
committer | Doug Evans <dje@gnu.org> | 1994-05-27 23:27:50 +0000 |
commit | 0304dfbb673b5a0ce0af93e9fa6821ab9937d1e5 (patch) | |
tree | 82d89828e664516015a582e84da5cb3a9dc59ef2 /gcc/expr.c | |
parent | 869c489d35a294989b952baa3e5aa28fd7deb96d (diff) | |
download | gcc-0304dfbb673b5a0ce0af93e9fa6821ab9937d1e5.zip gcc-0304dfbb673b5a0ce0af93e9fa6821ab9937d1e5.tar.gz gcc-0304dfbb673b5a0ce0af93e9fa6821ab9937d1e5.tar.bz2 |
expr.c (use_reg): Fix recording of USE information.
* expr.c (use_reg): Fix recording of USE information.
(use_regs): Likewise.
Delete argument `reg'. All callers changed.
* expr.h (use_regs): Update prototype.
* calls.c (expand_call): Update call to use_regs. Call use_reg
if parm is wholly in registers.
From-SVN: r7378
Diffstat (limited to 'gcc/expr.c')
-rw-r--r-- | gcc/expr.c | 25 |
1 files changed, 11 insertions, 14 deletions
@@ -1671,34 +1671,31 @@ void use_reg (call_fusage, reg) rtx *call_fusage, reg; { - if (GET_CODE (reg) == REG - && REGNO (reg) >= FIRST_PSEUDO_REGISTER) + if (GET_CODE (reg) != REG + || REGNO (reg) >= FIRST_PSEUDO_REGISTER) abort(); *call_fusage = gen_rtx (EXPR_LIST, VOIDmode, - gen_rtx (USE, reg_raw_mode[REGNO (reg)], reg), *call_fusage); - + gen_rtx (USE, VOIDmode, reg), *call_fusage); } /* Mark NREGS consecutive regs, starting at REGNO, as holding parameters for the CALL_INSN. */ void -use_regs (call_fusage, reg, regno, nregs) - rtx *call_fusage, reg; +use_regs (call_fusage, regno, nregs) + rtx *call_fusage; int regno; int nregs; { - if (nregs <= 1 && reg) - use_reg (call_fusage, reg); - else - { - int i; + int i; - for (i = 0; i < nregs; i++) - use_reg (call_fusage, gen_rtx (REG, word_mode, regno + i)); - } + if (regno + nregs > FIRST_PSEUDO_REGISTER) + abort (); + + for (i = 0; i < nregs; i++) + use_reg (call_fusage, gen_rtx (REG, reg_raw_mode[regno + i], regno + i)); } /* Write zeros through the storage of OBJECT. |