ack/modules/src/read_em/em_comp.h

71 lines
2 KiB
C
Raw Normal View History

1987-03-09 15:15:03 +00:00
/*
* (c) copyright 1987 by the Vrije Universiteit, Amsterdam, The Netherlands.
* See the copyright notice in the ACK home directory, in the file "Copyright".
*/
1987-01-06 11:05:35 +00:00
/* $Header$ */
1987-06-30 12:55:30 +00:00
struct e_arg {
1987-06-30 17:02:45 +00:00
int ema_argtype; /* type of this argument */
1987-06-30 12:55:30 +00:00
union e_simple_arg {
arith emu_cst; /* a cst */
label emu_dlb; /* a numeric data label */
label emu_ilb; /* an instruction label */
char *emu_dnam; /* a data label */
char *emu_pnam; /* a procedure name */
char *emu_string; /* a string (fcon,icon,ucon,scon) */
1987-06-30 17:02:45 +00:00
} ema_arg;
arith ema_szoroff;
1987-06-30 12:55:30 +00:00
};
1987-06-30 17:02:45 +00:00
#define ema_cst ema_arg.emu_cst
#define ema_dlb ema_arg.emu_dlb
#define ema_ilb ema_arg.emu_ilb
#define ema_dnam ema_arg.emu_dnam
#define ema_pnam ema_arg.emu_pnam
#define ema_nlocals ema_szoroff
#define ema_string ema_arg.emu_string
1987-06-30 12:55:30 +00:00
1987-01-06 11:05:35 +00:00
struct e_instr {
1987-06-30 12:55:30 +00:00
int em_type; /* Type of this instr */
#define EM_MNEM 256 /* A machine instruction */
#define EM_PSEU 257 /* A pseudo */
1987-01-06 11:05:35 +00:00
#define EM_STARTMES 258 /* Start of a MES pseudo */
#define EM_MESARG 259 /* A member in a MES list */
#define EM_ENDMES 260 /* End of a MES pseudo */
#define EM_DEFILB 261 /* An instruction label definition */
#define EM_DEFDLB 262 /* A numeric data label definition */
#define EM_DEFDNAM 263 /* A non-numeric data label def */
#define EM_ERROR 264 /* Recoverable error */
#define EM_FATAL 265 /* Unrecoverable error */
1987-06-30 12:55:30 +00:00
#define EM_EOF 266 /* End of file */
int em_opcode;
struct e_arg em_arg;
1987-01-06 11:05:35 +00:00
};
1987-06-30 12:55:30 +00:00
extern arith
EM_holsize, EM_bsssize;
1987-06-30 12:55:30 +00:00
extern int
EM_holinit, EM_bssinit;
1987-06-30 12:55:30 +00:00
#define em_ilb em_arg.ema_ilb
#define em_dlb em_arg.ema_dlb
#define em_dnam em_arg.ema_dnam
1987-06-30 17:02:45 +00:00
#define em_argtype em_arg.ema_argtype
1987-06-30 12:55:30 +00:00
#define em_cst em_arg.ema_cst
#define em_pnam em_arg.ema_pnam
1987-06-30 17:02:45 +00:00
#define em_nlocals em_arg.ema_nlocals
1987-06-30 12:55:30 +00:00
#define em_string em_arg.ema_string
1987-06-30 17:02:45 +00:00
#define em_off em_arg.ema_szoroff
#define em_size em_arg.ema_szoroff
/* Arguments for EXC pseudo: */
1987-06-30 12:55:30 +00:00
#define em_exc1 em_arg.ema_cst
1987-06-30 17:02:45 +00:00
#define em_exc2 em_arg.ema_szoroff
1987-06-30 12:55:30 +00:00
extern char
*EM_error, *EM_filename;
extern unsigned int
EM_lineno;
extern int
EM_wordsize, EM_pointersize;