gas: detect DCTI couples in sparc
[deliverable/binutils-gdb.git] / bfd / cpu-powerpc.c
index 19604c3b9785cc50d9a4bb3443f55eef60f14224..fd72cd1a529af7067bd260ad1554c3c78172f578 100644 (file)
@@ -1,6 +1,5 @@
 /* BFD PowerPC CPU definition
 /* BFD PowerPC CPU definition
-   Copyright 1994, 1995, 1996, 2000, 2001, 2002, 2003, 2005, 2007, 2008,
-   2010, 2012 Free Software Foundation, Inc.
+   Copyright (C) 1994-2016 Free Software Foundation, Inc.
    Contributed by Ian Lance Taylor, Cygnus Support.
 
    This file is part of BFD, the Binary File Descriptor library.
    Contributed by Ian Lance Taylor, Cygnus Support.
 
    This file is part of BFD, the Binary File Descriptor library.
 
 /* The common PowerPC architecture is compatible with the RS/6000.  */
 
 
 /* The common PowerPC architecture is compatible with the RS/6000.  */
 
-static const bfd_arch_info_type *powerpc_compatible
-  PARAMS ((const bfd_arch_info_type *, const bfd_arch_info_type *));
-
 static const bfd_arch_info_type *
 static const bfd_arch_info_type *
-powerpc_compatible (a,b)
-     const bfd_arch_info_type *a;
-     const bfd_arch_info_type *b;
+powerpc_compatible (const bfd_arch_info_type *a,
+                   const bfd_arch_info_type *b)
 {
   BFD_ASSERT (a->arch == bfd_arch_powerpc);
   switch (b->arch)
 {
   BFD_ASSERT (a->arch == bfd_arch_powerpc);
   switch (b->arch)
@@ -40,6 +35,10 @@ powerpc_compatible (a,b)
     default:
       return NULL;
     case bfd_arch_powerpc:
     default:
       return NULL;
     case bfd_arch_powerpc:
+      if (a->mach == bfd_mach_ppc_vle && b->bits_per_word == 32)
+       return a;
+      if (b->mach == bfd_mach_ppc_vle && a->bits_per_word == 32)
+       return b;
       return bfd_default_compatible (a, b);
     case bfd_arch_rs6000:
       if (b->mach == bfd_mach_rs6k)
       return bfd_default_compatible (a, b);
     case bfd_arch_rs6000:
       if (b->mach == bfd_mach_rs6k)
@@ -375,6 +374,21 @@ const bfd_arch_info_type bfd_powerpc_archs[] =
     bfd_arch_default_fill,
     &bfd_powerpc_archs[19]
   },
     bfd_arch_default_fill,
     &bfd_powerpc_archs[19]
   },
+  {
+    16, /* 16 or 32 bits in a word */
+    32, /* 32 bits in an address */
+    8,  /* 8 bits in a byte */
+    bfd_arch_powerpc,
+    bfd_mach_ppc_vle,
+    "powerpc",
+    "powerpc:vle",
+    3,
+    FALSE, /* not the default */
+    powerpc_compatible,
+    bfd_default_scan,
+    bfd_arch_default_fill,
+    &bfd_powerpc_archs[20]
+  },
   {
     64, /* 64 bits in a word */
     64, /* 64 bits in an address */
   {
     64, /* 64 bits in a word */
     64, /* 64 bits in an address */
@@ -388,7 +402,7 @@ const bfd_arch_info_type bfd_powerpc_archs[] =
     powerpc_compatible,
     bfd_default_scan,
     bfd_arch_default_fill,
     powerpc_compatible,
     bfd_default_scan,
     bfd_arch_default_fill,
-    &bfd_powerpc_archs[20]
+    &bfd_powerpc_archs[21]
   },
   {
     64, /* 64 bits in a word */
   },
   {
     64, /* 64 bits in a word */
This page took 0.026202 seconds and 4 git commands to generate.