136 lines
		
	
	
	
		
			5.6 KiB
		
	
	
	
		
			Modula-2
		
	
	
	
	
	
			
		
		
	
	
			136 lines
		
	
	
	
		
			5.6 KiB
		
	
	
	
		
			Modula-2
		
	
	
	
	
	
| % emcode definitions for the CEM compiler -- intermediate code
 | |
| C_adf(p)	| arith p;	| OP(op_adf), CST(p)
 | |
| C_adi(p)	| arith p;	| OP(op_adi), CST(p)
 | |
| C_adp(p)	| arith p;	| OP(op_adp), CST(p)
 | |
| C_ads(p)	| arith p;	| OP(op_ads), CST(p)
 | |
| C_adu(p)	| arith p;	| OP(op_adu), CST(p)
 | |
| C_and(p)	| arith p;	| OP(op_and), CST(p)
 | |
| C_asp(p)	| arith p;	| OP(op_asp), CST(p)
 | |
| C_bra(l)	| label l;	| OP(op_bra), CST((arith)l)
 | |
| C_cai()		|		| OP(op_cai)
 | |
| C_cal(p)	| char *p;	| OP(op_cal), PNAM(p)
 | |
| C_cff()		|		| OP(op_cff)
 | |
| C_cfi()		|		| OP(op_cfi)
 | |
| C_cfu()		|		| OP(op_cfu)
 | |
| C_cif()		|		| OP(op_cif)
 | |
| C_cii()		|		| OP(op_cii)
 | |
| C_ciu()		|		| OP(op_ciu)
 | |
| C_cmf(p)	| arith p;	| OP(op_cmf), CST(p)
 | |
| C_cmi(p)	| arith p;	| OP(op_cmi), CST(p)
 | |
| C_cmp()		|		| OP(op_cmp)
 | |
| C_cmu(p)	| arith p;	| OP(op_cmu), CST(p)
 | |
| C_com(p)	| arith p;	| OP(op_com), CST(p)
 | |
| C_csa(p)	| arith p;	| OP(op_csa), CST(p)
 | |
| C_csb(p)	| arith p;	| OP(op_csb), CST(p)
 | |
| C_cuf()		|		| OP(op_cuf)
 | |
| C_cui()		|		| OP(op_cui)
 | |
| C_cuu()		|		| OP(op_cuu)
 | |
| C_dup(p)	| arith p;	| OP(op_dup), CST(p)
 | |
| C_dvf(p)	| arith p;	| OP(op_dvf), CST(p)
 | |
| C_dvi(p)	| arith p;	| OP(op_dvi), CST(p)
 | |
| C_dvu(p)	| arith p;	| OP(op_dvu), CST(p)
 | |
| C_fil_dlb(l, o)	| label l; arith o;	| OP(op_fil), DOFF(l, o)
 | |
| C_ior(p)	| arith p;	| OP(op_ior), CST(p)
 | |
| C_lae_dnam(p, o)	| char *p; arith o;	| OP(op_lae), NOFF(p, o)
 | |
| C_lae_dlb(l, o)	| label l; arith o;	| OP(op_lae), DOFF(l, o)
 | |
| C_lal(p)	| arith p;	| OP(op_lal), CST(p)
 | |
| C_ldc(p)	| arith p;	| OP(op_ldc), DCST(p)
 | |
| C_lde_dnam(p, o)	| char *p; arith o;	| OP(op_lde), NOFF(p, o)
 | |
| C_lde_dlb(l, o)	| label l; arith o;	| OP(op_lde), DOFF(l, o)
 | |
| C_ldl(p)	| arith p;	| OP(op_ldl), CST(p)
 | |
| C_lfr(p)	| arith p;	| OP(op_lfr), CST(p)
 | |
| C_lin(p)	| arith p;	| OP(op_lin), CST(p)
 | |
| C_loc(p)	| arith p;	| OP(op_loc), CST(p)
 | |
| C_loe_dnam(p, o)	| char *p; arith o;	| OP(op_loe), NOFF(p, o)
 | |
| C_loe_dlb(l, o)	| label l; arith o;	| OP(op_loe), DOFF(l, o)
 | |
| C_loi(p)	| arith p;	| OP(op_loi), CST(p)
 | |
| C_lol(p)	| arith p;	| OP(op_lol), CST(p)
 | |
| C_lor(p)	| arith p;	| OP(op_lor), CST(p)
 | |
| C_lpi(p)	| char *p;	| OP(op_lpi), PNAM(p)
 | |
| C_mlf(p)	| arith p;	| OP(op_mlf), CST(p)
 | |
| C_mli(p)	| arith p;	| OP(op_mli), CST(p)
 | |
| C_mlu(p)	| arith p;	| OP(op_mlu), CST(p)
 | |
| C_ngf(p)	| arith p;	| OP(op_ngf), CST(p)
 | |
| C_ngi(p)	| arith p;	| OP(op_ngi), CST(p)
 | |
| C_ret(p)	| arith p;	| OP(op_ret), CST(p)
 | |
| C_rmi(p)	| arith p;	| OP(op_rmi), CST(p)
 | |
| C_rmu(p)	| arith p;	| OP(op_rmu), CST(p)
 | |
| C_sbf(p)	| arith p;	| OP(op_sbf), CST(p)
 | |
| C_sbi(p)	| arith p;	| OP(op_sbi), CST(p)
 | |
| C_sbs(p)	| arith p;	| OP(op_sbs), CST(p)
 | |
| C_sbu(p)	| arith p;	| OP(op_sbu), CST(p)
 | |
| C_sde_dnam(p, o)	| char *p; arith o;	| OP(op_sde), NOFF(p, o)
 | |
| C_sde_dlb(l, o)	| label l; arith o;	| OP(op_sde), DOFF(l, o)
 | |
| C_sdl(p)	| arith p;	| OP(op_sdl), CST(p)
 | |
| C_sli(p)	| arith p;	| OP(op_sli), CST(p)
 | |
| C_slu(p)	| arith p;	| OP(op_slu), CST(p)
 | |
| C_sri(p)	| arith p;	| OP(op_sri), CST(p)
 | |
| C_sru(p)	| arith p;	| OP(op_sru), CST(p)
 | |
| C_ste_dnam(p, o)	| char *p; arith o;	| OP(op_ste), NOFF(p, o)
 | |
| C_ste_dlb(l, o)	| label l; arith o;	| OP(op_ste), DOFF(l, o)
 | |
| C_sti(p)	| arith p;	| OP(op_sti), CST(p)
 | |
| C_stl(p)	| arith p;	| OP(op_stl), CST(p)
 | |
| C_xor(p)	| arith p;	| OP(op_xor), CST(p)
 | |
| C_zeq(l)	| label l;	| OP(op_zeq), CST((arith)l)
 | |
| C_zge(l)	| label l;	| OP(op_zge), CST((arith)l)
 | |
| C_zgt(l)	| label l;	| OP(op_zgt), CST((arith)l)
 | |
| C_zle(l)	| label l;	| OP(op_zle), CST((arith)l)
 | |
| C_zlt(l)	| label l;	| OP(op_zlt), CST((arith)l)
 | |
| C_zne(l)	| label l;	| OP(op_zne), CST((arith)l)
 | |
| %
 | |
| C_df_dlb(l)	| label l;	| DLB(l)
 | |
| C_df_dnam(s)	| char *s;	| DNAM(s)
 | |
| C_df_ilb(l)	| label l;	| ILB(l)
 | |
| %
 | |
| C_bss_cst(n, w, i)	| arith n, w; int i;	|
 | |
| 	PS(ps_bss), DCST(n), CST(w), CST((arith)i)
 | |
| %
 | |
| C_con_icon(val, siz)	| char *val; arith siz;	|
 | |
| 	PS(ps_con), WCON(sp_icon, val, siz), CEND()
 | |
| C_con_ucon(val, siz)	| char *val; arith siz;	|
 | |
| 	PS(ps_con), WCON(sp_ucon, val, siz), CEND()
 | |
| C_con_fcon(val, siz)	| char *val; arith siz;	|
 | |
| 	PS(ps_con), WCON(sp_fcon, val, siz), CEND()
 | |
| C_con_scon(str, siz)	| char *str; arith siz;	| PS(ps_con), CSTR(str), CEND()
 | |
| C_con_dnam(str, val)	| char *str; arith val;	|
 | |
| 	PS(ps_con), NOFF(str, val), CEND()
 | |
| C_con_dlb(l, val)	| label l; arith val;	|
 | |
| 	PS(ps_con), DOFF(l, val), CEND()
 | |
| C_con_pnam(str)	| char *str;	| PS(ps_con), PNAM(str), CEND()
 | |
| %
 | |
| C_rom_cst(l)	| arith l;	| PS(ps_rom), CST(l), CEND()
 | |
| C_rom_icon(val, siz)	| char *val; arith siz;	|
 | |
| 	PS(ps_rom), WCON(sp_icon, val, siz), CEND()
 | |
| C_rom_fcon(val, siz)	| char *val; arith siz;	|
 | |
| 	PS(ps_rom), WCON(sp_fcon, val, siz), CEND()
 | |
| C_rom_ilb(l)	| label l;	| PS(ps_rom), ILB(l), CEND()
 | |
| %
 | |
| C_cst(l)	| arith l;	| CST(l)
 | |
| C_icon(val, siz)	| char *val; arith siz;	| WCON(sp_icon, val, siz)
 | |
| C_ucon(val, siz)	| char *val; arith siz;	| WCON(sp_ucon, val, siz)
 | |
| C_fcon(val, siz)	| char *val; arith siz;	| WCON(sp_fcon, val, siz)
 | |
| C_scon(str, siz)	| char *str; arith siz;	| CSTR(str)
 | |
| C_dnam(str, val)	| char *str; arith val;	| NOFF(str, val)
 | |
| C_dlb(l, val)	| label l; arith val;	| DOFF(l, val)
 | |
| C_pnam(str)	| char *str;	| PNAM(str)
 | |
| C_ilb(l)	| label l;	| ILB(l)
 | |
| %
 | |
| C_pro_narg(p1)	| char *p1;	| PS(ps_pro), PNAM(p1), CEND()
 | |
| C_end(l)	| arith l;	| PS(ps_end), CST(l)
 | |
| %
 | |
| C_exa(s)	| char *s;	| PS(ps_exa), DNAM(s)
 | |
| C_exp(s)	| char *s;	| PS(ps_exp), PNAM(s)
 | |
| C_ina_pt(l)	| label l;	| PS(ps_ina), DLB(l)
 | |
| C_ina(s)	| char *s;	| PS(ps_ina), DNAM(s)
 | |
| C_inp(s)	| char *s;	| PS(ps_inp), PNAM(s)
 | |
| %
 | |
| C_ms_err()	|	| PS(ps_mes), CST((arith)ms_err), CEND()
 | |
| C_ms_emx(p1, p2)	| arith p1, p2;	|
 | |
| 	PS(ps_mes), CST((arith)ms_emx), CST(p1), CST(p2), CEND()
 | |
| C_ms_reg(a, b, c, d)	| arith a, b; int c, d;	|
 | |
| 	PS(ps_mes), CST((arith)ms_reg), CST(a), CST(b), CST((arith)c), CST((arith)d), CEND()
 | |
| C_ms_src(l, s)	| arith l; char *s;	|
 | |
| 	PS(ps_mes), CST((arith)ms_src), CST(l), CSTR(s), CEND()
 | |
| C_ms_flt()	|	| PS(ps_mes), CST((arith)ms_flt), CEND()
 | |
| C_ms_par(l)	| arith l;	| PS(ps_mes), CST((arith)ms_par), CST(l), CEND()
 | |
| C_ms_gto()	|	| PS(ps_mes), CST((arith)ms_gto), CEND()
 |