OSDN Git Service

Pass -mpacs-26 by default to arm assembler.
authorNick Clifton <nickc@redhat.com>
Thu, 9 Dec 1999 17:42:25 +0000 (17:42 +0000)
committerNick Clifton <nickc@redhat.com>
Thu, 9 Dec 1999 17:42:25 +0000 (17:42 +0000)
Add arm-epoc target support.
Do no mangle null page entries.

binutils/ChangeLog
binutils/dlltool.c

index 4ef55ce..39806f5 100644 (file)
@@ -1,3 +1,9 @@
+1999-12-09  Nick Clifton  <nickc@cygnus.com>
+
+       * dlltool.c (mtable): Add epoc-arm specific entry.
+       Make default arm entry pass -mpacs-26 to assembler.
+       (flush_page): Do not mangle null entries.
+       
 1999-12-07  H . J . Lu  hjl@valinux.com
 
        * readelf.c: Fix compile time warnings.  Support more than 999
index 23206a6..cfed2c6 100644 (file)
@@ -512,7 +512,7 @@ mtable[] =
 #define MARM 0
     "arm", ".byte", ".short", ".long", ".asciz", "@",
     "ldr\tip,[pc]\n\tldr\tpc,[ip]\n\t.long",
-    ".global", ".space", ".align\t2",".align\t4", "",
+    ".global", ".space", ".align\t2",".align\t4", "-mapcs-26",
     "pe-arm-little", bfd_arch_arm,
     arm_jtab, sizeof (arm_jtab), 8
   }
@@ -537,7 +537,7 @@ mtable[] =
 #define MTHUMB 3
     "thumb", ".byte", ".short", ".long", ".asciz", "@",
     "push\t{r6}\n\tldr\tr6, [pc, #8]\n\tldr\tr6, [r6]\n\tmov\tip, r6\n\tpop\t{r6}\n\tbx\tip",
-    ".global", ".space", ".align\t2",".align\t4", "=mthumb-interwork",
+    ".global", ".space", ".align\t2",".align\t4", "-mthumb-interwork",
     "pe-arm-little", bfd_arch_arm,
     thumb_jtab, sizeof (thumb_jtab), 12
   }
@@ -587,6 +587,15 @@ mtable[] =
     mcore_le_jtab, sizeof (mcore_le_jtab), 8
   }
   ,
+  {
+#define MARM_EPOC 9
+    "arm", ".byte", ".short", ".long", ".asciz", "@",
+    "ldr\tip,[pc]\n\tldr\tpc,[ip]\n\t.long",
+    ".global", ".space", ".align\t2",".align\t4", "",
+    "epoc-pe-arm-little", bfd_arch_arm,
+    arm_jtab, sizeof (arm_jtab), 8
+  }
+  ,
   { 0 }
 };
 
@@ -1248,7 +1257,6 @@ scan_drectve_symbols (abfd)
                flags &= ~BSF_FUNCTION;
            }
 
-
          /* FIXME: The 5th arg is for the `constant' field.
             What should it be?  Not that it matters since it's not
             currently useful.  */
@@ -1302,7 +1310,7 @@ scan_filtered_symbols (abfd, minisyms, symcount, size)
        ++symbol_name;
 
       def_exports (xstrdup (symbol_name) , 0, -1, 0, 0,
-                   ! (sym->flags & BSF_FUNCTION));
+                  ! (sym->flags & BSF_FUNCTION));
 
       if (add_stdcall_alias && strchr (symbol_name, '@'))
         {
@@ -1574,9 +1582,15 @@ flush_page (f, need, page_addr, on_page)
           ASM_C);
   
   for (i = 0; i < on_page; i++)
-    fprintf (f, "\t%s\t0x%lx\n", ASM_SHORT,
-            ((need[i] - page_addr) | 0x3000) & 0xffff);
-
+    {
+      long needed = need[i];
+      
+      if (needed)
+       needed = ((needed - page_addr) | 0x3000) & 0xffff;
+  
+      fprintf (f, "\t%s\t0x%lx\n", ASM_SHORT, needed);
+    }
+  
   /* And padding */
   if (on_page & 1)
     fprintf (f, "\t%s\t0x%x\n", ASM_SHORT, 0 | 0x0000);