Add support for the GBZ80, Z180, and eZ80 variants of the Z80 architecure. Add an...
[deliverable/binutils-gdb.git] / binutils / readelf.c
index fab503df983af7a9efaa14e1f64c45d977a0d1d5..17c27ceedaee42512894119fc99de8349dc74c5e 100644 (file)
 #include "elf/xgate.h"
 #include "elf/xstormy16.h"
 #include "elf/xtensa.h"
+#include "elf/z80.h"
 
 #include "getopt.h"
 #include "libiberty.h"
@@ -1586,6 +1587,10 @@ dump_relocations (Filedata *          filedata,
          else
            rtype = elf_nfp_reloc_type (type);
          break;
+
+       case EM_Z80:
+         rtype = elf_z80_reloc_type (type);
+         break;
        }
 
       if (rtype == NULL)
@@ -3751,6 +3756,21 @@ get_machine_flags (Filedata * filedata, unsigned e_flags, unsigned e_machine)
 
          if (e_flags & ~ EF_MSP430_MACH)
            strcat (buf, _(": unknown extra flag bits also present"));
+         break;
+
+       case EM_Z80:
+         switch (e_flags & EF_Z80_MACH_MSK)
+           {
+           case EF_Z80_MACH_Z80: strcat (buf, ", Z80"); break;
+           case EF_Z80_MACH_Z180: strcat (buf, ", Z180"); break;
+           case EF_Z80_MACH_R800: strcat (buf, ", R800"); break;
+           case EF_Z80_MACH_EZ80_Z80: strcat (buf, ", EZ80"); break;
+           case EF_Z80_MACH_EZ80_ADL: strcat (buf, ", EZ80, ADL"); break;
+           case EF_Z80_MACH_GBZ80: strcat (buf, ", GBZ80"); break;
+           default:
+             strcat (buf, _(", unknown")); break;
+           }
+         break;
        }
     }
 
@@ -12722,6 +12742,8 @@ is_32bit_abs_reloc (Filedata * filedata, unsigned int reloc_type)
     case EM_XTENSA_OLD:
     case EM_XTENSA:
       return reloc_type == 1; /* R_XTENSA_32.  */
+    case EM_Z80:
+      return reloc_type == 6; /* R_Z80_32.  */
     default:
       {
        static unsigned int prev_warn = 0;
@@ -12904,6 +12926,8 @@ is_24bit_abs_reloc (Filedata * filedata, unsigned int reloc_type)
       return reloc_type == 4; /* R_MN10200_24.  */
     case EM_FT32:
       return reloc_type == 5; /* R_FT32_20.  */
+    case EM_Z80:
+      return reloc_type == 5; /* R_Z80_24. */
     default:
       return FALSE;
     }
@@ -12975,6 +12999,8 @@ is_16bit_abs_reloc (Filedata * filedata, unsigned int reloc_type)
       return reloc_type == 2; /* R_XC16C_ABS_16.  */
     case EM_XGATE:
       return reloc_type == 3; /* R_XGATE_16.  */
+    case EM_Z80:
+      return reloc_type == 4; /* R_Z80_16.  */
     default:
       return FALSE;
     }
@@ -12990,6 +13016,8 @@ is_8bit_abs_reloc (Filedata * filedata, unsigned int reloc_type)
     {
     case EM_RISCV:
       return reloc_type == 54; /* R_RISCV_SET8.  */
+    case EM_Z80:
+      return reloc_type == 1;  /* R_Z80_8.  */
     default:
       return FALSE;
     }
@@ -13197,6 +13225,7 @@ is_none_reloc (Filedata * filedata, unsigned int reloc_type)
     case EM_TI_C6000:/* R_C6000_NONE.  */
     case EM_X86_64:  /* R_X86_64_NONE.  */
     case EM_XC16X:
+    case EM_Z80:     /* R_Z80_NONE. */
     case EM_WEBASSEMBLY: /* R_WASM32_NONE.  */
       return reloc_type == 0;
 
This page took 0.042909 seconds and 4 git commands to generate.