2 * (c) copyright 1990 by the Vrije Universiteit, Amsterdam, The Netherlands.
3 * See the copyright notice in the ACK home directory, in the file "Copyright".
5 #define RCSID1 "$Id: mach1.c,v 1.4 1994/06/24 13:41:07 ceriel Exp $"
8 * VAX-11 Machine dependent C declarations
11 /* Addressing modes */
18 #define DISPLB_MODE 10
19 #define DISPLW_MODE 12
20 #define DISPLL_MODE 14
21 #define DISPLB_DEF_MODE 11
22 #define DISPLW_DEF_MODE 13
23 #define DISPLL_DEF_MODE 15
26 #define DISPL 16 /* not an addressing mode; used for branch
27 displacement addressing
29 #define ABS 17 /* absolute mode (only for internal use) */
30 #define IMM 18 /* immediate mode (only for internal use) */
31 #define REL 19 /* relative mode (only for internal use) */
32 #define REL_DEF 20 /* relative deferred mode (only for internal
36 /* Some mnemonics used in mach5.c */
38 #define PC 15 /* program counter */
39 #define BRB 0x11 /* opcode of branch with byte offset */
40 #define BRW 0x31 /* opcode of branch with word offset */
41 #define JMP 0x17 /* opcode of jmp instruction */
43 /* Test if a constant is suitable for literal mode */
45 #define literal(z) (((z) & ~(int)0x3f) == 0)
47 /* Declarations for operands */
51 int mode; /* addressing mode */
52 int reg; /* register used in addressing mode */
53 int relo; /* index in relocation table for exp */
54 int size; /* size as imposed by instruction
55 -1 indicates bit-field (no immediate mode
57 -2 indicates address (no register mode
58 or immediate mode allowed)
60 int index_reg; /* for indexed mode contains index reg,
65 extern struct operand opnd[6]; /* maximum number of operands of a VAX
68 extern int op_ind; /* index in opng array */