0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek * This file and its contents are supplied under the terms of the
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek * Common Development and Distribution License ("CDDL"), version 1.0.
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek * You may only use this file in accordance with the terms of version
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek * 1.0 of the CDDL.
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek * A full copy of the text of the CDDL should have accompanied this
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek * source. A copy of the CDDL is also available via the Internet at
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek * Copyright 2015 Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek#define ILC2LEN(ilc) (2 * ((ilc) >= 2 ? (ilc) : (ilc) + 1))
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek * Throughout this file, the instruction format names based on:
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek * SA22-7832-09 z/Architecture Principles of Operation
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek * System/370, ESA/390, and earlier z/Architecture POP use slightly
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek * different names for the formats (the variant names are numeric). For the
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek * sake of simplicity, we use the most detailed definitions - z/Architecture.
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek * For ESA/390 we map the formats:
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek * RRF -> RRD & RRFa-e
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek * RSE -> RSYa-b
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek * RIL -> RILa-c
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek * SS -> SSa-b & SSd-e
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek * For System/370 we map the formats:
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek * Disassembly begins in tbl_xx. The first byte of the instruction is used
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek * as the index. This yields either an instruction or a sub-table.
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek * If an instruction is encountered, its format field is used to format the
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek * instruction.
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek * There are two types of sub-tables: extended opcode tables (indicated with
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek * IF_TBL) or a multiple mnemonics tables (indicated with IF_MULTI).
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek * Extended opcode tables indicade which additional bits of the instruction
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek * should be inspected. These bits are used as an index into the sub table.
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek * Multiple mnemonic tables are used to print different mnemonics depending
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek * on the architecture. Over the years, certain instructions got a new
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek * preferred mnemonic. For example, 0xa70 is test-under-mask-high (tmh) on
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek * System/390. On z/Architecture systems, the instruction behaves
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek * identically (and the assembler hapilly accepts tmh), but the preferred
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek * mnemonic is tmlh (test-under-mask-low-high) because z/Architecture
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek * extended the general purpose registers from 32 bits to 64 bits. The
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek * current architecture flag (e.g., F_390) is used to index into the
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek * Regardless of which sub-table is encountered, the selected entry in the
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek * sub-table is interpreted using the same rules as the contents of tbl_xx.
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek * Finally, we use the extended opcode sub-table mechanism to pretty print
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek * the branching instructions. All branches are conditional based on a
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek * 4-bit mask indicating which value of the condition code will result in a
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek * taken branch. In order to produce a more human friendly output, we use
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek * the 4-bit mask as an extended opcode to break up the branching
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek * instruction into 16 different ones. For example, instead of printing:
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek * bc 7,0x123(%r1,%r2)
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek * bne 0x123(%r1,%r2)
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek * Note that we are using designated initializers via the INSTR/TABLE/MULTI
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek * macros and therefore the below tables can be sparse. We rely on unset
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek * entries having zero format fields (aka. IF_INVAL) per C99.
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek/* BEGIN CSTYLED */
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek /* indirection */
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek IF_RRD, /* 390, z */ /* on 390 these are RRF */
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek#define F_SIGNED_IMM 0x0010 /* 370, 390, z */
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek#define F_CTL_REG 0x0020 /* 370, 390, z */
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek#define F_HIDE_MASK 0x0040 /* 370, 390, z */
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek#define F_R1_IS_MASK 0x0080 /* 370, 390, z */
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek/* END CSTYLED */
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek#define BITFLD(a, b) DECL_BITFIELD2(b:4, a:4)
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek#define TABLE(op, tbl, o, s, m) [op] = { \
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek * Instruction tables based on:
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek * GA22-7000-4 System/370 Principles of Operation
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek * SA22-7201-08 ESA/390 Principles of Operation
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek * SA22-7832-09 z/Architecture Principles of Operation
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek/* BEGIN CSTYLED */
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipekstatic const struct inst_table tbl_01xx[256] = {
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipekstatic const struct inst_table tbl_07[] = {
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x0, "nopr", IF_RR, F_370 | F_390 | F_Z | F_HIDE_MASK),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x1, "bor", IF_RR, F_370 | F_390 | F_Z | F_HIDE_MASK),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x2, "bhr", IF_RR, F_370 | F_390 | F_Z | F_HIDE_MASK),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x3, "bcr", IF_RR, F_370 | F_390 | F_Z | F_R1_IS_MASK),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x4, "blr", IF_RR, F_370 | F_390 | F_Z | F_HIDE_MASK),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x5, "bcr", IF_RR, F_370 | F_390 | F_Z | F_R1_IS_MASK),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x6, "bcr", IF_RR, F_370 | F_390 | F_Z | F_R1_IS_MASK),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x7, "bnzr", IF_RR, F_370 | F_390 | F_Z | F_HIDE_MASK),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x8, "ber", IF_RR, F_370 | F_390 | F_Z | F_HIDE_MASK),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x9, "bcr", IF_RR, F_370 | F_390 | F_Z | F_R1_IS_MASK),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0xa, "bcr", IF_RR, F_370 | F_390 | F_Z | F_R1_IS_MASK),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0xb, "bner", IF_RR, F_370 | F_390 | F_Z | F_HIDE_MASK),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0xc, "bcr", IF_RR, F_370 | F_390 | F_Z | F_R1_IS_MASK),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0xd, "bnhr", IF_RR, F_370 | F_390 | F_Z | F_HIDE_MASK),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0xe, "bnor", IF_RR, F_370 | F_390 | F_Z | F_HIDE_MASK),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0xf, "br", IF_RR, F_370 | F_390 | F_Z | F_HIDE_MASK),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipekstatic const struct inst_table tbl_47[] = {
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x0, "nop", IF_RXb, F_370 | F_390 | F_Z | F_HIDE_MASK),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x1, "bo", IF_RXb, F_370 | F_390 | F_Z | F_HIDE_MASK),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x2, "bh", IF_RXb, F_370 | F_390 | F_Z | F_HIDE_MASK),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x3, "bc", IF_RXb, F_370 | F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x4, "bl", IF_RXb, F_370 | F_390 | F_Z | F_HIDE_MASK),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x5, "bc", IF_RXb, F_370 | F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x6, "bc", IF_RXb, F_370 | F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x7, "bne", IF_RXb, F_370 | F_390 | F_Z | F_HIDE_MASK),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x8, "be", IF_RXb, F_370 | F_390 | F_Z | F_HIDE_MASK),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x9, "bc", IF_RXb, F_370 | F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0xa, "bc", IF_RXb, F_370 | F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0xb, "bnl", IF_RXb, F_370 | F_390 | F_Z | F_HIDE_MASK),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0xc, "bc", IF_RXb, F_370 | F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0xd, "bnh", IF_RXb, F_370 | F_390 | F_Z | F_HIDE_MASK),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0xe, "bno", IF_RXb, F_370 | F_390 | F_Z | F_HIDE_MASK),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0xf, "b", IF_RXb, F_370 | F_390 | F_Z | F_HIDE_MASK),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek/* the preferred mnemonic changed over time */
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipekstatic const struct inst_table tbl_25[] = {
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek/* the preferred mnemonic changed over time */
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipekstatic const struct inst_table tbl_35[] = {
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek/* the preferred mnemonic changed over time */
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipekstatic const struct inst_table tbl_3c[] = {
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek/* the preferred mnemonic changed over time */
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipekstatic const struct inst_table tbl_7c[] = {
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek/* the meaning of this instruction changed over time */
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipekstatic const struct inst_table tbl_84[] = {
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek/* the meaning of this instruction changed over time */
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipekstatic const struct inst_table tbl_85[] = {
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipekstatic const struct inst_table tbl_a5x[16] = {
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek/* the preferred mnemonic changed over time */
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipekstatic const struct inst_table tbl_a70[] = {
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek/* the preferred mnemonic changed over time */
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipekstatic const struct inst_table tbl_a71[] = {
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipekstatic const struct inst_table tbl_a74[16] = {
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x0, "jnop", IF_RIc, F_390 | F_Z | F_HIDE_MASK),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x1, "jo", IF_RIc, F_390 | F_Z | F_HIDE_MASK),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x2, "jh", IF_RIc, F_390 | F_Z | F_HIDE_MASK),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x4, "jl", IF_RIc, F_390 | F_Z | F_HIDE_MASK),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x7, "jne", IF_RIc, F_390 | F_Z | F_HIDE_MASK),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x8, "je", IF_RIc, F_390 | F_Z | F_HIDE_MASK),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0xb, "jnl", IF_RIc, F_390 | F_Z | F_HIDE_MASK),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0xd, "jnh", IF_RIc, F_390 | F_Z | F_HIDE_MASK),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0xe, "jno", IF_RIc, F_390 | F_Z | F_HIDE_MASK),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0xf, "j", IF_RIc, F_390 | F_Z | F_HIDE_MASK),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipekstatic const struct inst_table tbl_a7x[16] = {
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0xa, "ahi", IF_RIa, F_390 | F_Z | F_SIGNED_IMM),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0xb, "aghi", IF_RIa, F_Z | F_SIGNED_IMM),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0xe, "chi", IF_RIa, F_390 | F_Z | F_SIGNED_IMM),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0xf, "cghi", IF_RIa, F_Z | F_SIGNED_IMM),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipekstatic const struct inst_table tbl_b2a6[] = {
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipekstatic const struct inst_table tbl_b2a7[] = {
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipekstatic const struct inst_table tbl_b2xx[256] = {
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x02, "stidp", IF_S, F_370 | F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x04, "sck", IF_S, F_370 | F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x05, "stck", IF_S, F_370 | F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x06, "sckc", IF_S, F_370 | F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x07, "stckc", IF_S, F_370 | F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x08, "spt", IF_S, F_370 | F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x09, "stpt", IF_S, F_370 | F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x0a, "spka", IF_S, F_370 | F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x0b, "ipk", IF_S, F_370 | F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x0d, "ptlb", IF_S, F_370 | F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x10, "spx", IF_S, F_370 | F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x11, "stpx", IF_S, F_370 | F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x12, "stap", IF_S, F_370 | F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x21, "ipte", IF_RRE, F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x23, "ivsk", IF_RRE, F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x25, "ssar", IF_RRE, F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x26, "epar", IF_RRE, F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x27, "esar", IF_RRE, F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x29, "iske", IF_RRE, F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x2a, "rrbe", IF_RRE, F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x2b, "sske", IF_RRFc, F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x2e, "pgin", IF_RRE, F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x2f, "pgout", IF_RRE, F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x40, "bakr", IF_RRE, F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x41, "cksm", IF_RRE, F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x44, "sqdr", IF_RRE, F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x45, "sqer", IF_RRE, F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x46, "stura", IF_RRE, F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x47, "msta", IF_RRE, F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x48, "palb", IF_RRE, F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x49, "ereg", IF_RRE, F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x4a, "esta", IF_RRE, F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x4b, "lura", IF_RRE, F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x4d, "cpya", IF_RRE, F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x54, "mvpg", IF_RRE, F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x55, "mvst", IF_RRE, F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x57, "cuse", IF_RRE, F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x5d, "clst", IF_RRE, F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x5e, "srst", IF_RRE, F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipekstatic const struct inst_table tbl_b344[] = {
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipekstatic const struct inst_table tbl_b345[] = {
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipekstatic const struct inst_table tbl_b346[] = {
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipekstatic const struct inst_table tbl_b347[] = {
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipekstatic const struct inst_table tbl_b357[] = {
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipekstatic const struct inst_table tbl_b35f[] = {
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipekstatic const struct inst_table tbl_b394[] = {
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipekstatic const struct inst_table tbl_b395[] = {
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipekstatic const struct inst_table tbl_b396[] = {
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipekstatic const struct inst_table tbl_b398[] = {
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipekstatic const struct inst_table tbl_b399[] = {
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipekstatic const struct inst_table tbl_b39a[] = {
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipekstatic const struct inst_table tbl_b3xx[256] = {
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x00, "lpebr", IF_RRE, F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x01, "lnebr", IF_RRE, F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x02, "ltebr", IF_RRE, F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x03, "lcebr", IF_RRE, F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x04, "ldebr", IF_RRE, F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x05, "lxdbr", IF_RRE, F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x06, "lxebr", IF_RRE, F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x07, "mxdbr", IF_RRE, F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x08, "kebr", IF_RRE, F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x09, "cebr", IF_RRE, F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x0a, "aebr", IF_RRE, F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x0b, "sebr", IF_RRE, F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x0c, "mdebr", IF_RRE, F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x0d, "debr", IF_RRE, F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x0e, "maebr", IF_RRD, F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x0f, "msebr", IF_RRD, F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x10, "lpdbr", IF_RRE, F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x11, "lndbr", IF_RRE, F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x12, "ltdbr", IF_RRE, F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x13, "lcdbr", IF_RRE, F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x14, "sqebr", IF_RRE, F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x15, "sqdbr", IF_RRE, F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x16, "sqxbr", IF_RRE, F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x17, "meebr", IF_RRE, F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x18, "kdbr", IF_RRE, F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x19, "cdbr", IF_RRE, F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x1a, "adbr", IF_RRE, F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x1b, "sdbr", IF_RRE, F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x1c, "mdbr", IF_RRE, F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x1d, "ddbr", IF_RRE, F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x1e, "madbr", IF_RRD, F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x1f, "msdbr", IF_RRD, F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x24, "lder", IF_RRE, F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x25, "lxdr", IF_RRE, F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x26, "lxer", IF_RRE, F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x2e, "maer", IF_RRD, F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x2f, "mser", IF_RRD, F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x36, "sqxr", IF_RRE, F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x37, "meer", IF_RRE, F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x3e, "madr", IF_RRD, F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x3f, "msdr", IF_RRD, F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x40, "lpxbr", IF_RRE, F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x41, "lnxbr", IF_RRE, F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x42, "ltxbr", IF_RRE, F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x43, "lcxbr", IF_RRE, F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x48, "kxbr", IF_RRE, F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x49, "cxbr", IF_RRE, F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x4a, "axbr", IF_RRE, F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x4b, "sxbr", IF_RRE, F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x4c, "mxbr", IF_RRE, F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x4d, "dxbr", IF_RRE, F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x50, "tbedr", IF_RRFe, F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x51, "tbdr", IF_RRFe, F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x53, "diebr", IF_RRFb, F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x58, "thder", IF_RRE, F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x59, "thdr", IF_RRE, F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x5b, "didbr", IF_RRFe, F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x60, "lpxr", IF_RRE, F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x61, "lnxr", IF_RRE, F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x62, "ltxr", IF_RRE, F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x63, "lcxr", IF_RRE, F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x66, "lexr", IF_RRE, F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x67, "fixr", IF_RRE, F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x74, "lzer", IF_RRE, F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x75, "lzdr", IF_RRE, F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x76, "lzxr", IF_RRE, F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x77, "fier", IF_RRE, F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x7f, "fidr", IF_RRE, F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x84, "sfpc", IF_RRE, F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x8c, "efpc", IF_RRE, F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0xb4, "cefr", IF_RRE, F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0xb5, "cdfr", IF_RRE, F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0xb6, "cxfr", IF_RRE, F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0xb8, "cfer", IF_RRFe, F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0xb9, "cfdr", IF_RRFe, F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0xba, "cfxr", IF_RRFe, F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipekstatic const struct inst_table tbl_b9xx[256] = {
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x1e, "kmac", IF_RRE, F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x1f, "lrvr", IF_RRE, F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x3e, "kimd", IF_RRE, F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x3f, "klmd", IF_RRE, F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x8d, "epsw", IF_RRE, F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x90, "trtt", IF_RRFc, F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x91, "trto", IF_RRFc, F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x92, "trot", IF_RRFc, F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x93, "troo", IF_RRFc, F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x98, "alcr", IF_RRE, F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x99, "slbr", IF_RRE, F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipekstatic const struct inst_table tbl_c0x[16] = {
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x0, "larl", IF_RILb, F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x4, "brcl", IF_RILc, F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x5, "brasl", IF_RILb, F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipekstatic const struct inst_table tbl_c2x[16] = {
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipekstatic const struct inst_table tbl_c4x[16] = {
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipekstatic const struct inst_table tbl_c6x[16] = {
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipekstatic const struct inst_table tbl_c8x[16] = {
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipekstatic const struct inst_table tbl_ccx[16] = {
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipekstatic const struct inst_table tbl_e3xx[256] = {
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x1e, "lrv", IF_RXYa, F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x1f, "lrvh", IF_RXYa, F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x3e, "strv", IF_RXYa, F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x3f, "strvh", IF_RXYa, F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x98, "alc", IF_RXYa, F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x99, "slb", IF_RXYa, F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipekstatic const struct inst_table tbl_e5xx[256] = {
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x00, "lasp", IF_SSE, F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x01, "tprot", IF_SSE, F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x0e, "mvcsk", IF_SSE, F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x0f, "mvcdk", IF_SSE, F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipekstatic const struct inst_table tbl_ebxx[256] = {
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x1d, "rll", IF_RSYa, F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x25, "stctg", IF_RSYa, F_Z | F_CTL_REG),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x2f, "lctlg", IF_RSYa, F_Z | F_CTL_REG),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x8e, "mvclu", IF_RSYa, F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x8f, "clclu", IF_RSYa, F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipekstatic const struct inst_table tbl_ecxx[256] = {
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipekstatic const struct inst_table tbl_edxx[256] = {
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x04, "ldeb", IF_RXE, F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x05, "lxdb", IF_RXE, F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x06, "lxeb", IF_RXE, F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x07, "mxdb", IF_RXE, F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x0c, "mdeb", IF_RXE, F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x0e, "maeb", IF_RXF, F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x0f, "mseb", IF_RXF, F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x10, "tceb", IF_RXE, F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x11, "tcdb", IF_RXE, F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x12, "tcxb", IF_RXE, F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x14, "sqeb", IF_RXE, F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x15, "sqdb", IF_RXE, F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x17, "meeb", IF_RXE, F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x1e, "madb", IF_RXF, F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x1f, "msdb", IF_RXF, F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipekstatic const struct inst_table tbl_xx[256] = {
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x00, ".byte", IF_ZERO, F_370 | F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x0a, "svc", IF_I, F_370 | F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x0c, "bassm", IF_RR, F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x0e, "mvcl", IF_RR, F_370 | F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x0f, "clcl", IF_RR, F_370 | F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x10, "lpr", IF_RR, F_370 | F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x11, "lnr", IF_RR, F_370 | F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x12, "ltr", IF_RR, F_370 | F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x13, "lcr", IF_RR, F_370 | F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x14, "nr", IF_RR, F_370 | F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x15, "clr", IF_RR, F_370 | F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x16, "or", IF_RR, F_370 | F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x17, "xr", IF_RR, F_370 | F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x18, "lr", IF_RR, F_370 | F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x19, "cr", IF_RR, F_370 | F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x1a, "ar", IF_RR, F_370 | F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x1b, "sr", IF_RR, F_370 | F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x1c, "mr", IF_RR, F_370 | F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x1d, "dr", IF_RR, F_370 | F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x1e, "alr", IF_RR, F_370 | F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x1f, "slr", IF_RR, F_370 | F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x20, "lpdr", IF_RR, F_370 | F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x21, "lndr", IF_RR, F_370 | F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x22, "ltdr", IF_RR, F_370 | F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x23, "lcdr", IF_RR, F_370 | F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x24, "hdr", IF_RR, F_370 | F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x26, "mxr", IF_RR, F_370 | F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x27, "mxdr", IF_RR, F_370 | F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x28, "ldr", IF_RR, F_370 | F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x29, "cdr", IF_RR, F_370 | F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x2a, "adr", IF_RR, F_370 | F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x2b, "sdr", IF_RR, F_370 | F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x2c, "mdr", IF_RR, F_370 | F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x2d, "ddr", IF_RR, F_370 | F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x2e, "awr", IF_RR, F_370 | F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x2f, "swr", IF_RR, F_370 | F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x30, "lper", IF_RR, F_370 | F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x31, "lner", IF_RR, F_370 | F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x32, "lter", IF_RR, F_370 | F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x33, "lcer", IF_RR, F_370 | F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x34, "her", IF_RR, F_370 | F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x36, "axr", IF_RR, F_370 | F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x37, "sxr", IF_RR, F_370 | F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x38, "ler", IF_RR, F_370 | F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x39, "cer", IF_RR, F_370 | F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x3a, "aer", IF_RR, F_370 | F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x3b, "ser", IF_RR, F_370 | F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x3d, "der", IF_RR, F_370 | F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x3e, "aur", IF_RR, F_370 | F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x3f, "sur", IF_RR, F_370 | F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x40, "sth", IF_RXa, F_370 | F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x41, "la", IF_RXa, F_370 | F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x42, "stc", IF_RXa, F_370 | F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x43, "ic", IF_RXa, F_370 | F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x44, "ex", IF_RXa, F_370 | F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x45, "bal", IF_RXa, F_370 | F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x46, "bct", IF_RXa, F_370 | F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x48, "lh", IF_RXa, F_370 | F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x49, "ch", IF_RXa, F_370 | F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x4a, "ah", IF_RXa, F_370 | F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x4b, "sh", IF_RXa, F_370 | F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x4c, "mh", IF_RXa, F_370 | F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x4e, "cvd", IF_RXa, F_370 | F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x4f, "cvb", IF_RXa, F_370 | F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x50, "st", IF_RXa, F_370 | F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x54, "n", IF_RXa, F_370 | F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x55, "cl", IF_RXa, F_370 | F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x56, "o", IF_RXa, F_370 | F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x57, "x", IF_RXa, F_370 | F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x58, "l", IF_RXa, F_370 | F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x59, "c", IF_RXa, F_370 | F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x5a, "a", IF_RXa, F_370 | F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x5b, "s", IF_RXa, F_370 | F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x5c, "m", IF_RXa, F_370 | F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x5d, "d", IF_RXa, F_370 | F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x5e, "al", IF_RXa, F_370 | F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x5f, "sl", IF_RXa, F_370 | F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x60, "std", IF_RXa, F_370 | F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x67, "mxd", IF_RXa, F_370 | F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x68, "ld", IF_RXa, F_370 | F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x69, "cd", IF_RXa, F_370 | F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x6a, "ad", IF_RXa, F_370 | F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x6b, "sd", IF_RXa, F_370 | F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x6c, "md", IF_RXa, F_370 | F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x6d, "dd", IF_RXa, F_370 | F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x6e, "aw", IF_RXa, F_370 | F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x6f, "sw", IF_RXa, F_370 | F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x70, "ste", IF_RXa, F_370 | F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x78, "le", IF_RXa, F_370 | F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x79, "ce", IF_RXa, F_370 | F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x7a, "ae", IF_RXa, F_370 | F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x7b, "se", IF_RXa, F_370 | F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x7d, "de", IF_RXa, F_370 | F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x7e, "au", IF_RXa, F_370 | F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x7f, "su", IF_RXa, F_370 | F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x80, "ssm", IF_S, F_370 | F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x82, "lpsw", IF_S, F_370 | F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x83, "diag", IF_DIAG, F_370 | F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x86, "bxh", IF_RSa, F_370 | F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x87, "bxle", IF_RSa, F_370 | F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x88, "srl", IF_RSa, F_370 | F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x89, "sll", IF_RSa, F_370 | F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x8a, "sra", IF_RSa, F_370 | F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x8b, "sla", IF_RSa, F_370 | F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x8c, "srdl", IF_RSa, F_370 | F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x8d, "sldl", IF_RSa, F_370 | F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x8e, "srda", IF_RSa, F_370 | F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x8f, "slda", IF_RSa, F_370 | F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x90, "stm", IF_RSa, F_370 | F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x91, "tm", IF_SI, F_370 | F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x92, "mvi", IF_SI, F_370 | F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x93, "ts", IF_S, F_370 | F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x94, "ni", IF_SI, F_370 | F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x95, "cli", IF_SI, F_370 | F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x96, "oi", IF_SI, F_370 | F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x97, "xi", IF_SI, F_370 | F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x98, "lm", IF_RSa, F_370 | F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x99, "trace", IF_RSa, F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0x9b, "stam", IF_RSa, F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0xa8, "mvcle", IF_RSa, F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0xa9, "clcle", IF_RSa, F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0xac, "stnsm", IF_SI, F_370 | F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0xad, "stosm", IF_SI, F_370 | F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0xae, "sigp", IF_RSa, F_370 | F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0xaf, "mc", IF_SI, F_370 | F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0xb1, "lra", IF_RXa, F_370 | F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0xb6, "stctl", IF_RSa, F_370 | F_390 | F_Z | F_CTL_REG),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0xb7, "lctl", IF_RSa, F_370 | F_390 | F_Z | F_CTL_REG),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0xba, "cs", IF_RSa, F_370 | F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0xbb, "cds", IF_RSa, F_370 | F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0xbd, "clm", IF_RSb, F_370 | F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0xbe, "stcm", IF_RSb, F_370 | F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0xbf, "icm", IF_RSb, F_370 | F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0xd1, "mvn", IF_SSa, F_370 | F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0xd2, "mvc", IF_SSa, F_370 | F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0xd3, "mvz", IF_SSa, F_370 | F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0xd4, "nc", IF_SSa, F_370 | F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0xd5, "clc", IF_SSa, F_370 | F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0xd6, "oc", IF_SSa, F_370 | F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0xd7, "xc", IF_SSa, F_370 | F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0xd9, "mvck", IF_SSd, F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0xda, "mvcp", IF_SSd, F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0xdb, "mvcs", IF_SSd, F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0xdc, "tr", IF_SSa, F_370 | F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0xdd, "trt", IF_SSa, F_370 | F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0xde, "ed", IF_SSa, F_370 | F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0xdf, "edmk", IF_SSa, F_370 | F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0xe2, "unpku", IF_SSa, F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0xe8, "mvcin", IF_SSa, F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0xea, "unpka", IF_SSa, F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0xf0, "srp", IF_SSc, F_370 | F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0xf1, "mvo", IF_SSb, F_370 | F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0xf2, "pack", IF_SSb, F_370 | F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0xf3, "unpk", IF_SSb, F_370 | F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0xf8, "zap", IF_SSb, F_370 | F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0xf9, "cp", IF_SSb, F_370 | F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0xfa, "ap", IF_SSb, F_370 | F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0xfb, "sp", IF_SSb, F_370 | F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0xfc, "mp", IF_SSb, F_370 | F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek INSTR(0xfd, "dp", IF_SSb, F_370 | F_390 | F_Z),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek/* END CSTYLED */
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek/* how masks are printed */
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipekstatic const char *M[16] = {
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek "8", "9", "10", "11", "12", "13", "14", "15",
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek/* how general purpose regs are printed */
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipekstatic const char *R[16] = {
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek "%r0", "%r1", "%r2", "%r3", "%r4", "%r5", "%r6", "%r7",
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek "%r8", "%r9", "%r10", "%r11", "%r12", "%r13", "%r14", "%r15",
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek/* how control regs are printed */
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipekstatic const char *C[16] = {
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek "%c0", "%c1", "%c2", "%c3", "%c4", "%c5", "%c6", "%c7",
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek "%c8", "%c9", "%c10", "%c11", "%c12", "%c13", "%c14", "%c15",
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek/* B and X registers are still registers - print them the same way */
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipekval_8_4_8(uint32_t hi, uint32_t mid, uint32_t lo)
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek /* sign extend */
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek /* sign extend */
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipekfmt_zero(uint64_t addr, union inst *inst, char *buf, size_t buflen, int flags)
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek (void) snprintf(buf, buflen, "0x00, 0x00");
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipekfmt_diag(uint64_t addr, union inst *inst, char *buf, size_t buflen, int flags)
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek val_8_16(inst->diag.par1, inst->diag.par2));
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipekfmt_e(uint64_t addr, union inst *inst, char *buf, size_t buflen, int flags)
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek /* nothing to do */
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipekfmt_i(uint64_t addr, union inst *inst, char *buf, size_t buflen, int flags)
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek (void) snprintf(buf, buflen, "%#x", inst->i.i);
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipekfmt_ie(uint64_t addr, union inst *inst, char *buf, size_t buflen, int flags)
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek (void) snprintf(buf, buflen, "%u,%u", inst->ie.i1, inst->ie.i2);
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipekfmt_mii(uint64_t addr, union inst *inst, char *buf, size_t buflen, int flags)
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek uint64_t ri2 = addr + 2 * sval_4_8(inst->mii.ri2h, inst->mii.ri2l);
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek uint64_t ri3 = addr + 2 * sval_8_16(inst->mii.ri3h, inst->mii.ri3l);
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek (void) snprintf(buf, buflen, "%s,%#x,%#x", M[inst->mii.m1], ri2, ri3);
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipekfmt_ril_a(uint64_t addr, union inst *inst, char *buf, size_t buflen, int flags)
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek (void) snprintf(buf, buflen, "%s,%u", R[inst->ril_a.r1],
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek val_16_16(inst->ril_a.i2h, inst->ril_a.i2l));
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipekfmt_ril_b(uint64_t addr, union inst *inst, char *buf, size_t buflen, int flags)
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek sval_16_16(inst->ril_b.ri2h, inst->ril_b.ri2l);
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek (void) snprintf(buf, buflen, "%s,%#x", R[inst->ril_b.r1], ri2);
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipekfmt_ril_c(uint64_t addr, union inst *inst, char *buf, size_t buflen, int flags)
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek sval_16_16(inst->ril_c.ri2h, inst->ril_c.ri2l);
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek (void) snprintf(buf, buflen, "%s,%#x", M[inst->ril_c.m1], ri2);
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipekfmt_ris(uint64_t addr, union inst *inst, char *buf, size_t buflen, int flags)
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek uint32_t d4 = val_4_8(inst->ris.d4h, inst->ris.d4l);
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek (void) snprintf(buf, buflen, "%s,%u,%s,%u(%s)",
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek R[inst->ris.r1], inst->ris.i2, M[inst->ris.m3], d4,
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipekfmt_ri_a(uint64_t addr, union inst *inst, char *buf, size_t buflen, int flags)
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek (void) snprintf(buf, buflen, "%s,%d", R[inst->ri_a.r1],
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek (void) snprintf(buf, buflen, "%s,%u", R[inst->ri_a.r1],
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipekfmt_ri_b(uint64_t addr, union inst *inst, char *buf, size_t buflen, int flags)
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek uint64_t ri2 = addr + 2 * (int16_t)BE_16(inst->ri_b.ri2);
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek (void) snprintf(buf, buflen, "%s,%#x", R[inst->ri_b.r1], ri2);
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipekfmt_ri_c(uint64_t addr, union inst *inst, char *buf, size_t buflen, int flags)
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek uint64_t ri2 = addr + 2 * (int16_t)BE_16(inst->ri_c.ri2);
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek (void) snprintf(buf, buflen, "%#x", ri2);
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek (void) snprintf(buf, buflen, "%s,%#x", M[inst->ri_c.m1], ri2);
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipekfmt_rie_a(uint64_t addr, union inst *inst, char *buf, size_t buflen, int flags)
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek (void) snprintf(buf, buflen, "%s,%u,%s", R[inst->rie_a.r1],
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek BE_16(inst->rie_a.i2), M[inst->rie_a.m3]);
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipekfmt_rie_b(uint64_t addr, union inst *inst, char *buf, size_t buflen, int flags)
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek uint64_t ri4 = addr + 2 * (int16_t)BE_16(inst->rie_b.ri4);
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek (void) snprintf(buf, buflen, "%s,%s,%s,%#x", R[inst->rie_b.r1],
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek R[inst->rie_b.r2], M[inst->rie_b.m3], ri4);
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipekfmt_rie_c(uint64_t addr, union inst *inst, char *buf, size_t buflen, int flags)
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek uint64_t ri4 = addr + 2 * (int16_t)BE_16(inst->rie_c.ri4);
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek (void) snprintf(buf, buflen, "%s,%u,%s,%#x", R[inst->rie_c.r1],
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipekfmt_rie_d(uint64_t addr, union inst *inst, char *buf, size_t buflen, int flags)
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek (void) snprintf(buf, buflen, "%s,%s,%u", R[inst->rie_d.r1],
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek R[inst->rie_d.r3], BE_16(inst->rie_d.i2));
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipekfmt_rie_e(uint64_t addr, union inst *inst, char *buf, size_t buflen, int flags)
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek uint64_t ri2 = addr + 2 * (int16_t)BE_16(inst->rie_e.ri2);
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek (void) snprintf(buf, buflen, "%s,%s,%#x", R[inst->rie_e.r1],
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipekfmt_rie_f(uint64_t addr, union inst *inst, char *buf, size_t buflen, int flags)
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek (void) snprintf(buf, buflen, "%s,%s,%u,%u,%u", R[inst->rie_f.r1],
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek R[inst->rie_f.r2], inst->rie_f.i3, inst->rie_f.i4,
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipekfmt_rre(uint64_t addr, union inst *inst, char *buf, size_t buflen, int flags)
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek (void) snprintf(buf, buflen, "%s,%s", R[inst->rre.r1], R[inst->rre.r2]);
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipekfmt_rrf_a(uint64_t addr, union inst *inst, char *buf, size_t buflen, int flags)
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek R[inst->rrf_ab.r1], R[inst->rrf_ab.r2], R[inst->rrf_ab.r3]);
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipekfmt_rrf_b(uint64_t addr, union inst *inst, char *buf, size_t buflen, int flags)
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek R[inst->rrf_ab.r1], R[inst->rrf_ab.r3], R[inst->rrf_ab.r2]);
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipekfmt_rrf_c(uint64_t addr, union inst *inst, char *buf, size_t buflen, int flags)
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek R[inst->rrf_cde.r1], R[inst->rrf_cde.r2], M[inst->rrf_cde.m3]);
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipekfmt_rrf_d(uint64_t addr, union inst *inst, char *buf, size_t buflen, int flags)
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek R[inst->rrf_cde.r1], R[inst->rrf_cde.r2], M[inst->rrf_cde.m4]);
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipekfmt_rrf_e(uint64_t addr, union inst *inst, char *buf, size_t buflen, int flags)
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek (void) snprintf(buf, buflen, "%s,%s,%s,%s",
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek R[inst->rrf_cde.r1], M[inst->rrf_cde.m3],
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek R[inst->rrf_cde.r2], M[inst->rrf_cde.m4]);
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipekfmt_rrs(uint64_t addr, union inst *inst, char *buf, size_t buflen, int flags)
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek (void) snprintf(buf, buflen, "%s,%s,%s,%u(%s)", R[inst->rrs.r1],
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek val_4_8(inst->rrs.d4h, inst->rrs.d4l), B[inst->rrs.b4]);
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipekfmt_rr(uint64_t addr, union inst *inst, char *buf, size_t buflen, int flags)
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek /* a branch uses r1 as a mask */
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek (void) snprintf(buf, buflen, "%s", R[inst->rr.r2]);
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek (void) snprintf(buf, buflen, "%s,%s", M[inst->rr.r1],
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek (void) snprintf(buf, buflen, "%s,%s", R[inst->rr.r1],
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipekfmt_rrd(uint64_t addr, union inst *inst, char *buf, size_t buflen, int flags)
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek (void) snprintf(buf, buflen, "%s,%s,%s", R[inst->rrd.r1],
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipekfmt_rx_a(uint64_t addr, union inst *inst, char *buf, size_t buflen, int flags)
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek uint32_t d2 = val_4_8(inst->rx_a.d2h, inst->rx_b.d2l);
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek (void) snprintf(buf, buflen, "%s,%u(%s,%s)", R[inst->rx_a.r1],
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipekfmt_rx_b(uint64_t addr, union inst *inst, char *buf, size_t buflen, int flags)
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek uint32_t d2 = val_4_8(inst->rx_b.d2h, inst->rx_b.d2l);
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek (void) snprintf(buf, buflen, "%u(%s,%s)",
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek (void) snprintf(buf, buflen, "%s,%u(%s,%s)", M[inst->rx_b.m1],
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipekfmt_rxe(uint64_t addr, union inst *inst, char *buf, size_t buflen, int flags)
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek uint32_t d2 = val_4_8(inst->rxe.d2h, inst->rxe.d2l);
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek (void) snprintf(buf, buflen, "%s,%u(%s,%s)",
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek R[inst->rxe.r1], d2, X[inst->rxe.x2], B[inst->rxe.b2]);
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipekfmt_rxf(uint64_t addr, union inst *inst, char *buf, size_t buflen, int flags)
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek uint32_t d2 = val_4_8(inst->rxf.d2h, inst->rxf.d2l);
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek (void) snprintf(buf, buflen, "%s,%s,%u(%s,%s)",
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek R[inst->rxf.r1], R[inst->rxf.r3], d2, X[inst->rxf.x2],
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipekfmt_rxy_a(uint64_t addr, union inst *inst, char *buf, size_t buflen, int flags)
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek d2 = val_8_4_8(inst->rxy_a.dh2, inst->rxy_a.dl2h, inst->rxy_a.dl2l);
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek (void) snprintf(buf, buflen, "%s,%u(%s,%s)",
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek R[inst->rxy_a.r1], d2, X[inst->rxy_a.x2], B[inst->rxy_a.b2]);
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipekfmt_rxy_b(uint64_t addr, union inst *inst, char *buf, size_t buflen, int flags)
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek d2 = val_8_4_8(inst->rxy_b.dh2, inst->rxy_b.dl2h, inst->rxy_b.dl2l);
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek (void) snprintf(buf, buflen, "%s,%u(%s,%s)",
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek M[inst->rxy_b.m1], d2, X[inst->rxy_b.x2], B[inst->rxy_b.b2]);
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipekfmt_rs_a(uint64_t addr, union inst *inst, char *buf, size_t buflen, int flags)
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek (void) snprintf(buf, buflen, "%s,%s,%u(%s)", r1, r3,
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek val_4_8(inst->rs_a.d2h, inst->rs_a.d2l), B[inst->rs_a.b2]);
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipekfmt_rs_b(uint64_t addr, union inst *inst, char *buf, size_t buflen, int flags)
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek (void) snprintf(buf, buflen, "%s,%s,%u(%s)", R[inst->rs_b.r1],
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek M[inst->rs_b.m3], val_4_8(inst->rs_b.d2h, inst->rs_b.d2l),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipekfmt_rsl_a(uint64_t addr, union inst *inst, char *buf, size_t buflen, int flags)
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek (void) snprintf(buf, buflen, "%u(%u,%s)",
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek val_4_8(inst->rsl_a.d1h, inst->rsl_a.d1l), inst->rsl_a.l1,
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipekfmt_rsl_b(uint64_t addr, union inst *inst, char *buf, size_t buflen, int flags)
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek (void) snprintf(buf, buflen, "%s,%u(%u,%s),%s",
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek val_4_8(inst->rsl_b.d2h, inst->rsl_b.d2l), inst->rsl_b.l2,
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipekfmt_rsy_a(uint64_t addr, union inst *inst, char *buf, size_t buflen, int flags)
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek d2 = val_8_4_8(inst->rsy_a.dh2, inst->rsy_a.dl2h, inst->rsy_a.dl2l);
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek (void) snprintf(buf, buflen, "%s,%s,%u(%s)", r1, r3, d2,
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipekfmt_rsy_b(uint64_t addr, union inst *inst, char *buf, size_t buflen, int flags)
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek d2 = val_8_4_8(inst->rsy_b.dh2, inst->rsy_b.dl2h, inst->rsy_b.dl2l);
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek (void) snprintf(buf, buflen, "%s,%s,%u(%s)",
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipekfmt_rsi(uint64_t addr, union inst *inst, char *buf, size_t buflen, int flags)
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek uint64_t ri2 = addr + 2 * (int16_t)BE_16(inst->rsi.ri2);
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek (void) snprintf(buf, buflen, "%s,%s,%#x", R[inst->rsi.r1],
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipekfmt_si(uint64_t addr, union inst *inst, char *buf, size_t buflen, int flags)
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek uint32_t d1 = val_4_8(inst->si.d1h, inst->si.d1l);
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek (void) snprintf(buf, buflen, "%u(%s),%u", d1, B[inst->si.b1],
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipekfmt_sil(uint64_t addr, union inst *inst, char *buf, size_t buflen, int flags)
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek (void) snprintf(buf, buflen, "%u(%s),%u",
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek val_4_8(inst->sil.d1h, inst->sil.d1l), B[inst->sil.b1],
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipekfmt_siy(uint64_t addr, union inst *inst, char *buf, size_t buflen, int flags)
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek (void) snprintf(buf, buflen, "%u(%s),%u",
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek val_8_4_8(inst->siy.dh1, inst->siy.dl1h, inst->siy.dl1l),
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipekfmt_smi(uint64_t addr, union inst *inst, char *buf, size_t buflen, int flags)
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek uint64_t ri2 = addr + 2 * (int16_t)BE_16(inst->smi.ri2);
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek (void) snprintf(buf, buflen, "%s,%#x,%u(%s)", M[inst->smi.m1], ri2,
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek val_4_8(inst->smi.d3h, inst->smi.d3l), B[inst->smi.b3]);
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipekfmt_s(uint64_t addr, union inst *inst, char *buf, size_t buflen, int flags)
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek uint32_t d = val_4_8(inst->s.d2h, inst->s.d2l);
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek (void) snprintf(buf, buflen, "%u(%s)", d, B[inst->s.b2]);
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipekfmt_ss_a(uint64_t addr, union inst *inst, char *buf, size_t buflen, int flags)
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek d1 = val_4_8(inst->ss_a.d1h, inst->ss_a.d1l);
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek d2 = val_4_8(inst->ss_a.d2h, inst->ss_a.d2l);
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek (void) snprintf(buf, buflen, "%u(%u,%s),%u(%s)",
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipekfmt_ss_b(uint64_t addr, union inst *inst, char *buf, size_t buflen, int flags)
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek d1 = val_4_8(inst->ss_b.d1h, inst->ss_b.d1l);
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek d2 = val_4_8(inst->ss_b.d2h, inst->ss_b.d2l);
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek (void) snprintf(buf, buflen, "%u(%u,%s),%u(%u,%s)",
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek d2, inst->ss_b.l2 + 1, B[inst->ss_b.b2]);
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipekfmt_ss_c(uint64_t addr, union inst *inst, char *buf, size_t buflen, int flags)
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek d1 = val_4_8(inst->ss_c.d1h, inst->ss_c.d1l);
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek d2 = val_4_8(inst->ss_c.d2h, inst->ss_c.d2l);
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek (void) snprintf(buf, buflen, "%u(%u,%s),%u(%s),%u",
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipekfmt_ss_d(uint64_t addr, union inst *inst, char *buf, size_t buflen, int flags)
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek d1 = val_4_8(inst->ss_d.d1h, inst->ss_d.d1l);
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek d2 = val_4_8(inst->ss_d.d2h, inst->ss_d.d2l);
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek (void) snprintf(buf, buflen, "%u(%s,%s),%u(%s),%s",
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipekfmt_ss_e(uint64_t addr, union inst *inst, char *buf, size_t buflen, int flags)
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek d2 = val_4_8(inst->ss_e.d2h, inst->ss_e.d2l);
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek d4 = val_4_8(inst->ss_e.d4h, inst->ss_e.d4l);
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek (void) snprintf(buf, buflen, "%s,%u(%s),%s,%u(%s)",
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipekfmt_ss_f(uint64_t addr, union inst *inst, char *buf, size_t buflen, int flags)
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek d1 = val_4_8(inst->ss_f.d1h, inst->ss_f.d1l);
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek d2 = val_4_8(inst->ss_f.d2h, inst->ss_f.d2l);
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek (void) snprintf(buf, buflen, "%u(%s),%u(%u,%s)",
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipekfmt_sse(uint64_t addr, union inst *inst, char *buf, size_t buflen, int flags)
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek uint32_t d1 = val_4_8(inst->sse.d1h, inst->sse.d1l);
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek uint32_t d2 = val_4_8(inst->sse.d2h, inst->sse.d2l);
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek (void) snprintf(buf, buflen, "%u(%s),%u(%s)",
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek d1, B[inst->sse.b1], d2, B[inst->sse.b2]);
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipekfmt_ssf(uint64_t addr, union inst *inst, char *buf, size_t buflen, int flags)
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek uint32_t d1 = val_4_8(inst->ssf.d1h, inst->ssf.d1l);
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek uint32_t d2 = val_4_8(inst->ssf.d2h, inst->ssf.d2l);
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek (void) snprintf(buf, buflen, "%u(%s),%u(%s),%s",
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipekstatic void (*fmt_fxns[IF_NFMTS])(uint64_t, union inst *, char *, size_t,
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek * Even if we don't know how to disassemble the instruction, we know how long
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek * it is, so we always succeed. That is why we can get away with returning
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipekdis_s390(uint64_t addr, union inst *inst, char *buf, size_t buflen, int mach)
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek const struct inst_table *tbl = &tbl_xx[inst->raw[0]];
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek /* nothing to do */
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek while (tbl->it_fmt == IF_TBL || tbl->it_fmt == IF_MULTI) {
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek idx = inst->raw[tbl->it_u.it_table.it_off];
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek if ((tbl->it_u.it_inst.it_flags & mach) == 0)
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek tmp = snprintf(buf, buflen, "%-7s ", tbl->it_u.it_inst.it_name);
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek fmt_fxns[tbl->it_fmt](addr, inst, buf + tmp, buflen - tmp,
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek if (archflags == DIS_S370 || archflags == DIS_S390_31 ||
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipekdis_s390_disassemble(dis_handle_t *dhp, uint64_t addr, char *buf,
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek if (dhp->dh_read(dhp->dh_data, addr, &inst.raw[0], 2) != 2)
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek dhp->dh_read(dhp->dh_data, addr + 2, &inst.raw[2], len) != len)
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek switch (dhp->dh_flags & (DIS_S370 | DIS_S390_31 | DIS_S390_64)) {
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek dis_s390(addr, &inst, buf, buflen, mach);
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek .da_supports_flags = dis_s390_supports_flags,
0472e113e9ad4a95dbf46a1d97075472136a1e7cJosef 'Jeff' Sipek .da_min_instrlen = dis_s390_min_instrlen,