* Makefile.in (depend): Fix dependancy generation so that it does
[external/binutils.git] / gdb / rs6k-opcode.def
1
2 /* operand format specifiers. */
3
4 #define TO      1
5 #define RA      2
6 #define SI      3
7 #define RT      4
8 #define UI      5
9 #define BF      6
10 #define BFA     7
11 #define BT      8
12 #define BA      9
13 #define BB      10
14 #define BO      11
15 #define BI      12
16 #define RB      13
17 #define RS      14
18 #define SH      15
19 #define MB      16
20 #define ME      17
21 #define SPR     18
22 #define DIS     19
23 #define FXM     21
24 #define FRT     22
25 #define NB      23
26 #define FRS     24
27 #define FRA     25
28 #define FRB     26
29 #define FRC     27
30 #define FLM     28
31 #define I       29
32 #define LI      30
33 #define A2      31
34 #define TA14    32              /* 14 bit representation of target address */
35 #define TA24    33              /* 24 bit representation of target address */
36 #define FL1     34
37 #define FL2     35
38 #define LEV     36
39
40 #if 0
41
42         RS6000 INSTRUCTION SET
43     (sorted on first primary and second extended opcode)
44
45              oprtr            primary  ext.
46 operator      ext     format  opcode   opcode   operand format
47 -------     -------   ------  -------  ------   ---------------
48 #endif /* 0 */
49
50 {"ti",          0,      "d",    3,      -1,     {TO,RA,SI,0}    },
51 {"muli",        0,      "d",    7,      -1,     {RT,RA,SI,0}    },
52 {"sfi",         0,      "d",    8,      -1,     {RT,RA,SI,0}    },
53 {"dozi",        0,      "d",    9,      -1,     {RT,RA,SI,0}    },
54 {"cmpli",       0,      "d",    10,     -1,     {BF,RA,UI,0}    },
55 {"cmpi",        0,      "d",    11,     -1,     {BF,RA,SI,0}    },
56 {"ai",          0,      "d",    12,     -1,     {RT,RA,SI,0}    },
57 {"ai.",         0,      "d",    13,     -1,     {RT,RA,SI,0}    },
58 {"lil",         0,      "d",    14,     -1,     {RT,SI,0}       }, /* same as `cal' */
59 {"cal",         0,      "d",    14,     -1,     {RT,DIS,RA,0}   },
60 {"liu",         0,      "d",    15,     -1,     {RT, UI,0}      }, /* same as `cau' */
61 {"cau",         0,      "d",    15,     -1,     {RT,RA,UI,0}    },
62 {"bb",          "1tfl", "b",    16,     -1,     {LI,A2,0}       },
63 /*              ^^^^^
64     exception #1. Either fix this, or document what you are doing here. FIXMEmgo.
65 */
66 {"bc",          "la",   "b",    16,     -1,     {BO,BI,TA14,0}  },
67 {"svc",         "la",   "sc",   17,     -1,     {LEV,FL1,FL2,0} },
68 {"b",           "la",   "i",    18,     -1,     {TA24,0}        },
69 {"mcrf",        0,      "xl",   19,     0,      {BF,BFA,0}      },
70 {"bcr",         "l",    "xl",   19,     16,     {BO,BI,0}       },
71 {"cror",        0,      "xl",   19,     33,     {BT,BA,BB,0}    },
72 {"crandc",      0,      "xl",   19,     129,    {BT,BA,BB,0}    },
73 {"bcc",         "l",    "xl",   19,     193,    {BO,BI,0}       },
74 {"crnor",       0,      "xl",   19,     225,    {BT,BA,BB,0}    },
75 {"crand",       0,      "xl",   19,     257,    {BT,BA,BB,0}    },
76 {"creqv",       0,      "xl",   19,     289,    {BT,BA,BB,0}    },
77 {"crnand",      0,      "xl",   19,     289,    {BT,BA,BB,0}    },
78 {"crxor",       0,      "xl",   19,     417,    {BT,BA,BB,0}    },
79 {"crorc",       0,      "xl",   19,     449,    {BT,BA,BB,0}    },
80 {"bcr",         "l",    "xl",   19,     528,    {BO,BI,0}       },
81 {"rlimi",       ".",    "m",    20,     -1,     {RA,RS,SH,MB,ME,0} /*??*/},
82 {"rlinm",       ".",    "m",    21,     -1,     {RA,RS,SH,MB,ME,0} /*??*/},
83 {"rlmi",        ".",    "m",    22,     -1,     {RA,RS,RB,MB,ME,0} /*??*/},
84 {"rlnm",        ".",    "m",    23,     -1,     {RA,RS,RB,MB,ME,0} /*??*/},
85 {"oril",        0,      "d",    24,     -1,     {RA,RS,UI,0}    },
86 {"oriu",        0,      "d",    25,     -1,     {RA,RS,UI,0}    },
87 {"xoril",       0,      "d",    26,     -1,     {RA,RS,UI,0}    },
88 {"xoriu",       0,      "d",    27,     -1,     {RA,RS,UI,0}    },
89 {"andil.",      0,      "d",    28,     -1,     {RA,RS,UI,0}    },
90 {"andiu.",      0,      "d",    29,     -1,     {RA,RS,UI,0}    },
91 {"cmp",         0,      "x",    31,     0,      {BF,RA,RB,0}    },
92 {"t",           0,      "x",    31,     4,      {TO,RA,RB,0}    },
93 {"sf",          "o.",   "xo",   31,     8,      {RT,RA,RB,0}    },
94 {"a",           "o.",   "xo",   31,     10,     {RT,RA,RB,0}    },
95 {"mfcr",        0,      "x",    31,     19,     {RT,0}          },
96 {"lx",          0,      "x",    31,     23,     {RT,RA,RB,0}    },
97 {"sl",          ".",    "x",    31,     24,     {RA,RS,RB,0}    },
98 {"cntlz",       ".",    "xo",   31,     26,     {RA,RS,0}       },
99 {"and",         ".",    "x",    31,     28,     {RA,RS,RB,0}    },
100 {"maskg",       ".",    "x",    31,     29,     {RA,RS,RB,0}    },
101 {"cmpl",        0,      "x",    31,     32,     {BF,RA,RB,0}    },
102 {"sfe",         "o.",   "xo",   31,     36,     {RT,RA,RB,0}    },
103 {"lux",         0,      "x",    31,     55,     {RT,RA,RB,0}    },
104 {"andc",        ".",    "x",    31,     60,     {RA,RS,RB,0}    },
105 {"mfmsr",       0,      "x",    31,     83,     {RT,0}          },
106 {"lbzx",        0,      "x",    31,     87,     {RT,RA,RB,0}    },
107 {"neg",         "o.",   "xo",   31,     104,    {RT,RA,0}       },
108 {"mul",         "o.",   "xo",   31,     107,    {RT,RA,RB,0}    },
109 {"lbzux",       0,      "x",    31,     119,    {RT,RA,RB,0}    },
110 {"nor",         ".",    "x",    31,     124,    {RA,RS,RB,0}    },
111 {"ae",          "o.",   "xo",   31,     138,    {RT,RA,RB,0}    },
112 {"mtcrf",       0,      "xfx",  31,     144,    {FXM,RS,0}      },
113 {"stx",         0,      "x",    31,     151,    {RS,RA,RB,0}    },
114 {"slq",         ".",    "x",    31,     152,    {RA,RS,RB,0}    },
115 {"sle",         ".",    "x",    31,     153,    {RA,RS,RB,0}    },
116 {"stux",        0,      "x",    31,     183,    {RS,RA,RB,0}    },
117 {"sliq",        ".",    "x",    31,     184,    {RA,RS,SH,0}    },
118 {"sfze",        "o.",   "xo",   31,     200,    {RT,RA,0}       },
119 {"aze",         "o.",   "xo",   31,     202,    {RT,RA,0}       },
120 {"stbx",        0,      "x",    31,     215,    {RS,RA,RB,0}    },
121 {"sllq",        ".",    "x",    31,     216,    {RA,RS,RB,0}    },
122 {"sleq",        ".",    "x",    31,     217,    {RA,RS,RB,0}    },
123 {"sfme",        "o.",   "xo",   31,     232,    {RT,RA,0}       },
124 {"ame",         "o.",   "xo",   31,     234,    {RT,RA,0}       },
125 {"muls",        "o.",   "xo",   31,     235,    {RT,RA,RB,0}    },
126 {"stbux",       0,      "x",    31,     247,    {RS,RA,RB,0}    },
127 {"slliq",       ".",    "x",    31,     248,    {RA,RS,SH,0}    },
128 {"doz",         "o.",   "x",    31,     264,    {RT,RA,RB,0}    },
129 {"cax",         "o.",   "xo",   31,     266,    {RT,RA,RB,0}    },
130 {"lscbx",       ".",    "x",    31,     277,    {RT,RA,RB,0}    },
131 {"lhzx",        0,      "x",    31,     279,    {RT,RA,RB,0}    },
132 {"eqv",         ".",    "x",    31,     284,    {RA,RS,RB,0}    },
133 {"lhzux",       0,      "x",    31,     311,    {RT,RA,RB,0}    },
134 {"xor",         ".",    "x",    31,     316,    {RA,RS,RB,0}    },
135 {"div",         "o.",   "xo",   31,     331,    {RT,RA,RB,0}    },
136 {"mfspr",       0,      "x",    31,     339,    {RT,SPR,0}      },
137 {"lhax",        0,      "x",    31,     343,    {RT,RA,RB,0}    },
138 {"abs",         "o.",   "xo",   31,     360,    {RT,RA,0}       },
139 {"divs",        "o.",   "xo",   31,     363,    {RT,RA,RB,0}    },
140 {"lhaux",       0,      "x",    31,     375,    {RT,RA,RB,0}    },
141 {"sthx",        0,      "x",    31,     407,    {RS,RA,RB,0}    },
142 {"orc",         ".",    "x",    31,     412,    {RA,RS,RB,0}    },
143 {"sthux",       0,      "x",    31,     439,    {RS,RA,RB,0}    },
144 {"or",          ".",    "x",    31,     444,    {RA,RS,RB,0}    },
145 {"mtspr",       0,      "x",    31,     467,    {SPR,RS,0}      },
146 {"nand",        ".",    "x",    31,     476,    {RA,RS,RB,0}    },
147 {"nabs",        "o.",   "xo",   31,     488,    {RT,RA,0}       },
148 {"mcrxr",       0,      "x",    31,     512,    {BF,0}          },
149 {"lsx",         0,      "x",    31,     533,    {RT,RA,RB,0}    },
150 {"lbrx",        0,      "x",    31,     534,    {RT,RA,RB,0}    },
151 {"lfsx",        0,      "x",    31,     535,    {FRT,RA,RB,0}   },
152 {"sr",          ".",    "x",    31,     536,    {RA,RS,RB,0}    },
153 {"rrib",        ".",    "x",    31,     537,    {RA,RS,RB,0}    },
154 {"maskir",      ".",    "x",    31,     541,    {RA,RS,RB,0}    },
155 {"lfsux",       0,      "x",    31,     567,    {FRT,RA,RB,0}   },
156 {"lsi",         0,      "x",    31,     597,    {RT,RA,NB,0}    },
157 {"lfdx",        0,      "x",    31,     599,    {FRT,RA,RB,0}   },
158 {"lfdux",       0,      "x",    31,     631,    {FRT,RA,RB,0}   },
159 {"stsx",        0,      "x",    31,     661,    {RS,RA,RB,0}    },
160 {"stbrx",       0,      "x",    31,     662,    {RA,RA,RB,0}    },
161 {"stfsx",       0,      "x",    31,     663,    {FRS,RA,RB,0}   },
162 {"srq",         ".",    "x",    31,     664,    {RA,RS,RB,0}    },
163 {"sre",         ".",    "x",    31,     665,    {RA,RS,RB,0}    },
164 {"stfsux",      0,      "x",    31,     695,    {FRS,RA,RB,0}   },
165 {"sriq",        ".",    "x",    31,     696,    {RA,RS,SH,0}    },
166 {"stsi",        0,      "x",    31,     725,    {RS,RA,NB,0}    },
167 {"stfdx",       0,      "x",    31,     727,    {FRS,RA,RB,0}   },
168 {"srlq",        ".",    "x",    31,     728,    {RA,RS,RB,0}    },
169 {"sreq",        ".",    "x",    31,     729,    {RA,RS,RB,0}    },
170 {"stfdux",      0,      "x",    31,     759,    {FRS,RA,RB,0}   },
171 {"srliq",       ".",    "x",    31,     760,    {RA,RS,SH,0}    },
172 {"lhbrx",       0,      "x",    31,     790,    {RT,RA,RB,0}    },
173 {"sra",         ".",    "x",    31,     792,    {RA,RS,RB,0}    },
174 {"srai",        ".",    "x",    31,     824,    {RA,RS,SH,0}    },
175 {"sthbrx",      0,      "x",    31,     918,    {RS,RA,RB,0}    },
176 {"sraq",        ".",    "x",    31,     920,    {RA,RS,RB,0}    },
177 {"srea",        ".",    "x",    31,     921,    {RA,RS,RB,0}    },
178 {"exts",        ".",    "x",    31,     922,    {RA,RS,0}       },
179 {"sraiq",       ".",    "x",    31,     952,    {RA,RS,SH,0}    },
180 {"l",           0,      "d",    32,     -1,     {RT,DIS,RA,0}   },
181 {"lu",          0,      "d",    33,     -1,     {RT,DIS,RA,0}   },
182 {"lbz",         0,      "d",    34,     -1,     {RT,DIS,RA,0}   },
183 {"lbzu",        0,      "d",    35,     -1,     {RT,DIS,RA,0}   },
184 {"st",          0,      "d",    36,     -1,     {RS,DIS,RA,0}   },
185 {"stu",         0,      "d",    37,     -1,     {RS,DIS,RA,0}   },
186 {"stb",         0,      "d",    38,     -1,     {RS,DIS,RA,0}   },
187 {"stbu",        0,      "d",    39,     -1,     {RS,DIS,RA,0}   },
188 {"lhz",         0,      "d",    40,     -1,     {RT,DIS,RA,0}   },
189 {"lhzu",        0,      "d",    41,     -1,     {RT,DIS,RA,0}   },
190 {"lha",         0,      "d",    42,     -1,     {RT,DIS,RA,0}   },
191 {"lhau",        0,      "d",    43,     -1,     {RT,DIS,RA,0}   },
192 {"sth",         0,      "d",    44,     -1,     {RS,DIS,RA,0}   },
193 {"sthu",        0,      "d",    45,     -1,     {RS,DIS,RA,0}   },
194 {"lm",          0,      "d",    46,     -1,     {RT,DIS,RA,0}   },
195 {"stm",         0,      "d",    47,     -1,     {RS,DIS,RA,0}   },
196 {"lfs",         0,      "d",    48,     -1,     {FRT,DIS,RA,0}  },
197 {"lfsu",        0,      "d",    49,     -1,     {FRT,DIS,RA,0}  },
198 {"lfd",         0,      "d",    50,     -1,     {FRT,DIS,RA,0}  },
199 {"lfdu",        0,      "d",    51,     -1,     {FRT,DIS,RA,0}  },
200 {"stfs",        0,      "d",    52,     -1,     {FRS,DIS,RA,0}  },
201 {"stfsu",       0,      "d",    53,     -1,     {FRS,DIS,RA,0}  },
202 {"stfd",        0,      "d",    54,     -1,     {FRS,DIS,RA,0}  },
203 {"stfdu",       0,      "d",    55,     -1,     {FRS,DIS,RA,0}  },
204 {"fcmpu",       0,      "x",    63,     0,      {BF,FRA,FRB,0}  },
205 {"fm",          ".",    "a",    63,     5,      {FRT,FRA,FRC,0} },
206 {"fd",          ".",    "a",    63,     8,      {FRT,FRA,FRB,0} },
207 {"frsp",        ".",    "x",    63,     12,     {FRT,FRB,0}     },
208 {"fs",          ".",    "a",    63,     20,     {FRT,FRA,FRB,0} },
209 {"fa",          ".",    "a",    63,     21,     {FRT,FRA,FRB,0} },
210 {"fms",         ".",    "a",    63,     28,     {FRT,FRA,FRC,FRB,0}     },
211 {"fma",         ".",    "a",    63,     29,     {FRT,FRA,FRC,FRB,0}     },
212 {"fnms",        ".",    "a",    63,     30,     {FRT,FRA,FRC,FRB,0}     },
213 {"fnma",        ".",    "a",    63,     31,     {FRT,FRA,FRC,FRB,0}     },
214 {"fcmpo",       0,      "x",    63,     32,     {BF,FRA,FRB,0}  },
215 {"mtfsb1",      ".",    "x",    63,     38,     {BT,0}          },
216 {"fneg",        ".",    "x",    63,     40,     {FRT,FRB,0}     },
217 {"mcrfs",       0,      "x",    63,     64,     {BF,BFA,0}      },
218 {"mtfsb0",      ".",    "x",    63,     70,     {BT,0}          },
219 {"fmr",         ".",    "x",    63,     72,     {FRT,FRB,0}     },
220 {"mtfsfi",      ".",    "x",    63,     134,    {BF,I,0}        },
221 {"fnabs",       ".",    "x",    63,     136,    {FRT,FRB,0}     },
222 {"fabs",        ".",    "x",    63,     264,    {FRT,FRB,0}     },
223 {"mffs",        ".",    "x",    63,     583,    {FRT,0}         },
224 {"mtfsf",       ".",    "xfl",  63,     711,    {FLM,FRB,0}     },