rs6000: Fix for -mwarn-cell-microcode (PR43763)
authorSegher Boessenkool <segher@kernel.crashing.org>
Fri, 3 Mar 2017 17:00:50 +0000 (18:00 +0100)
committerSegher Boessenkool <segher@gcc.gnu.org>
Fri, 3 Mar 2017 17:00:50 +0000 (18:00 +0100)
commitf325c4567336a2e5c9643e7adb3a152d22022d7d
treea4d76a99bfbb21fd99b0f4e3d342539aa4e15718
parent945b6e16e23ede6f80ea67634b14e3fd07f51cce
rs6000: Fix for -mwarn-cell-microcode (PR43763)

If using -mwarn-cell-microcode, rs6000_final_prescan_insn calls
get_insn_template to get the name of the machine instruction.  But,
get_insn_template calls the output template if that is code, and that
then can modify recog_data (it is normal to change the operands, for
example).

This patch saves and restores recog_data around the call to
get_insn_template to fix the problems this causes.

PR target/43763
* config/rs6000/rs6000.c (rs6000_final_prescan_insn): Save and
restore recog_data (including the operand rtxes inside it) around
the call to get_insn_template.

From-SVN: r245880
gcc/ChangeLog
gcc/config/rs6000/rs6000.c