From c0532cf36ba83d86825b8647b892f4d3d090ba7c Mon Sep 17 00:00:00 2001 From: Per Bothner Date: Fri, 17 Apr 1992 01:34:34 +0000 Subject: [PATCH] * rs6k.h: New version from IBM (Metin). --- include/opcode/rs6k.h | 360 ++++++++++++++++++++++++++------------------------ 1 file changed, 187 insertions(+), 173 deletions(-) diff --git a/include/opcode/rs6k.h b/include/opcode/rs6k.h index af620f7..efbbfde 100644 --- a/include/opcode/rs6k.h +++ b/include/opcode/rs6k.h @@ -1,9 +1,23 @@ /* IBM RS/6000 instruction set definitions, for GNU software. */ +/* These are all possible instruction formats as used in IBM Assembler + Language Reference, Appendix A. */ + +typedef enum { A=0, B, D, I, M, SC, X, XL, XO, XFL, XFX } InsnFmt; + +/* Extended opcode masks. Used for extracting extended opcode values from + instructions. Each instruction's format decides which mask applies. + They *should* retain the same order as the above formats. */ + +static int eopMask[] = + { 0x1f, 0, 0, 0, 0, 0, 0x3ff, 0x3ff, 0x1ff, 0x3ff, 0x3ff }; + +/* All the things you need to know about an opcode. */ + typedef struct rs6000_insn { char *operator; /* opcode name */ char *opr_ext; /* opcode name extension */ - char *format; /* opcode format */ + InsnFmt format; /* opcode format */ char p_opcode; /* primary opcode */ int e_opcode; /* extended opcode */ char oprnd_format[6]; /* operand format */ @@ -56,181 +70,181 @@ operator ext format opcode opcode operand format struct rs6000_insn rs6k_ops [] = { -{"ti", 0, "d", 3, -1, {TO,RA,SI,0} }, -{"muli", 0, "d", 7, -1, {RT,RA,SI,0} }, -{"sfi", 0, "d", 8, -1, {RT,RA,SI,0} }, -{"dozi", 0, "d", 9, -1, {RT,RA,SI,0} }, -{"cmpli", 0, "d", 10, -1, {BF,RA,UI,0} }, -{"cmpi", 0, "d", 11, -1, {BF,RA,SI,0} }, -{"ai", 0, "d", 12, -1, {RT,RA,SI,0} }, -{"ai.", 0, "d", 13, -1, {RT,RA,SI,0} }, -{"lil", 0, "d", 14, -1, {RT,SI,0} }, /* same as `cal' */ -{"cal", 0, "d", 14, -1, {RT,DIS,RA,0} }, -{"liu", 0, "d", 15, -1, {RT, UI,0} }, /* same as `cau' */ -{"cau", 0, "d", 15, -1, {RT,RA,UI,0} }, -{"bb", "1tfl", "b", 16, -1, {LI,A2,0} }, +{"ti", 0, D, 3, -1, {TO,RA,SI,0} }, +{"muli", 0, D, 7, -1, {RT,RA,SI,0} }, +{"sfi", 0, D, 8, -1, {RT,RA,SI,0} }, +{"dozi", 0, D, 9, -1, {RT,RA,SI,0} }, +{"cmpli", 0, D, 10, -1, {BF,RA,UI,0} }, +{"cmpi", 0, D, 11, -1, {BF,RA,SI,0} }, +{"ai", 0, D, 12, -1, {RT,RA,SI,0} }, +{"ai.", 0, D, 13, -1, {RT,RA,SI,0} }, +{"lil", 0, D, 14, -1, {RT,SI,0} }, /* same as `cal' */ +{"cal", 0, D, 14, -1, {RT,DIS,RA,0} }, +{"liu", 0, D, 15, -1, {RT, UI,0} }, /* same as `cau' */ +{"cau", 0, D, 15, -1, {RT,RA,UI,0} }, +{"bb", "1tfl", B, 16, -1, {LI,A2,0} }, /* ^^^^^ exception #1. Either fix this, or document what you are doing here. FIXMEmgo. */ -{"bc", "la", "b", 16, -1, {BO,BI,TA14,0} }, -{"svc", "la", "sc", 17, -1, {LEV,FL1,FL2,0} }, -{"b", "la", "i", 18, -1, {TA24,0} }, -{"mcrf", 0, "xl", 19, 0, {BF,BFA,0} }, -{"bcr", "l", "xl", 19, 16, {BO,BI,0} }, -{"cror", 0, "xl", 19, 33, {BT,BA,BB,0} }, -{"crandc", 0, "xl", 19, 129, {BT,BA,BB,0} }, -{"bcc", "l", "xl", 19, 193, {BO,BI,0} }, -{"crnor", 0, "xl", 19, 225, {BT,BA,BB,0} }, -{"crand", 0, "xl", 19, 257, {BT,BA,BB,0} }, -{"creqv", 0, "xl", 19, 289, {BT,BA,BB,0} }, -{"crnand", 0, "xl", 19, 289, {BT,BA,BB,0} }, -{"crxor", 0, "xl", 19, 417, {BT,BA,BB,0} }, -{"crorc", 0, "xl", 19, 449, {BT,BA,BB,0} }, -{"bcr", "l", "xl", 19, 528, {BO,BI,0} }, -{"rlimi", ".", "m", 20, -1, {RA,RS,SH,MB,ME,0} /*??*/}, -{"rlinm", ".", "m", 21, -1, {RA,RS,SH,MB,ME,0} /*??*/}, -{"rlmi", ".", "m", 22, -1, {RA,RS,RB,MB,ME,0} /*??*/}, -{"rlnm", ".", "m", 23, -1, {RA,RS,RB,MB,ME,0} /*??*/}, -{"oril", 0, "d", 24, -1, {RA,RS,UI,0} }, -{"oriu", 0, "d", 25, -1, {RA,RS,UI,0} }, -{"xoril", 0, "d", 26, -1, {RA,RS,UI,0} }, -{"xoriu", 0, "d", 27, -1, {RA,RS,UI,0} }, -{"andil.", 0, "d", 28, -1, {RA,RS,UI,0} }, -{"andiu.", 0, "d", 29, -1, {RA,RS,UI,0} }, -{"cmp", 0, "x", 31, 0, {BF,RA,RB,0} }, -{"t", 0, "x", 31, 4, {TO,RA,RB,0} }, -{"sf", "o.", "xo", 31, 8, {RT,RA,RB,0} }, -{"a", "o.", "xo", 31, 10, {RT,RA,RB,0} }, -{"mfcr", 0, "x", 31, 19, {RT,0} }, -{"lx", 0, "x", 31, 23, {RT,RA,RB,0} }, -{"sl", ".", "x", 31, 24, {RA,RS,RB,0} }, -{"cntlz", ".", "xo", 31, 26, {RA,RS,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, 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} }, -{"lbzx", 0, "x", 31, 87, {RT,RA,RB,0} }, -{"neg", "o.", "xo", 31, 104, {RT,RA,0} }, -{"mul", "o.", "xo", 31, 107, {RT,RA,RB,0} }, -{"lbzux", 0, "x", 31, 119, {RT,RA,RB,0} }, -{"nor", ".", "x", 31, 124, {RA,RS,RB,0} }, -{"ae", "o.", "xo", 31, 138, {RT,RA,RB,0} }, -{"mtcrf", 0, "xfx", 31, 144, {FXM,RS,0} }, -{"stx", 0, "x", 31, 151, {RS,RA,RB,0} }, -{"slq", ".", "x", 31, 152, {RA,RS,RB,0} }, -{"sle", ".", "x", 31, 153, {RA,RS,RB,0} }, -{"stux", 0, "x", 31, 183, {RS,RA,RB,0} }, -{"sliq", ".", "x", 31, 184, {RA,RS,SH,0} }, -{"sfze", "o.", "xo", 31, 200, {RT,RA,0} }, -{"aze", "o.", "xo", 31, 202, {RT,RA,0} }, -{"stbx", 0, "x", 31, 215, {RS,RA,RB,0} }, -{"sllq", ".", "x", 31, 216, {RA,RS,RB,0} }, -{"sleq", ".", "x", 31, 217, {RA,RS,RB,0} }, -{"sfme", "o.", "xo", 31, 232, {RT,RA,0} }, -{"ame", "o.", "xo", 31, 234, {RT,RA,0} }, -{"muls", "o.", "xo", 31, 235, {RT,RA,RB,0} }, -{"stbux", 0, "x", 31, 247, {RS,RA,RB,0} }, -{"slliq", ".", "x", 31, 248, {RA,RS,SH,0} }, -{"doz", "o.", "x", 31, 264, {RT,RA,RB,0} }, -{"cax", "o.", "xo", 31, 266, {RT,RA,RB,0} }, -{"lscbx", ".", "x", 31, 277, {RT,RA,RB,0} }, -{"lhzx", 0, "x", 31, 279, {RT,RA,RB,0} }, -{"eqv", ".", "x", 31, 284, {RA,RS,RB,0} }, -{"lhzux", 0, "x", 31, 311, {RT,RA,RB,0} }, -{"xor", ".", "x", 31, 316, {RA,RS,RB,0} }, -{"div", "o.", "xo", 31, 331, {RT,RA,RB,0} }, -{"mfspr", 0, "x", 31, 339, {RT,SPR,0} }, -{"lhax", 0, "x", 31, 343, {RT,RA,RB,0} }, -{"abs", "o.", "xo", 31, 360, {RT,RA,0} }, -{"divs", "o.", "xo", 31, 363, {RT,RA,RB,0} }, -{"lhaux", 0, "x", 31, 375, {RT,RA,RB,0} }, -{"sthx", 0, "x", 31, 407, {RS,RA,RB,0} }, -{"orc", ".", "x", 31, 412, {RA,RS,RB,0} }, -{"sthux", 0, "x", 31, 439, {RS,RA,RB,0} }, -{"or", ".", "x", 31, 444, {RA,RS,RB,0} }, -{"mtspr", 0, "x", 31, 467, {SPR,RS,0} }, -{"nand", ".", "x", 31, 476, {RA,RS,RB,0} }, -{"nabs", "o.", "xo", 31, 488, {RT,RA,0} }, -{"mcrxr", 0, "x", 31, 512, {BF,0} }, -{"lsx", 0, "x", 31, 533, {RT,RA,RB,0} }, -{"lbrx", 0, "x", 31, 534, {RT,RA,RB,0} }, -{"lfsx", 0, "x", 31, 535, {FRT,RA,RB,0} }, -{"sr", ".", "x", 31, 536, {RA,RS,RB,0} }, -{"rrib", ".", "x", 31, 537, {RA,RS,RB,0} }, -{"maskir", ".", "x", 31, 541, {RA,RS,RB,0} }, -{"lfsux", 0, "x", 31, 567, {FRT,RA,RB,0} }, -{"lsi", 0, "x", 31, 597, {RT,RA,NB,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, {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} }, -{"stfsux", 0, "x", 31, 695, {FRS,RA,RB,0} }, -{"sriq", ".", "x", 31, 696, {RA,RS,SH,0} }, -{"stsi", 0, "x", 31, 725, {RS,RA,NB,0} }, -{"stfdx", 0, "x", 31, 727, {FRS,RA,RB,0} }, -{"srlq", ".", "x", 31, 728, {RA,RS,RB,0} }, -{"sreq", ".", "x", 31, 729, {RA,RS,RB,0} }, -{"stfdux", 0, "x", 31, 759, {FRS,RA,RB,0} }, -{"srliq", ".", "x", 31, 760, {RA,RS,SH,0} }, -{"lhbrx", 0, "x", 31, 790, {RT,RA,RB,0} }, -{"sra", ".", "x", 31, 792, {RA,RS,RB,0} }, -{"srai", ".", "x", 31, 824, {RA,RS,SH,0} }, -{"sthbrx", 0, "x", 31, 918, {RS,RA,RB,0} }, -{"sraq", ".", "x", 31, 920, {RA,RS,RB,0} }, -{"srea", ".", "x", 31, 921, {RA,RS,RB,0} }, -{"exts", ".", "x", 31, 922, {RA,RS,0} }, -{"sraiq", ".", "x", 31, 952, {RA,RS,SH,0} }, -{"l", 0, "d", 32, -1, {RT,DIS,RA,0} }, -{"lu", 0, "d", 33, -1, {RT,DIS,RA,0} }, -{"lbz", 0, "d", 34, -1, {RT,DIS,RA,0} }, -{"lbzu", 0, "d", 35, -1, {RT,DIS,RA,0} }, -{"st", 0, "d", 36, -1, {RS,DIS,RA,0} }, -{"stu", 0, "d", 37, -1, {RS,DIS,RA,0} }, -{"stb", 0, "d", 38, -1, {RS,DIS,RA,0} }, -{"stbu", 0, "d", 39, -1, {RS,DIS,RA,0} }, -{"lhz", 0, "d", 40, -1, {RT,DIS,RA,0} }, -{"lhzu", 0, "d", 41, -1, {RT,DIS,RA,0} }, -{"lha", 0, "d", 42, -1, {RT,DIS,RA,0} }, -{"lhau", 0, "d", 43, -1, {RT,DIS,RA,0} }, -{"sth", 0, "d", 44, -1, {RS,DIS,RA,0} }, -{"sthu", 0, "d", 45, -1, {RS,DIS,RA,0} }, -{"lm", 0, "d", 46, -1, {RT,DIS,RA,0} }, -{"stm", 0, "d", 47, -1, {RS,DIS,RA,0} }, -{"lfs", 0, "d", 48, -1, {FRT,DIS,RA,0} }, -{"lfsu", 0, "d", 49, -1, {FRT,DIS,RA,0} }, -{"lfd", 0, "d", 50, -1, {FRT,DIS,RA,0} }, -{"lfdu", 0, "d", 51, -1, {FRT,DIS,RA,0} }, -{"stfs", 0, "d", 52, -1, {FRS,DIS,RA,0} }, -{"stfsu", 0, "d", 53, -1, {FRS,DIS,RA,0} }, -{"stfd", 0, "d", 54, -1, {FRS,DIS,RA,0} }, -{"stfdu", 0, "d", 55, -1, {FRS,DIS,RA,0} }, -{"fcmpu", 0, "x", 63, 0, {BF,FRA,FRB,0} }, -{"frsp", ".", "x", 63, 12, {FRT,FRB,0} }, -{"fd", ".", "a", 63, 18, {FRT,FRA,FRB,0} }, -{"fs", ".", "a", 63, 20, {FRT,FRA,FRB,0} }, -{"fa", ".", "a", 63, 21, {FRT,FRA,FRB,0} }, -{"fm", ".", "a", 63, 25, {FRT,FRA,FRC,0} }, -{"fms", ".", "a", 63, 28, {FRT,FRA,FRC,FRB,0} }, -{"fma", ".", "a", 63, 29, {FRT,FRA,FRC,FRB,0} }, -{"fnms", ".", "a", 63, 30, {FRT,FRA,FRC,FRB,0} }, -{"fnma", ".", "a", 63, 31, {FRT,FRA,FRC,FRB,0} }, -{"fcmpo", 0, "x", 63, 32, {BF,FRA,FRB,0} }, -{"mtfsb1", ".", "x", 63, 38, {BT,0} }, -{"fneg", ".", "x", 63, 40, {FRT,FRB,0} }, -{"mcrfs", 0, "x", 63, 64, {BF,BFA,0} }, -{"mtfsb0", ".", "x", 63, 70, {BT,0} }, -{"fmr", ".", "x", 63, 72, {FRT,FRB,0} }, -{"mtfsfi", ".", "x", 63, 134, {BF,I,0} }, -{"fnabs", ".", "x", 63, 136, {FRT,FRB,0} }, -{"fabs", ".", "x", 63, 264, {FRT,FRB,0} }, -{"mffs", ".", "x", 63, 583, {FRT,0} }, -{"mtfsf", ".", "xfl", 63, 711, {FLM,FRB,0} }, +{"bc", "la", B, 16, -1, {BO,BI,TA14,0} }, +{"svc", "la", SC, 17, -1, {LEV,FL1,FL2,0} }, +{"b", "la", I, 18, -1, {TA24,0} }, +{"mcrf", 0, XL, 19, 0, {BF,BFA,0} }, +{"bcr", "l", XL, 19, 16, {BO,BI,0} }, +{"cror", 0, XL, 19, 33, {BT,BA,BB,0} }, +{"crandc", 0, XL, 19, 129, {BT,BA,BB,0} }, +{"bcc", "l", XL, 19, 193, {BO,BI,0} }, +{"crnor", 0, XL, 19, 225, {BT,BA,BB,0} }, +{"crand", 0, XL, 19, 257, {BT,BA,BB,0} }, +{"creqv", 0, XL, 19, 289, {BT,BA,BB,0} }, +{"crnand", 0, XL, 19, 289, {BT,BA,BB,0} }, +{"crxor", 0, XL, 19, 417, {BT,BA,BB,0} }, +{"crorc", 0, XL, 19, 449, {BT,BA,BB,0} }, +{"bcr", "l", XL, 19, 528, {BO,BI,0} }, +{"rlimi", ".", M, 20, -1, {RA,RS,SH,MB,ME,0} /*??*/}, +{"rlinm", ".", M, 21, -1, {RA,RS,SH,MB,ME,0} /*??*/}, +{"rlmi", ".", M, 22, -1, {RA,RS,RB,MB,ME,0} /*??*/}, +{"rlnm", ".", M, 23, -1, {RA,RS,RB,MB,ME,0} /*??*/}, +{"oril", 0, D, 24, -1, {RA,RS,UI,0} }, +{"oriu", 0, D, 25, -1, {RA,RS,UI,0} }, +{"xoril", 0, D, 26, -1, {RA,RS,UI,0} }, +{"xoriu", 0, D, 27, -1, {RA,RS,UI,0} }, +{"andil.", 0, D, 28, -1, {RA,RS,UI,0} }, +{"andiu.", 0, D, 29, -1, {RA,RS,UI,0} }, +{"cmp", 0, X, 31, 0, {BF,RA,RB,0} }, +{"t", 0, X, 31, 4, {TO,RA,RB,0} }, +{"sf", "o.", XO, 31, 8, {RT,RA,RB,0} }, +{"a", "o.", XO, 31, 10, {RT,RA,RB,0} }, +{"mfcr", 0, X, 31, 19, {RT,0} }, +{"lx", 0, X, 31, 23, {RT,RA,RB,0} }, +{"sl", ".", X, 31, 24, {RA,RS,RB,0} }, +{"cntlz", ".", XO, 31, 26, {RA,RS,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, 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} }, +{"lbzx", 0, X, 31, 87, {RT,RA,RB,0} }, +{"neg", "o.", XO, 31, 104, {RT,RA,0} }, +{"mul", "o.", XO, 31, 107, {RT,RA,RB,0} }, +{"lbzux", 0, X, 31, 119, {RT,RA,RB,0} }, +{"nor", ".", X, 31, 124, {RA,RS,RB,0} }, +{"ae", "o.", XO, 31, 138, {RT,RA,RB,0} }, +{"mtcrf", 0, XFX, 31, 144, {FXM,RS,0} }, +{"stx", 0, X, 31, 151, {RS,RA,RB,0} }, +{"slq", ".", X, 31, 152, {RA,RS,RB,0} }, +{"sle", ".", X, 31, 153, {RA,RS,RB,0} }, +{"stux", 0, X, 31, 183, {RS,RA,RB,0} }, +{"sliq", ".", X, 31, 184, {RA,RS,SH,0} }, +{"sfze", "o.", XO, 31, 200, {RT,RA,0} }, +{"aze", "o.", XO, 31, 202, {RT,RA,0} }, +{"stbx", 0, X, 31, 215, {RS,RA,RB,0} }, +{"sllq", ".", X, 31, 216, {RA,RS,RB,0} }, +{"sleq", ".", X, 31, 217, {RA,RS,RB,0} }, +{"sfme", "o.", XO, 31, 232, {RT,RA,0} }, +{"ame", "o.", XO, 31, 234, {RT,RA,0} }, +{"muls", "o.", XO, 31, 235, {RT,RA,RB,0} }, +{"stbux", 0, X, 31, 247, {RS,RA,RB,0} }, +{"slliq", ".", X, 31, 248, {RA,RS,SH,0} }, +{"doz", "o.", X, 31, 264, {RT,RA,RB,0} }, +{"cax", "o.", XO, 31, 266, {RT,RA,RB,0} }, +{"lscbx", ".", X, 31, 277, {RT,RA,RB,0} }, +{"lhzx", 0, X, 31, 279, {RT,RA,RB,0} }, +{"eqv", ".", X, 31, 284, {RA,RS,RB,0} }, +{"lhzux", 0, X, 31, 311, {RT,RA,RB,0} }, +{"xor", ".", X, 31, 316, {RA,RS,RB,0} }, +{"div", "o.", XO, 31, 331, {RT,RA,RB,0} }, +{"mfspr", 0, X, 31, 339, {RT,SPR,0} }, +{"lhax", 0, X, 31, 343, {RT,RA,RB,0} }, +{"abs", "o.", XO, 31, 360, {RT,RA,0} }, +{"divs", "o.", XO, 31, 363, {RT,RA,RB,0} }, +{"lhaux", 0, X, 31, 375, {RT,RA,RB,0} }, +{"sthx", 0, X, 31, 407, {RS,RA,RB,0} }, +{"orc", ".", X, 31, 412, {RA,RS,RB,0} }, +{"sthux", 0, X, 31, 439, {RS,RA,RB,0} }, +{"or", ".", X, 31, 444, {RA,RS,RB,0} }, +{"mtspr", 0, X, 31, 467, {SPR,RS,0} }, +{"nand", ".", X, 31, 476, {RA,RS,RB,0} }, +{"nabs", "o.", XO, 31, 488, {RT,RA,0} }, +{"mcrxr", 0, X, 31, 512, {BF,0} }, +{"lsx", 0, X, 31, 533, {RT,RA,RB,0} }, +{"lbrx", 0, X, 31, 534, {RT,RA,RB,0} }, +{"lfsx", 0, X, 31, 535, {FRT,RA,RB,0} }, +{"sr", ".", X, 31, 536, {RA,RS,RB,0} }, +{"rrib", ".", X, 31, 537, {RA,RS,RB,0} }, +{"maskir", ".", X, 31, 541, {RA,RS,RB,0} }, +{"lfsux", 0, X, 31, 567, {FRT,RA,RB,0} }, +{"lsi", 0, X, 31, 597, {RT,RA,NB,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, {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} }, +{"stfsux", 0, X, 31, 695, {FRS,RA,RB,0} }, +{"sriq", ".", X, 31, 696, {RA,RS,SH,0} }, +{"stsi", 0, X, 31, 725, {RS,RA,NB,0} }, +{"stfdx", 0, X, 31, 727, {FRS,RA,RB,0} }, +{"srlq", ".", X, 31, 728, {RA,RS,RB,0} }, +{"sreq", ".", X, 31, 729, {RA,RS,RB,0} }, +{"stfdux", 0, X, 31, 759, {FRS,RA,RB,0} }, +{"srliq", ".", X, 31, 760, {RA,RS,SH,0} }, +{"lhbrx", 0, X, 31, 790, {RT,RA,RB,0} }, +{"sra", ".", X, 31, 792, {RA,RS,RB,0} }, +{"srai", ".", X, 31, 824, {RA,RS,SH,0} }, +{"sthbrx", 0, X, 31, 918, {RS,RA,RB,0} }, +{"sraq", ".", X, 31, 920, {RA,RS,RB,0} }, +{"srea", ".", X, 31, 921, {RA,RS,RB,0} }, +{"exts", ".", X, 31, 922, {RA,RS,0} }, +{"sraiq", ".", X, 31, 952, {RA,RS,SH,0} }, +{"l", 0, D, 32, -1, {RT,DIS,RA,0} }, +{"lu", 0, D, 33, -1, {RT,DIS,RA,0} }, +{"lbz", 0, D, 34, -1, {RT,DIS,RA,0} }, +{"lbzu", 0, D, 35, -1, {RT,DIS,RA,0} }, +{"st", 0, D, 36, -1, {RS,DIS,RA,0} }, +{"stu", 0, D, 37, -1, {RS,DIS,RA,0} }, +{"stb", 0, D, 38, -1, {RS,DIS,RA,0} }, +{"stbu", 0, D, 39, -1, {RS,DIS,RA,0} }, +{"lhz", 0, D, 40, -1, {RT,DIS,RA,0} }, +{"lhzu", 0, D, 41, -1, {RT,DIS,RA,0} }, +{"lha", 0, D, 42, -1, {RT,DIS,RA,0} }, +{"lhau", 0, D, 43, -1, {RT,DIS,RA,0} }, +{"sth", 0, D, 44, -1, {RS,DIS,RA,0} }, +{"sthu", 0, D, 45, -1, {RS,DIS,RA,0} }, +{"lm", 0, D, 46, -1, {RT,DIS,RA,0} }, +{"stm", 0, D, 47, -1, {RS,DIS,RA,0} }, +{"lfs", 0, D, 48, -1, {FRT,DIS,RA,0} }, +{"lfsu", 0, D, 49, -1, {FRT,DIS,RA,0} }, +{"lfd", 0, D, 50, -1, {FRT,DIS,RA,0} }, +{"lfdu", 0, D, 51, -1, {FRT,DIS,RA,0} }, +{"stfs", 0, D, 52, -1, {FRS,DIS,RA,0} }, +{"stfsu", 0, D, 53, -1, {FRS,DIS,RA,0} }, +{"stfd", 0, D, 54, -1, {FRS,DIS,RA,0} }, +{"stfdu", 0, D, 55, -1, {FRS,DIS,RA,0} }, +{"fcmpu", 0, X, 63, 0, {BF,FRA,FRB,0} }, +{"frsp", ".", X, 63, 12, {FRT,FRB,0} }, +{"fd", ".", A, 63, 18, {FRT,FRA,FRB,0} }, +{"fs", ".", A, 63, 20, {FRT,FRA,FRB,0} }, +{"fa", ".", A, 63, 21, {FRT,FRA,FRB,0} }, +{"fm", ".", A, 63, 25, {FRT,FRA,FRC,0} }, +{"fms", ".", A, 63, 28, {FRT,FRA,FRC,FRB,0} }, +{"fma", ".", A, 63, 29, {FRT,FRA,FRC,FRB,0} }, +{"fnms", ".", A, 63, 30, {FRT,FRA,FRC,FRB,0} }, +{"fnma", ".", A, 63, 31, {FRT,FRA,FRC,FRB,0} }, +{"fcmpo", 0, X, 63, 32, {BF,FRA,FRB,0} }, +{"mtfsb1", ".", X, 63, 38, {BT,0} }, +{"fneg", ".", X, 63, 40, {FRT,FRB,0} }, +{"mcrfs", 0, X, 63, 64, {BF,BFA,0} }, +{"mtfsb0", ".", X, 63, 70, {BT,0} }, +{"fmr", ".", X, 63, 72, {FRT,FRB,0} }, +{"mtfsfi", ".", X, 63, 134, {BF,I,0} }, +{"fnabs", ".", X, 63, 136, {FRT,FRB,0} }, +{"fabs", ".", X, 63, 264, {FRT,FRB,0} }, +{"mffs", ".", X, 63, 583, {FRT,0} }, +{"mtfsf", ".", XFL, 63, 711, {FLM,FRB,0} }, }; #define NOPCODES (sizeof (rs6k_ops) / sizeof (struct rs6000_insn)) -- 2.7.4