Subversion Repositories Kolibri OS

Rev

Rev 5191 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 5191 Rev 6324
Line 1... Line 1...
1
/* s390.h -- Header file for S390 opcode table
1
/* s390.h -- Header file for S390 opcode table
2
   Copyright 2000, 2001, 2003, 2010 Free Software Foundation, Inc.
2
   Copyright (C) 2000-2015 Free Software Foundation, Inc.
3
   Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
3
   Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
Line 4... Line 4...
4
 
4
 
Line 5... Line 5...
5
   This file is part of BFD, the Binary File Descriptor library.
5
   This file is part of BFD, the Binary File Descriptor library.
Line 39... Line 39...
39
    S390_OPCODE_Z9_109,
39
    S390_OPCODE_Z9_109,
40
    S390_OPCODE_Z9_EC,
40
    S390_OPCODE_Z9_EC,
41
    S390_OPCODE_Z10,
41
    S390_OPCODE_Z10,
42
    S390_OPCODE_Z196,
42
    S390_OPCODE_Z196,
43
    S390_OPCODE_ZEC12,
43
    S390_OPCODE_ZEC12,
-
 
44
    S390_OPCODE_Z13,
44
    S390_OPCODE_MAXCPU
45
    S390_OPCODE_MAXCPU
45
  };
46
  };
Line -... Line 47...
-
 
47
 
-
 
48
/* Instruction specific flags.  */
-
 
49
#define S390_INSTR_FLAG_OPTPARM 0x1
-
 
50
#define S390_INSTR_FLAG_HTM 0x2
-
 
51
#define S390_INSTR_FLAG_VX 0x4
-
 
52
#define S390_INSTR_FLAG_FACILITY_MASK 0x6
46
 
53
 
Line 47... Line 54...
47
/* The opcode table is an array of struct s390_opcode.  */
54
/* The opcode table is an array of struct s390_opcode.  */
48
 
55
 
49
struct s390_opcode
56
struct s390_opcode
Line 72... Line 79...
72
    /* Bitmask of execution modes this opcode is available for.  */
79
    /* Bitmask of execution modes this opcode is available for.  */
73
    unsigned int modes;
80
    unsigned int modes;
Line 74... Line 81...
74
 
81
 
75
    /* First cpu this opcode is available for.  */
82
    /* First cpu this opcode is available for.  */
-
 
83
    enum s390_opcode_cpu_val min_cpu;
-
 
84
 
-
 
85
    /* Instruction specific flags.  */
76
    enum s390_opcode_cpu_val min_cpu;
86
    unsigned int flags;
Line 77... Line 87...
77
  };
87
  };
78
 
88
 
79
/* The table itself is sorted by major opcode number, and is otherwise
89
/* The table itself is sorted by major opcode number, and is otherwise
Line 84... Line 94...
84
 
94
 
85
/* A opcode format table for the .insn pseudo mnemonic.  */
95
/* A opcode format table for the .insn pseudo mnemonic.  */
86
extern const struct s390_opcode s390_opformats[];
96
extern const struct s390_opcode s390_opformats[];
Line 87... Line 97...
87
extern const int                s390_num_opformats;
97
extern const int                s390_num_opformats;
Line 88... Line 98...
88
 
98
 
Line 89... Line 99...
89
/* Values defined for the flags field of a struct powerpc_opcode.  */
99
/* Values defined for the flags field of a struct s390_opcode.  */
90
 
100
 
Line 101... Line 111...
101
    /* One bit syntax flags.  */
111
    /* One bit syntax flags.  */
102
    unsigned long flags;
112
    unsigned long flags;
103
  };
113
  };
Line 104... Line 114...
104
 
114
 
105
/* Elements in the table are retrieved by indexing with values from
115
/* Elements in the table are retrieved by indexing with values from
Line 106... Line 116...
106
   the operands field of the powerpc_opcodes table.  */
116
   the operands field of the s390_opcodes table.  */
Line 107... Line 117...
107
 
117
 
Line 149... Line 159...
149
#define S390_OPERAND_OPTIONAL 0x400
159
#define S390_OPERAND_OPTIONAL 0x400
Line 150... Line 160...
150
 
160
 
151
/* The operand needs to be a valid GP or FP register pair.  */
161
/* The operand needs to be a valid GP or FP register pair.  */
Line -... Line 162...
-
 
162
#define S390_OPERAND_REG_PAIR 0x800
-
 
163
 
-
 
164
/* This operand names a vector register.  The disassembler uses this
-
 
165
   to print register names with a leading 'v'.  */
-
 
166
#define S390_OPERAND_VR 0x1000
-
 
167
 
-
 
168
#define S390_OPERAND_CP16 0x2000
-
 
169
 
-
 
170
#define S390_OPERAND_OR1 0x4000
-
 
171
#define S390_OPERAND_OR2 0x8000
152
#define S390_OPERAND_REG_PAIR 0x800
172
#define S390_OPERAND_OR8 0x10000