123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175 |
- #ifndef S390_H
- #define S390_H
- enum s390_opcode_mode_val
- {
- S390_OPCODE_ESA = 0,
- 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_MAXCPU
- };
- #define S390_INSTR_FLAG_OPTPARM 0x1
- #define S390_INSTR_FLAG_HTM 0x2
- #define S390_INSTR_FLAG_VX 0x4
- #define S390_INSTR_FLAG_FACILITY_MASK 0x6
- struct s390_opcode
- {
-
- const char * name;
-
- unsigned char opcode[6];
-
- unsigned char mask[6];
-
- int oplen;
-
- unsigned char operands[6];
-
- unsigned int modes;
-
- enum s390_opcode_cpu_val min_cpu;
-
- unsigned int flags;
- };
- extern const struct s390_opcode s390_opcodes[];
- extern const int s390_num_opcodes;
- extern const struct s390_opcode s390_opformats[];
- extern const int s390_num_opformats;
- struct s390_operand
- {
-
- int bits;
-
- int shift;
-
- unsigned long flags;
- };
- extern const struct s390_operand s390_operands[];
- #define S390_OPERAND_GPR 0x1
- #define S390_OPERAND_FPR 0x2
- #define S390_OPERAND_AR 0x4
- #define S390_OPERAND_CR 0x8
- #define S390_OPERAND_DISP 0x10
- #define S390_OPERAND_BASE 0x20
- #define S390_OPERAND_INDEX 0x40
- #define S390_OPERAND_PCREL 0x80
- #define S390_OPERAND_SIGNED 0x100
- #define S390_OPERAND_LENGTH 0x200
- #define S390_OPERAND_OPTIONAL 0x400
- #define S390_OPERAND_REG_PAIR 0x800
- #define S390_OPERAND_VR 0x1000
- #define S390_OPERAND_CP16 0x2000
- #define S390_OPERAND_OR1 0x4000
- #define S390_OPERAND_OR2 0x8000
- #define S390_OPERAND_OR8 0x10000
- #endif
|