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
|
1987-06-30 13:11:16 +00:00
|
|
|
EM_holsize, EM_bsssize;
|
1987-06-30 12:55:30 +00:00
|
|
|
extern int
|
1987-06-30 13:11:16 +00:00
|
|
|
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
|
1987-06-30 13:11:16 +00:00
|
|
|
|
|
|
|
/* 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;
|