1999-06-21 Philip Blundell <pb@nexus.co.uk>
authorNick Clifton <nickc@redhat.com>
Thu, 15 Jul 1999 01:34:30 +0000 (01:34 +0000)
committerNick Clifton <nickc@redhat.com>
Thu, 15 Jul 1999 01:34:30 +0000 (01:34 +0000)
* arm.h (F_SOFTFLOAT): Define.

include/coff/ChangeLog
include/coff/arm.h

index b0b9a5859562c19deb8bf506a041826ec6456a0f..c8e67f16f6038e28fd005e338467810bfd960f1a 100644 (file)
@@ -1,3 +1,7 @@
+1999-06-21  Philip Blundell  <pb@nexus.co.uk>
+
+       * arm.h (F_SOFTFLOAT): Define.
+
 1999-07-05  Nick Clifton  <nickc@cygnus.com>
 
        * arm.h (F_ARM_5): Define.
index f9d0c8d6e24703a124fdce4ac7ff7781a7945002..b7a00139e22bb07fb22d73052fc27da650e1db13 100644 (file)
@@ -1,10 +1,28 @@
-/*** coff information for the ARM */
+/* ARM COFF support for BFD.
+   Copyright (C) 1998, 1999 Free Software Foundation, Inc.
+
+   This file is part of BFD, the Binary File Descriptor library.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 
 #define COFFARM 1
 
 /********************** FILE HEADER **********************/
 
-struct external_filehdr {
+struct external_filehdr
+{
        char f_magic[2];        /* magic number                 */
        char f_nscns[2];        /* number of sections           */
        char f_timdat[4];       /* time & date stamp            */
@@ -26,6 +44,7 @@ struct external_filehdr {
  *     F_AR32WR        file has byte ordering of an AR32WR machine (e.g. vax)
  *     F_APCS_26       file uses 26 bit ARM Procedure Calling Standard
  *     F_APCS_SET      the F_APCS_26, F_APCS_FLOAT and F_PIC bits have been initialised
+ *     F_SOFTFLOAT     code does not use floating point instructions
  */
 
 #define F_RELFLG       (0x0001)
@@ -40,6 +59,7 @@ struct external_filehdr {
 #define        F_AR32WR        (0x0100)
 #define F_APCS_26      (0x0400)
 #define F_APCS_SET     (0x0800)
+#define F_SOFTFLOAT    (0x2000)
 
 /* Bits stored in flags field of the internal_f structure */
 
@@ -86,8 +106,6 @@ typedef struct
   char entry[4];               /* entry pt.                            */
   char         text_start[4];          /* base of text used for this file */
   char         data_start[4];          /* base of data used for this file */
-
-
 }
 AOUTHDR;
 
@@ -109,9 +127,8 @@ AOUTHDR;
 #define NT_DEF_COMMIT        0x1000
 
 /********************** SECTION HEADER **********************/
-
-
-struct external_scnhdr {
+struct external_scnhdr
+{
        char            s_name[8];      /* section name                 */
        char            s_paddr[4];     /* physical address, aliased s_nlib */
        char            s_vaddr[4];     /* virtual address              */
@@ -146,8 +163,10 @@ struct external_scnhdr {
  * grouping will have l_lnno = 0 and in place of physical address will be the
  * symbol table index of the function name.
  */
-struct external_lineno {
-       union {
+struct external_lineno
+{
+       union
+       {
                char l_symndx[4];       /* function name symbol index, iff l_lnno == 0*/
                char l_paddr[4];        /* (physical) address of line number    */
        } l_addr;
@@ -167,9 +186,11 @@ struct external_lineno {
 
 struct external_syment 
 {
-  union {
+  union
+  {
     char e_name[E_SYMNMLEN];
-    struct {
+    struct
+    {
       char e_zeroes[4];
       char e_offset[4];
     } e;
@@ -186,37 +207,47 @@ struct external_syment
 #define N_BTSHFT       (4)
 #define N_TSHIFT       (2)
 
-union external_auxent {
-       struct {
+union external_auxent
+{
+       struct
+       {
                char x_tagndx[4];       /* str, un, or enum tag indx */
-               union {
-                       struct {
+               union
+               {
+                       struct
+                       {
                            char  x_lnno[2]; /* declaration line number */
                            char  x_size[2]; /* str/union/array size */
                        } x_lnsz;
                        char x_fsize[4];        /* size of function */
                } x_misc;
-               union {
-                       struct {                /* if ISFCN, tag, or .bb */
+               union
+               {
+                       struct                  /* if ISFCN, tag, or .bb */
+                       {
                            char x_lnnoptr[4];  /* ptr to fcn line # */
                            char x_endndx[4];   /* entry ndx past block end */
                        } x_fcn;
-                       struct {                /* if ISARY, up to 4 dimen. */
+                       struct                  /* if ISARY, up to 4 dimen. */
+                       {
                            char x_dimen[E_DIMNUM][2];
                        } x_ary;
                } x_fcnary;
                char x_tvndx[2];                /* tv index */
        } x_sym;
 
-       union {
+       union
+       {
                char x_fname[E_FILNMLEN];
-               struct {
+               struct
+               {
                        char x_zeroes[4];
                        char x_offset[4];
                } x_n;
        } x_file;
 
-       struct {
+       struct
+       {
                char x_scnlen[4];       /* section length */
                char x_nreloc[2];       /* # relocation entries */
                char x_nlinno[2];       /* # line numbers */
@@ -225,7 +256,8 @@ union external_auxent {
                char x_comdat[1];       /* COMDAT selection number */
        } x_scn;
 
-        struct {
+        struct
+       {
                char x_tvfill[4];       /* tv fill value */
                char x_tvlen[2];        /* length of .tv */
                char x_tvran[2][2];     /* tv range */
@@ -239,15 +271,11 @@ union external_auxent {
 #define        AUXENT  union external_auxent
 #define        AUXESZ  18
 
-
-#      define _ETEXT   "etext"
-
+#define _ETEXT "etext"
 
 /********************** RELOCATION DIRECTIVES **********************/
-
-
-
-struct external_reloc {
+struct external_reloc
+{
   char r_vaddr[4];
   char r_symndx[4];
   char r_type[2];