update copyright dates
[deliverable/binutils-gdb.git] / opcodes / s390-dis.c
index 0ddaaf178233aec2f79c9eb60326110da7be28c5..b574edb60f70ee9f7b565b445826b823e72d836f 100644 (file)
@@ -1,5 +1,5 @@
 /* s390-dis.c -- Disassemble S390 instructions
-   Copyright 2000, 2001 Free Software Foundation, Inc.
+   Copyright 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
    Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
 
    This file is part of GDB, GAS and the GNU binutils.
@@ -53,11 +53,11 @@ init_disasm (info)
     }
   switch (info->mach)
     {
-    case bfd_mach_s390_esa:
+    case bfd_mach_s390_31:
       current_arch_mask = 1 << S390_OPCODE_ESA;
       break;
-    case bfd_mach_s390_esame:
-      current_arch_mask = 1 << S390_OPCODE_ESAME;
+    case bfd_mach_s390_64:
+      current_arch_mask = 1 << S390_OPCODE_ZARCH;
       break;
     default:
       abort ();
@@ -89,6 +89,10 @@ s390_extract_operand (insn, operand)
   val >>= -bits;
   val &= ((1U << (operand->bits - 1)) << 1) - 1;
 
+  /* Check for special long displacement case.  */
+  if (operand->bits == 20 && operand->shift == 20)
+    val = (val & 0xff) << 12 | (val & 0xfff00) >> 8;
+
   /* Sign extend value if the operand is signed or pc relative.  */
   if ((operand->flags & (S390_OPERAND_SIGNED | S390_OPERAND_PCREL))
       && (val & (1U << (operand->bits - 1))))
@@ -161,7 +165,7 @@ print_insn_s390 (memaddr, info)
          const unsigned char *opindex;
 
          /* Check architecture.  */
-         if (!(opcode->architecture & current_arch_mask))
+         if (!(opcode->modes & current_arch_mask))
            continue;
          /* Check signature of the opcode.  */
          if ((buffer[1] & opcode->mask[1]) != opcode->opcode[1]
This page took 0.043968 seconds and 4 git commands to generate.