Back to index

cell-binutils  2.17cvs20070401
Classes | Defines | Enumerations
mmix.h File Reference
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  mmix_spec_reg
struct  mmix_opcode

Defines

#define IMM_OFFSET_BIT   1
#define COND_INV_BIT   0x8
#define PRED_INV_BIT   0x10
#define PUSHGO_INSN_BYTE   0xbe
#define GO_INSN_BYTE   0x9e
#define SETL_INSN_BYTE   0xe3
#define INCML_INSN_BYTE   0xe6
#define INCMH_INSN_BYTE   0xe5
#define INCH_INSN_BYTE   0xe4
#define SWYM_INSN_BYTE   0xfd
#define JMP_INSN_BYTE   0xf0
#define MAX_GREGS   223

Enumerations

enum  mmix_insn_type {
  mmix_type_pseudo, mmix_type_normal, mmix_type_branch, mmix_type_condbranch,
  mmix_type_memaccess_octa, mmix_type_memaccess_tetra, mmix_type_memaccess_wyde, mmix_type_memaccess_byte,
  mmix_type_memaccess_block, mmix_type_jsr
}
enum  mmix_operands_type {
  mmix_operands_none = 0, mmix_operands_regs, mmix_operands_reg_yz, mmix_operands_regs_z_opt,
  mmix_operands_regs_z, mmix_operands_jmp, mmix_operands_pushgo, mmix_operands_roundregs_z,
  mmix_operands_pop, mmix_operands_roundregs, mmix_operands_sync, mmix_operands_x_regs_z,
  mmix_operands_neg, mmix_operands_regaddr, mmix_operands_pushj, mmix_operands_get,
  mmix_operands_put, mmix_operands_set, mmix_operands_save, mmix_operands_unsave,
  mmix_operands_xyz_opt, mmix_operands_resume, mmix_operands_loc, mmix_operands_prefix,
  mmix_operands_byte, mmix_operands_wyde, mmix_operands_tetra, mmix_operands_octa,
  mmix_operands_local, mmix_operands_bspec, mmix_operands_espec
}

Class Documentation

struct mmix_spec_reg

Definition at line 24 of file mmix.h.

Class Members
const char * name
unsigned int number
struct mmix_opcode

Definition at line 153 of file mmix.h.

Class Members
unsigned long lose
unsigned long match
const char * name

Define Documentation

#define COND_INV_BIT   0x8

Definition at line 172 of file mmix.h.

#define GO_INSN_BYTE   0x9e

Definition at line 176 of file mmix.h.

#define IMM_OFFSET_BIT   1

Definition at line 171 of file mmix.h.

#define INCH_INSN_BYTE   0xe4

Definition at line 180 of file mmix.h.

#define INCMH_INSN_BYTE   0xe5

Definition at line 179 of file mmix.h.

#define INCML_INSN_BYTE   0xe6

Definition at line 178 of file mmix.h.

#define JMP_INSN_BYTE   0xf0

Definition at line 182 of file mmix.h.

#define MAX_GREGS   223

Definition at line 186 of file mmix.h.

#define PRED_INV_BIT   0x10

Definition at line 173 of file mmix.h.

#define PUSHGO_INSN_BYTE   0xbe

Definition at line 175 of file mmix.h.

#define SETL_INSN_BYTE   0xe3

Definition at line 177 of file mmix.h.

#define SWYM_INSN_BYTE   0xfd

Definition at line 181 of file mmix.h.


Enumeration Type Documentation

Enumerator:
mmix_type_pseudo 
mmix_type_normal 
mmix_type_branch 
mmix_type_condbranch 
mmix_type_memaccess_octa 
mmix_type_memaccess_tetra 
mmix_type_memaccess_wyde 
mmix_type_memaccess_byte 
mmix_type_memaccess_block 
mmix_type_jsr 

Definition at line 31 of file mmix.h.

Enumerator:
mmix_operands_none 
mmix_operands_regs 
mmix_operands_reg_yz 
mmix_operands_regs_z_opt 
mmix_operands_regs_z 
mmix_operands_jmp 
mmix_operands_pushgo 
mmix_operands_roundregs_z 
mmix_operands_pop 
mmix_operands_roundregs 
mmix_operands_sync 
mmix_operands_x_regs_z 
mmix_operands_neg 
mmix_operands_regaddr 
mmix_operands_pushj 
mmix_operands_get 
mmix_operands_put 
mmix_operands_set 
mmix_operands_save 
mmix_operands_unsave 
mmix_operands_xyz_opt 
mmix_operands_resume 
mmix_operands_loc 
mmix_operands_prefix 
mmix_operands_byte 
mmix_operands_wyde 
mmix_operands_tetra 
mmix_operands_octa 
mmix_operands_local 
mmix_operands_bspec 
mmix_operands_espec 

Definition at line 47 of file mmix.h.

 {
   mmix_operands_none = 0,

   /* All operands are registers: "$X,$Y,$Z".  */
   mmix_operands_regs,

   /* "$X,YZ", like SETH.  */
   mmix_operands_reg_yz,

   /* The regular "$X,$Y,$Z|Z".
      The Z is optional; if only "$X,$Y" is given, then "$X,$Y,0" is
      assumed.  */
   mmix_operands_regs_z_opt,

   /* The regular "$X,$Y,$Z|Z".  */
   mmix_operands_regs_z,

   /* "Address"; only JMP.  Zero operands allowed unless GNU syntax.  */
   mmix_operands_jmp,

   /* "$X|X,$Y,$Z|Z": PUSHGO; like "3", but X can be expressed as an
      integer.  */
   mmix_operands_pushgo,

   /* Two registers or a register and a byte, like FLOT, possibly with
      rounding: "$X,$Z|Z" or "$X,ROUND_MODE,$Z|Z".  */
   mmix_operands_roundregs_z,

   /* "X,YZ", POP.  Unless GNU syntax, zero or one operand is allowed.  */
   mmix_operands_pop,

   /* Two registers, possibly with rounding: "$X,$Z" or
      "$X,ROUND_MODE,$Z".  */
   mmix_operands_roundregs,

   /* "XYZ", like SYNC.  */
   mmix_operands_sync,

   /* "X,$Y,$Z|Z", like SYNCD.  */
   mmix_operands_x_regs_z,

   /* "$X,Y,$Z|Z", like NEG and NEGU.  The Y field is optional, default 0.  */
   mmix_operands_neg,

   /* "$X,Address, like GETA or branches.  */
   mmix_operands_regaddr,

   /* "$X|X,Address, like PUSHJ.  */
   mmix_operands_pushj,

   /* "$X,spec_reg"; GET.  */
   mmix_operands_get,

   /* "spec_reg,$Z|Z"; PUT.  */
   mmix_operands_put,

   /* Two registers, "$X,$Y".  */
   mmix_operands_set,

   /* "$X,0"; SAVE.  */
   mmix_operands_save,

   /* "0,$Z"; UNSAVE. */
   mmix_operands_unsave,

   /* "X,Y,Z"; like SWYM or TRAP.  Zero (or 1 if GNU syntax) to three
      operands, interpreted as 0; XYZ; X, YZ and X, Y, Z.  */
   mmix_operands_xyz_opt,

   /* Just "Z", like RESUME.  Unless GNU syntax, the operand can be omitted
      and will then be assumed zero.  */
   mmix_operands_resume,

   /* These are specials to handle that pseudo-directives are specified
      like ordinary insns when being mmixal-compatible.  They signify the
      specific pseudo-directive rather than the operands type.  */

   /* LOC.  */
   mmix_operands_loc,

   /* PREFIX.  */
   mmix_operands_prefix,

   /* BYTE.  */
   mmix_operands_byte,

   /* WYDE.  */
   mmix_operands_wyde,

   /* TETRA.  */
   mmix_operands_tetra,

   /* OCTA.  */
   mmix_operands_octa,

   /* LOCAL.  */
   mmix_operands_local,

   /* BSPEC.  */
   mmix_operands_bspec,

   /* ESPEC.  */
   mmix_operands_espec,
 };