dwarf2out.c (output_loc_operands): Don't support >1 byte output unless DWARF2_DEBUGGI...
authorJason Merrill <jason@redhat.com>
Wed, 28 Jun 2000 21:19:41 +0000 (17:19 -0400)
committerJason Merrill <jason@gcc.gnu.org>
Wed, 28 Jun 2000 21:19:41 +0000 (17:19 -0400)
        * dwarf2out.c (output_loc_operands): Don't support >1 byte output
        unless DWARF2_DEBUGGING_INFO is defined.
        (ASM_OUTPUT_DWARF_*): Wrap normal output defs with #ifndefs.

From-SVN: r34768

gcc/ChangeLog
gcc/dwarf2out.c

index 1393e5c..e70b971 100644 (file)
@@ -1,3 +1,9 @@
+2000-06-28  Jason Merrill  <jason@redhat.com>
+
+       * dwarf2out.c (output_loc_operands): Don't support >1 byte output
+       unless DWARF2_DEBUGGING_INFO is defined.
+       (ASM_OUTPUT_DWARF_*): Wrap normal output defs with #ifndefs.
+
 2000-06-28  Richard Henderson  <rth@cygnus.com>
 
        * config/alpha/alpha.c (summarize_insn): Ignore SCRATCH.
index d8560c0..6a438b5 100644 (file)
@@ -464,41 +464,63 @@ static void def_cfa_1                     PARAMS ((const char *, dw_cfa_location *));
 /* We don't have unaligned support, let's hope the normal output works for
    .debug_frame.  */
 
+#ifndef ASM_OUTPUT_DWARF_ADDR
 #define ASM_OUTPUT_DWARF_ADDR(FILE,LABEL) \
   assemble_integer (gen_rtx_SYMBOL_REF (Pmode, LABEL), DWARF2_ADDR_SIZE, 1)
+#endif
+
+#ifndef ASM_OUTPUT_DWARF_ADDR_CONST
+#define ASM_OUTPUT_DWARF_ADDR_CONST(FILE,RTX) ASM_OUTPUT_DWARF_ADDR (FILE,RTX)
+#endif
 
+#ifndef ASM_OUTPUT_DWARF_OFFSET4
 #define ASM_OUTPUT_DWARF_OFFSET4(FILE,LABEL) \
   assemble_integer (gen_rtx_SYMBOL_REF (SImode, LABEL), 4, 1)
+#endif
 
+#ifndef ASM_OUTPUT_DWARF_OFFSET
 #define ASM_OUTPUT_DWARF_OFFSET(FILE,LABEL) \
   assemble_integer (gen_rtx_SYMBOL_REF (SImode, LABEL), 4, 1)
+#endif
 
+#ifndef ASM_OUTPUT_DWARF_DELTA2
 #define ASM_OUTPUT_DWARF_DELTA2(FILE,LABEL1,LABEL2)                    \
   assemble_integer (gen_rtx_MINUS (HImode,                             \
                                   gen_rtx_SYMBOL_REF (Pmode, LABEL1),  \
                                   gen_rtx_SYMBOL_REF (Pmode, LABEL2)), \
                    2, 1)
+#endif
   
+#ifndef ASM_OUTPUT_DWARF_DELTA4
 #define ASM_OUTPUT_DWARF_DELTA4(FILE,LABEL1,LABEL2)                    \
   assemble_integer (gen_rtx_MINUS (SImode,                             \
                                   gen_rtx_SYMBOL_REF (Pmode, LABEL1),  \
                                   gen_rtx_SYMBOL_REF (Pmode, LABEL2)), \
                    4, 1)
+#endif
 
+#ifndef ASM_OUTPUT_DWARF_ADDR_DELTA
 #define ASM_OUTPUT_DWARF_ADDR_DELTA(FILE,LABEL1,LABEL2)                        \
   assemble_integer (gen_rtx_MINUS (Pmode,                              \
                                   gen_rtx_SYMBOL_REF (Pmode, LABEL1),  \
                                   gen_rtx_SYMBOL_REF (Pmode, LABEL2)), \
                    DWARF2_ADDR_SIZE, 1)
+#endif
 
+#ifndef ASM_OUTPUT_DWARF_DELTA
 #define ASM_OUTPUT_DWARF_DELTA(FILE,LABEL1,LABEL2) \
   ASM_OUTPUT_DWARF_DELTA4 (FILE,LABEL1,LABEL2)
+#endif
 
+#ifndef ASM_OUTPUT_DWARF_DATA2
 #define ASM_OUTPUT_DWARF_DATA2(FILE,VALUE) \
   assemble_integer (GEN_INT (VALUE), 2, 1)
+#endif
 
+#ifndef ASM_OUTPUT_DWARF_DATA4
 #define ASM_OUTPUT_DWARF_DATA4(FILE,VALUE) \
   assemble_integer (GEN_INT (VALUE), 4, 1)
+#endif
 
 #endif /* UNALIGNED_INT_ASM_OP */
 
@@ -2599,15 +2621,15 @@ output_loc_operands (loc)
 
   switch (loc->dw_loc_opc)
     {
+#ifdef DWARF2_DEBUGGING_INFO
+      /* We currently don't make any attempt to make sure these are
+         aligned properly like we do for the main unwind info, so
+         don't support emitting things larger than a byte if we're
+         only doing unwinding.  */
     case DW_OP_addr:
       ASM_OUTPUT_DWARF_ADDR_CONST (asm_out_file, val1->v.val_addr);
       fputc ('\n', asm_out_file);
       break;
-    case DW_OP_const1u:
-    case DW_OP_const1s:
-      ASM_OUTPUT_DWARF_DATA1 (asm_out_file, val1->v.val_flag);
-      fputc ('\n', asm_out_file);
-      break;
     case DW_OP_const2u:
     case DW_OP_const2s:
       ASM_OUTPUT_DWARF_DATA2 (asm_out_file, val1->v.val_int);
@@ -2623,6 +2645,17 @@ output_loc_operands (loc)
       abort ();
       fputc ('\n', asm_out_file);
       break;
+    case DW_OP_skip:
+    case DW_OP_bra:
+      ASM_OUTPUT_DWARF_DATA2 (asm_out_file, val1->v.val_int);
+      fputc ('\n', asm_out_file);
+      break;
+#endif
+    case DW_OP_const1u:
+    case DW_OP_const1s:
+      ASM_OUTPUT_DWARF_DATA1 (asm_out_file, val1->v.val_flag);
+      fputc ('\n', asm_out_file);
+      break;
     case DW_OP_constu:
       output_uleb128 (val1->v.val_unsigned);
       fputc ('\n', asm_out_file);
@@ -2639,11 +2672,6 @@ output_loc_operands (loc)
       output_uleb128 (val1->v.val_unsigned);
       fputc ('\n', asm_out_file);
       break;
-    case DW_OP_skip:
-    case DW_OP_bra:
-      ASM_OUTPUT_DWARF_DATA2 (asm_out_file, val1->v.val_int);
-      fputc ('\n', asm_out_file);
-      break;
     case DW_OP_breg0:
     case DW_OP_breg1:
     case DW_OP_breg2:
@@ -2703,7 +2731,7 @@ output_loc_operands (loc)
       fputc ('\n', asm_out_file);
       break;
     default:
-      break;
+      abort ();
     }
 }