Do not emit USE on a LABEL_REF
authorMichael Meissner <meissner@gcc.gnu.org>
Thu, 6 Mar 1997 22:28:22 +0000 (22:28 +0000)
committerMichael Meissner <meissner@gcc.gnu.org>
Thu, 6 Mar 1997 22:28:22 +0000 (22:28 +0000)
From-SVN: r13695

gcc/config/rs6000/rs6000.md

index 3f932e68aa225201d91ac44f2c4ef1fc04d3f5e4..61d16a11d1428c0063a0dfdc35060bd8e57da870 100644 (file)
     {
       /* Emit a USE operation so that the constant isn't deleted if
         expensive optimizations are turned on because nobody
-        references it */
-      emit_insn (gen_rtx (USE, VOIDmode, operands[1]));
+        references it.  This should only be done for operands that
+        contain SYMBOL_REFs with CONSTANT_POOL_ADDRESS_P set.
+        This should not be done for operands that contain LABEL_REFs.
+        For now, we just handle the obvious case.  */
+      if (GET_CODE (operands[1]) != LABEL_REF)
+       emit_insn (gen_rtx (USE, VOIDmode, operands[1]));
 
       /* If we are to limit the number of things we put in the TOC and
         this is a symbol plus a constant we can add in one insn,