2007-06-13 Claudio Fontana <claudio.fontana@gmail.com>
[deliverable/binutils-gdb.git] / gdb / coffread.c
index e90e925faee89cbdb73d0a046b7d1cc6101c1146..7ff53b7134bbe3c18ef2550bf987c4e3ed28e96a 100644 (file)
@@ -1,6 +1,6 @@
 /* Read coff symbol tables and convert to internal format, for GDB.
    Copyright (C) 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996,
-   1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
+   1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2007
    Free Software Foundation, Inc.
    Contributed by David D. Johnson, Brown University (ddj@cs.brown.edu).
 
@@ -910,7 +910,8 @@ coff_symtab_read (long symtab_offset, unsigned int nsyms,
                      cs->c_sclass == C_EXT || cs->c_sclass == C_THUMBEXTFUNC
                      || cs->c_sclass == C_THUMBEXT ?
                      mst_text : mst_file_text;
-                   tmpaddr = SMASH_TEXT_ADDRESS (tmpaddr);
+                   tmpaddr = gdbarch_smash_text_address
+                               (current_gdbarch, tmpaddr);
                  }
                else if (bfd_section->flags & SEC_ALLOC
                         && bfd_section->flags & SEC_LOAD)
@@ -931,7 +932,8 @@ coff_symtab_read (long symtab_offset, unsigned int nsyms,
 
            msym = record_minimal_symbol (cs, tmpaddr, ms_type, sec, objfile);
            if (msym)
-             COFF_MAKE_MSYMBOL_SPECIAL (cs->c_sclass, msym);
+             gdbarch_coff_make_msymbol_special
+             (current_gdbarch, cs->c_sclass, msym);
 
            if (SDB_TYPE (cs->c_type))
              {
@@ -1547,7 +1549,8 @@ process_coff_symbol (struct coff_symbol *cs,
 #endif
        case C_REG:
          SYMBOL_CLASS (sym) = LOC_REGISTER;
-         SYMBOL_VALUE (sym) = SDB_REG_TO_REGNUM (cs->c_value);
+         SYMBOL_VALUE (sym) = gdbarch_sdb_reg_to_regnum
+                                (current_gdbarch, cs->c_value);
          add_symbol_to_list (sym, &local_symbols);
          break;
 
@@ -1559,7 +1562,7 @@ process_coff_symbol (struct coff_symbol *cs,
          SYMBOL_CLASS (sym) = LOC_ARG;
          add_symbol_to_list (sym, &local_symbols);
 #if !defined (BELIEVE_PCC_PROMOTION)
-         if (TARGET_BYTE_ORDER == BFD_ENDIAN_BIG)
+         if (gdbarch_byte_order (current_gdbarch) == BFD_ENDIAN_BIG)
            {
              /* If PCC says a parameter is a short or a char,
                 aligned on an int boundary, realign it to the
@@ -1581,7 +1584,8 @@ process_coff_symbol (struct coff_symbol *cs,
 
        case C_REGPARM:
          SYMBOL_CLASS (sym) = LOC_REGPARM;
-         SYMBOL_VALUE (sym) = SDB_REG_TO_REGNUM (cs->c_value);
+         SYMBOL_VALUE (sym) = gdbarch_sdb_reg_to_regnum
+                                (current_gdbarch, cs->c_value);
          add_symbol_to_list (sym, &local_symbols);
 #if !defined (BELIEVE_PCC_PROMOTION)
          /* FIXME:  This should retain the current type, since it's just
@@ -1808,7 +1812,8 @@ decode_base_type (struct coff_symbol *cs, unsigned int c_type,
 
     case T_LONG:
       if (cs->c_sclass == C_FIELD
-         && aux->x_sym.x_misc.x_lnsz.x_size > TARGET_LONG_BIT)
+         && aux->x_sym.x_misc.x_lnsz.x_size
+            > gdbarch_long_bit (current_gdbarch))
        return lookup_fundamental_type (current_objfile, FT_LONG_LONG);
       else
        return lookup_fundamental_type (current_objfile, FT_LONG);
@@ -1908,7 +1913,8 @@ decode_base_type (struct coff_symbol *cs, unsigned int c_type,
 
     case T_ULONG:
       if (cs->c_sclass == C_FIELD
-         && aux->x_sym.x_misc.x_lnsz.x_size > TARGET_LONG_BIT)
+         && aux->x_sym.x_misc.x_lnsz.x_size
+            > gdbarch_long_bit (current_gdbarch))
        return lookup_fundamental_type (current_objfile, FT_UNSIGNED_LONG_LONG);
       else
        return lookup_fundamental_type (current_objfile, FT_UNSIGNED_LONG);
@@ -2081,8 +2087,8 @@ coff_read_enum_type (int index, int length, int lastsym)
 
   if (length > 0)
     TYPE_LENGTH (type) = length;
-  else
-    TYPE_LENGTH (type) = TARGET_INT_BIT / TARGET_CHAR_BIT;     /* Assume ints */
+  else /* Assume ints.  */
+    TYPE_LENGTH (type) = gdbarch_int_bit (current_gdbarch) / TARGET_CHAR_BIT;
   TYPE_CODE (type) = TYPE_CODE_ENUM;
   TYPE_NFIELDS (type) = nsyms;
   TYPE_FIELDS (type) = (struct field *)
This page took 0.026263 seconds and 4 git commands to generate.