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 |