2
* Disassemble s390 instructions.
4
* Copyright IBM Corp. 2007
5
* Author(s): Martin Schwidefsky (schwidefsky@de.ibm.com),
8
#ifndef __ASM_S390_DIS_H__
9
#define __ASM_S390_DIS_H__
12
#define OPERAND_GPR 0x1 /* Operand printed as %rx */
13
#define OPERAND_FPR 0x2 /* Operand printed as %fx */
14
#define OPERAND_AR 0x4 /* Operand printed as %ax */
15
#define OPERAND_CR 0x8 /* Operand printed as %cx */
16
#define OPERAND_DISP 0x10 /* Operand printed as displacement */
17
#define OPERAND_BASE 0x20 /* Operand printed as base register */
18
#define OPERAND_INDEX 0x40 /* Operand printed as index register */
19
#define OPERAND_PCREL 0x80 /* Operand printed as pc-relative symbol */
20
#define OPERAND_SIGNED 0x100 /* Operand printed as signed value */
21
#define OPERAND_LENGTH 0x200 /* Operand printed as length (+1) */
25
int bits; /* The number of bits in the operand. */
26
int shift; /* The number of bits to shift. */
27
int flags; /* One bit syntax flags. */
37
static inline int insn_length(unsigned char code)
39
return ((((int) code + 64) >> 7) + 1) << 1;
42
void show_code(struct pt_regs *regs);
43
void print_fn_code(unsigned char *code, unsigned long len);
44
int insn_to_mnemonic(unsigned char *instruction, char *buf, unsigned int len);
45
struct s390_insn *find_insn(unsigned char *code);
47
static inline int is_known_insn(unsigned char *code)
49
return !!find_insn(code);
52
#endif /* __ASM_S390_DIS_H__ */