diff options
author | Doug Evans <dje@gnu.org> | 1995-01-14 06:21:30 +0000 |
---|---|---|
committer | Doug Evans <dje@gnu.org> | 1995-01-14 06:21:30 +0000 |
commit | eb7d5627e12970b3d3f2260d5f4ba90ef3ba42f9 (patch) | |
tree | cb111804ea52d582c860cb4564c7f4459ed73853 | |
parent | 23c97802de08d6bcc8574673ad15e667f76fc063 (diff) | |
download | gcc-eb7d5627e12970b3d3f2260d5f4ba90ef3ba42f9.zip gcc-eb7d5627e12970b3d3f2260d5f4ba90ef3ba42f9.tar.gz gcc-eb7d5627e12970b3d3f2260d5f4ba90ef3ba42f9.tar.bz2 |
(INIT_CUMULATIVE_INCOMING_ARGS): Reserve two regs for caller's lr0,lr1.
From-SVN: r8758
-rw-r--r-- | gcc/config/a29k/a29k.h | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/gcc/config/a29k/a29k.h b/gcc/config/a29k/a29k.h index 25b5d29..37abee5 100644 --- a/gcc/config/a29k/a29k.h +++ b/gcc/config/a29k/a29k.h @@ -777,19 +777,21 @@ extern struct rtx_def *a29k_get_reloaded_address (); /* Same, but called for incoming args. On the 29k, we use this to set all argument registers to fixed and - set the last 16 local regs (lr112-lr127) to available. Some - will later be changed to call-saved by FUNCTION_INCOMING_ARG. */ + set the last 16 local regs, less two, (lr110-lr125) to available. Some + will later be changed to call-saved by FUNCTION_INCOMING_ARG. + lr126,lr127 are always fixed, they are place holders for the caller's + lr0,lr1. */ -#define INIT_CUMULATIVE_INCOMING_ARGS(CUM,FNTYPE,IGNORE) \ +#define INIT_CUMULATIVE_INCOMING_ARGS(CUM,FNTYPE,IGNORE) \ { int i; \ - for (i = R_AR (0); i < R_AR (16); i++) \ + for (i = R_AR (0) - 2; i < R_AR (16); i++) \ { \ fixed_regs[i] = call_used_regs[i] = call_fixed_regs[i] = 1; \ SET_HARD_REG_BIT (fixed_reg_set, i); \ SET_HARD_REG_BIT (call_used_reg_set, i); \ SET_HARD_REG_BIT (call_fixed_reg_set, i); \ } \ - for (i = R_LR (112); i < R_LR (128); i++) \ + for (i = R_LR (110); i < R_LR (126); i++) \ { \ fixed_regs[i] = call_used_regs[i] = call_fixed_regs[i] = 0; \ CLEAR_HARD_REG_BIT (fixed_reg_set, i); \ |