source: trunk/src/binutils/include/opcode/mmix.h@ 1790

Last change on this file since 1790 was 607, checked in by bird, 22 years ago

Initial revision

  • Property cvs2svn:cvs-rev set to 1.1
  • Property svn:eol-style set to native
  • Property svn:executable set to *
File size: 4.9 KB
Line 
1/* mmix.h -- Header file for MMIX opcode table
2 Copyright (C) 2001 Free Software Foundation, Inc.
3 Written by Hans-Peter Nilsson ([email protected])
4
5This file is part of GDB, GAS, and the GNU binutils.
6
7GDB, GAS, and the GNU binutils are free software; you can redistribute
8them and/or modify them under the terms of the GNU General Public
9License as published by the Free Software Foundation; either version 2,
10or (at your option) any later version.
11
12GDB, GAS, and the GNU binutils are distributed in the hope that they
13will be useful, but WITHOUT ANY WARRANTY; without even the implied
14warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
15the GNU General Public License for more details.
16
17You should have received a copy of the GNU General Public License
18along with this file; see the file COPYING. If not, write to the Free
19Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
20
21/* We could have just a char*[] table indexed by the register number, but
22 that would not allow for synonyms. The table is terminated with an
23 entry with a NULL name. */
24struct mmix_spec_reg
25{
26 const char *name;
27 unsigned int number;
28};
29
30/* General indication of the type of instruction. */
31enum mmix_insn_type
32 {
33 mmix_type_pseudo,
34 mmix_type_normal,
35 mmix_type_branch,
36 mmix_type_condbranch,
37 mmix_type_memaccess_octa,
38 mmix_type_memaccess_tetra,
39 mmix_type_memaccess_wyde,
40 mmix_type_memaccess_byte,
41 mmix_type_memaccess_block,
42 mmix_type_jsr
43 };
44
45/* Type of operands an instruction takes. Use when parsing assembly code
46 and disassembling. */
47enum mmix_operands_type
48 {
49 mmix_operands_none = 0,
50
51 /* All operands are registers: "$X,$Y,$Z". */
52 mmix_operands_regs,
53
54 /* "$X,YZ", like SETH. */
55 mmix_operands_reg_yz,
56
57 /* The regular "$X,$Y,$Z|Z".
58 The Z is optional; if only "$X,$Y" is given, then "$X,$Y,0" is
59 assumed. */
60 mmix_operands_regs_z_opt,
61
62 /* The regular "$X,$Y,$Z|Z". */