OSDN Git Service

2010-06-07 Tobias Burnus <burnus@net-b.de>
[pf3gnuchains/gcc-fork.git] / gcc / dwarf2asm.c
index fcd8718..516a260 100644 (file)
@@ -1,5 +1,5 @@
 /* Dwarf2 assembler output helper routines.
-   Copyright (C) 2001, 2002, 2003, 2004, 2005, 2007, 2008
+   Copyright (C) 2001, 2002, 2003, 2004, 2005, 2007, 2008, 2009, 2010
    Free Software Foundation, Inc.
 
 This file is part of GCC.
@@ -52,7 +52,7 @@ dw2_assemble_integer (int size, rtx x)
   if (op)
     {
       fputs (op, asm_out_file);
-      if (GET_CODE (x) == CONST_INT)
+      if (CONST_INT_P (x))
        fprintf (asm_out_file, HOST_WIDE_INT_PRINT_HEX,
                 (unsigned HOST_WIDE_INT) INTVAL (x));
       else
@@ -80,14 +80,14 @@ dw2_asm_output_data_raw (int size, unsigned HOST_WIDE_INT value)
   if (BYTES_BIG_ENDIAN)
     {
       for (i = size - 1; i > 0; --i)
-       fprintf (asm_out_file, "0x%x,", bytes[i]);
-      fprintf (asm_out_file, "0x%x", bytes[0]);
+       fprintf (asm_out_file, "%#x,", bytes[i]);
+      fprintf (asm_out_file, "%#x", bytes[0]);
     }
   else
     {
       for (i = 0; i < size - 1; ++i)
-       fprintf (asm_out_file, "0x%x,", bytes[i]);
-      fprintf (asm_out_file, "0x%x", bytes[i]);
+       fprintf (asm_out_file, "%#x,", bytes[i]);
+      fprintf (asm_out_file, "%#x", bytes[i]);
     }
 }
 
@@ -268,7 +268,7 @@ dw2_asm_output_addr_rtx (int size, rtx addr,
    If COMMENT is not NULL and comments in the debug information
    have been requested by the user, append the given COMMENT
    to the generated output.  */
-   
+
 void
 dw2_asm_output_nstring (const char *str, size_t orig_len,
                        const char *comment, ...)
@@ -446,6 +446,8 @@ eh_data_format_name (int format)
   S(DW_EH_PE_sdata4 | DW_EH_PE_funcrel, "funcrel sdata4")
   S(DW_EH_PE_sdata8 | DW_EH_PE_funcrel, "funcrel sdata8")
 
+  S(DW_EH_PE_indirect | DW_EH_PE_absptr, "indirect absolute")
+
   S(DW_EH_PE_indirect | DW_EH_PE_absptr | DW_EH_PE_pcrel,
     "indirect pcrel")
   S(DW_EH_PE_indirect | DW_EH_PE_uleb128 | DW_EH_PE_pcrel,
@@ -526,7 +528,7 @@ eh_data_format_name (int format)
   };
 
   gcc_assert (format >= 0 && format < 0x100 && format_names[format]);
-  
+
   return format_names[format];
 #else
   }
@@ -547,7 +549,7 @@ dw2_asm_output_data_uleb128_raw (unsigned HOST_WIDE_INT value)
        /* More bytes to follow.  */
        byte |= 0x80;
 
-      fprintf (asm_out_file, "0x%x", byte);
+      fprintf (asm_out_file, "%#x", byte);
       if (value == 0)
        break;
       fputc (',', asm_out_file);
@@ -589,7 +591,7 @@ dw2_asm_output_data_uleb128 (unsigned HOST_WIDE_INT value,
 
        if (byte_op)
          {
-           fprintf (asm_out_file, "0x%x", byte);
+           fprintf (asm_out_file, "%#x", byte);
            if (work != 0)
              fputc (',', asm_out_file);
          }
@@ -631,7 +633,7 @@ dw2_asm_output_data_sleb128_raw (HOST_WIDE_INT value)
       if (more)
        byte |= 0x80;
 
-      fprintf (asm_out_file, "0x%x", byte);
+      fprintf (asm_out_file, "%#x", byte);
       if (!more)
        break;
       fputc (',', asm_out_file);
@@ -676,7 +678,7 @@ dw2_asm_output_data_sleb128 (HOST_WIDE_INT value,
 
        if (byte_op)
          {
-           fprintf (asm_out_file, "0x%x", byte);
+           fprintf (asm_out_file, "%#x", byte);
            if (more)
              fputc (',', asm_out_file);
          }
@@ -875,11 +877,12 @@ dw2_output_indirect_constant_1 (splay_tree_node node,
   DECL_ARTIFICIAL (decl) = 1;
   DECL_IGNORED_P (decl) = 1;
   DECL_INITIAL (decl) = decl;
+  TREE_READONLY (decl) = 1;
 
   if (TREE_PUBLIC (id))
     {
       TREE_PUBLIC (decl) = 1;
-      make_decl_one_only (decl);
+      make_decl_one_only (decl, DECL_ASSEMBLER_NAME (decl));
     }
   else
     TREE_STATIC (decl) = 1;