Don't write to inferior_ptid in tracectf.c
[deliverable/binutils-gdb.git] / include / opcode / s390.h
index 1a42be6603a7fb554cc7edf150314d47475c8ae8..c4af871ae0b66ca973a8198cc4c62e522a55a145 100644 (file)
@@ -1,12 +1,12 @@
 /* s390.h -- Header file for S390 opcode table
 /* s390.h -- Header file for S390 opcode table
-   Copyright 2000, 2001 Free Software Foundation, Inc.
+   Copyright (C) 2000-2020 Free Software Foundation, Inc.
    Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
 
    This file is part of BFD, the Binary File Descriptor library.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
 
    This file is part of BFD, the Binary File Descriptor library.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 2 of the License, or
+   the Free Software Foundation; either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
-   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-   02111-1307, USA.  */
+   Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
+   02110-1301, USA.  */
 
 #ifndef S390_H
 #define S390_H
 
 /* List of instruction sets variations. */
 
 
 #ifndef S390_H
 #define S390_H
 
 /* List of instruction sets variations. */
 
-enum s390_opcode_arch_val
+enum s390_opcode_mode_val
   {
     S390_OPCODE_ESA = 0,
   {
     S390_OPCODE_ESA = 0,
-    S390_OPCODE_ESAME
+    S390_OPCODE_ZARCH
   };
 
   };
 
+enum s390_opcode_cpu_val
+  {
+    S390_OPCODE_G5 = 0,
+    S390_OPCODE_G6,
+    S390_OPCODE_Z900,
+    S390_OPCODE_Z990,
+    S390_OPCODE_Z9_109,
+    S390_OPCODE_Z9_EC,
+    S390_OPCODE_Z10,
+    S390_OPCODE_Z196,
+    S390_OPCODE_ZEC12,
+    S390_OPCODE_Z13,
+    S390_OPCODE_ARCH12,
+    S390_OPCODE_ARCH13,
+    S390_OPCODE_MAXCPU
+  };
+
+/* Instruction specific flags.  */
+#define S390_INSTR_FLAG_OPTPARM 0x1
+#define S390_INSTR_FLAG_OPTPARM2 0x2
+
+#define S390_INSTR_FLAG_HTM 0x4
+#define S390_INSTR_FLAG_VX 0x8
+#define S390_INSTR_FLAG_FACILITY_MASK 0xc
+
 /* The opcode table is an array of struct s390_opcode.  */
 
 struct s390_opcode
 /* The opcode table is an array of struct s390_opcode.  */
 
 struct s390_opcode
@@ -55,8 +80,14 @@ struct s390_opcode
        appear in assembly code, and are terminated by a zero.  */
     unsigned char operands[6];
 
        appear in assembly code, and are terminated by a zero.  */
     unsigned char operands[6];
 
-    /* Bitmask of architectures this opcode is available for.  */
-    unsigned int architecture;
+    /* Bitmask of execution modes this opcode is available for.  */
+    unsigned int modes;
+
+    /* First cpu this opcode is available for.  */
+    enum s390_opcode_cpu_val min_cpu;
+
+    /* Instruction specific flags.  */
+    unsigned int flags;
   };
 
 /* The table itself is sorted by major opcode number, and is otherwise
   };
 
 /* The table itself is sorted by major opcode number, and is otherwise
@@ -69,7 +100,7 @@ extern const int                s390_num_opcodes;
 extern const struct s390_opcode s390_opformats[];
 extern const int                s390_num_opformats;
 
 extern const struct s390_opcode s390_opformats[];
 extern const int                s390_num_opformats;
 
-/* Values defined for the flags field of a struct powerpc_opcode.  */
+/* Values defined for the flags field of a struct s390_opcode.  */
 
 /* The operands table is an array of struct s390_operand.  */
 
 
 /* The operands table is an array of struct s390_operand.  */
 
@@ -86,7 +117,7 @@ struct s390_operand
   };
 
 /* Elements in the table are retrieved by indexing with values from
   };
 
 /* Elements in the table are retrieved by indexing with values from
-   the operands field of the powerpc_opcodes table.  */
+   the operands field of the s390_opcodes table.  */
 
 extern const struct s390_operand s390_operands[];
 
 
 extern const struct s390_operand s390_operands[];
 
@@ -127,4 +158,17 @@ extern const struct s390_operand s390_operands[];
 /* This operand is a length.  */
 #define S390_OPERAND_LENGTH 0x200
 
 /* This operand is a length.  */
 #define S390_OPERAND_LENGTH 0x200
 
+/* The operand needs to be a valid GP or FP register pair.  */
+#define S390_OPERAND_REG_PAIR 0x400
+
+/* This operand names a vector register.  The disassembler uses this
+   to print register names with a leading 'v'.  */
+#define S390_OPERAND_VR 0x800
+
+#define S390_OPERAND_CP16 0x1000
+
+#define S390_OPERAND_OR1 0x2000
+#define S390_OPERAND_OR2 0x4000
+#define S390_OPERAND_OR8 0x8000
+
 #endif /* S390_H */
 #endif /* S390_H */
This page took 0.023995 seconds and 4 git commands to generate.