HPCToolkit
AlphaISA.cpp
Go to the documentation of this file.
1 // -*-Mode: C++;-*-
2 
3 // * BeginRiceCopyright *****************************************************
4 //
5 // $HeadURL$
6 // $Id$
7 //
8 // --------------------------------------------------------------------------
9 // Part of HPCToolkit (hpctoolkit.org)
10 //
11 // Information about sources of support for research and development of
12 // HPCToolkit is at 'hpctoolkit.org' and in 'README.Acknowledgments'.
13 // --------------------------------------------------------------------------
14 //
15 // Copyright ((c)) 2002-2019, Rice University
16 // All rights reserved.
17 //
18 // Redistribution and use in source and binary forms, with or without
19 // modification, are permitted provided that the following conditions are
20 // met:
21 //
22 // * Redistributions of source code must retain the above copyright
23 // notice, this list of conditions and the following disclaimer.
24 //
25 // * Redistributions in binary form must reproduce the above copyright
26 // notice, this list of conditions and the following disclaimer in the
27 // documentation and/or other materials provided with the distribution.
28 //
29 // * Neither the name of Rice University (RICE) nor the names of its
30 // contributors may be used to endorse or promote products derived from
31 // this software without specific prior written permission.
32 //
33 // This software is provided by RICE and contributors "as is" and any
34 // express or implied warranties, including, but not limited to, the
35 // implied warranties of merchantability and fitness for a particular
36 // purpose are disclaimed. In no event shall RICE or contributors be
37 // liable for any direct, indirect, incidental, special, exemplary, or
38 // consequential damages (including, but not limited to, procurement of
39 // substitute goods or services; loss of use, data, or profits; or
40 // business interruption) however caused and on any theory of liability,
41 // whether in contract, strict liability, or tort (including negligence
42 // or otherwise) arising in any way out of the use of this software, even
43 // if advised of the possibility of such damage.
44 //
45 // ******************************************************* EndRiceCopyright *
46 
47 //***************************************************************************
48 //
49 // File:
50 // $HeadURL$
51 //
52 // Purpose:
53 // [The purpose of this file]
54 //
55 // Description:
56 // [The set of functions, macros, etc. defined in the file]
57 //
58 //***************************************************************************
59 
60 //************************* System Include Files ****************************
61 
62 #include <iostream>
63 using std::ostream;
64 
65 //*************************** User Include Files ****************************
66 
67 #include <include/gnu_bfd.h> // for bfd_getl32
68 
69 #include "AlphaISA.hpp"
70 
72 
74 
75 //*************************** Forward Declarations ***************************
76 
77 //****************************************************************************
78 
79 //****************************************************************************
80 // AlphaISA
81 //****************************************************************************
82 
83 // See 'ISA.h' for comments on the interface
84 
88 {
89  // We know that instruction sizes are guaranteed to be 4 bytes, but
90  // the host may have a different byte order than the executable.
91  uint32_t insn = (uint32_t)bfd_getl32((const unsigned char*)mi);
92  // FIXME: should we test for little vs. big (same with MIPS)
93 
94  switch (insn & OP_MASK)
95  {
96  // ---------------------------------------------------
97  // Memory Load/Store Instructions (SS 4.2 & 4.8; Tables 4-2 & 4-14)
98  // ---------------------------------------------------
99  case LDA: // Integer loads (Table 4-2)
100  case LDAH:
101  case LDBU:
102  case LDL:
103  case LDL_L:
104  case LDQ:
105  case LDQ_L:
106  case LDQ_U:
107  case LDWU:
109 
110  case STB: // Integer stores (Table 4-2)
111  case STL:
112  case STL_C:
113  case STQ:
114  case STQ_C:
115  case STQ_U:
116  case STW:
118 
119  case LDF: // FP loads (Table 4-14)
120  case LDG:
121  case LDS:
122  case LDT:
124 
125  case STF: // FP stores (Table 4-14)
126  case STG:
127  case STS:
128  case STT:
130 
131  case HW_LD: // PALcode
132  return InsnDesc(InsnDesc::MEM_LOAD); // Doubleword
133 
134  case HW_ST: // PALcode
135  return InsnDesc(InsnDesc::MEM_STORE); // Doubleword
136 
137  // ---------------------------------------------------
138  // Control Instructions (SS 4.3 & 4.9; Tables 4-3 & 4-15)
139  // ---------------------------------------------------
140  case BEQ: // Integer branch (Table 4-3)
141  case BGE:
142  case BGT:
143  case BLBC:
144  case BLBS:
145  case BLE:
146  case BLT:
147  case BNE:
149 
150  case FBEQ: // FP branch (Table 4-15)
151  case FBGE:
152  case FBGT:
153  case FBLE:
154  case FBLT:
155  case FBNE:
157 
158  case BR: // (Table 4-3)
160  case BSR: // branch and call
162 
163  // Technically all these instructions are identical except for
164  // hints. We have to assume the compiler's hint is actually
165  // what generally happens...
166  case OpJump: // (Table 4-3)
167  switch (insn & MBR_MASK)
168  {
169  case JMP:
171  case JSR:
172  case JSR_COROUTINE: // FIXME: return and call
174  case RET:
176  }
177  break;
178 
179  // ---------------------------------------------------
180  // Integer operate Instructions (SS 4.4, 4.5, 4.6; Tables 4-5, 4-6, 4-7)
181  // ---------------------------------------------------
182  case OpIntArith:
183  // (Mostly) SS 4.4, Table 4-5: Integer Arithmetic
184  switch (insn & OPR_MASK)
185  {
186  case ADDL: /* (SS 4.4, Table 4-5) */
187  case ADDL_V: /* (SS 4.4, Table 4-5) */
188  case ADDQ: /* (SS 4.4, Table 4-5) */
189  case ADDQ_V: /* (SS 4.4, Table 4-5) */
190  case S4ADDL: /* (SS 4.4, Table 4-5) */
191  case S4ADDQ: /* (SS 4.4, Table 4-5) */
192  case S8ADDL: /* (SS 4.4, Table 4-5) */
193  case S8ADDQ: /* (SS 4.4, Table 4-5) */
194  return InsnDesc(InsnDesc::INT_ADD); // Integer add
195  case CMPEQ: /* (SS 4.4, Table 4-5) */
196  case CMPLT: /* (SS 4.4, Table 4-5) */
197  case CMPLE: /* (SS 4.4, Table 4-5) */
198  case CMPULT: /* (SS 4.4, Table 4-5) */
199  case CMPULE: /* (SS 4.4, Table 4-5) */
200  case CMPBGE: /* (SS 4.6, Table 4-7) */
201  return InsnDesc(InsnDesc::INT_CMP); // Integer compare
202  case SUBL: /* (SS 4.4, Table 4-5) */
203  case SUBL_V: /* (SS 4.4, Table 4-5) */
204  case SUBQ: /* (SS 4.4, Table 4-5) */
205  case SUBQ_V: /* (SS 4.4, Table 4-5) */
206  case S4SUBL: /* (SS 4.4, Table 4-5) */
207  case S4SUBQ: /* (SS 4.4, Table 4-5) */
208  case S8SUBL: /* (SS 4.4, Table 4-5) */
209  case S8SUBQ: /* (SS 4.4, Table 4-5) */
210  return InsnDesc(InsnDesc::INT_SUB); // Integer subtract
211  }
212  break;
213 
214  // (Mostly) SS 4.5, Table 4-6: Logical and Shift Instructions
215  case OpIntLogic:
216  switch (insn & OPR_MASK)
217  {
218  case AND: /* (SS 4.5, Table 4-6) */
219  case BIC: /* (SS 4.5, Table 4-6) */ /* ANDNOT */
220  return InsnDesc(InsnDesc::INT_LOGIC); // AND
221  case BIS: /* (SS 4.5, Table 4-6) */ /* OR */
222  // nop: ra=31,rb=31,rc=31
223  case ORNOT: /* (SS 4.5, Table 4-6) */
224  return InsnDesc(InsnDesc::INT_LOGIC); // OR
225  case EQV: /* (SS 4.5, Table 4-6) */ /* XORNOT */
226  case XOR: /* (SS 4.5, Table 4-6) */
227  return InsnDesc(InsnDesc::INT_LOGIC); // XOR
228  case CMOVLBS: /* (SS 4.5, Table 4-6) */
229  case CMOVLBC: /* (SS 4.5, Table 4-6) */
230  case CMOVEQ: /* (SS 4.5, Table 4-6) */
231  case CMOVNE: /* (SS 4.5, Table 4-6) */
232  case CMOVLT: /* (SS 4.5, Table 4-6) */
233  case CMOVGE: /* (SS 4.5, Table 4-6) */
234  case CMOVLE: /* (SS 4.5, Table 4-6) */
235  case CMOVGT: /* (SS 4.5, Table 4-6) */
236  return InsnDesc(InsnDesc::INT_MOV); // comparison and move
237  case AMASK: /* (SS 4.11, Table 4-17) */
238  case IMPLVER: /* (SS 4.11, Table 4-17) */
239  return InsnDesc(InsnDesc::OTHER);
240  }
241  break;
242 
243  // (Mostly) SS 4.6, Table 4-7: Byte Manipulation Instructions
244  case OpIntShift:
245  switch (insn & OPR_MASK)
246  {
247  case EXTBL: /* (SS 4.6, Table 4-7) */
248  case EXTWL: /* (SS 4.6, Table 4-7) */
249  case EXTLL: /* (SS 4.6, Table 4-7) */
250  case EXTQL: /* (SS 4.6, Table 4-7) */
251  case EXTWH: /* (SS 4.6, Table 4-7) */
252  case EXTLH: /* (SS 4.6, Table 4-7) */
253  case EXTQH: /* (SS 4.6, Table 4-7) */
254  case INSBL: /* (SS 4.6, Table 4-7) */
255  case INSWL: /* (SS 4.6, Table 4-7) */
256  case INSLL: /* (SS 4.6, Table 4-7) */
257  case INSQL: /* (SS 4.6, Table 4-7) */
258  case INSWH: /* (SS 4.6, Table 4-7) */
259  case INSLH: /* (SS 4.6, Table 4-7) */
260  case INSQH: /* (SS 4.6, Table 4-7) */
261  case MSKBL: /* (SS 4.6, Table 4-7) */
262  case MSKWL: /* (SS 4.6, Table 4-7) */
263  case MSKLL: /* (SS 4.6, Table 4-7) */
264  case MSKQL: /* (SS 4.6, Table 4-7) */
265  case MSKWH: /* (SS 4.6, Table 4-7) */
266  case MSKLH: /* (SS 4.6, Table 4-7) */
267  case MSKQH: /* (SS 4.6, Table 4-7) */
268  case ZAP: /* (SS 4.6, Table 4-7) */
269  case ZAPNOT: /* (SS 4.6, Table 4-7) */
271  case SLL: /* (SS 4.5, Table 4-6) */
272  case SRA: /* (SS 4.5, Table 4-6) */
273  case SRL: /* (SS 4.5, Table 4-6) */
275  }
276  break;
277 
278  case OpIntMult:
279  switch (insn & OPR_MASK)
280  {
281  case MULL: /* (SS 4.4, Table 4-5) */
282  case MULL_V: /* (SS 4.4, Table 4-5) */
283  case MULQ: /* (SS 4.4, Table 4-5) */
284  case MULQ_V: /* (SS 4.4, Table 4-5) */
285  case UMULH: /* (SS 4.4, Table 4-5) */
286  return InsnDesc(InsnDesc::INT_MUL);
287  }
288  break;
289 
290  // ---------------------------------------------------
291  // FP operate Instructions (SS 4.10, Table 4-16)
292  // ---------------------------------------------------
293  case OpIntToFlt:
294  switch (insn & FP_MASK)
295  {
296  case ITOFF: /* (SS 4.10, Table 4-16) */
297  case ITOFS: /* (SS 4.10, Table 4-16) */
298  case ITOFT: /* (SS 4.10, Table 4-16) */
299  return InsnDesc(InsnDesc::OTHER);
300  case SQRTF: /* (SS 4.10, Table 4-16) */
301  case SQRTF_C: /* (SS 4.10, Table 4-16) */
302  case SQRTF_UC: /* (SS 4.10, Table 4-16) */
303  case SQRTF_U: /* (SS 4.10, Table 4-16) */
304  case SQRTF_SC: /* (SS 4.10, Table 4-16) */
305  case SQRTF_S: /* (SS 4.10, Table 4-16) */
306  case SQRTF_SUC: /* (SS 4.10, Table 4-16) */
307  case SQRTF_SU: /* (SS 4.10, Table 4-16) */
308  case SQRTG: /* (SS 4.10, Table 4-16) */
309  case SQRTG_C: /* (SS 4.10, Table 4-16) */
310  case SQRTG_UC: /* (SS 4.10, Table 4-16) */
311  case SQRTG_U: /* (SS 4.10, Table 4-16) */
312  case SQRTG_SC: /* (SS 4.10, Table 4-16) */
313  case SQRTG_S: /* (SS 4.10, Table 4-16) */
314  case SQRTG_SUC: /* (SS 4.10, Table 4-16) */
315  case SQRTG_SU: /* (SS 4.10, Table 4-16) */
316  case SQRTS: /* (SS 4.10, Table 4-16) */
317  case SQRTS_C: /* (SS 4.10, Table 4-16) */
318  case SQRTS_M: /* (SS 4.10, Table 4-16) */
319  case SQRTS_D: /* (SS 4.10, Table 4-16) */
320  case SQRTS_UC: /* (SS 4.10, Table 4-16) */
321  case SQRTS_UM: /* (SS 4.10, Table 4-16) */
322  case SQRTS_U: /* (SS 4.10, Table 4-16) */
323  case SQRTS_UD: /* (SS 4.10, Table 4-16) */
324  case SQRTS_SUC: /* (SS 4.10, Table 4-16) */
325  case SQRTS_SUM: /* (SS 4.10, Table 4-16) */
326  case SQRTS_SU: /* (SS 4.10, Table 4-16) */
327  case SQRTS_SUD: /* (SS 4.10, Table 4-16) */
328  case SQRTS_SUIC: /* (SS 4.10, Table 4-16) */
329  case SQRTS_SUIM: /* (SS 4.10, Table 4-16) */
330  case SQRTS_SUI: /* (SS 4.10, Table 4-16) */
331  case SQRTS_SUID: /* (SS 4.10, Table 4-16) */
332  case SQRTT: /* (SS 4.10, Table 4-16) */
333  case SQRTT_C: /* (SS 4.10, Table 4-16) */
334  case SQRTT_M: /* (SS 4.10, Table 4-16) */
335  case SQRTT_D: /* (SS 4.10, Table 4-16) */
336  case SQRTT_UC: /* (SS 4.10, Table 4-16) */
337  case SQRTT_UM: /* (SS 4.10, Table 4-16) */
338  case SQRTT_U: /* (SS 4.10, Table 4-16) */
339  case SQRTT_UD: /* (SS 4.10, Table 4-16) */
340  case SQRTT_SUC: /* (SS 4.10, Table 4-16) */
341  case SQRTT_SUM: /* (SS 4.10, Table 4-16) */
342  case SQRTT_SU: /* (SS 4.10, Table 4-16) */
343  case SQRTT_SUD: /* (SS 4.10, Table 4-16) */
344  case SQRTT_SUIC: /* (SS 4.10, Table 4-16) */
345  case SQRTT_SUIM: /* (SS 4.10, Table 4-16) */
346  case SQRTT_SUI: /* (SS 4.10, Table 4-16) */
347  case SQRTT_SUID: /* (SS 4.10, Table 4-16) */
348  return InsnDesc(InsnDesc::FP_SQRT);
349  }
350  break;
351 
352  case OpFltVAX:
353  switch (insn & FP_MASK)
354  {
355  case ADDF: /* (SS 4.10, Table 4-16) */
356  case ADDF_C: /* (SS 4.10, Table 4-16) */
357  case ADDF_UC: /* (SS 4.10, Table 4-16) */
358  case ADDF_U: /* (SS 4.10, Table 4-16) */
359  case ADDF_SC: /* (SS 4.10, Table 4-16) */
360  case ADDF_S: /* (SS 4.10, Table 4-16) */
361  case ADDF_SUC: /* (SS 4.10, Table 4-16) */
362  case ADDF_SU: /* (SS 4.10, Table 4-16) */
363  case ADDG: /* (SS 4.10, Table 4-16) */
364  case ADDG_C: /* (SS 4.10, Table 4-16) */
365  case ADDG_UC: /* (SS 4.10, Table 4-16) */
366  case ADDG_U: /* (SS 4.10, Table 4-16) */
367  case ADDG_SC: /* (SS 4.10, Table 4-16) */
368  case ADDG_S: /* (SS 4.10, Table 4-16) */
369  case ADDG_SUC: /* (SS 4.10, Table 4-16) */
370  case ADDG_SU: /* (SS 4.10, Table 4-16) */
371  return InsnDesc(InsnDesc::FP_ADD);
372  case SUBF: /* (SS 4.10, Table 4-16) */
373  case SUBF_C: /* (SS 4.10, Table 4-16) */
374  case SUBF_UC: /* (SS 4.10, Table 4-16) */
375  case SUBF_U: /* (SS 4.10, Table 4-16) */
376  case SUBF_SC: /* (SS 4.10, Table 4-16) */
377  case SUBF_S: /* (SS 4.10, Table 4-16) */
378  case SUBF_SUC: /* (SS 4.10, Table 4-16) */
379  case SUBF_SU: /* (SS 4.10, Table 4-16) */
380  case SUBG: /* (SS 4.10, Table 4-16) */
381  case SUBG_C: /* (SS 4.10, Table 4-16) */
382  case SUBG_UC: /* (SS 4.10, Table 4-16) */
383  case SUBG_U: /* (SS 4.10, Table 4-16) */
384  case SUBG_SC: /* (SS 4.10, Table 4-16) */
385  case SUBG_S: /* (SS 4.10, Table 4-16) */
386  case SUBG_SUC: /* (SS 4.10, Table 4-16) */
387  case SUBG_SU: /* (SS 4.10, Table 4-16) */
388  return InsnDesc(InsnDesc::FP_SUB);
389  case CMPGEQ: /* (SS 4.10, Table 4-16) */
390  case CMPGLT: /* (SS 4.10, Table 4-16) */
391  case CMPGLE: /* (SS 4.10, Table 4-16) */
392  case CMPGEQ_S: /* (SS 4.10, Table 4-16) */
393  case CMPGLT_S: /* (SS 4.10, Table 4-16) */
394  case CMPGLE_S: /* (SS 4.10, Table 4-16) */
395  return InsnDesc(InsnDesc::FP_CMP);
396  case CVTDG: /* (SS 4.10, Table 4-16) */
397  case CVTDG_C: /* (SS 4.10, Table 4-16) */
398  case CVTDG_UC: /* (SS 4.10, Table 4-16) */
399  case CVTDG_U: /* (SS 4.10, Table 4-16) */
400  case CVTDG_SC: /* (SS 4.10, Table 4-16) */
401  case CVTDG_S: /* (SS 4.10, Table 4-16) */
402  case CVTDG_SUC: /* (SS 4.10, Table 4-16) */
403  case CVTDG_SU: /* (SS 4.10, Table 4-16) */
404  case CVTGD: /* (SS 4.10, Table 4-16) */
405  case CVTGD_C: /* (SS 4.10, Table 4-16) */
406  case CVTGD_UC: /* (SS 4.10, Table 4-16) */
407  case CVTGD_U: /* (SS 4.10, Table 4-16) */
408  case CVTGD_SC: /* (SS 4.10, Table 4-16) */
409  case CVTGD_S: /* (SS 4.10, Table 4-16) */
410  case CVTGD_SUC: /* (SS 4.10, Table 4-16) */
411  case CVTGD_SU: /* (SS 4.10, Table 4-16) */
412  case CVTGF: /* (SS 4.10, Table 4-16) */
413  case CVTGF_C: /* (SS 4.10, Table 4-16) */
414  case CVTGF_UC: /* (SS 4.10, Table 4-16) */
415  case CVTGF_U: /* (SS 4.10, Table 4-16) */
416  case CVTGF_SC: /* (SS 4.10, Table 4-16) */
417  case CVTGF_S: /* (SS 4.10, Table 4-16) */
418  case CVTGF_SUC: /* (SS 4.10, Table 4-16) */
419  case CVTGF_SU: /* (SS 4.10, Table 4-16) */
420  case CVTGQ: /* (SS 4.10, Table 4-16) */
421  case CVTGQ_C: /* (SS 4.10, Table 4-16) */
422  case CVTGQ_VC: /* (SS 4.10, Table 4-16) */
423  case CVTGQ_V: /* (SS 4.10, Table 4-16) */
424  case CVTGQ_SC: /* (SS 4.10, Table 4-16) */
425  case CVTGQ_S: /* (SS 4.10, Table 4-16) */
426  case CVTGQ_SVC: /* (SS 4.10, Table 4-16) */
427  case CVTGQ_SV: /* (SS 4.10, Table 4-16) */
428  case CVTQF: /* (SS 4.10, Table 4-16) */
429  case CVTQF_C: /* (SS 4.10, Table 4-16) */
430  case CVTQG: /* (SS 4.10, Table 4-16) */
431  case CVTQG_C: /* (SS 4.10, Table 4-16) */
432  return InsnDesc(InsnDesc::FP_CVT);
433  case DIVF: /* (SS 4.10, Table 4-16) */
434  case DIVF_C: /* (SS 4.10, Table 4-16) */
435  case DIVF_UC: /* (SS 4.10, Table 4-16) */
436  case DIVF_U: /* (SS 4.10, Table 4-16) */
437  case DIVF_SC: /* (SS 4.10, Table 4-16) */
438  case DIVF_S: /* (SS 4.10, Table 4-16) */
439  case DIVF_SUC: /* (SS 4.10, Table 4-16) */
440  case DIVF_SU: /* (SS 4.10, Table 4-16) */
441  case DIVG: /* (SS 4.10, Table 4-16) */
442  case DIVG_C: /* (SS 4.10, Table 4-16) */
443  case DIVG_UC: /* (SS 4.10, Table 4-16) */
444  case DIVG_U: /* (SS 4.10, Table 4-16) */
445  case DIVG_SC: /* (SS 4.10, Table 4-16) */
446  case DIVG_S: /* (SS 4.10, Table 4-16) */
447  case DIVG_SUC: /* (SS 4.10, Table 4-16) */
448  case DIVG_SU: /* (SS 4.10, Table 4-16) */
449  return InsnDesc(InsnDesc::FP_DIV);
450  case MULF: /* (SS 4.10, Table 4-16) */
451  case MULF_C: /* (SS 4.10, Table 4-16) */
452  case MULF_UC: /* (SS 4.10, Table 4-16) */
453  case MULF_U: /* (SS 4.10, Table 4-16) */
454  case MULF_SC: /* (SS 4.10, Table 4-16) */
455  case MULF_S: /* (SS 4.10, Table 4-16) */
456  case MULF_SUC: /* (SS 4.10, Table 4-16) */
457  case MULF_SU: /* (SS 4.10, Table 4-16) */
458  case MULG: /* (SS 4.10, Table 4-16) */
459  case MULG_C: /* (SS 4.10, Table 4-16) */
460  case MULG_UC: /* (SS 4.10, Table 4-16) */
461  case MULG_U: /* (SS 4.10, Table 4-16) */
462  case MULG_SC: /* (SS 4.10, Table 4-16) */
463  case MULG_S: /* (SS 4.10, Table 4-16) */
464  case MULG_SUC: /* (SS 4.10, Table 4-16) */
465  case MULG_SU: /* (SS 4.10, Table 4-16) */
466  return InsnDesc(InsnDesc::FP_MUL);
467  }
468  break;
469 
470  case OpFltIEEE:
471  switch (insn & FP_MASK)
472  {
473  case ADDS: /* (SS 4.10, Table 4-16) */
474  case ADDS_C: /* (SS 4.10, Table 4-16) */
475  case ADDS_M: /* (SS 4.10, Table 4-16) */
476  case ADDS_D: /* (SS 4.10, Table 4-16) */
477  case ADDS_UC: /* (SS 4.10, Table 4-16) */
478  case ADDS_UM: /* (SS 4.10, Table 4-16) */
479  case ADDS_U: /* (SS 4.10, Table 4-16) */
480  case ADDS_UD: /* (SS 4.10, Table 4-16) */
481  case ADDS_SUC: /* (SS 4.10, Table 4-16) */
482  case ADDS_SUM: /* (SS 4.10, Table 4-16) */
483  case ADDS_SU: /* (SS 4.10, Table 4-16) */
484  case ADDS_SUD: /* (SS 4.10, Table 4-16) */
485  case ADDS_SUIC: /* (SS 4.10, Table 4-16) */
486  case ADDS_SUIM: /* (SS 4.10, Table 4-16) */
487  case ADDS_SUI: /* (SS 4.10, Table 4-16) */
488  case ADDS_SUID: /* (SS 4.10, Table 4-16) */
489  case ADDT: /* (SS 4.10, Table 4-16) */
490  case ADDT_C: /* (SS 4.10, Table 4-16) */
491  case ADDT_M: /* (SS 4.10, Table 4-16) */
492  case ADDT_D: /* (SS 4.10, Table 4-16) */
493  case ADDT_UC: /* (SS 4.10, Table 4-16) */
494  case ADDT_UM: /* (SS 4.10, Table 4-16) */
495  case ADDT_U: /* (SS 4.10, Table 4-16) */
496  case ADDT_UD: /* (SS 4.10, Table 4-16) */
497  case ADDT_SUC: /* (SS 4.10, Table 4-16) */
498  case ADDT_SUM: /* (SS 4.10, Table 4-16) */
499  case ADDT_SU: /* (SS 4.10, Table 4-16) */
500  case ADDT_SUD: /* (SS 4.10, Table 4-16) */
501  case ADDT_SUIC: /* (SS 4.10, Table 4-16) */
502  case ADDT_SUIM: /* (SS 4.10, Table 4-16) */
503  case ADDT_SUI: /* (SS 4.10, Table 4-16) */
504  case ADDT_SUID: /* (SS 4.10, Table 4-16) */
505  return InsnDesc(InsnDesc::FP_ADD);
506  case CMPTUN: /* (SS 4.10, Table 4-16) */
507  case CMPTEQ: /* (SS 4.10, Table 4-16) */
508  case CMPTLT: /* (SS 4.10, Table 4-16) */
509  case CMPTLE: /* (SS 4.10, Table 4-16) */
510  case CMPTUN_SU: /* (SS 4.10, Table 4-16) */
511  case CMPTEQ_SU: /* (SS 4.10, Table 4-16) */
512  case CMPTLT_SU: /* (SS 4.10, Table 4-16) */
513  case CMPTLE_SU: /* (SS 4.10, Table 4-16) */
514  return InsnDesc(InsnDesc::FP_CMP);
515  case CVTQS: /* (SS 4.10, Table 4-16) */
516  case CVTQS_C: /* (SS 4.10, Table 4-16) */
517  case CVTQS_M: /* (SS 4.10, Table 4-16) */
518  case CVTQS_D: /* (SS 4.10, Table 4-16) */
519  case CVTQS_SUIC: /* (SS 4.10, Table 4-16) */
520  case CVTQS_SUIM: /* (SS 4.10, Table 4-16) */
521  case CVTQS_SUI: /* (SS 4.10, Table 4-16) */
522  case CVTQS_SUID: /* (SS 4.10, Table 4-16) */
523  case CVTQT: /* (SS 4.10, Table 4-16) */
524  case CVTQT_C: /* (SS 4.10, Table 4-16) */
525  case CVTQT_M: /* (SS 4.10, Table 4-16) */
526  case CVTQT_D: /* (SS 4.10, Table 4-16) */
527  case CVTQT_SUIC: /* (SS 4.10, Table 4-16) */
528  case CVTQT_SUIM: /* (SS 4.10, Table 4-16) */
529  case CVTQT_SUI: /* (SS 4.10, Table 4-16) */
530  case CVTQT_SUID: /* (SS 4.10, Table 4-16) */
531  case CVTST: /* (SS 4.10, Table 4-16) */
532  case CVTST_S: /* (SS 4.10, Table 4-16) */
533  case CVTTQ: /* (SS 4.10, Table 4-16) */
534  case CVTTQ_C: /* (SS 4.10, Table 4-16) */
535  case CVTTQ_M: /* (SS 4.10, Table 4-16) */
536  case CVTTQ_D: /* (SS 4.10, Table 4-16) */
537  case CVTTQ_VC: /* (SS 4.10, Table 4-16) */
538  case CVTTQ_VM: /* (SS 4.10, Table 4-16) */
539  case CVTTQ_V: /* (SS 4.10, Table 4-16) */
540  case CVTTQ_VD: /* (SS 4.10, Table 4-16) */
541  case CVTTQ_SVC: /* (SS 4.10, Table 4-16) */
542  case CVTTQ_SVM: /* (SS 4.10, Table 4-16) */
543  case CVTTQ_SV: /* (SS 4.10, Table 4-16) */
544  case CVTTQ_SVD: /* (SS 4.10, Table 4-16) */
545  case CVTTQ_SVIC: /* (SS 4.10, Table 4-16) */
546  case CVTTQ_SVIM: /* (SS 4.10, Table 4-16) */
547  case CVTTQ_SVI: /* (SS 4.10, Table 4-16) */
548  case CVTTQ_SVID: /* (SS 4.10, Table 4-16) */
549  case CVTTS: /* (SS 4.10, Table 4-16) */
550  case CVTTS_C: /* (SS 4.10, Table 4-16) */
551  case CVTTS_M: /* (SS 4.10, Table 4-16) */
552  case CVTTS_D: /* (SS 4.10, Table 4-16) */
553  case CVTTS_UC: /* (SS 4.10, Table 4-16) */
554  case CVTTS_UM: /* (SS 4.10, Table 4-16) */
555  case CVTTS_U: /* (SS 4.10, Table 4-16) */
556  case CVTTS_UD: /* (SS 4.10, Table 4-16) */
557  case CVTTS_SUC: /* (SS 4.10, Table 4-16) */
558  case CVTTS_SUM: /* (SS 4.10, Table 4-16) */
559  case CVTTS_SU: /* (SS 4.10, Table 4-16) */
560  case CVTTS_SUD: /* (SS 4.10, Table 4-16) */
561  case CVTTS_SUIC: /* (SS 4.10, Table 4-16) */
562  case CVTTS_SUIM: /* (SS 4.10, Table 4-16) */
563  case CVTTS_SUI: /* (SS 4.10, Table 4-16) */
564  case CVTTS_SUID: /* (SS 4.10, Table 4-16) */
565  return InsnDesc(InsnDesc::FP_CVT);
566  case DIVS: /* (SS 4.10, Table 4-16) */
567  case DIVS_C: /* (SS 4.10, Table 4-16) */
568  case DIVS_M: /* (SS 4.10, Table 4-16) */
569  case DIVS_D: /* (SS 4.10, Table 4-16) */
570  case DIVS_UC: /* (SS 4.10, Table 4-16) */
571  case DIVS_UM: /* (SS 4.10, Table 4-16) */
572  case DIVS_U: /* (SS 4.10, Table 4-16) */
573  case DIVS_UD: /* (SS 4.10, Table 4-16) */
574  case DIVS_SUC: /* (SS 4.10, Table 4-16) */
575  case DIVS_SUM: /* (SS 4.10, Table 4-16) */
576  case DIVS_SU: /* (SS 4.10, Table 4-16) */
577  case DIVS_SUD: /* (SS 4.10, Table 4-16) */
578  case DIVS_SUIC: /* (SS 4.10, Table 4-16) */
579  case DIVS_SUIM: /* (SS 4.10, Table 4-16) */
580  case DIVS_SUI: /* (SS 4.10, Table 4-16) */
581  case DIVS_SUID: /* (SS 4.10, Table 4-16) */
582  case DIVT: /* (SS 4.10, Table 4-16) */
583  case DIVT_C: /* (SS 4.10, Table 4-16) */
584  case DIVT_M: /* (SS 4.10, Table 4-16) */
585  case DIVT_D: /* (SS 4.10, Table 4-16) */
586  case DIVT_UC: /* (SS 4.10, Table 4-16) */
587  case DIVT_UM: /* (SS 4.10, Table 4-16) */
588  case DIVT_U: /* (SS 4.10, Table 4-16) */
589  case DIVT_UD: /* (SS 4.10, Table 4-16) */
590  case DIVT_SUC: /* (SS 4.10, Table 4-16) */
591  case DIVT_SUM: /* (SS 4.10, Table 4-16) */
592  case DIVT_SU: /* (SS 4.10, Table 4-16) */
593  case DIVT_SUD: /* (SS 4.10, Table 4-16) */
594  case DIVT_SUIC: /* (SS 4.10, Table 4-16) */
595  case DIVT_SUIM: /* (SS 4.10, Table 4-16) */
596  case DIVT_SUI: /* (SS 4.10, Table 4-16) */
597  case DIVT_SUID: /* (SS 4.10, Table 4-16) */
598  return InsnDesc(InsnDesc::FP_DIV);
599  case MULS: /* (SS 4.10, Table 4-16) */
600  case MULS_C: /* (SS 4.10, Table 4-16) */
601  case MULS_M: /* (SS 4.10, Table 4-16) */
602  case MULS_D: /* (SS 4.10, Table 4-16) */
603  case MULS_UC: /* (SS 4.10, Table 4-16) */
604  case MULS_UM: /* (SS 4.10, Table 4-16) */
605  case MULS_U: /* (SS 4.10, Table 4-16) */
606  case MULS_UD: /* (SS 4.10, Table 4-16) */
607  case MULS_SUC: /* (SS 4.10, Table 4-16) */
608  case MULS_SUM: /* (SS 4.10, Table 4-16) */
609  case MULS_SU: /* (SS 4.10, Table 4-16) */
610  case MULS_SUD: /* (SS 4.10, Table 4-16) */
611  case MULS_SUIC: /* (SS 4.10, Table 4-16) */
612  case MULS_SUIM: /* (SS 4.10, Table 4-16) */
613  case MULS_SUI: /* (SS 4.10, Table 4-16) */
614  case MULS_SUID: /* (SS 4.10, Table 4-16) */
615  case MULT: /* (SS 4.10, Table 4-16) */
616  case MULT_C: /* (SS 4.10, Table 4-16) */
617  case MULT_M: /* (SS 4.10, Table 4-16) */
618  case MULT_D: /* (SS 4.10, Table 4-16) */
619  case MULT_UC: /* (SS 4.10, Table 4-16) */
620  case MULT_UM: /* (SS 4.10, Table 4-16) */
621  case MULT_U: /* (SS 4.10, Table 4-16) */
622  case MULT_UD: /* (SS 4.10, Table 4-16) */
623  case MULT_SUC: /* (SS 4.10, Table 4-16) */
624  case MULT_SUM: /* (SS 4.10, Table 4-16) */
625  case MULT_SU: /* (SS 4.10, Table 4-16) */
626  case MULT_SUD: /* (SS 4.10, Table 4-16) */
627  case MULT_SUIC: /* (SS 4.10, Table 4-16) */
628  case MULT_SUIM: /* (SS 4.10, Table 4-16) */
629  case MULT_SUI: /* (SS 4.10, Table 4-16) */
630  case MULT_SUID: /* (SS 4.10, Table 4-16) */
631  return InsnDesc(InsnDesc::FP_MUL);
632  case SUBS: /* (SS 4.10, Table 4-16) */
633  case SUBS_C: /* (SS 4.10, Table 4-16) */
634  case SUBS_M: /* (SS 4.10, Table 4-16) */
635  case SUBS_D: /* (SS 4.10, Table 4-16) */
636  case SUBS_UC: /* (SS 4.10, Table 4-16) */
637  case SUBS_UM: /* (SS 4.10, Table 4-16) */
638  case SUBS_U: /* (SS 4.10, Table 4-16) */
639  case SUBS_UD: /* (SS 4.10, Table 4-16) */
640  case SUBS_SUC: /* (SS 4.10, Table 4-16) */
641  case SUBS_SUM: /* (SS 4.10, Table 4-16) */
642  case SUBS_SU: /* (SS 4.10, Table 4-16) */
643  case SUBS_SUD: /* (SS 4.10, Table 4-16) */
644  case SUBS_SUIC: /* (SS 4.10, Table 4-16) */
645  case SUBS_SUIM: /* (SS 4.10, Table 4-16) */
646  case SUBS_SUI: /* (SS 4.10, Table 4-16) */
647  case SUBS_SUID: /* (SS 4.10, Table 4-16) */
648  case SUBT: /* (SS 4.10, Table 4-16) */
649  case SUBT_C: /* (SS 4.10, Table 4-16) */
650  case SUBT_M: /* (SS 4.10, Table 4-16) */
651  case SUBT_D: /* (SS 4.10, Table 4-16) */
652  case SUBT_UC: /* (SS 4.10, Table 4-16) */
653  case SUBT_UM: /* (SS 4.10, Table 4-16) */
654  case SUBT_U: /* (SS 4.10, Table 4-16) */
655  case SUBT_UD: /* (SS 4.10, Table 4-16) */
656  case SUBT_SUC: /* (SS 4.10, Table 4-16) */
657  case SUBT_SUM: /* (SS 4.10, Table 4-16) */
658  case SUBT_SU: /* (SS 4.10, Table 4-16) */
659  case SUBT_SUD: /* (SS 4.10, Table 4-16) */
660  case SUBT_SUIC: /* (SS 4.10, Table 4-16) */
661  case SUBT_SUIM: /* (SS 4.10, Table 4-16) */
662  case SUBT_SUI: /* (SS 4.10, Table 4-16) */
663  case SUBT_SUID: /* (SS 4.10, Table 4-16) */
664  return InsnDesc(InsnDesc::FP_SUB);
665  }
666  break;
667 
668  case OpFltOp:
669  switch (insn & FP_MASK)
670  {
671  case CPYS: /* (SS 4.10, Table 4-16) */
672  case CPYSE: /* (SS 4.10, Table 4-16) */
673  case CPYSN: /* (SS 4.10, Table 4-16) */
675  case CVTLQ: /* (SS 4.10, Table 4-16) */
676  case CVTQL: /* (SS 4.10, Table 4-16) */
677  case CVTQL_V: /* (SS 4.10, Table 4-16) */
678  case CVTQL_SV: /* (SS 4.10, Table 4-16) */
679  return InsnDesc(InsnDesc::FP_CVT);
680  case FCMOVEQ: /* (SS 4.10, Table 4-16) */
681  case FCMOVNE: /* (SS 4.10, Table 4-16) */
682  case FCMOVLT: /* (SS 4.10, Table 4-16) */
683  case FCMOVGE: /* (SS 4.10, Table 4-16) */
684  case FCMOVLE: /* (SS 4.10, Table 4-16) */
685  case FCMOVGT: /* (SS 4.10, Table 4-16) */
686  case MF_FPCR: /* (SS 4.10, Table 4-16) */
687  case MT_FPCR: /* (SS 4.10, Table 4-16) */
688  return InsnDesc(InsnDesc::FP_MOV);
689  }
690  break;
691 
692  // ---------------------------------------------------
693  // Other/Misc Instructions (SS 4.11 & 4.12, Table 4-17, 4-18)
694  // ---------------------------------------------------
695  case OpMisc:
696  switch (insn & MFC_MASK)
697  {
698  // Miscellaneous Instructions: (SS 4.11, Table 4-17)
699  case ECB: /* (SS 4.11, Table 4-17) */
700  case EXCB: /* (SS 4.11, Table 4-17) */
701  case FETCH: /* (SS 4.11, Table 4-17) */
702  case FETCH_M: /* (SS 4.11, Table 4-17) */
703  case MB: /* (SS 4.11, Table 4-17) */
704  case RPCC: /* (SS 4.11, Table 4-17) */
705  case TRAPB: /* (SS 4.11, Table 4-17) */
706  case WH64: /* (SS 4.11, Table 4-17) */
707  case WMB: /* (SS 4.11, Table 4-17) */
708  return InsnDesc(InsnDesc::OTHER);
709 
710  // VAX compatibility Instructions: (SS 4.12, Table 4-18)
711  case RC: /* (SS 4.12, Table 4-18) */
712  case RS: /* (SS 4.12, Table 4-18) */
713  return InsnDesc(InsnDesc::OTHER);
714  }
715  break;
716 
717  // ---------------------------------------------------
718  // (Mostly) Multimedia Instructions: (SS 4.13, Table 4-19(?))
719  // ---------------------------------------------------
720  case OpFltToInt:
721  switch (insn & FP_MASK)
722  {
723  case MINUB8: /* (SS 4.13, Table 4-19(?)) */
724  case MINSB8: /* (SS 4.13, Table 4-19(?)) */
725  case MINUW4: /* (SS 4.13, Table 4-19(?)) */
726  case MINSW4: /* (SS 4.13, Table 4-19(?)) */
727  case MAXUB8: /* (SS 4.13, Table 4-19(?)) */
728  case MAXSB8: /* (SS 4.13, Table 4-19(?)) */
729  case MAXUW4: /* (SS 4.13, Table 4-19(?)) */
730  case MAXSW4: /* (SS 4.13, Table 4-19(?)) */
731  case PERR: /* (SS 4.13, Table 4-19(?)) */
732  case PKLB: /* (SS 4.13, Table 4-19(?)) */
733  case PKWB: /* (SS 4.13, Table 4-19(?)) */
734  case UNPKBL: /* (SS 4.13, Table 4-19(?)) */
735  case UNPKBW: /* (SS 4.13, Table 4-19(?)) */
737  case CTLZ: /* (SS 4.4, Table 4-5) */
738  case CTPOP: /* (SS 4.4, Table 4-5) */
739  case CTTZ: /* (SS 4.4, Table 4-5) */
741  case SEXTB: /* (SS 4.6, Table 4-7) */
742  case SEXTW: /* (SS 4.6, Table 4-7) */
744  case FTOIS: /* (SS 4.10, Table 4-16) */
745  case FTOIT: /* (SS 4.10, Table 4-16) */
746  return InsnDesc(InsnDesc::OTHER);
747  }
748  break;
749 
750  // ---------------------------------------------------
751  // Generic PALcode format instructions
752  // ---------------------------------------------------
753  case CALL_PAL:
754  case PAL19:
755  // case PAL1B: // already referenced as HW_LD
756  case PAL1D:
757  case PAL1E:
758  // case PAL1F: // already referenced as HW_ST
759  return InsnDesc(InsnDesc::OTHER);
760 
761  // PALcode format instructions
762  case CALLSYS:
764 
765  default:
766  break;
767  }
768 
769  return InsnDesc(InsnDesc::INVALID);
770 }
771 
772 
773 VMA
776 {
777  // We know that instruction sizes are guaranteed to be 4 bytes, but
778  // the host may have a different byte order than the executable.
779  uint32_t insn = (uint32_t)bfd_getl32((const unsigned char*)mi);
780 
781  intptr_t offset;
782  switch (insn & OP_MASK)
783  {
784  // Integer/FP control Instructions (SS 4.3 and 4.9; Tables 4-3
785  // and 4-15)
786  case BEQ: // Integer branch
787  case BGE:
788  case BGT:
789  case BLBC:
790  case BLBS:
791  case BLE:
792  case BLT:
793  case BNE:
794  case BR:
795  case BSR:
796  case FBEQ: // FP branch
797  case FBGE:
798  case FBGT:
799  case FBLE:
800  case FBLT:
801  case FBNE:
802  // Added to the address of the *updated* pc
803  offset = BR_DISP(insn);
804  if (offset & BR_DISP_SIGN) { offset |= ~BR_DISP_MASK; } // sign extend
805  return ((pc + MINSN_SIZE) + (offset << 2));
806 
807  case OpJump: // JMP, JSR, JSR_COROUTINE, RET
808  break; // branch content in register
809 
810  default:
811  break;
812  }
813 
814  return (0);
815 }
816 
817 
818 void
821 {
823 }
#define OpIntLogic
#define LDWU
#define ADDT_SUID
#define SQRTG_SU
#define SUBS_SUC
#define OpJump
#define OpIntArith
#define CMOVGE
#define SQRTF_SU
#define FCMOVNE
#define CVTGD
#define CVTTQ_SVIC
#define SQRTG_U
#define PERR
#define DIVS_D
#define CTLZ
#define DIVT_SUM
#define MULS_U
#define CVTTQ_SV
#define SUBS_SUI
#define SUBS
#define CMPULT
#define SQRTT_SUC
#define STW
#define SQRTS_SUID
#define MULG_SUC
#define SQRTS_SUIC
#define INSWH
#define STQ_U
#define MULL_V
#define FETCH_M
#define SQRTS_C
#define FCMOVGT
#define ADDS
#define JSR
#define ADDF
#define DIVT_SU
#define MINUB8
#define FCMOVLE
#define CVTDG_C
#define MULF
#define CMPEQ
#define ADDS_U
#define CVTQS_SUIM
#define CVTQL_SV
#define ADDQ_V
#define SUBT_U
#define CVTTQ_SVID
#define MULQ_V
#define CTTZ
#define MULG_SU
#define MULS_SUC
#define SUBF_SC
#define ADDL
#define SUBT_SUI
#define S4ADDQ
#define CVTQS_D
#define MSKLL
#define CVTGD_UC
#define SQRTT_M
#define BEQ
#define ADDF_SUC
bfd_vma VMA
Definition: ISATypes.hpp:79
#define DIVS_UM
#define DIVG_U
#define CVTTS_C
#define BR_DISP_MASK
#define SQRTF_SUC
#define MULS
#define FTOIS
#define CVTGQ_SC
#define PKLB
#define CVTTS_SUD
#define DIVS_SUIC
#define BGE
#define CVTQL
#define FBGT
#define MINSW4
#define HW_LD
#define LDT
#define S8SUBL
#define S4ADDL
#define SUBG_SC
#define RPCC
#define PAL1E
#define MULG_UC
#define ADDG_SUC
#define CVTQG
#define CMOVGT
#define MAXSW4
#define SRL
#define ADDF_UC
#define MULS_C
#define CVTDG_UC
#define STL
#define MULT_SUD
#define MULS_SUI
#define ADDQ
#define DIVT_SUIM
#define CVTGQ_VC
#define CVTTS_SUC
#define DIVS_SUI
#define DIVT_SUD
#define SQRTT_SUIM
#define SUBT_SUM
#define CVTLQ
#define EXCB
#define MAXUB8
#define WH64
#define CVTTQ_VC
#define CVTST_S
#define CMOVNE
#define ADDT_C
#define ADDG
virtual InsnDesc getInsnDesc(MachInsn *mi, ushort opIndex, ushort sz=0)
Definition: AlphaISA.cpp:86
#define SUBS_UM
#define CMPGEQ
#define SQRTS_SU
#define SUBT_UM
#define CVTTQ_SVC
#define MULT_M
#define CVTQS_SUID
#define CVTTQ_C
#define EXTQH
#define CVTTQ_SVM
const char * DIAG_Unimplemented
#define CVTGF_U
#define DIVG_UC
#define DIVT_SUI
#define DIVT_C
#define FP_MASK
#define SUBF
#define FBLT
#define DIVG_SC
#define BR_DISP_SIGN
#define MULT_U
#define CVTDG_SC
#define MSKLH
#define FCMOVLT
#define SUBS_SU
#define SUBF_C
#define SQRTS_D
#define BR_DISP(INSN)
#define FETCH
#define ITOFS
#define PAL19
#define DIVG_SU
#define SQRTT_SUM
#define ADDS_UD
#define CVTTS_SUIC
#define INSQL
#define BNE
#define SQRTF_UC
#define CVTTS_SUI
#define FBEQ
#define SQRTS_SUC
#define SUBS_U
#define DIVF_SU
#define OpFltOp
#define DIVT_SUID
#define CVTQT_SUIC
#define DIVT_M
#define CPYS
#define EXTWH
#define UMULH
#define CVTTQ_SVIM
#define SUBG_SU
#define ADDS_SUM
#define CVTTS
#define CMPTLE
#define CVTQT_M
#define OP_MASK
#define MULF_U
#define DIVT_SUC
#define SQRTG_UC
#define CVTTQ_SVI
#define CVTGD_SUC
#define CVTGD_SU
#define DIVT
#define FBGE
#define CVTTS_M
#define CVTGQ_C
#define S8SUBQ
#define MT_FPCR
#define DIVS
#define SUBS_SUID
#define CVTQT_SUID
#define ADDF_SC
#define MULF_UC
#define ADDS_UM
#define LDQ
#define EXTQL
#define STQ_C
#define EQV
#define CVTTQ_SVD
#define SQRTT_UM
#define CMPTLE_SU
#define DIVT_D
#define SQRTG_SUC
#define BLBS
#define CVTGF_C
#define ADDT_U
#define CVTTQ_VM
#define SQRTG_C
#define LDL_L
#define CVTTQ_D
#define MULT_SUC
#define DIVT_UM
#define STB
#define SQRTG
#define MULT_SUIC
#define ECB
#define CVTQS_C
#define SQRTT
#define STF
#define BGT
#define MULT_SUM
#define MULS_UD
#define DIVS_UD
#define CMPGEQ_S
#define SQRTG_SC
#define MULT_SUID
#define OPR_MASK
#define WMB
#define CVTQG_C
#define MAXSB8
#define SUBF_SU
#define SUBS_SUM
#define MINSB8
#define CVTTQ
#define SUBT_M
#define CVTTS_UC
#define SUBT_SUIC
#define DIVF_UC
#define CVTTQ_M
#define AMASK
#define ITOFT
#define UNPKBW
#define RS
#define SUBT_SUC
#define STQ
#define SQRTS_M
#define OpFltToInt
#define CVTGF_SC
#define STG
#define CVTGD_C
#define SQRTF_C
#define MULG_C
#define CVTTS_UM
#define ADDS_SUC
#define BLE
#define ADDS_UC
#define MULS_SU
#define SQRTS
#define EXTWL
unsigned short int ushort
Definition: uint.h:120
#define DIVT_UC
#define SUBT_D
#define SUBT_SU
#define LDBU
#define ADDG_U
#define INSBL
#define CMPTUN
#define SUBG_UC
#define MULF_SC
#define SUBF_UC
#define SEXTB
#define CMOVEQ
#define DIVT_SUIC
#define CVTGF_SU
#define CMPGLE_S
#define DIVS_U
#define DIVS_SUM
#define BSR
#define CMOVLBS
#define MSKBL
#define DIVF_SC
#define OpFltVAX
#define CVTTS_SUIM
#define SLL
#define DIVS_C
#define SQRTT_D
#define SUBT_SUIM
#define SUBT_SUID
#define BIC
#define MULS_UC
#define INSQH
#define ADDS_SUIC
#define MULQ
#define CVTQF_C
#define SQRTT_UD
#define IMPLVER
#define BLBC
#define SUBF_SUC
#define ORNOT
#define CMPBGE
#define STS
#define ADDG_UC
#define CVTGQ_S
#define CALL_PAL
#define CVTGF_SUC
#define CVTTS_SU
#define BR
#define SQRTT_SUD
#define CVTGQ
#define SUBT_C
#define CVTDG_U
#define MULT_UC
#define CVTTQ_V
#define ADDF_C
#define ADDT_UM
#define ADDT_SUM
#define LDQ_L
#define INSLL
#define CPYSN
#define DIVF_S
#define MFC_MASK
#define CVTQS_M
#define SUBT_UC
#define ADDL_V
#define CVTTS_SUID
#define BLT
#define RC
#define SUBT_SUD
#define DIVF
#define SQRTS_UC
#define DIVF_C
#define ADDF_S
#define CVTQS
#define CVTGQ_SVC
#define DIVT_U
#define CMPTLT_SU
#define MULS_SUIM
#define CVTQT
#define SUBQ
#define DIVS_SUC
#define DIVF_SUC
#define SUBS_SUD
#define MULT
#define ADDT_D
#define MULG
#define S4SUBQ
#define SQRTT_SUIC
#define SRA
#define MSKWH
#define MULS_SUID
#define CMPTEQ_SU
#define CALLSYS
#define SUBS_SUIM
#define CMPGLT
#define DIVG
#define SQRTF_SC
#define CVTGD_SC
#define SUBG_S
#define SUBF_S
#define SUBL
#define CVTTS_U
virtual VMA getInsnTargetVMA(MachInsn *mi, VMA pc, ushort opIndex, ushort sz=0)
Definition: AlphaISA.cpp:774
#define CVTQT_SUIM
#define SQRTS_UM
#define LDAH
#define ADDF_U
#define CMPGLT_S
#define MINUW4
#define MULT_SUIM
#define DIVS_SUD
#define SUBT_UD
#define BIS
#define PKWB
#define LDS
#define ADDS_SUD
#define JMP
#define SUBF_U
#define SUBS_C
#define CMPTUN_SU
#define ADDT_SUD
#define ADDF_SU
#define SQRTF_S
#define CVTQS_SUI
#define ADDS_SUIM
#define CVTQF
#define CVTGQ_V
#define PAL1D
#define MSKQH
#define ZAP
#define UNPKBL
#define MULT_UD
#define ADDT_SUIM
#define AND
static const ushort MINSN_SIZE
Definition: AlphaISA.hpp:136
#define FBLE
#define ADDS_D
#define SQRTT_C
#define MULS_SUIC
#define STT
#define DIVS_M
#define DIVT_UD
void MachInsn
Definition: ISATypes.hpp:87
#define DIVG_S
#define CMOVLT
#define MF_FPCR
#define DIVS_SUIM
#define CMOVLBC
#define MB
#define SQRTT_SUI
#define MULT_SUI
#define STL_C
#define MULF_SU
#define CPYSE
#define CVTTS_D
#define MULF_S
#define MULS_UM
#define CVTTQ_VD
#define SUBG_C
#define CVTGD_S
#define ADDS_C
#define SUBL_V
#define DIVS_SU
#define DIVG_SUC
#define MULS_SUD
#define MULS_M
#define SQRTS_SUM
#define SUBG_U
#define DIVS_UC
#define MAXUW4
#define DIVG_C
#define ADDT_SUC
#define MULT_UM
#define CVTGD_U
#define SEXTW
#define CVTTS_UD
#define CVTST
#define MSKQL
#define ADDS_M
#define SQRTT_U
#define CMOVLE
#define MBR_MASK
#define MULG_S
#define SQRTS_UD
#define SQRTT_SUID
#define TRAPB
#define S4SUBL
#define SUBS_SUIC
#define CVTQT_C
#define SUBG
#define MULL
#define EXTLH
#define OpIntMult
#define SQRTS_SUI
#define ADDT
#define EXTBL
#define CVTGQ_SV
#define CMPTLT
#define MULT_C
#define MSKWL
#define CVTGF_UC
#define INSLH
#define XOR
#define CVTGF_S
#define ADDS_SU
#define SQRTT_UC
#define DIAG_Die(...)
Definition: diagnostics.h:267
#define CVTDG_S
#define SQRTG_S
#define GCC_ATTR_UNUSED
Definition: gcc-attr.h:80
#define CVTDG_SU
#define MULS_SUM
#define FBNE
#define ADDT_M
#define CVTQT_SUI
#define DIVS_SUID
#define CVTQS_SUIC
#define EXTLL
#define LDG
#define CVTTS_SUM
#define FTOIT
#define MULF_SUC
#define SUBS_UC
#define SUBS_D
#define CVTQT_D
static MachInsn * mi
Definition: x86ISAXed.cpp:91
#define OpIntShift
#define CMPGLE
#define SUBQ_V
#define DIVF_U
#define CVTGF
#define ADDT_UD
#define SQRTS_U
#define LDQ_U
#define CMPTEQ
#define JSR_COROUTINE
#define FCMOVEQ
#define ADDT_UC
#define ADDT_SUI
#define CMPLT
#define SQRTT_SU
virtual void decode(std::ostream &os, MachInsn *mi, VMA vma, ushort opIndex)
Definition: AlphaISA.cpp:819
#define SQRTF
#define INSWL
#define ADDG_SU
#define ADDS_SUID
#define LDF
#define LDA
#define CVTDG_SUC
#define MULT_D
#define SQRTS_SUIM
#define RET
#define SUBS_UD
#define ADDG_C
#define LDL
#define FCMOVGE
#define OpMisc
#define SUBS_M
#define CTPOP
#define ADDT_SUIC
#define MULT_SU
#define CMPLE
#define MULF_C
#define ADDT_SU
#define SQRTF_U
#define MULG_U
#define OpIntToFlt
#define ADDG_S
#define CVTQL_V
#define MULG_SC
#define S8ADDL
#define ADDG_SC
#define S8ADDQ
#define CMPULE
#define ZAPNOT
#define HW_ST
#define ITOFF
#define SUBG_SUC
#define SQRTS_SUD
#define SUBT
#define CVTDG
#define ADDS_SUI
#define OpFltIEEE
#define MULS_D