aboutsummaryrefslogtreecommitdiff
path: root/include/opcode/s390.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/opcode/s390.h')
-rw-r--r--include/opcode/s390.h25
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