aboutsummaryrefslogtreecommitdiff
path: root/gcc/expr.c
diff options
context:
space:
mode:
authorDoug Evans <dje@gnu.org>1994-05-27 23:27:50 +0000
committerDoug Evans <dje@gnu.org>1994-05-27 23:27:50 +0000
commit0304dfbb673b5a0ce0af93e9fa6821ab9937d1e5 (patch)
tree82d89828e664516015a582e84da5cb3a9dc59ef2 /gcc/expr.c
parent869c489d35a294989b952baa3e5aa28fd7deb96d (diff)
downloadgcc-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.c25
1 files changed, 11 insertions, 14 deletions
diff --git a/gcc/expr.c b/gcc/expr.c
index 9c5f0a4..6ca3057 100644
--- a/gcc/expr.c
+++ b/gcc/expr.c
@@ -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.