aboutsummaryrefslogtreecommitdiff
path: root/opcodes/i370-opc.c
diff options
context:
space:
mode:
Diffstat (limited to 'opcodes/i370-opc.c')
-rw-r--r--opcodes/i370-opc.c267
1 files changed, 128 insertions, 139 deletions
diff --git a/opcodes/i370-opc.c b/opcodes/i370-opc.c
index b91b22b..482e0c3 100644
--- a/opcodes/i370-opc.c
+++ b/opcodes/i370-opc.c
@@ -1,24 +1,24 @@
/* i370-opc.c -- Instruction 370 (ESA/390) architecture opcode list
- Copyright 1994, 1999, 2000, 2001, 2003 Free Software Foundation, Inc.
+ Copyright 1994, 1999, 2000, 2001, 2003, 2005 Free Software Foundation, Inc.
PowerPC version written by Ian Lance Taylor, Cygnus Support
Rewritten for i370 ESA/390 support by Linas Vepstas <linas@linas.org> 1998, 1999
-This file is part of GDB, GAS, and the GNU binutils.
+ This file is part of GDB, GAS, and the GNU binutils.
-GDB, GAS, and the GNU binutils are free software; you can redistribute
-them and/or modify them under the terms of the GNU General Public
-License as published by the Free Software Foundation; either version
-2, or (at your option) any later version.
+ GDB, GAS, and the GNU binutils are free software; you can redistribute
+ them and/or modify them under the terms of the GNU General Public
+ License as published by the Free Software Foundation; either version
+ 2, or (at your option) any later version.
-GDB, GAS, and the GNU binutils are distributed in the hope that they
-will be useful, but WITHOUT ANY WARRANTY; without even the implied
-warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
-the GNU General Public License for more details.
+ GDB, GAS, and the GNU binutils are distributed in the hope that they
+ will be useful, but WITHOUT ANY WARRANTY; without even the implied
+ warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
+ the GNU General Public License for more details.
-You should have received a copy of the GNU General Public License
-along with this file; see the file COPYING. If not, write to the Free
-Software Foundation, 51 Franklin Street - Fifth Floor, Boston, MA
-02110-1301, USA. */
+ You should have received a copy of the GNU General Public License
+ along with this file; see the file COPYING. If not, write to the Free
+ Software Foundation, 51 Franklin Street - Fifth Floor, Boston, MA
+ 02110-1301, USA. */
#include <stdio.h>
#include "sysdep.h"
@@ -35,14 +35,49 @@ Software Foundation, 51 Franklin Street - Fifth Floor, Boston, MA
inserting operands into instructions and vice-versa is kept in this
file. */
-/* Local insertion and extraction functions. */
-static i370_insn_t insert_ss_b2 (i370_insn_t, long, const char **);
-static i370_insn_t insert_ss_d2 (i370_insn_t, long, const char **);
-static i370_insn_t insert_rxf_r3 (i370_insn_t, long, const char **);
-static long extract_ss_b2 (i370_insn_t, int *);
-static long extract_ss_d2 (i370_insn_t, int *);
-static long extract_rxf_r3 (i370_insn_t, int *);
+/* The functions used to insert and extract complicated operands. */
+
+static i370_insn_t
+insert_ss_b2 (i370_insn_t insn, long value,
+ const char **errmsg ATTRIBUTE_UNUSED)
+{
+ insn.i[1] |= (value & 0xf) << 28;
+ return insn;
+}
+
+static i370_insn_t
+insert_ss_d2 (i370_insn_t insn, long value,
+ const char **errmsg ATTRIBUTE_UNUSED)
+{
+ insn.i[1] |= (value & 0xfff) << 16;
+ return insn;
+}
+
+static i370_insn_t
+insert_rxf_r3 (i370_insn_t insn, long value,
+ const char **errmsg ATTRIBUTE_UNUSED)
+{
+ insn.i[1] |= (value & 0xf) << 28;
+ return insn;
+}
+
+static long
+extract_ss_b2 (i370_insn_t insn, int *invalid ATTRIBUTE_UNUSED)
+{
+ return (insn.i[1] >>28) & 0xf;
+}
+
+static long
+extract_ss_d2 (i370_insn_t insn, int *invalid ATTRIBUTE_UNUSED)
+{
+ return (insn.i[1] >>16) & 0xfff;
+}
+static long
+extract_rxf_r3 (i370_insn_t insn, int *invalid ATTRIBUTE_UNUSED)
+{
+ return (insn.i[1] >>28) & 0xf;
+}
/* The operands table.
The fields are bits, shift, insert, extract, flags, name.
@@ -53,8 +88,7 @@ static long extract_rxf_r3 (i370_insn_t, int *);
if absent, should take value of zero
I370_OPERAND_INDEX index register; if present, must name a register
if absent, should take value of zero
- I370_OPERAND_OPTIONAL other optional operand (usuall reg?)
-*/
+ I370_OPERAND_OPTIONAL other optional operand (usuall reg?). */
const struct i370_operand i370_operands[] =
{
@@ -223,180 +257,135 @@ const struct i370_operand i370_operands[] =
#define SS_D2 (SS_B2 + 1)
#define SS_D2_MASK (0xfff)
{ 12, 0, insert_ss_d2, extract_ss_d2, I370_OPERAND_RELATIVE, "SS D2" },
-
-
+
};
-/* The functions used to insert and extract complicated operands. */
-
-static i370_insn_t
-insert_ss_b2 (i370_insn_t insn, long value,
- const char **errmsg ATTRIBUTE_UNUSED)
-{
- insn.i[1] |= (value & 0xf) << 28;
- return insn;
-}
-
-static i370_insn_t
-insert_ss_d2 (i370_insn_t insn, long value,
- const char **errmsg ATTRIBUTE_UNUSED)
-{
- insn.i[1] |= (value & 0xfff) << 16;
- return insn;
-}
-
-static i370_insn_t
-insert_rxf_r3 (i370_insn_t insn, long value,
- const char **errmsg ATTRIBUTE_UNUSED)
-{
- insn.i[1] |= (value & 0xf) << 28;
- return insn;
-}
-
-static long
-extract_ss_b2 (i370_insn_t insn, int *invalid ATTRIBUTE_UNUSED)
-{
- return (insn.i[1] >>28) & 0xf;
-}
-
-static long
-extract_ss_d2 (i370_insn_t insn, int *invalid ATTRIBUTE_UNUSED)
-{
- return (insn.i[1] >>16) & 0xfff;
-}
-
-static long
-extract_rxf_r3 (i370_insn_t insn, int *invalid ATTRIBUTE_UNUSED)
-{
- return (insn.i[1] >>28) & 0xf;
-}
-
/* Macros used to form opcodes. */
/* The short-instruction opcode. */
-#define OPS(x) ((((unsigned short)(x)) & 0xff) << 8)
+#define OPS(x) ((((unsigned short) (x)) & 0xff) << 8)
#define OPS_MASK OPS (0xff)
/* the extended instruction opcode */
-#define XOPS(x) ((((unsigned short)(x)) & 0xff) << 24)
+#define XOPS(x) ((((unsigned short) (x)) & 0xff) << 24)
#define XOPS_MASK XOPS (0xff)
/* the S instruction opcode */
-#define SOPS(x) ((((unsigned short)(x)) & 0xffff) << 16)
+#define SOPS(x) ((((unsigned short) (x)) & 0xffff) << 16)
#define SOPS_MASK SOPS (0xffff)
/* the E instruction opcode */
-#define EOPS(x) (((unsigned short)(x)) & 0xffff)
+#define EOPS(x) (((unsigned short) (x)) & 0xffff)
#define EOPS_MASK EOPS (0xffff)
/* the RI instruction opcode */
-#define ROPS(x) (((((unsigned short)(x)) & 0xff0) << 20) | \
- ((((unsigned short)(x)) & 0x00f) << 16))
+#define ROPS(x) (((((unsigned short) (x)) & 0xff0) << 20) | \
+ ((((unsigned short) (x)) & 0x00f) << 16))
#define ROPS_MASK ROPS (0xfff)
-/* --------------------------------------------------------- */
+
/* An E form instruction. */
#define E(op) (EOPS (op))
#define E_MASK E (0xffff)
/* An RR form instruction. */
#define RR(op, r1, r2) \
- (OPS (op) | ((((unsigned short)(r1)) & 0xf) << 4) | \
- ((((unsigned short)(r2)) & 0xf) ))
+ (OPS (op) | ((((unsigned short) (r1)) & 0xf) << 4) | \
+ ((((unsigned short) (r2)) & 0xf) ))
#define RR_MASK RR (0xff, 0x0, 0x0)
/* An SVC-style instruction. */
#define SVC(op, i) \
- (OPS (op) | (((unsigned short)(i)) & 0xff))
+ (OPS (op) | (((unsigned short) (i)) & 0xff))
#define SVC_MASK SVC (0xff, 0x0)
/* An RRE form instruction. */
#define RRE(op, r1, r2) \
- (SOPS (op) | ((((unsigned short)(r1)) & 0xf) << 4) | \
- ((((unsigned short)(r2)) & 0xf) ))
+ (SOPS (op) | ((((unsigned short) (r1)) & 0xf) << 4) | \
+ ((((unsigned short) (r2)) & 0xf) ))
#define RRE_MASK RRE (0xffff, 0x0, 0x0)
/* An RRF form instruction. */
#define RRF(op, r3, r1, r2) \
- (SOPS (op) | ((((unsigned short)(r3)) & 0xf) << 12) | \
- ((((unsigned short)(r1)) & 0xf) << 4) | \
- ((((unsigned short)(r2)) & 0xf) ))
+ (SOPS (op) | ((((unsigned short) (r3)) & 0xf) << 12) | \
+ ((((unsigned short) (r1)) & 0xf) << 4) | \
+ ((((unsigned short) (r2)) & 0xf) ))
#define RRF_MASK RRF (0xffff, 0x0, 0x0, 0x0)
/* An RX form instruction. */
#define RX(op, r1, x2, b2, d2) \
- (XOPS(op) | ((((unsigned short)(r1)) & 0xf) << 20) | \
- ((((unsigned short)(x2)) & 0xf) << 16) | \
- ((((unsigned short)(b2)) & 0xf) << 12) | \
- ((((unsigned short)(d2)) & 0xfff)))
+ (XOPS(op) | ((((unsigned short) (r1)) & 0xf) << 20) | \
+ ((((unsigned short) (x2)) & 0xf) << 16) | \
+ ((((unsigned short) (b2)) & 0xf) << 12) | \
+ ((((unsigned short) (d2)) & 0xfff)))
#define RX_MASK RX (0xff, 0x0, 0x0, 0x0, 0x0)
/* An RXE form instruction high word. */
#define RXEH(op, r1, x2, b2, d2) \
- (XOPS(op) | ((((unsigned short)(r1)) & 0xf) << 20) | \
- ((((unsigned short)(x2)) & 0xf) << 16) | \
- ((((unsigned short)(b2)) & 0xf) << 12) | \
- ((((unsigned short)(d2)) & 0xfff)))
+ (XOPS(op) | ((((unsigned short) (r1)) & 0xf) << 20) | \
+ ((((unsigned short) (x2)) & 0xf) << 16) | \
+ ((((unsigned short) (b2)) & 0xf) << 12) | \
+ ((((unsigned short) (d2)) & 0xfff)))
#define RXEH_MASK RXEH (0xff, 0, 0, 0, 0)
/* An RXE form instruction low word. */
#define RXEL(op) \
- ((((unsigned short)(op)) & 0xff) << 16 )
+ ((((unsigned short) (op)) & 0xff) << 16 )
#define RXEL_MASK RXEL (0xff)
/* An RXF form instruction high word. */
#define RXFH(op, r1, x2, b2, d2) \
- (XOPS(op) | ((((unsigned short)(r1)) & 0xf) << 20) | \
- ((((unsigned short)(x2)) & 0xf) << 16) | \
- ((((unsigned short)(b2)) & 0xf) << 12) | \
- ((((unsigned short)(d2)) & 0xfff)))
+ (XOPS(op) | ((((unsigned short) (r1)) & 0xf) << 20) | \
+ ((((unsigned short) (x2)) & 0xf) << 16) | \
+ ((((unsigned short) (b2)) & 0xf) << 12) | \
+ ((((unsigned short) (d2)) & 0xfff)))
#define RXFH_MASK RXFH (0xff, 0, 0, 0, 0)
/* An RXF form instruction low word. */
#define RXFL(op, r3) \
- (((((unsigned short)(r3)) & 0xf) << 28 ) | \
- ((((unsigned short)(op)) & 0xff) << 16 ))
+ (((((unsigned short) (r3)) & 0xf) << 28 ) | \
+ ((((unsigned short) (op)) & 0xff) << 16 ))
#define RXFL_MASK RXFL (0xff, 0)
/* An RS form instruction. */
#define RS(op, r1, b3, b2, d2) \
- (XOPS(op) | ((((unsigned short)(r1)) & 0xf) << 20) | \
- ((((unsigned short)(b3)) & 0xf) << 16) | \
- ((((unsigned short)(b2)) & 0xf) << 12) | \
- ((((unsigned short)(d2)) & 0xfff)))
+ (XOPS(op) | ((((unsigned short) (r1)) & 0xf) << 20) | \
+ ((((unsigned short) (b3)) & 0xf) << 16) | \
+ ((((unsigned short) (b2)) & 0xf) << 12) | \
+ ((((unsigned short) (d2)) & 0xfff)))
#define RS_MASK RS (0xff, 0x0, 0x0, 0x0, 0x0)
/* An RSI form instruction. */
#define RSI(op, r1, r3, i2) \
- (XOPS(op) | ((((unsigned short)(r1)) & 0xf) << 20) | \
- ((((unsigned short)(r3)) & 0xf) << 16) | \
- ((((unsigned short)(i2)) & 0xffff)))
+ (XOPS(op) | ((((unsigned short) (r1)) & 0xf) << 20) | \
+ ((((unsigned short) (r3)) & 0xf) << 16) | \
+ ((((unsigned short) (i2)) & 0xffff)))
#define RSI_MASK RSI (0xff, 0x0, 0x0, 0x0)
/* An RI form instruction. */
#define RI(op, r1, i2) \
- (ROPS(op) | ((((unsigned short)(r1)) & 0xf) << 20) | \
- ((((unsigned short)(i2)) & 0xffff)))
+ (ROPS(op) | ((((unsigned short) (r1)) & 0xf) << 20) | \
+ ((((unsigned short) (i2)) & 0xffff)))
#define RI_MASK RI (0xfff, 0x0, 0x0)
/* An SI form instruction. */
#define SI(op, i2, b1, d1) \
- (XOPS(op) | ((((unsigned short)(i2)) & 0xff) << 16) | \
- ((((unsigned short)(b1)) & 0xf) << 12) | \
- ((((unsigned short)(d1)) & 0xfff)))
+ (XOPS(op) | ((((unsigned short) (i2)) & 0xff) << 16) | \
+ ((((unsigned short) (b1)) & 0xf) << 12) | \
+ ((((unsigned short) (d1)) & 0xfff)))
#define SI_MASK SI (0xff, 0x0, 0x0, 0x0)
@@ -409,26 +398,26 @@ extract_rxf_r3 (i370_insn_t insn, int *invalid ATTRIBUTE_UNUSED)
/* An SS form instruction high word. */
#define SSH(op, l, b1, d1) \
- (XOPS(op) | ((((unsigned short)(l)) & 0xff) << 16) | \
- ((((unsigned short)(b1)) & 0xf) << 12) | \
- ((((unsigned short)(d1)) & 0xfff)))
+ (XOPS(op) | ((((unsigned short) (l)) & 0xff) << 16) | \
+ ((((unsigned short) (b1)) & 0xf) << 12) | \
+ ((((unsigned short) (d1)) & 0xfff)))
/* An SS form instruction low word. */
#define SSL(b2, d2) \
- ( ((((unsigned short)(b1)) & 0xf) << 28) | \
- ((((unsigned short)(d1)) & 0xfff) << 16 ))
+ ( ((((unsigned short) (b1)) & 0xf) << 28) | \
+ ((((unsigned short) (d1)) & 0xfff) << 16 ))
#define SS_MASK SSH (0xff, 0x0, 0x0, 0x0)
/* An SSE form instruction high word. */
#define SSEH(op, b1, d1) \
- (SOPS(op) | ((((unsigned short)(b1)) & 0xf) << 12) | \
- ((((unsigned short)(d1)) & 0xfff)))
+ (SOPS(op) | ((((unsigned short) (b1)) & 0xf) << 12) | \
+ ((((unsigned short) (d1)) & 0xfff)))
/* An SSE form instruction low word. */
#define SSEL(b2, d2) \
- ( ((((unsigned short)(b1)) & 0xf) << 28) | \
- ((((unsigned short)(d1)) & 0xfff) << 16 ))
+ ( ((((unsigned short) (b1)) & 0xf) << 28) | \
+ ((((unsigned short) (d1)) & 0xfff) << 16 ))
#define SSE_MASK SSEH (0xffff, 0x0, 0x0)
@@ -436,8 +425,7 @@ extract_rxf_r3 (i370_insn_t insn, int *invalid ATTRIBUTE_UNUSED)
/* Smaller names for the flags so each entry in the opcodes table will
fit on a single line. These flags are set up so that e.g. IXA means
the insn is supported on the 370/XA or newer architecture.
- Note that 370 or older obsolete insn's are not supported ...
- */
+ Note that 370 or older obsolete insn's are not supported ... */
#define IBF I370_OPCODE_ESA390_BF
#define IBS I370_OPCODE_ESA390_BS
#define ICK I370_OPCODE_ESA390_CK
@@ -479,8 +467,8 @@ extract_rxf_r3 (i370_insn_t insn, int *invalid ATTRIBUTE_UNUSED)
specific instructions before more general instructions. It is also
sorted by major opcode. */
-const struct i370_opcode i370_opcodes[] = {
-
+const struct i370_opcode i370_opcodes[] =
+{
/* E form instructions */
{ "pr", 2, {{E(0x0101), 0}}, {{E_MASK, 0}}, IESA, {0} },
@@ -546,10 +534,10 @@ const struct i370_opcode i370_opcodes[] = {
{ "sxr", 2, {{RR(0x37,0,0), 0}}, {{RR_MASK, 0}}, I370, {RR_R1, RR_R2} },
{ "xr", 2, {{RR(0x17,0,0), 0}}, {{RR_MASK, 0}}, I370, {RR_R1, RR_R2} },
-/* unusual RR formats */
+/* Unusual RR formats. */
{ "svc", 2, {{SVC(0x0a,0), 0}}, {{SVC_MASK, 0}}, I370, {RR_I} },
-/* RRE form instructions */
+/* RRE form instructions. */
{ "adbr", 4, {{RRE(0xb31a,0,0), 0}}, {{RRE_MASK, 0}}, IBF, {RRE_R1, RRE_R2} },
{ "aebr", 4, {{RRE(0xb30a,0,0), 0}}, {{RRE_MASK, 0}}, IBF, {RRE_R1, RRE_R2} },
{ "axbr", 4, {{RRE(0xb34a,0,0), 0}}, {{RRE_MASK, 0}}, IBF, {RRE_R1, RRE_R2} },
@@ -654,7 +642,7 @@ const struct i370_opcode i370_opcodes[] = {
{ "thdr", 4, {{RRE(0xb359,0,0), 0}}, {{RRE_MASK, 0}}, IFX, {RRE_R1, RRE_R2} },
{ "thder", 4, {{RRE(0xb359,0,0), 0}}, {{RRE_MASK, 0}}, IFX, {RRE_R1, RRE_R2} },
-/* RRF form instructions */
+/* RRF form instructions. */
{ "cfdbr", 4, {{RRF(0xb399,0,0,0), 0}}, {{RRF_MASK, 0}}, IBF, {RRF_R1, RRF_R3, RRF_R2} },
{ "cfdr", 4, {{RRF(0xb3b9,0,0,0), 0}}, {{RRF_MASK, 0}}, IHX, {RRF_R1, RRF_R3, RRF_R2} },
{ "cfebr", 4, {{RRF(0xb398,0,0,0), 0}}, {{RRF_MASK, 0}}, IBF, {RRF_R1, RRF_R3, RRF_R2} },
@@ -673,7 +661,7 @@ const struct i370_opcode i370_opcodes[] = {
{ "tbdr", 4, {{RRF(0xb351,0,0,0), 0}}, {{RRF_MASK, 0}}, IFX, {RRF_R1, RRF_R3, RRF_R2} },
{ "tbedr", 4, {{RRF(0xb350,0,0,0), 0}}, {{RRF_MASK, 0}}, IFX, {RRF_R1, RRF_R3, RRF_R2} },
-/* RX form instructions */
+/* RX form instructions. */
{ "a", 4, {{RX(0x5a,0,0,0,0), 0}}, {{RX_MASK, 0}}, I370, {RX_R1, RX_D2, RX_X2, RX_B2} },
{ "ad", 4, {{RX(0x6a,0,0,0,0), 0}}, {{RX_MASK, 0}}, I370, {RX_R1, RX_D2, RX_X2, RX_B2} },
{ "ae", 4, {{RX(0x7a,0,0,0,0), 0}}, {{RX_MASK, 0}}, I370, {RX_R1, RX_D2, RX_X2, RX_B2} },
@@ -726,7 +714,7 @@ const struct i370_opcode i370_opcodes[] = {
{ "sw", 4, {{RX(0x6f,0,0,0,0), 0}}, {{RX_MASK, 0}}, I370, {RX_R1, RX_D2, RX_X2, RX_B2} },
{ "x", 4, {{RX(0x57,0,0,0,0), 0}}, {{RX_MASK, 0}}, I370, {RX_R1, RX_D2, RX_X2, RX_B2} },
-/* RXE form instructions */
+/* RXE form instructions. */
{ "adb", 6, {{RXEH(0xed,0,0,0,0), RXEL(0x1a)}}, {{RXEH_MASK, RXEL_MASK}}, IBF, {RX_R1, RX_D2, RX_X2, RX_B2} },
{ "aeb", 6, {{RXEH(0xed,0,0,0,0), RXEL(0x0a)}}, {{RXEH_MASK, RXEL_MASK}}, IBF, {RX_R1, RX_D2, RX_X2, RX_B2} },
{ "cdb", 6, {{RXEH(0xed,0,0,0,0), RXEL(0x19)}}, {{RXEH_MASK, RXEL_MASK}}, IBF, {RX_R1, RX_D2, RX_X2, RX_B2} },
@@ -756,13 +744,13 @@ const struct i370_opcode i370_opcodes[] = {
{ "tceb", 6, {{RXEH(0xed,0,0,0,0), RXEL(0x10)}}, {{RXEH_MASK, RXEL_MASK}}, IBF, {RX_R1, RX_D2, RX_X2, RX_B2} },
{ "tcxb", 6, {{RXEH(0xed,0,0,0,0), RXEL(0x12)}}, {{RXEH_MASK, RXEL_MASK}}, IBF, {RX_R1, RX_D2, RX_X2, RX_B2} },
-/* RXF form instructions */
+/* RXF form instructions. */
{ "madb", 6, {{RXFH(0xed,0,0,0,0), RXFL(0x1e,0)}}, {{RXFH_MASK, RXFL_MASK}}, IBF, {RX_R1, RXF_R3, RX_D2, RX_X2, RX_B2} },
{ "maeb", 6, {{RXFH(0xed,0,0,0,0), RXFL(0x0e,0)}}, {{RXFH_MASK, RXFL_MASK}}, IBF, {RX_R1, RXF_R3, RX_D2, RX_X2, RX_B2} },
{ "msdb", 6, {{RXFH(0xed,0,0,0,0), RXFL(0x1f,0)}}, {{RXFH_MASK, RXFL_MASK}}, IBF, {RX_R1, RXF_R3, RX_D2, RX_X2, RX_B2} },
{ "mseb", 6, {{RXFH(0xed,0,0,0,0), RXFL(0x0f,0)}}, {{RXFH_MASK, RXFL_MASK}}, IBF, {RX_R1, RXF_R3, RX_D2, RX_X2, RX_B2} },
-/* RS form instructions */
+/* RS form instructions. */
{ "bxh", 4, {{RS(0x86,0,0,0,0), 0}}, {{RS_MASK, 0}}, I370, {RX_R1, RS_R3, RS_D2, RS_B2} },
{ "bxle", 4, {{RS(0x87,0,0,0,0), 0}}, {{RS_MASK, 0}}, I370, {RX_R1, RS_R3, RS_D2, RS_B2} },
{ "cds", 4, {{RS(0xbb,0,0,0,0), 0}}, {{RS_MASK, 0}}, IXA, {RX_R1, RS_R3, RS_D2, RS_B2} },
@@ -781,7 +769,7 @@ const struct i370_opcode i370_opcodes[] = {
{ "stm", 4, {{RS(0x90,0,0,0,0), 0}}, {{RS_MASK, 0}}, I370, {RX_R1, RS_R3, RS_D2, RS_B2} },
{ "trace", 4, {{RS(0x99,0,0,0,0), 0}}, {{RS_MASK, 0}}, IXA, {RX_R1, RS_R3, RS_D2, RS_B2} },
-/* RS form instructions with blank R3 and optional B2 (shift left/right) */
+/* RS form instructions with blank R3 and optional B2 (shift left/right). */
{ "sla", 4, {{RS(0x8b,0,0,0,0), 0}}, {{RS_MASK, 0}}, I370, {RX_R1, RS_D2, RS_B2_OPT} },
{ "slda", 4, {{RS(0x8f,0,0,0,0), 0}}, {{RS_MASK, 0}}, I370, {RX_R1, RS_D2, RS_B2_OPT} },
{ "sldl", 4, {{RS(0x8d,0,0,0,0), 0}}, {{RS_MASK, 0}}, I370, {RX_R1, RS_D2, RS_B2_OPT} },
@@ -791,11 +779,11 @@ const struct i370_opcode i370_opcodes[] = {
{ "srdl", 4, {{RS(0x8c,0,0,0,0), 0}}, {{RS_MASK, 0}}, I370, {RX_R1, RS_D2, RS_B2_OPT} },
{ "srl", 4, {{RS(0x88,0,0,0,0), 0}}, {{RS_MASK, 0}}, I370, {RX_R1, RS_D2, RS_B2_OPT} },
-/* RSI form instructions */
+/* RSI form instructions. */
{ "brxh", 4, {{RSI(0x84,0,0,0), 0}}, {{RSI_MASK, 0}}, IIR, {RSI_R1, RSI_R3, RSI_I2} },
{ "brxle", 4, {{RSI(0x85,0,0,0), 0}}, {{RSI_MASK, 0}}, IIR, {RSI_R1, RSI_R3, RSI_I2} },
-/* RI form instructions */
+/* RI form instructions. */
{ "ahi", 4, {{RI(0xa7a,0,0), 0}}, {{RI_MASK, 0}}, IIR, {RI_R1, RI_I2} },
{ "bras", 4, {{RI(0xa75,0,0), 0}}, {{RI_MASK, 0}}, IIR, {RI_R1, RI_I2} },
{ "brc", 4, {{RI(0xa74,0,0), 0}}, {{RI_MASK, 0}}, IIR, {RI_R1, RI_I2} },
@@ -806,7 +794,7 @@ const struct i370_opcode i370_opcodes[] = {
{ "tmh", 4, {{RI(0xa70,0,0), 0}}, {{RI_MASK, 0}}, IIR, {RI_R1, RI_I2} },
{ "tml", 4, {{RI(0xa71,0,0), 0}}, {{RI_MASK, 0}}, IIR, {RI_R1, RI_I2} },
-/* SI form instructions */
+/* SI form instructions. */
{ "cli", 4, {{SI(0x95,0,0,0), 0}}, {{SI_MASK, 0}}, I370, {SI_D1, SI_B1, SI_I2} },
{ "mc", 4, {{SI(0xaf,0,0,0), 0}}, {{SI_MASK, 0}}, I370, {SI_D1, SI_B1, SI_I2} },
{ "mvi", 4, {{SI(0x92,0,0,0), 0}}, {{SI_MASK, 0}}, I370, {SI_D1, SI_B1, SI_I2} },
@@ -817,7 +805,7 @@ const struct i370_opcode i370_opcodes[] = {
{ "tm", 4, {{SI(0x91,0,0,0), 0}}, {{SI_MASK, 0}}, I370, {SI_D1, SI_B1, SI_I2} },
{ "xi", 4, {{SI(0x97,0,0,0), 0}}, {{SI_MASK, 0}}, I370, {SI_D1, SI_B1, SI_I2} },
-/* S form instructions */
+/* S form instructions. */
{ "cfc", 4, {{S(0xb21a,0,0), 0}}, {{S_MASK, 0}}, IXA, {S_D2, S_B2} },
{ "csch", 4, {{S(0xb230,0,0), 0}}, {{S_MASK, 0}}, IXA, {0} },
{ "hsch", 4, {{S(0xb231,0,0), 0}}, {{S_MASK, 0}}, IXA, {0} },
@@ -858,7 +846,7 @@ const struct i370_opcode i370_opcodes[] = {
{ "ts", 4, {{S(0x9300,0,0), 0}}, {{S_MASK, 0}}, I370, {S_D2, S_B2} },
{ "tsch", 4, {{S(0xb235,0,0), 0}}, {{S_MASK, 0}}, IXA, {S_D2, S_B2} },
-/* SS form instructions */
+/* SS form instructions. */
{ "ap", 6, {{SSH(0xfa,0,0,0), 0}}, {{SS_MASK, 0}}, I370, {SS_D1,SS_L,SS_B1,SS_D2,SS_B2} },
{ "clc", 6, {{SSH(0xd5,0,0,0), 0}}, {{SS_MASK, 0}}, I370, {SS_D1,SS_L,SS_B1,SS_D2,SS_B2} },
{ "cp", 6, {{SSH(0xf9,0,0,0), 0}}, {{SS_MASK, 0}}, I370, {SS_D1,SS_L,SS_B1,SS_D2,SS_B2} },
@@ -885,7 +873,7 @@ const struct i370_opcode i370_opcodes[] = {
{ "xc", 6, {{SSH(0xd7,0,0,0), 0}}, {{SS_MASK, 0}}, I370, {SS_D1,SS_L,SS_B1,SS_D2,SS_B2} },
{ "zap", 6, {{SSH(0xf8,0,0,0), 0}}, {{SS_MASK, 0}}, I370, {SS_D1,SS_L,SS_B1,SS_D2,SS_B2} },
-/* SSE form instructions */
+/* SSE form instructions. */
{ "lasp", 6, {{SSEH(0xe500,0,0), 0}}, {{SSE_MASK, 0}}, IXA, {SS_D1, SS_B1, SS_D2, SS_B2} },
{ "mvcdk", 6, {{SSEH(0xe50f,0,0), 0}}, {{SSE_MASK, 0}}, IESA, {SS_D1, SS_B1, SS_D2, SS_B2} },
{ "mvcsk", 6, {{SSEH(0xe50e,0,0), 0}}, {{SSE_MASK, 0}}, IESA, {SS_D1, SS_B1, SS_D2, SS_B2} },
@@ -899,7 +887,8 @@ const int i370_num_opcodes =
/* The macro table. This is only used by the assembler. */
-const struct i370_macro i370_macros[] = {
+const struct i370_macro i370_macros[] =
+{
{ "b", 1, I370, "bc 15,%0" },
{ "br", 1, I370, "bcr 15,%0" },