diff options
Diffstat (limited to 'include/opcode/s390.h')
-rw-r--r-- | include/opcode/s390.h | 25 |
1 files changed, 22 insertions, 3 deletions
diff --git a/include/opcode/s390.h b/include/opcode/s390.h index f787b90..d540e1d 100644 --- a/include/opcode/s390.h +++ b/include/opcode/s390.h @@ -48,14 +48,35 @@ enum s390_opcode_cpu_val S390_OPCODE_MAXCPU }; -/* Instruction specific flags. */ +/* Values defined for the flags field of a struct s390_opcode. */ + +/* Last one or two instruction operands are optional. */ #define S390_INSTR_FLAG_OPTPARM 0x1 #define S390_INSTR_FLAG_OPTPARM2 0x2 +/* Instruction requires a specific facility. */ #define S390_INSTR_FLAG_HTM 0x4 #define S390_INSTR_FLAG_VX 0x8 #define S390_INSTR_FLAG_FACILITY_MASK 0xc +/* Instruction annotations for jump visualization. */ +#define S390_INSTR_FLAG_CLASS_BRANCH 0x10 +#define S390_INSTR_FLAG_CLASS_RELATIVE 0x20 +#define S390_INSTR_FLAG_CLASS_CONDITIONAL 0x40 +#define S390_INSTR_FLAG_CLASS_SUBROUTINE 0x80 +#define S390_INSTR_FLAG_CLASS_MASK 0xf0 + +#define S390_INSTR_FLAGS_CLASS_JUMP \ + (S390_INSTR_FLAG_CLASS_BRANCH | S390_INSTR_FLAG_CLASS_RELATIVE) + +#define S390_INSTR_FLAGS_CLASS_CONDJUMP \ + (S390_INSTR_FLAG_CLASS_BRANCH | S390_INSTR_FLAG_CLASS_RELATIVE \ + | S390_INSTR_FLAG_CLASS_CONDITIONAL) + +#define S390_INSTR_FLAGS_CLASS_JUMPSR \ + (S390_INSTR_FLAG_CLASS_BRANCH | S390_INSTR_FLAG_CLASS_RELATIVE \ + | S390_INSTR_FLAG_CLASS_SUBROUTINE) + /* The opcode table is an array of struct s390_opcode. */ struct s390_opcode @@ -101,8 +122,6 @@ extern const int s390_num_opcodes; extern const struct s390_opcode s390_opformats[]; extern const int s390_num_opformats; -/* Values defined for the flags field of a struct s390_opcode. */ - /* The operands table is an array of struct s390_operand. */ struct s390_operand |