OSDN Git Service

[pf3gnuchains/gcc-fork.git] / gcc / final.c
index be6f331..066b621 100644 (file)
@@ -2184,28 +2184,30 @@ final_scan_insn (insn, file, optimize, prescan, nopeepholes)
             PENDING_BLOCKS and output debugging info based on that.  */
 
          --block_depth;
+         if (block_depth < 0)
+           abort ();
 
 #ifdef XCOFF_DEBUGGING_INFO
-         if (write_symbols == XCOFF_DEBUG && block_depth >= 0)
+         if (write_symbols == XCOFF_DEBUG)
            xcoffout_end_block (file, high_block_linenum,
                                pending_blocks[block_depth]);
 #endif
 #ifdef DBX_DEBUGGING_INFO
-         if (write_symbols == DBX_DEBUG && block_depth >= 0)
+         if (write_symbols == DBX_DEBUG)
            ASM_OUTPUT_INTERNAL_LABEL (file, "LBE",
                                       pending_blocks[block_depth]);
 #endif
 #ifdef SDB_DEBUGGING_INFO
-         if (write_symbols == SDB_DEBUG && block_depth >= 0)
+         if (write_symbols == SDB_DEBUG)
            sdbout_end_block (file, high_block_linenum,
                              pending_blocks[block_depth]);
 #endif
 #ifdef DWARF_DEBUGGING_INFO
-         if (write_symbols == DWARF_DEBUG && block_depth >= 0)
+         if (write_symbols == DWARF_DEBUG)
            dwarfout_end_block (pending_blocks[block_depth]);
 #endif
 #ifdef DWARF2_DEBUGGING_INFO
-         if (write_symbols == DWARF2_DEBUG && block_depth >= 0)
+         if (write_symbols == DWARF2_DEBUG)
            dwarf2out_end_block (pending_blocks[block_depth]);
 #endif
        }
@@ -3029,23 +3031,8 @@ void
 cleanup_subreg_operands (insn)
      rtx insn;
 {
-  int insn_code_number, i;
-
-  /* Ignore things we can not handle.  */
-  if (GET_RTX_CLASS (GET_CODE (insn)) != 'i'
-      || GET_CODE (PATTERN (insn)) == USE
-      || GET_CODE (PATTERN (insn)) == ADDR_VEC
-      || GET_CODE (PATTERN (insn)) == ADDR_DIFF_VEC
-      || GET_CODE (PATTERN (insn)) == ASM_INPUT
-      || asm_noperands (PATTERN (insn)) >= 0)
-    return;
-
-  /* Try to recognize the instruction.
-     If successful, verify that the operands satisfy the
-     constraints for the instruction.  Crash if they don't,
-     since `reload' should have changed them so that they do.  */
+  int i;
 
-  insn_code_number = recog_memoized (insn);
   extract_insn (insn);
   for (i = 0; i < recog_n_operands; i++)
     {
@@ -3350,11 +3337,13 @@ output_asm_name ()
       if (debug_insn)
        {
          register int num = INSN_CODE (debug_insn);
-         fprintf (asm_out_file, " %s %d %s", 
+         fprintf (asm_out_file, "\t%s %d\t%s", 
                   ASM_COMMENT_START, INSN_UID (debug_insn), insn_name[num]);
          if (insn_n_alternatives[num] > 1)
            fprintf (asm_out_file, "/%d", which_alternative + 1);
-
+#ifdef HAVE_ATTR_length
+         fprintf (asm_out_file, "\t[length = %d]", get_attr_length (debug_insn));
+#endif
          /* Clear this so only the first assembler insn
             of any rtl insn will get the special comment for -dp.  */
          debug_insn = 0;