Add support for generating PLT lookups for the ColdFire.
[deliverable/binutils-gdb.git] / gas / config / tc-m68k.c
index d9a59ca2ecb335982e5a88de8d0cac4c76a20904..db67d5eeac97c3b10adb8222db45d7c403843e8b 100644 (file)
@@ -1,6 +1,6 @@
 /* tc-m68k.c -- Assemble for the m68k family
    Copyright 1987, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-   2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
+   2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
 
    This file is part of GAS, the GNU Assembler.
 
@@ -178,6 +178,10 @@ static const enum m68k_register mcf_control_regs[] = {
   RAMBAR0, RAMBAR1, MBAR,
   0
 };
+static const enum m68k_register mcf5249_control_regs[] = {
+  CACR, ACR0, ACR1, VBR, RAMBAR0, RAMBAR1, MBAR, MBAR2,
+  0
+};
 static const enum m68k_register mcf528x_control_regs[] = {
   CACR, ACR0, ACR1, VBR, FLASHBAR, RAMBAR,
   0
@@ -2989,6 +2993,7 @@ m68k_ip (char *instring)
               tmpreg = 0xC0D;
               break;
             case MBAR0:
+            case MBAR2:
             case SECMBAR:
               tmpreg = 0xC0E;
               break;
@@ -3754,6 +3759,8 @@ static const struct init_entry init_table[] =
 
   { "flashbar", FLASHBAR },    /* mcf528x registers.  */
   { "rambar",   RAMBAR },      /* mcf528x registers.  */
+
+  { "mbar2",    MBAR2 },       /* mcf5249 registers.  */
   /* End of control registers.  */
 
   { "ac", AC },
@@ -4060,7 +4067,7 @@ md_assemble (char *str)
   shorts_this_frag = 0;
   if (n)
     {
-      toP = frag_more (n * sizeof (short));
+      toP = frag_more (n * 2);
       while (n--)
        {
          md_number_to_chars (toP, (long) (*fromP), 2);
@@ -4345,6 +4352,9 @@ select_control_regs (void)
     case mcf5407:
       control_regs = mcf_control_regs;
       break;
+    case mcf5249:
+      control_regs = mcf5249_control_regs;
+      break;
     case mcf528x:
     case mcf521x:
       control_regs = mcf528x_control_regs;
@@ -5118,8 +5128,8 @@ tc_aout_fix_to_chars (char *where, fixS *fixP,
 #endif /* OBJ_AOUT or OBJ_BOUT */
 
 #ifndef WORKING_DOT_WORD
-const int md_short_jump_size = 4;
-const int md_long_jump_size = 6;
+int md_short_jump_size = 4;
+int md_long_jump_size = 6;
 
 void
 md_create_short_jump (char *ptr, addressT from_addr, addressT to_addr,
@@ -7082,7 +7092,6 @@ md_parse_option (int c, char *arg)
        {
          int i;
          unsigned long arch;
-         const char *oarg = arg;
 
          arg += 3;
          if (*arg == 'm')
@@ -7438,6 +7447,8 @@ void
 m68k_elf_final_processing (void)
 {
   /* Set file-specific flags if this is a cpu32 processor.  */
+  if (arch_coldfire_fpu (current_architecture))
+    elf_elfheader (stdoutput)->e_flags |= EF_CFV4E;
   if (cpu_of_arch (current_architecture) & cpu32)
     elf_elfheader (stdoutput)->e_flags |= EF_CPU32;
   else if ((cpu_of_arch (current_architecture) & m68000up)
This page took 0.024666 seconds and 4 git commands to generate.