diff options
author | Al Viro <viro@www.linux.org.uk> | 2005-04-26 10:43:41 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@ppc970.osdl.org> | 2005-04-26 10:43:41 -0400 |
commit | 66768eb26c471091dc4ea1ed59b4bab7edc3d7bd (patch) | |
tree | b6e9c650228c037d62ae56021fd6c064c1cb8160 /arch/ppc64/xmon | |
parent | 0d3e8fe662c31d614f809d0131e134e2692d6a68 (diff) |
[PATCH] ppc-opc NULL noise removal
Signed-off-by: Al Viro <viro@parcelfarce.linux.theplanet.co.uk>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'arch/ppc64/xmon')
-rw-r--r-- | arch/ppc64/xmon/ppc-opc.c | 119 |
1 files changed, 60 insertions, 59 deletions
diff --git a/arch/ppc64/xmon/ppc-opc.c b/arch/ppc64/xmon/ppc-opc.c index 1e4e7e319970..5ee8fc32f824 100644 --- a/arch/ppc64/xmon/ppc-opc.c +++ b/arch/ppc64/xmon/ppc-opc.c | |||
@@ -20,6 +20,7 @@ | |||
20 | Software Foundation, 59 Temple Place - Suite 330, Boston, MA | 20 | Software Foundation, 59 Temple Place - Suite 330, Boston, MA |
21 | 02111-1307, USA. */ | 21 | 02111-1307, USA. */ |
22 | 22 | ||
23 | #include <linux/stddef.h> | ||
23 | #include "nonstdio.h" | 24 | #include "nonstdio.h" |
24 | #include "ppc.h" | 25 | #include "ppc.h" |
25 | 26 | ||
@@ -110,12 +111,12 @@ const struct powerpc_operand powerpc_operands[] = | |||
110 | /* The zero index is used to indicate the end of the list of | 111 | /* The zero index is used to indicate the end of the list of |
111 | operands. */ | 112 | operands. */ |
112 | #define UNUSED 0 | 113 | #define UNUSED 0 |
113 | { 0, 0, 0, 0, 0 }, | 114 | { 0, 0, NULL, NULL, 0 }, |
114 | 115 | ||
115 | /* The BA field in an XL form instruction. */ | 116 | /* The BA field in an XL form instruction. */ |
116 | #define BA UNUSED + 1 | 117 | #define BA UNUSED + 1 |
117 | #define BA_MASK (0x1f << 16) | 118 | #define BA_MASK (0x1f << 16) |
118 | { 5, 16, 0, 0, PPC_OPERAND_CR }, | 119 | { 5, 16, NULL, NULL, PPC_OPERAND_CR }, |
119 | 120 | ||
120 | /* The BA field in an XL form instruction when it must be the same | 121 | /* The BA field in an XL form instruction when it must be the same |
121 | as the BT field in the same instruction. */ | 122 | as the BT field in the same instruction. */ |
@@ -125,7 +126,7 @@ const struct powerpc_operand powerpc_operands[] = | |||
125 | /* The BB field in an XL form instruction. */ | 126 | /* The BB field in an XL form instruction. */ |
126 | #define BB BAT + 1 | 127 | #define BB BAT + 1 |
127 | #define BB_MASK (0x1f << 11) | 128 | #define BB_MASK (0x1f << 11) |
128 | { 5, 11, 0, 0, PPC_OPERAND_CR }, | 129 | { 5, 11, NULL, NULL, PPC_OPERAND_CR }, |
129 | 130 | ||
130 | /* The BB field in an XL form instruction when it must be the same | 131 | /* The BB field in an XL form instruction when it must be the same |
131 | as the BA field in the same instruction. */ | 132 | as the BA field in the same instruction. */ |
@@ -168,21 +169,21 @@ const struct powerpc_operand powerpc_operands[] = | |||
168 | 169 | ||
169 | /* The BF field in an X or XL form instruction. */ | 170 | /* The BF field in an X or XL form instruction. */ |
170 | #define BF BDPA + 1 | 171 | #define BF BDPA + 1 |
171 | { 3, 23, 0, 0, PPC_OPERAND_CR }, | 172 | { 3, 23, NULL, NULL, PPC_OPERAND_CR }, |
172 | 173 | ||
173 | /* An optional BF field. This is used for comparison instructions, | 174 | /* An optional BF field. This is used for comparison instructions, |
174 | in which an omitted BF field is taken as zero. */ | 175 | in which an omitted BF field is taken as zero. */ |
175 | #define OBF BF + 1 | 176 | #define OBF BF + 1 |
176 | { 3, 23, 0, 0, PPC_OPERAND_CR | PPC_OPERAND_OPTIONAL }, | 177 | { 3, 23, NULL, NULL, PPC_OPERAND_CR | PPC_OPERAND_OPTIONAL }, |
177 | 178 | ||
178 | /* The BFA field in an X or XL form instruction. */ | 179 | /* The BFA field in an X or XL form instruction. */ |
179 | #define BFA OBF + 1 | 180 | #define BFA OBF + 1 |
180 | { 3, 18, 0, 0, PPC_OPERAND_CR }, | 181 | { 3, 18, NULL, NULL, PPC_OPERAND_CR }, |
181 | 182 | ||
182 | /* The BI field in a B form or XL form instruction. */ | 183 | /* The BI field in a B form or XL form instruction. */ |
183 | #define BI BFA + 1 | 184 | #define BI BFA + 1 |
184 | #define BI_MASK (0x1f << 16) | 185 | #define BI_MASK (0x1f << 16) |
185 | { 5, 16, 0, 0, PPC_OPERAND_CR }, | 186 | { 5, 16, NULL, NULL, PPC_OPERAND_CR }, |
186 | 187 | ||
187 | /* The BO field in a B form instruction. Certain values are | 188 | /* The BO field in a B form instruction. Certain values are |
188 | illegal. */ | 189 | illegal. */ |
@@ -197,36 +198,36 @@ const struct powerpc_operand powerpc_operands[] = | |||
197 | 198 | ||
198 | /* The BT field in an X or XL form instruction. */ | 199 | /* The BT field in an X or XL form instruction. */ |
199 | #define BT BOE + 1 | 200 | #define BT BOE + 1 |
200 | { 5, 21, 0, 0, PPC_OPERAND_CR }, | 201 | { 5, 21, NULL, NULL, PPC_OPERAND_CR }, |
201 | 202 | ||
202 | /* The condition register number portion of the BI field in a B form | 203 | /* The condition register number portion of the BI field in a B form |
203 | or XL form instruction. This is used for the extended | 204 | or XL form instruction. This is used for the extended |
204 | conditional branch mnemonics, which set the lower two bits of the | 205 | conditional branch mnemonics, which set the lower two bits of the |
205 | BI field. This field is optional. */ | 206 | BI field. This field is optional. */ |
206 | #define CR BT + 1 | 207 | #define CR BT + 1 |
207 | { 3, 18, 0, 0, PPC_OPERAND_CR | PPC_OPERAND_OPTIONAL }, | 208 | { 3, 18, NULL, NULL, PPC_OPERAND_CR | PPC_OPERAND_OPTIONAL }, |
208 | 209 | ||
209 | /* The CRB field in an X form instruction. */ | 210 | /* The CRB field in an X form instruction. */ |
210 | #define CRB CR + 1 | 211 | #define CRB CR + 1 |
211 | { 5, 6, 0, 0, 0 }, | 212 | { 5, 6, NULL, NULL, 0 }, |
212 | 213 | ||
213 | /* The CRFD field in an X form instruction. */ | 214 | /* The CRFD field in an X form instruction. */ |
214 | #define CRFD CRB + 1 | 215 | #define CRFD CRB + 1 |
215 | { 3, 23, 0, 0, PPC_OPERAND_CR }, | 216 | { 3, 23, NULL, NULL, PPC_OPERAND_CR }, |
216 | 217 | ||
217 | /* The CRFS field in an X form instruction. */ | 218 | /* The CRFS field in an X form instruction. */ |
218 | #define CRFS CRFD + 1 | 219 | #define CRFS CRFD + 1 |
219 | { 3, 0, 0, 0, PPC_OPERAND_CR }, | 220 | { 3, 0, NULL, NULL, PPC_OPERAND_CR }, |
220 | 221 | ||
221 | /* The CT field in an X form instruction. */ | 222 | /* The CT field in an X form instruction. */ |
222 | #define CT CRFS + 1 | 223 | #define CT CRFS + 1 |
223 | { 5, 21, 0, 0, PPC_OPERAND_OPTIONAL }, | 224 | { 5, 21, NULL, NULL, PPC_OPERAND_OPTIONAL }, |
224 | 225 | ||
225 | /* The D field in a D form instruction. This is a displacement off | 226 | /* The D field in a D form instruction. This is a displacement off |
226 | a register, and implies that the next operand is a register in | 227 | a register, and implies that the next operand is a register in |
227 | parentheses. */ | 228 | parentheses. */ |
228 | #define D CT + 1 | 229 | #define D CT + 1 |
229 | { 16, 0, 0, 0, PPC_OPERAND_PARENS | PPC_OPERAND_SIGNED }, | 230 | { 16, 0, NULL, NULL, PPC_OPERAND_PARENS | PPC_OPERAND_SIGNED }, |
230 | 231 | ||
231 | /* The DE field in a DE form instruction. This is like D, but is 12 | 232 | /* The DE field in a DE form instruction. This is like D, but is 12 |
232 | bits only. */ | 233 | bits only. */ |
@@ -252,40 +253,40 @@ const struct powerpc_operand powerpc_operands[] = | |||
252 | 253 | ||
253 | /* The E field in a wrteei instruction. */ | 254 | /* The E field in a wrteei instruction. */ |
254 | #define E DS + 1 | 255 | #define E DS + 1 |
255 | { 1, 15, 0, 0, 0 }, | 256 | { 1, 15, NULL, NULL, 0 }, |
256 | 257 | ||
257 | /* The FL1 field in a POWER SC form instruction. */ | 258 | /* The FL1 field in a POWER SC form instruction. */ |
258 | #define FL1 E + 1 | 259 | #define FL1 E + 1 |
259 | { 4, 12, 0, 0, 0 }, | 260 | { 4, 12, NULL, NULL, 0 }, |
260 | 261 | ||
261 | /* The FL2 field in a POWER SC form instruction. */ | 262 | /* The FL2 field in a POWER SC form instruction. */ |
262 | #define FL2 FL1 + 1 | 263 | #define FL2 FL1 + 1 |
263 | { 3, 2, 0, 0, 0 }, | 264 | { 3, 2, NULL, NULL, 0 }, |
264 | 265 | ||
265 | /* The FLM field in an XFL form instruction. */ | 266 | /* The FLM field in an XFL form instruction. */ |
266 | #define FLM FL2 + 1 | 267 | #define FLM FL2 + 1 |
267 | { 8, 17, 0, 0, 0 }, | 268 | { 8, 17, NULL, NULL, 0 }, |
268 | 269 | ||
269 | /* The FRA field in an X or A form instruction. */ | 270 | /* The FRA field in an X or A form instruction. */ |
270 | #define FRA FLM + 1 | 271 | #define FRA FLM + 1 |
271 | #define FRA_MASK (0x1f << 16) | 272 | #define FRA_MASK (0x1f << 16) |
272 | { 5, 16, 0, 0, PPC_OPERAND_FPR }, | 273 | { 5, 16, NULL, NULL, PPC_OPERAND_FPR }, |
273 | 274 | ||
274 | /* The FRB field in an X or A form instruction. */ | 275 | /* The FRB field in an X or A form instruction. */ |
275 | #define FRB FRA + 1 | 276 | #define FRB FRA + 1 |
276 | #define FRB_MASK (0x1f << 11) | 277 | #define FRB_MASK (0x1f << 11) |
277 | { 5, 11, 0, 0, PPC_OPERAND_FPR }, | 278 | { 5, 11, NULL, NULL, PPC_OPERAND_FPR }, |
278 | 279 | ||
279 | /* The FRC field in an A form instruction. */ | 280 | /* The FRC field in an A form instruction. */ |
280 | #define FRC FRB + 1 | 281 | #define FRC FRB + 1 |
281 | #define FRC_MASK (0x1f << 6) | 282 | #define FRC_MASK (0x1f << 6) |
282 | { 5, 6, 0, 0, PPC_OPERAND_FPR }, | 283 | { 5, 6, NULL, NULL, PPC_OPERAND_FPR }, |
283 | 284 | ||
284 | /* The FRS field in an X form instruction or the FRT field in a D, X | 285 | /* The FRS field in an X form instruction or the FRT field in a D, X |
285 | or A form instruction. */ | 286 | or A form instruction. */ |
286 | #define FRS FRC + 1 | 287 | #define FRS FRC + 1 |
287 | #define FRT FRS | 288 | #define FRT FRS |
288 | { 5, 21, 0, 0, PPC_OPERAND_FPR }, | 289 | { 5, 21, NULL, NULL, PPC_OPERAND_FPR }, |
289 | 290 | ||
290 | /* The FXM field in an XFX instruction. */ | 291 | /* The FXM field in an XFX instruction. */ |
291 | #define FXM FRS + 1 | 292 | #define FXM FRS + 1 |
@@ -298,11 +299,11 @@ const struct powerpc_operand powerpc_operands[] = | |||
298 | 299 | ||
299 | /* The L field in a D or X form instruction. */ | 300 | /* The L field in a D or X form instruction. */ |
300 | #define L FXM4 + 1 | 301 | #define L FXM4 + 1 |
301 | { 1, 21, 0, 0, PPC_OPERAND_OPTIONAL }, | 302 | { 1, 21, NULL, NULL, PPC_OPERAND_OPTIONAL }, |
302 | 303 | ||
303 | /* The LEV field in a POWER SC form instruction. */ | 304 | /* The LEV field in a POWER SC form instruction. */ |
304 | #define LEV L + 1 | 305 | #define LEV L + 1 |
305 | { 7, 5, 0, 0, 0 }, | 306 | { 7, 5, NULL, NULL, 0 }, |
306 | 307 | ||
307 | /* The LI field in an I form instruction. The lower two bits are | 308 | /* The LI field in an I form instruction. The lower two bits are |
308 | forced to zero. */ | 309 | forced to zero. */ |
@@ -316,24 +317,24 @@ const struct powerpc_operand powerpc_operands[] = | |||
316 | 317 | ||
317 | /* The LS field in an X (sync) form instruction. */ | 318 | /* The LS field in an X (sync) form instruction. */ |
318 | #define LS LIA + 1 | 319 | #define LS LIA + 1 |
319 | { 2, 21, 0, 0, PPC_OPERAND_OPTIONAL }, | 320 | { 2, 21, NULL, NULL, PPC_OPERAND_OPTIONAL }, |
320 | 321 | ||
321 | /* The MB field in an M form instruction. */ | 322 | /* The MB field in an M form instruction. */ |
322 | #define MB LS + 1 | 323 | #define MB LS + 1 |
323 | #define MB_MASK (0x1f << 6) | 324 | #define MB_MASK (0x1f << 6) |
324 | { 5, 6, 0, 0, 0 }, | 325 | { 5, 6, NULL, NULL, 0 }, |
325 | 326 | ||
326 | /* The ME field in an M form instruction. */ | 327 | /* The ME field in an M form instruction. */ |
327 | #define ME MB + 1 | 328 | #define ME MB + 1 |
328 | #define ME_MASK (0x1f << 1) | 329 | #define ME_MASK (0x1f << 1) |
329 | { 5, 1, 0, 0, 0 }, | 330 | { 5, 1, NULL, NULL, 0 }, |
330 | 331 | ||
331 | /* The MB and ME fields in an M form instruction expressed a single | 332 | /* The MB and ME fields in an M form instruction expressed a single |
332 | operand which is a bitmask indicating which bits to select. This | 333 | operand which is a bitmask indicating which bits to select. This |
333 | is a two operand form using PPC_OPERAND_NEXT. See the | 334 | is a two operand form using PPC_OPERAND_NEXT. See the |
334 | description in opcode/ppc.h for what this means. */ | 335 | description in opcode/ppc.h for what this means. */ |
335 | #define MBE ME + 1 | 336 | #define MBE ME + 1 |
336 | { 5, 6, 0, 0, PPC_OPERAND_OPTIONAL | PPC_OPERAND_NEXT }, | 337 | { 5, 6, NULL, NULL, PPC_OPERAND_OPTIONAL | PPC_OPERAND_NEXT }, |
337 | { 32, 0, insert_mbe, extract_mbe, 0 }, | 338 | { 32, 0, insert_mbe, extract_mbe, 0 }, |
338 | 339 | ||
339 | /* The MB or ME field in an MD or MDS form instruction. The high | 340 | /* The MB or ME field in an MD or MDS form instruction. The high |
@@ -345,7 +346,7 @@ const struct powerpc_operand powerpc_operands[] = | |||
345 | 346 | ||
346 | /* The MO field in an mbar instruction. */ | 347 | /* The MO field in an mbar instruction. */ |
347 | #define MO MB6 + 1 | 348 | #define MO MB6 + 1 |
348 | { 5, 21, 0, 0, 0 }, | 349 | { 5, 21, NULL, NULL, 0 }, |
349 | 350 | ||
350 | /* The NB field in an X form instruction. The value 32 is stored as | 351 | /* The NB field in an X form instruction. The value 32 is stored as |
351 | 0. */ | 352 | 0. */ |
@@ -361,34 +362,34 @@ const struct powerpc_operand powerpc_operands[] = | |||
361 | /* The RA field in an D, DS, DQ, X, XO, M, or MDS form instruction. */ | 362 | /* The RA field in an D, DS, DQ, X, XO, M, or MDS form instruction. */ |
362 | #define RA NSI + 1 | 363 | #define RA NSI + 1 |
363 | #define RA_MASK (0x1f << 16) | 364 | #define RA_MASK (0x1f << 16) |
364 | { 5, 16, 0, 0, PPC_OPERAND_GPR }, | 365 | { 5, 16, NULL, NULL, PPC_OPERAND_GPR }, |
365 | 366 | ||
366 | /* The RA field in the DQ form lq instruction, which has special | 367 | /* The RA field in the DQ form lq instruction, which has special |
367 | value restrictions. */ | 368 | value restrictions. */ |
368 | #define RAQ RA + 1 | 369 | #define RAQ RA + 1 |
369 | { 5, 16, insert_raq, 0, PPC_OPERAND_GPR }, | 370 | { 5, 16, insert_raq, NULL, PPC_OPERAND_GPR }, |
370 | 371 | ||
371 | /* The RA field in a D or X form instruction which is an updating | 372 | /* The RA field in a D or X form instruction which is an updating |
372 | load, which means that the RA field may not be zero and may not | 373 | load, which means that the RA field may not be zero and may not |
373 | equal the RT field. */ | 374 | equal the RT field. */ |
374 | #define RAL RAQ + 1 | 375 | #define RAL RAQ + 1 |
375 | { 5, 16, insert_ral, 0, PPC_OPERAND_GPR }, | 376 | { 5, 16, insert_ral, NULL, PPC_OPERAND_GPR }, |
376 | 377 | ||
377 | /* The RA field in an lmw instruction, which has special value | 378 | /* The RA field in an lmw instruction, which has special value |
378 | restrictions. */ | 379 | restrictions. */ |
379 | #define RAM RAL + 1 | 380 | #define RAM RAL + 1 |
380 | { 5, 16, insert_ram, 0, PPC_OPERAND_GPR }, | 381 | { 5, 16, insert_ram, NULL, PPC_OPERAND_GPR }, |
381 | 382 | ||
382 | /* The RA field in a D or X form instruction which is an updating | 383 | /* The RA field in a D or X form instruction which is an updating |
383 | store or an updating floating point load, which means that the RA | 384 | store or an updating floating point load, which means that the RA |
384 | field may not be zero. */ | 385 | field may not be zero. */ |
385 | #define RAS RAM + 1 | 386 | #define RAS RAM + 1 |
386 | { 5, 16, insert_ras, 0, PPC_OPERAND_GPR }, | 387 | { 5, 16, insert_ras, NULL, PPC_OPERAND_GPR }, |
387 | 388 | ||
388 | /* The RB field in an X, XO, M, or MDS form instruction. */ | 389 | /* The RB field in an X, XO, M, or MDS form instruction. */ |
389 | #define RB RAS + 1 | 390 | #define RB RAS + 1 |
390 | #define RB_MASK (0x1f << 11) | 391 | #define RB_MASK (0x1f << 11) |
391 | { 5, 11, 0, 0, PPC_OPERAND_GPR }, | 392 | { 5, 11, NULL, NULL, PPC_OPERAND_GPR }, |
392 | 393 | ||
393 | /* The RB field in an X form instruction when it must be the same as | 394 | /* The RB field in an X form instruction when it must be the same as |
394 | the RS field in the instruction. This is used for extended | 395 | the RS field in the instruction. This is used for extended |
@@ -402,22 +403,22 @@ const struct powerpc_operand powerpc_operands[] = | |||
402 | #define RS RBS + 1 | 403 | #define RS RBS + 1 |
403 | #define RT RS | 404 | #define RT RS |
404 | #define RT_MASK (0x1f << 21) | 405 | #define RT_MASK (0x1f << 21) |
405 | { 5, 21, 0, 0, PPC_OPERAND_GPR }, | 406 | { 5, 21, NULL, NULL, PPC_OPERAND_GPR }, |
406 | 407 | ||
407 | /* The RS field of the DS form stq instruction, which has special | 408 | /* The RS field of the DS form stq instruction, which has special |
408 | value restrictions. */ | 409 | value restrictions. */ |
409 | #define RSQ RS + 1 | 410 | #define RSQ RS + 1 |
410 | { 5, 21, insert_rsq, 0, PPC_OPERAND_GPR }, | 411 | { 5, 21, insert_rsq, NULL, PPC_OPERAND_GPR }, |
411 | 412 | ||
412 | /* The RT field of the DQ form lq instruction, which has special | 413 | /* The RT field of the DQ form lq instruction, which has special |
413 | value restrictions. */ | 414 | value restrictions. */ |
414 | #define RTQ RSQ + 1 | 415 | #define RTQ RSQ + 1 |
415 | { 5, 21, insert_rtq, 0, PPC_OPERAND_GPR }, | 416 | { 5, 21, insert_rtq, NULL, PPC_OPERAND_GPR }, |
416 | 417 | ||
417 | /* The SH field in an X or M form instruction. */ | 418 | /* The SH field in an X or M form instruction. */ |
418 | #define SH RTQ + 1 | 419 | #define SH RTQ + 1 |
419 | #define SH_MASK (0x1f << 11) | 420 | #define SH_MASK (0x1f << 11) |
420 | { 5, 11, 0, 0, 0 }, | 421 | { 5, 11, NULL, NULL, 0 }, |
421 | 422 | ||
422 | /* The SH field in an MD form instruction. This is split. */ | 423 | /* The SH field in an MD form instruction. This is split. */ |
423 | #define SH6 SH + 1 | 424 | #define SH6 SH + 1 |
@@ -426,12 +427,12 @@ const struct powerpc_operand powerpc_operands[] = | |||
426 | 427 | ||
427 | /* The SI field in a D form instruction. */ | 428 | /* The SI field in a D form instruction. */ |
428 | #define SI SH6 + 1 | 429 | #define SI SH6 + 1 |
429 | { 16, 0, 0, 0, PPC_OPERAND_SIGNED }, | 430 | { 16, 0, NULL, NULL, PPC_OPERAND_SIGNED }, |
430 | 431 | ||
431 | /* The SI field in a D form instruction when we accept a wide range | 432 | /* The SI field in a D form instruction when we accept a wide range |
432 | of positive values. */ | 433 | of positive values. */ |
433 | #define SISIGNOPT SI + 1 | 434 | #define SISIGNOPT SI + 1 |
434 | { 16, 0, 0, 0, PPC_OPERAND_SIGNED | PPC_OPERAND_SIGNOPT }, | 435 | { 16, 0, NULL, NULL, PPC_OPERAND_SIGNED | PPC_OPERAND_SIGNOPT }, |
435 | 436 | ||
436 | /* The SPR field in an XFX form instruction. This is flipped--the | 437 | /* The SPR field in an XFX form instruction. This is flipped--the |
437 | lower 5 bits are stored in the upper 5 and vice- versa. */ | 438 | lower 5 bits are stored in the upper 5 and vice- versa. */ |
@@ -443,25 +444,25 @@ const struct powerpc_operand powerpc_operands[] = | |||
443 | /* The BAT index number in an XFX form m[ft]ibat[lu] instruction. */ | 444 | /* The BAT index number in an XFX form m[ft]ibat[lu] instruction. */ |
444 | #define SPRBAT SPR + 1 | 445 | #define SPRBAT SPR + 1 |
445 | #define SPRBAT_MASK (0x3 << 17) | 446 | #define SPRBAT_MASK (0x3 << 17) |
446 | { 2, 17, 0, 0, 0 }, | 447 | { 2, 17, NULL, NULL, 0 }, |
447 | 448 | ||
448 | /* The SPRG register number in an XFX form m[ft]sprg instruction. */ | 449 | /* The SPRG register number in an XFX form m[ft]sprg instruction. */ |
449 | #define SPRG SPRBAT + 1 | 450 | #define SPRG SPRBAT + 1 |
450 | #define SPRG_MASK (0x3 << 16) | 451 | #define SPRG_MASK (0x3 << 16) |
451 | { 2, 16, 0, 0, 0 }, | 452 | { 2, 16, NULL, NULL, 0 }, |
452 | 453 | ||
453 | /* The SR field in an X form instruction. */ | 454 | /* The SR field in an X form instruction. */ |
454 | #define SR SPRG + 1 | 455 | #define SR SPRG + 1 |
455 | { 4, 16, 0, 0, 0 }, | 456 | { 4, 16, NULL, NULL, 0 }, |
456 | 457 | ||
457 | /* The STRM field in an X AltiVec form instruction. */ | 458 | /* The STRM field in an X AltiVec form instruction. */ |
458 | #define STRM SR + 1 | 459 | #define STRM SR + 1 |
459 | #define STRM_MASK (0x3 << 21) | 460 | #define STRM_MASK (0x3 << 21) |
460 | { 2, 21, 0, 0, 0 }, | 461 | { 2, 21, NULL, NULL, 0 }, |
461 | 462 | ||
462 | /* The SV field in a POWER SC form instruction. */ | 463 | /* The SV field in a POWER SC form instruction. */ |
463 | #define SV STRM + 1 | 464 | #define SV STRM + 1 |
464 | { 14, 2, 0, 0, 0 }, | 465 | { 14, 2, NULL, NULL, 0 }, |
465 | 466 | ||
466 | /* The TBR field in an XFX form instruction. This is like the SPR | 467 | /* The TBR field in an XFX form instruction. This is like the SPR |
467 | field, but it is optional. */ | 468 | field, but it is optional. */ |
@@ -471,52 +472,52 @@ const struct powerpc_operand powerpc_operands[] = | |||
471 | /* The TO field in a D or X form instruction. */ | 472 | /* The TO field in a D or X form instruction. */ |
472 | #define TO TBR + 1 | 473 | #define TO TBR + 1 |
473 | #define TO_MASK (0x1f << 21) | 474 | #define TO_MASK (0x1f << 21) |
474 | { 5, 21, 0, 0, 0 }, | 475 | { 5, 21, NULL, NULL, 0 }, |
475 | 476 | ||
476 | /* The U field in an X form instruction. */ | 477 | /* The U field in an X form instruction. */ |
477 | #define U TO + 1 | 478 | #define U TO + 1 |
478 | { 4, 12, 0, 0, 0 }, | 479 | { 4, 12, NULL, NULL, 0 }, |
479 | 480 | ||
480 | /* The UI field in a D form instruction. */ | 481 | /* The UI field in a D form instruction. */ |
481 | #define UI U + 1 | 482 | #define UI U + 1 |
482 | { 16, 0, 0, 0, 0 }, | 483 | { 16, 0, NULL, NULL, 0 }, |
483 | 484 | ||
484 | /* The VA field in a VA, VX or VXR form instruction. */ | 485 | /* The VA field in a VA, VX or VXR form instruction. */ |
485 | #define VA UI + 1 | 486 | #define VA UI + 1 |
486 | #define VA_MASK (0x1f << 16) | 487 | #define VA_MASK (0x1f << 16) |
487 | { 5, 16, 0, 0, PPC_OPERAND_VR }, | 488 | { 5, 16, NULL, NULL, PPC_OPERAND_VR }, |
488 | 489 | ||
489 | /* The VB field in a VA, VX or VXR form instruction. */ | 490 | /* The VB field in a VA, VX or VXR form instruction. */ |
490 | #define VB VA + 1 | 491 | #define VB VA + 1 |
491 | #define VB_MASK (0x1f << 11) | 492 | #define VB_MASK (0x1f << 11) |
492 | { 5, 11, 0, 0, PPC_OPERAND_VR }, | 493 | { 5, 11, NULL, NULL, PPC_OPERAND_VR }, |
493 | 494 | ||
494 | /* The VC field in a VA form instruction. */ | 495 | /* The VC field in a VA form instruction. */ |
495 | #define VC VB + 1 | 496 | #define VC VB + 1 |
496 | #define VC_MASK (0x1f << 6) | 497 | #define VC_MASK (0x1f << 6) |
497 | { 5, 6, 0, 0, PPC_OPERAND_VR }, | 498 | { 5, 6, NULL, NULL, PPC_OPERAND_VR }, |
498 | 499 | ||
499 | /* The VD or VS field in a VA, VX, VXR or X form instruction. */ | 500 | /* The VD or VS field in a VA, VX, VXR or X form instruction. */ |
500 | #define VD VC + 1 | 501 | #define VD VC + 1 |
501 | #define VS VD | 502 | #define VS VD |
502 | #define VD_MASK (0x1f << 21) | 503 | #define VD_MASK (0x1f << 21) |
503 | { 5, 21, 0, 0, PPC_OPERAND_VR }, | 504 | { 5, 21, NULL, NULL, PPC_OPERAND_VR }, |
504 | 505 | ||
505 | /* The SIMM field in a VX form instruction. */ | 506 | /* The SIMM field in a VX form instruction. */ |
506 | #define SIMM VD + 1 | 507 | #define SIMM VD + 1 |
507 | { 5, 16, 0, 0, PPC_OPERAND_SIGNED}, | 508 | { 5, 16, NULL, NULL, PPC_OPERAND_SIGNED}, |
508 | 509 | ||
509 | /* The UIMM field in a VX form instruction. */ | 510 | /* The UIMM field in a VX form instruction. */ |
510 | #define UIMM SIMM + 1 | 511 | #define UIMM SIMM + 1 |
511 | { 5, 16, 0, 0, 0 }, | 512 | { 5, 16, NULL, NULL, 0 }, |
512 | 513 | ||
513 | /* The SHB field in a VA form instruction. */ | 514 | /* The SHB field in a VA form instruction. */ |
514 | #define SHB UIMM + 1 | 515 | #define SHB UIMM + 1 |
515 | { 4, 6, 0, 0, 0 }, | 516 | { 4, 6, NULL, NULL, 0 }, |
516 | 517 | ||
517 | /* The other UIMM field in a EVX form instruction. */ | 518 | /* The other UIMM field in a EVX form instruction. */ |
518 | #define EVUIMM SHB + 1 | 519 | #define EVUIMM SHB + 1 |
519 | { 5, 11, 0, 0, 0 }, | 520 | { 5, 11, NULL, NULL, 0 }, |
520 | 521 | ||
521 | /* The other UIMM field in a half word EVX form instruction. */ | 522 | /* The other UIMM field in a half word EVX form instruction. */ |
522 | #define EVUIMM_2 EVUIMM + 1 | 523 | #define EVUIMM_2 EVUIMM + 1 |
@@ -533,11 +534,11 @@ const struct powerpc_operand powerpc_operands[] = | |||
533 | /* The WS field. */ | 534 | /* The WS field. */ |
534 | #define WS EVUIMM_8 + 1 | 535 | #define WS EVUIMM_8 + 1 |
535 | #define WS_MASK (0x7 << 11) | 536 | #define WS_MASK (0x7 << 11) |
536 | { 3, 11, 0, 0, 0 }, | 537 | { 3, 11, NULL, NULL, 0 }, |
537 | 538 | ||
538 | /* The L field in an mtmsrd instruction */ | 539 | /* The L field in an mtmsrd instruction */ |
539 | #define MTMSRD_L WS + 1 | 540 | #define MTMSRD_L WS + 1 |
540 | { 1, 16, 0, 0, PPC_OPERAND_OPTIONAL }, | 541 | { 1, 16, NULL, NULL, PPC_OPERAND_OPTIONAL }, |
541 | 542 | ||
542 | }; | 543 | }; |
543 | 544 | ||