diff options
author | Suzuki K. Poulose | 2013-08-29 11:05:48 +0200 |
---|---|---|
committer | Martin Schwidefsky | 2013-10-24 17:16:48 +0200 |
commit | 648ae35c54b147c3b25d212f2936bb1cb91ea7d0 (patch) | |
tree | 32b1571120c4b0984968e924225375f2a248cdb1 /arch/s390/include | |
parent | s390/dis: rename structures for unique types (diff) | |
download | kernel-qcow2-linux-648ae35c54b147c3b25d212f2936bb1cb91ea7d0.tar.gz kernel-qcow2-linux-648ae35c54b147c3b25d212f2936bb1cb91ea7d0.tar.xz kernel-qcow2-linux-648ae35c54b147c3b25d212f2936bb1cb91ea7d0.zip |
s390/dis: move common definitions to a header file
The patch moves some of the definitions to a
header file. No functional changes involved.
I have retained the Copyright Statement from the
original file.
Signed-off-by: Suzuki K Poulose <suzuki@in.ibm.com>
[Heiko Carstens: rename s390-dis.h to dis.h]
Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Diffstat (limited to 'arch/s390/include')
-rw-r--r-- | arch/s390/include/asm/dis.h | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/arch/s390/include/asm/dis.h b/arch/s390/include/asm/dis.h new file mode 100644 index 000000000000..6f73119ef27e --- /dev/null +++ b/arch/s390/include/asm/dis.h @@ -0,0 +1,42 @@ +/* + * Disassemble s390 instructions. + * + * Copyright IBM Corp. 2007 + * Author(s): Martin Schwidefsky (schwidefsky@de.ibm.com), + */ + +#ifndef __ASM_S390_DIS_H__ +#define __ASM_S390_DIS_H__ + +/* Type of operand */ +#define OPERAND_GPR 0x1 /* Operand printed as %rx */ +#define OPERAND_FPR 0x2 /* Operand printed as %fx */ +#define OPERAND_AR 0x4 /* Operand printed as %ax */ +#define OPERAND_CR 0x8 /* Operand printed as %cx */ +#define OPERAND_DISP 0x10 /* Operand printed as displacement */ +#define OPERAND_BASE 0x20 /* Operand printed as base register */ +#define OPERAND_INDEX 0x40 /* Operand printed as index register */ +#define OPERAND_PCREL 0x80 /* Operand printed as pc-relative symbol */ +#define OPERAND_SIGNED 0x100 /* Operand printed as signed value */ +#define OPERAND_LENGTH 0x200 /* Operand printed as length (+1) */ + + +struct s390_operand { + int bits; /* The number of bits in the operand. */ + int shift; /* The number of bits to shift. */ + int flags; /* One bit syntax flags. */ +}; + +struct s390_insn { + const char name[5]; + unsigned char opfrag; + unsigned char format; +}; + + +static inline int insn_length(unsigned char code) +{ + return ((((int) code + 64) >> 7) + 1) << 1; +} + +#endif /* __ASM_S390_DIS_H__ */ |