diff options
author | Torbjorn Granlund <tege@gnu.org> | 1992-09-24 19:36:29 +0000 |
---|---|---|
committer | Torbjorn Granlund <tege@gnu.org> | 1992-09-24 19:36:29 +0000 |
commit | fa5e5c1e7a443c1270999f1bc8f164b025df3e17 (patch) | |
tree | de7d83989dd37257fafa321382ec224953d24018 | |
parent | 907f67ccf3ff01b7fcbc5d139616858a4a8fafd5 (diff) | |
download | gcc-fa5e5c1e7a443c1270999f1bc8f164b025df3e17.zip gcc-fa5e5c1e7a443c1270999f1bc8f164b025df3e17.tar.gz gcc-fa5e5c1e7a443c1270999f1bc8f164b025df3e17.tar.bz2 |
(clobbered_register): Delete.
(srcsi_operand): Return 1 also for things matching depi_cint_operand.
(secondary_reload_class): Replace.
From-SVN: r2233
-rw-r--r-- | gcc/config/pa/pa.c | 24 |
1 files changed, 8 insertions, 16 deletions
diff --git a/gcc/config/pa/pa.c b/gcc/config/pa/pa.c index 1e18a14..f723542 100644 --- a/gcc/config/pa/pa.c +++ b/gcc/config/pa/pa.c @@ -382,15 +382,6 @@ arith32_operand (op, mode) return register_operand (op, mode) || GET_CODE (op) == CONST_INT; } -/* Return truth value of statement that OP is a call-clobbered register. */ -int -clobbered_register (op, mode) - rtx op; - enum machine_mode mode; -{ - return (GET_CODE (op) == REG && call_used_regs[REGNO (op)]); -} - /* True iff OP can be the source of a move to a general register. */ int srcsi_operand (op, mode) @@ -405,6 +396,9 @@ srcsi_operand (op, mode) if (nonimmediate_operand (op, mode)) return 1; + if (depi_cint_operand (op, mode)) + return 1; + /* OK if ldo or ldil can be used. */ return (GET_CODE (op) == CONST_INT && (INT_14_BITS (op) || (INTVAL (op) & 0x7ff) == 0)); @@ -2378,8 +2372,8 @@ output_arg_descriptor (insn) fputc ('\n', asm_out_file); } -/* Memory loads/stores to/from fp registers may need a scratch - register in which to reload the address. */ +/* Memory loads/stores to/from the shift need to go through + the general registers. */ enum reg_class secondary_reload_class (class, mode, in) @@ -2389,12 +2383,10 @@ secondary_reload_class (class, mode, in) { int regno = true_regnum (in); - if ((regno >= FIRST_PSEUDO_REGISTER || regno == -1) - && (class == FP_REGS || class == SNAKE_FP_REGS - || class == HI_SNAKE_FP_REGS)) + if (class == SHIFT_REGS && (regno <= 0 || regno >= 32)) return GENERAL_REGS; - else - return NO_REGS; + + return NO_REGS; } enum direction |