Pass -mpacs-26 by default to arm assembler.

Add arm-epoc target support.
Do no mangle null page entries.
This commit is contained in:
Nick Clifton 1999-12-09 17:42:25 +00:00
parent de57eccd12
commit a2186dfed7
2 changed files with 27 additions and 7 deletions

View 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

View 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);