diff --git a/gcc/ChangeLog b/gcc/ChangeLog index ed290fb60b24..a158313c3373 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2002-02-10 John David Anglin + + * pa.c (reg_before_reload_operand): Don't accept a SUBREG operand. + * pa.h (PREDICATE_CODES): Adjust codes for reg_before_reload_operand. + 2002-02-09 David O'Brien * config/sparc/freebsd.h(TARGET_DEFAULT): Add MASK_EPILOGUE setting and diff --git a/gcc/config/pa/pa.c b/gcc/config/pa/pa.c index 423ee62c9cdd..05a0fa629cc1 100644 --- a/gcc/config/pa/pa.c +++ b/gcc/config/pa/pa.c @@ -387,6 +387,10 @@ reg_before_reload_operand (op, mode) register rtx op; enum machine_mode mode; { + /* Don't accept a SUBREG since it will need a reload. */ + if (GET_CODE (op) == SUBREG) + return 0; + if (register_operand (op, mode)) return 1; diff --git a/gcc/config/pa/pa.h b/gcc/config/pa/pa.h index 99099a0397fd..210a7f316bd8 100644 --- a/gcc/config/pa/pa.h +++ b/gcc/config/pa/pa.h @@ -1925,7 +1925,7 @@ while (0) CONST_DOUBLE, CONST, HIGH, CONSTANT_P_RTX}}, \ {"symbolic_operand", {SYMBOL_REF, LABEL_REF, CONST}}, \ {"symbolic_memory_operand", {SUBREG, MEM}}, \ - {"reg_before_reload_operand", {SUBREG, MEM}}, \ + {"reg_before_reload_operand", {REG, MEM}}, \ {"reg_or_nonsymb_mem_operand", {SUBREG, REG, MEM}}, \ {"reg_or_0_or_nonsymb_mem_operand", {SUBREG, REG, MEM, CONST_INT, \ CONST_DOUBLE}}, \