diff options
author | Richard Kenner <kenner@gcc.gnu.org> | 1994-04-09 17:48:01 -0400 |
---|---|---|
committer | Richard Kenner <kenner@gcc.gnu.org> | 1994-04-09 17:48:01 -0400 |
commit | 9894a29157c45b6f6a0237c96729a1ad5de4183d (patch) | |
tree | e6d335f97c24418a13331938581f599c1a8f39e3 /gcc | |
parent | 74f171be20124890c3b14881350b561d2e99ed54 (diff) | |
download | gcc-9894a29157c45b6f6a0237c96729a1ad5de4183d.zip gcc-9894a29157c45b6f6a0237c96729a1ad5de4183d.tar.gz gcc-9894a29157c45b6f6a0237c96729a1ad5de4183d.tar.bz2 |
(FINAL_PRESCAN_INSN): Define.
From-SVN: r7012
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/config/rs6000/rs6000.h | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/gcc/config/rs6000/rs6000.h b/gcc/config/rs6000/rs6000.h index 3bd77cd..b58731a 100644 --- a/gcc/config/rs6000/rs6000.h +++ b/gcc/config/rs6000/rs6000.h @@ -1282,9 +1282,17 @@ struct rs6000_args {int words, fregno, nargs_prototype; }; } /* Define this if some processing needs to be done immediately before - emitting code for an insn. */ + emitting code for an insn. -/* #define FINAL_PRESCAN_INSN(INSN,OPERANDS,NOPERANDS) */ + For the RS/6000, we check if there is a dead PRE_INC value. If so, + replace it with a normal displacement. This is done in case the + output of the load insn duplicates the register being incremented. + That produces an insn that isn't valid for PowerPC. */ + +#define FINAL_PRESCAN_INSN(INSN,OPERANDS,NOPERANDS) \ + if (find_reg_note (INSN, REG_INC, NULL_RTX) \ + && find_reg_note (INSN, REG_DEAD, NULL_RTX)) \ + rs6000_convert_preincs (PATTERN (INSN), INSN); /* Specify the machine mode that this machine uses for the index in the tablejump instruction. */ |