/* IBM RS/6000 instruction set definitions, for GNU software. */
-struct rs6000_insn {
+typedef struct rs6000_insn {
char *operator; /* opcode name */
char *opr_ext; /* opcode name extension */
char *format; /* opcode format */
char p_opcode; /* primary opcode */
int e_opcode; /* extended opcode */
char oprnd_format[6]; /* operand format */
-};
+} OPCODE;
/* operand format specifiers */
operator ext format opcode opcode operand format
------- ------- ------ ------- ------ --------------- */
-OPCODE rs6k_ops [] = {
+struct rs6000_insn rs6k_ops [] = {
{"ti", 0, "d", 3, -1, {TO,RA,SI,0} },
{"muli", 0, "d", 7, -1, {RT,RA,SI,0} },
{"and", ".", "x", 31, 28, {RA,RS,RB,0} },
{"maskg", ".", "x", 31, 29, {RA,RS,RB,0} },
{"cmpl", 0, "x", 31, 32, {BF,RA,RB,0} },
-{"sfe", "o.", "xo", 31, 36, {RT,RA,RB,0} },
+{"sfe", "o.", "xo", 31, 136, {RT,RA,RB,0} },
{"lux", 0, "x", 31, 55, {RT,RA,RB,0} },
{"andc", ".", "x", 31, 60, {RA,RS,RB,0} },
{"mfmsr", 0, "x", 31, 83, {RT,0} },
{"lfdx", 0, "x", 31, 599, {FRT,RA,RB,0} },
{"lfdux", 0, "x", 31, 631, {FRT,RA,RB,0} },
{"stsx", 0, "x", 31, 661, {RS,RA,RB,0} },
-{"stbrx", 0, "x", 31, 662, {RA,RA,RB,0} },
+{"stbrx", 0, "x", 31, 662, {RS,RA,RB,0} },
{"stfsx", 0, "x", 31, 663, {FRS,RA,RB,0} },
{"srq", ".", "x", 31, 664, {RA,RS,RB,0} },
{"sre", ".", "x", 31, 665, {RA,RS,RB,0} },
{"mtfsf", ".", "xfl", 63, 711, {FLM,FRB,0} },
};
-#define NOPCODES (sizeof (rs6k_ops) / sizeof (OPCODE))
+#define NOPCODES (sizeof (rs6k_ops) / sizeof (struct rs6000_insn))