aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--bfd/ChangeLog19
-rw-r--r--bfd/archures.c1
-rw-r--r--bfd/bfd-in2.h1
-rw-r--r--bfd/cpu-m10300.c18
-rw-r--r--bfd/elf-m10300.c10
5 files changed, 47 insertions, 2 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 5314c28..1a38a7b 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,22 @@
+2003-07-09 Alexandre Oliva <aoliva@redhat.com>
+
+ 2001-05-06 Alexandre Oliva <aoliva@redhat.com>
+ * elf-m10300.c (compute_function_info): Account for AM33
+ registers in `movm' when computing stack space for `call' when
+ linking for AM33/2.0 link.
+ 2000-04-01 Alexandre Oliva <aoliva@cygnus.com>
+ * archures.c (bfd_mach_am33_2): Renamed from bfd_mach_am332.
+ * bfd-in2.h: Rebuilt.
+ * cpu-m10300.c (bfd_am33_2_arch): Renamed from bfd_am332_arch.
+ * elf-m10300.c: Updated.
+ 2000-03-31 Alexandre Oliva <aoliva@cygnus.com>
+ * archures.c (bfd_mach_am332): Defined.
+ * bfd-in2.h: Rebuilt.
+ * cpu-m10300.c (bfd_am332_arch): Defined.
+ (bfd_am33_arch): Chained with am33-2.
+ * elf-m10300.c (elf_mn10300_mach): Handle am332.
+ (_bfd_mn10300_elf_final_write_processing): Likewise.
+
2003-07-09 H.J. Lu <hongjiu.lu@intel.com>
* elfxx-ia64.c (IA64_HOWTO): Set dst_mask to -1LL.
diff --git a/bfd/archures.c b/bfd/archures.c
index c010c9e..d339c5e 100644
--- a/bfd/archures.c
+++ b/bfd/archures.c
@@ -264,6 +264,7 @@ DESCRIPTION
. bfd_arch_mn10300, {* Matsushita MN10300 *}
.#define bfd_mach_mn10300 300
.#define bfd_mach_am33 330
+.#define bfd_mach_am33_2 332
. bfd_arch_fr30,
.#define bfd_mach_fr30 0x46523330
. bfd_arch_frv,
diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h
index b8ca7d9..171a24c 100644
--- a/bfd/bfd-in2.h
+++ b/bfd/bfd-in2.h
@@ -1690,6 +1690,7 @@ enum bfd_architecture
bfd_arch_mn10300, /* Matsushita MN10300 */
#define bfd_mach_mn10300 300
#define bfd_mach_am33 330
+#define bfd_mach_am33_2 332
bfd_arch_fr30,
#define bfd_mach_fr30 0x46523330
bfd_arch_frv,
diff --git a/bfd/cpu-m10300.c b/bfd/cpu-m10300.c
index a67c48b..2de9cd1 100644
--- a/bfd/cpu-m10300.c
+++ b/bfd/cpu-m10300.c
@@ -21,6 +21,22 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
#include "sysdep.h"
#include "libbfd.h"
+const bfd_arch_info_type bfd_am33_2_arch =
+ {
+ 32, /* 32 bits in a word */
+ 32, /* 32 bits in an address */
+ 8, /* 8 bits in a byte */
+ bfd_arch_mn10300,
+ 332,
+ "am33_2",
+ "am33-2",
+ 2,
+ FALSE,
+ bfd_default_compatible,
+ bfd_default_scan,
+ 0,
+ };
+
const bfd_arch_info_type bfd_am33_arch =
{
32, /* 32 bits in a word */
@@ -34,7 +50,7 @@ const bfd_arch_info_type bfd_am33_arch =
FALSE,
bfd_default_compatible,
bfd_default_scan,
- 0,
+ &bfd_am33_2_arch,
};
const bfd_arch_info_type bfd_mn10300_arch =
diff --git a/bfd/elf-m10300.c b/bfd/elf-m10300.c
index 15d1a33..d33c859 100644
--- a/bfd/elf-m10300.c
+++ b/bfd/elf-m10300.c
@@ -2370,7 +2370,8 @@ compute_function_info (abfd, hash, addr, contents)
if (hash->movm_args & 0x08)
hash->movm_stack_size += 8 * 4;
- if (bfd_get_mach (abfd) == bfd_mach_am33)
+ if (bfd_get_mach (abfd) == bfd_mach_am33
+ || bfd_get_mach (abfd) == bfd_mach_am33_2)
{
/* "exother" space. e0, e1, mdrq, mcrh, mcrl, mcvf */
if (hash->movm_args & 0x1)
@@ -2750,6 +2751,9 @@ elf_mn10300_mach (flags)
case E_MN10300_MACH_AM33:
return bfd_mach_am33;
+
+ case E_MN10300_MACH_AM33_2:
+ return bfd_mach_am33_2;
}
}
@@ -2774,6 +2778,10 @@ _bfd_mn10300_elf_final_write_processing (abfd, linker)
case bfd_mach_am33:
val = E_MN10300_MACH_AM33;
break;
+
+ case bfd_mach_am33_2:
+ val = E_MN10300_MACH_AM33_2;
+ break;
}
elf_elfheader (abfd)->e_flags &= ~ (EF_MN10300_MACH);