Browse Source

Warning hunt on ego.

Manoel Trapier 11 years ago
parent
commit
1b34c8cc9f

+ 0 - 1
util/ego/bo/bo.c

@@ -278,7 +278,6 @@ static void bo_cleanproc(proc_p p)
 
 	loop_p lp;
 	Lindex pi;
-	bblock_p b;
 
 	for (pi = Lfirst(p->p_loops); pi != (Lindex) 0;
 	   pi = Lnext(pi,p->p_loops)) {

+ 0 - 1
util/ego/ca/ca.c

@@ -161,7 +161,6 @@ static void new_name(char **s)
 {
 	static int nn = 0;
 	char buf[20];
-	int len = strlen(*s);
 
 	oldcore(*s, len+1);
 	buf[0] = '_';

+ 1 - 0
util/ego/cf/cf.c

@@ -26,6 +26,7 @@
 #include "../share/get.h"
 #include "../share/put.h"
 #include "../share/def.h"
+#include "../share/aux.h"
 #include "cf.h"
 #include "cf_succ.h"
 #include "cf_idom.h"

+ 4 - 2
util/ego/cj/cj.c

@@ -56,7 +56,7 @@
 
 static int Scj;  /* number of optimizations found */
 
-static void showinstr(line_p lnp);
+/* static void showinstr(line_p lnp); */
 
 #define DLINK(l1,l2)	l1->l_next=l2; l2->l_prev=l1
 
@@ -320,7 +320,7 @@ int main(int argc, char *argv[])
 /******
  * Debugging stuff
  */
-
+#if 0
 extern char em_mnem[]; /* The mnemonics of the EM instructions. */
 
 static void showinstr(line_p lnp)
@@ -350,3 +350,5 @@ static void showinstr(line_p lnp)
     }
     printf("\n");
 } /* showinstr */
+
+#endif

+ 37 - 37
util/ego/cs/cs_getent.c

@@ -24,43 +24,43 @@ STATIC struct inf_entity {
 	byte	inf_used;	/* Kind of entity used by key.	*/
 	byte	inf_size;	/* Indication of the size.	*/
 } inf_table[] = {
-	op_adp,	ENAOFFSETTED,	PS,
-	op_dee,	ENEXTERNAL,	WS1,
-	op_del,	ENLOCAL,	WS1,
-	op_ine,	ENEXTERNAL,	WS1,
-	op_inl,	ENLOCAL,	WS1,
-	op_lae,	ENAEXTERNAL,	PS,
-	op_lal,	ENALOCAL,	PS,
-	op_lar,	ENARRELEM,	ARDESC3,
-	op_ldc,	ENCONST,	WS2,
-	op_lde,	ENEXTERNAL,	WS2,
-	op_ldf,	ENOFFSETTED,	WS2,
-	op_ldl,	ENLOCAL,	WS2,
-	op_lil,	ENINDIR,	WS1,
-	op_lim,	ENIGNMASK,	WS1,
-	op_loc,	ENCONST,	WS1,
-	op_loe,	ENEXTERNAL,	WS1,
-	op_lof,	ENOFFSETTED,	WS1,
-	op_loi,	ENINDIR,	ARGW,
-	op_lol,	ENLOCAL,	WS1,
-	op_lpi,	ENPROC,		PS,
-	op_lxa,	ENAARGBASE,	PS,
-	op_lxl,	ENALOCBASE,	PS,
-	op_sar,	ENARRELEM,	ARDESC3,
-	op_sde,	ENEXTERNAL,	WS2,
-	op_sdf,	ENOFFSETTED,	WS2,
-	op_sdl,	ENLOCAL,	WS2,
-	op_sil,	ENINDIR,	WS1,
-	op_sim,	ENIGNMASK,	WS1,
-	op_ste,	ENEXTERNAL, 	WS1,
-	op_stf,	ENOFFSETTED,	WS1,
-	op_sti,	ENINDIR,	ARGW,
-	op_stl,	ENLOCAL,	WS1,
-	op_zer,	ENCONST,	ARGW,
-	op_zre,	ENEXTERNAL,	WS1,
-	op_zrf,	ENFZER,		ARGW,
-	op_zrl,	ENLOCAL,	WS1,
-	op_nop	/* Delimitor. */
+	{ op_adp,	ENAOFFSETTED,	PS },
+ 	{ op_dee,	ENEXTERNAL,	WS1 },
+ 	{ op_del,	ENLOCAL,	WS1 },
+ 	{ op_ine,	ENEXTERNAL,	WS1 },
+ 	{ op_inl,	ENLOCAL,	WS1 },
+ 	{ op_lae,	ENAEXTERNAL,	PS },
+ 	{ op_lal,	ENALOCAL,	PS },
+ 	{ op_lar,	ENARRELEM,	ARDESC3 },
+ 	{ op_ldc,	ENCONST,	WS2 },
+ 	{ op_lde,	ENEXTERNAL,	WS2 },
+ 	{ op_ldf,	ENOFFSETTED,	WS2 },
+ 	{ op_ldl,	ENLOCAL,	WS2 },
+ 	{ op_lil,	ENINDIR,	WS1 },
+ 	{ op_lim,	ENIGNMASK,	WS1 },
+ 	{ op_loc,	ENCONST,	WS1 },
+ 	{ op_loe,	ENEXTERNAL,	WS1 },
+ 	{ op_lof,	ENOFFSETTED,	WS1 },
+ 	{ op_loi,	ENINDIR,	ARGW },
+ 	{ op_lol,	ENLOCAL,	WS1 },
+ 	{ op_lpi,	ENPROC,		PS },
+ 	{ op_lxa,	ENAARGBASE,	PS },
+ 	{ op_lxl,	ENALOCBASE,	PS },
+ 	{ op_sar,	ENARRELEM,	ARDESC3 },
+ 	{ op_sde,	ENEXTERNAL,	WS2 },
+ 	{ op_sdf,	ENOFFSETTED,	WS2 },
+ 	{ op_sdl,	ENLOCAL,	WS2 },
+ 	{ op_sil,	ENINDIR,	WS1 },
+ 	{ op_sim,	ENIGNMASK,	WS1 },
+ 	{ op_ste,	ENEXTERNAL, 	WS1 },
+ 	{ op_stf,	ENOFFSETTED,	WS1 },
+ 	{ op_sti,	ENINDIR,	ARGW },
+ 	{ op_stl,	ENLOCAL,	WS1 },
+ 	{ op_zer,	ENCONST,	ARGW },
+ 	{ op_zre,	ENEXTERNAL,	WS1 },
+ 	{ op_zrf,	ENFZER,		ARGW },
+ 	{ op_zrl,	ENLOCAL,	WS1 },
+	{ op_nop,	0,			0 }	/* Delimitor. */
 };
 
 #define INFKEY(ip)	(ip->inf_instr & BMASK)

+ 134 - 134
util/ego/cs/cs_partit.c

@@ -38,140 +38,140 @@ static struct {
     byte i_av;		/* Idem for result of operators. */
     byte i_regtype;	/* ANY, PTR, FLT. */
 } info[] = {
-		XXX,		XXX,	XXX,	XXX,	XXX,
-/* aar */	TERNAIR_OP,	XXX,	XXX,	PS,	PTR,
-/* adf */	BINAIR_OP,	ARGW,	ARGW,	ARGW,	FLT,
-/* adi */	BINAIR_OP,	ARGW,	ARGW,	ARGW,	ANY,
-/* adp */	EXPENSIVE_LOAD,	XXX,	XXX,	XXX,	PTR,
-/* ads */	BINAIR_OP,	PS,	ARGW,	PS,	PTR,
-/* adu */	BINAIR_OP,	ARGW,	ARGW,	ARGW,	ANY,
-/* and */	BINAIR_OP,	ARGW,	ARGW,	ARGW,	ANY,
-/* asp */	FIDDLE_STACK,	XXX,	XXX,	XXX,	XXX,
-/* ass */	FIDDLE_STACK,	XXX,	XXX,	XXX,	XXX,
-/* beq */	BBLOCK_END,	XXX,	XXX,	XXX,	XXX,
-/* bge */	BBLOCK_END,	XXX,	XXX,	XXX,	XXX,
-/* bgt */	BBLOCK_END,	XXX,	XXX,	XXX,	XXX,
-/* ble */	BBLOCK_END,	XXX,	XXX,	XXX,	XXX,
-/* blm */	HOPELESS,	XXX,	XXX,	XXX,	XXX,
-/* bls */	HOPELESS,	XXX,	XXX,	XXX,	XXX,
-/* blt */	BBLOCK_END,	XXX,	XXX,	XXX,	XXX,
-/* bne */	BBLOCK_END,	XXX,	XXX,	XXX,	XXX,
-/* bra */	BBLOCK_END,	XXX,	XXX,	XXX,	XXX,
-/* cai */	SIDE_EFFECTS,	XXX,	XXX,	XXX,	XXX,
-/* cal */	SIDE_EFFECTS,	XXX,	XXX,	XXX,	XXX,
-/* cff */	TERNAIR_OP,	XXX,	XXX,	CVT,	FLT,
-/* cfi */	TERNAIR_OP,	XXX,	XXX,	CVT,	ANY,
-/* cfu */	TERNAIR_OP,	XXX,	XXX,	CVT,	ANY,
-/* cif */	TERNAIR_OP,	XXX,	XXX,	CVT,	FLT,
-/* cii */	TERNAIR_OP,	XXX,	XXX,	CVT,	ANY,
-/* ciu */	TERNAIR_OP,	XXX,	XXX,	CVT,	ANY,
-/* cmf */	BINAIR_OP,	ARGW,	ARGW,	WS,	ANY,
-/* cmi */	BINAIR_OP,	ARGW,	ARGW,	WS,	ANY,
-/* cmp */	BINAIR_OP,	PS,	PS,	WS,	ANY,
-/* cms */	BINAIR_OP,	ARGW,	ARGW,	WS,	ANY,
-/* cmu */	BINAIR_OP,	ARGW,	ARGW,	WS,	ANY,
-/* com */	UNAIR_OP,	ARGW,	XXX,	ARGW,	ANY,
-/* csa */	BBLOCK_END,	XXX,	XXX,	XXX,	XXX,
-/* csb */	BBLOCK_END,	XXX,	XXX,	XXX,	XXX,
-/* cuf */	TERNAIR_OP,	XXX,	XXX,	CVT,	FLT,
-/* cui */	TERNAIR_OP,	XXX,	XXX,	CVT,	ANY,
-/* cuu */	TERNAIR_OP,	XXX,	XXX,	CVT,	ANY,
-/* dch */	UNAIR_OP,	PS,	XXX,	PS,	PTR,
-/* dec */	UNAIR_OP,	WS,	XXX,	WS,	ANY,
-/* dee */	KILL_ENTITY,	XXX,	XXX,	XXX,	XXX,
-/* del */	KILL_ENTITY,	XXX,	XXX,	XXX,	XXX,
-/* dup */	FIDDLE_STACK,	XXX,	XXX,	XXX,	XXX,
-/* dus */	FIDDLE_STACK,	XXX,	XXX,	XXX,	XXX,
-/* dvf */	BINAIR_OP,	ARGW,	ARGW,	ARGW,	FLT,
-/* dvi */	BINAIR_OP,	ARGW,	ARGW,	ARGW,	ANY,
-/* dvu */	BINAIR_OP,	ARGW,	ARGW,	ARGW,	ANY,
-/* exg */	FIDDLE_STACK,	XXX,	XXX,	XXX,	XXX,
-/* fef */	UNAIR_OP,	ARGW,	XXX,	FEF,	XXX,
-/* fif */	BINAIR_OP,	ARGW,	ARGW,	FIF,	XXX,
-/* fil */	IGNORE,		XXX,	XXX,	XXX,	XXX,
-/* gto */	BBLOCK_END,	XXX,	XXX,	XXX,	XXX,
-/* inc */	UNAIR_OP,	WS,	XXX,	WS,	ANY,
-/* ine */	KILL_ENTITY,	XXX,	XXX,	XXX,	XXX,
-/* inl */	KILL_ENTITY,	XXX,	XXX,	XXX,	XXX,
-/* inn */	BINAIR_OP,	ARGW,	WS,	WS,	ANY,
-/* ior */	BINAIR_OP,	ARGW,	ARGW,	ARGW,	ANY,
-/* lae */	SIMPLE_LOAD,	XXX,	XXX,	XXX,	XXX,
-/* lal */	SIMPLE_LOAD,	XXX,	XXX,	XXX,	XXX,
-/* lar */	LOAD_ARRAY,	XXX,	XXX,	XXX,	ANY,
-/* ldc */	SIMPLE_LOAD,	XXX,	XXX,	XXX,	XXX,
-/* lde */	SIMPLE_LOAD,	XXX,	XXX,	XXX,	XXX,
-/* ldf */	EXPENSIVE_LOAD,	XXX,	XXX,	XXX,	ANY,
-/* ldl */	SIMPLE_LOAD,	XXX,	XXX,	XXX,	XXX,
-/* lfr */	FIDDLE_STACK,	XXX,	XXX,	XXX,	XXX,
-/* lil */	SIMPLE_LOAD,	XXX,	XXX,	XXX,	XXX,
-/* lim */	SIMPLE_LOAD,	XXX,	XXX,	XXX,	XXX,
-/* lin */	IGNORE,		XXX,	XXX,	XXX,	XXX,
-/* lni */	IGNORE,		XXX,	XXX,	XXX,	XXX,
-/* loc */	SIMPLE_LOAD,	XXX,	XXX,	XXX,	XXX,
-/* loe */	SIMPLE_LOAD,	XXX,	XXX,	XXX,	XXX,
-/* lof */	EXPENSIVE_LOAD,	XXX,	XXX,	XXX,	ANY,
-/* loi */	EXPENSIVE_LOAD,	XXX,	XXX,	XXX,	ANY,
-/* lol */	SIMPLE_LOAD,	XXX,	XXX,	XXX,	XXX,
-/* lor */	SIMPLE_LOAD,	XXX,	XXX,	XXX,	XXX,
-/* los */	FIDDLE_STACK,	XXX,	XXX,	XXX,	XXX,
-/* lpb */	UNAIR_OP,	PS,	XXX,	PS,	PTR,
-/* lpi */	SIMPLE_LOAD,	XXX,	XXX,	XXX,	XXX,
-/* lxa */	EXPENSIVE_LOAD,	XXX,	XXX,	XXX,	PTR,
-/* lxl */	EXPENSIVE_LOAD,	XXX,	XXX,	XXX,	PTR,
-/* mlf */	BINAIR_OP,	ARGW,	ARGW,	ARGW,	FLT,
-/* mli */	BINAIR_OP,	ARGW,	ARGW,	ARGW,	ANY,
-/* mlu */	BINAIR_OP,	ARGW,	ARGW,	ARGW,	ANY,
-/* mon */	HOPELESS,	XXX,	XXX,	XXX,	XXX,
-/* ngf */	UNAIR_OP,	ARGW,	XXX,	ARGW,	FLT,
-/* ngi */	UNAIR_OP,	ARGW,	XXX,	ARGW,	ANY,
-/* nop */	HOPELESS,	XXX,	XXX,	XXX,	XXX,
-/* rck */	BBLOCK_END,	XXX,	XXX,	XXX,	XXX,
-/* ret */	BBLOCK_END,	XXX,	XXX,	XXX,	XXX,
-/* rmi */	BINAIR_OP,	ARGW,	ARGW,	ARGW,	ANY,
-/* rmu */	BINAIR_OP,	ARGW,	ARGW,	ARGW,	ANY,
-/* rol */	BINAIR_OP,	ARGW,	WS,	ARGW,	ANY,
-/* ror */	BINAIR_OP,	ARGW,	WS,	ARGW,	ANY,
-/* rtt */	BBLOCK_END,	XXX,	XXX,	XXX,	XXX,
-/* sar */	STORE_ARRAY,	XXX,	XXX,	XXX,	XXX,
-/* sbf */	BINAIR_OP,	ARGW,	ARGW,	ARGW,	FLT,
-/* sbi */	BINAIR_OP,	ARGW,	ARGW,	ARGW,	ANY,
-/* sbs */	BINAIR_OP,	PS,	PS,	ARGW,	ANY,
-/* sbu */	BINAIR_OP,	ARGW,	ARGW,	ARGW,	ANY,
-/* sde */	STORE_DIRECT,	XXX,	XXX,	XXX,	XXX,
-/* sdf */	STORE_INDIR,	XXX,	XXX,	XXX,	XXX,
-/* sdl */	STORE_DIRECT,	XXX,	XXX,	XXX,	XXX,
-/* set */	UNAIR_OP,	WS,	XXX,	ARGW,	ANY,
-/* sig */	FIDDLE_STACK,	XXX,	XXX,	XXX,	XXX,
-/* sil */	STORE_INDIR,	XXX,	XXX,	XXX,	XXX,
-/* sim */	STORE_DIRECT,	XXX,	XXX,	XXX,	XXX,
-/* sli */	BINAIR_OP,	ARGW,	WS,	ARGW,	ANY,
-/* slu */	BINAIR_OP,	ARGW,	WS,	ARGW,	ANY,
-/* sri */	BINAIR_OP,	ARGW,	WS,	ARGW,	ANY,
-/* sru */	BINAIR_OP,	ARGW,	WS,	ARGW,	ANY,
-/* ste */	STORE_DIRECT,	XXX,	XXX,	XXX,	XXX,
-/* stf */	STORE_INDIR,	XXX,	XXX,	XXX,	XXX,
-/* sti */	STORE_INDIR,	XXX,	XXX,	XXX,	XXX,
-/* stl */	STORE_DIRECT,	XXX,	XXX,	XXX,	XXX,
-/* str */	HOPELESS,	XXX,	XXX,	XXX,	XXX,
-/* sts */	HOPELESS,	XXX,	XXX,	XXX,	XXX,
-/* teq */	UNAIR_OP,	WS,	XXX,	WS,	ANY,
-/* tge */	UNAIR_OP,	WS,	XXX,	WS,	ANY,
-/* tgt */	UNAIR_OP,	WS,	XXX,	WS,	ANY,
-/* tle */	UNAIR_OP,	WS,	XXX,	WS,	ANY,
-/* tlt */	UNAIR_OP,	WS,	XXX,	WS,	ANY,
-/* tne */	UNAIR_OP,	WS,	XXX,	WS,	ANY,
-/* trp */	BBLOCK_END,	XXX,	XXX,	XXX,	XXX,
-/* xor */	BINAIR_OP,	ARGW,	ARGW,	ARGW,	ANY,
-/* zeq */	BBLOCK_END,	XXX,	XXX,	XXX,	XXX,
-/* zer */	SIMPLE_LOAD,	XXX,	XXX,	XXX,	XXX,
-/* zge */	BBLOCK_END,	XXX,	XXX,	XXX,	XXX,
-/* zgt */	BBLOCK_END,	XXX,	XXX,	XXX,	XXX,
-/* zle */	BBLOCK_END,	XXX,	XXX,	XXX,	XXX,
-/* zlt */	BBLOCK_END,	XXX,	XXX,	XXX,	XXX,
-/* zne */	BBLOCK_END,	XXX,	XXX,	XXX,	XXX,
-/* zre */	KILL_ENTITY,	XXX,	XXX,	XXX,	XXX,
-/* zrf */	SIMPLE_LOAD,	XXX,	XXX,	XXX,	XXX,
-/* zrl */	KILL_ENTITY,	XXX,	XXX,	XXX,	XXX
+			{ XXX,		XXX,	XXX,	XXX,	XXX },
+ /* aar */	{ TERNAIR_OP,	XXX,	XXX,	PS,	PTR },
+ /* adf */	{ BINAIR_OP,	ARGW,	ARGW,	ARGW,	FLT },
+ /* adi */	{ BINAIR_OP,	ARGW,	ARGW,	ARGW,	ANY },
+ /* adp */	{ EXPENSIVE_LOAD,	XXX,	XXX,	XXX,	PTR },
+ /* ads */	{ BINAIR_OP,	PS,	ARGW,	PS,	PTR },
+ /* adu */	{ BINAIR_OP,	ARGW,	ARGW,	ARGW,	ANY },
+ /* and */	{ BINAIR_OP,	ARGW,	ARGW,	ARGW,	ANY },
+ /* asp */	{ FIDDLE_STACK,	XXX,	XXX,	XXX,	XXX },
+ /* ass */	{ FIDDLE_STACK,	XXX,	XXX,	XXX,	XXX },
+ /* beq */	{ BBLOCK_END,	XXX,	XXX,	XXX,	XXX },
+ /* bge */	{ BBLOCK_END,	XXX,	XXX,	XXX,	XXX },
+ /* bgt */	{ BBLOCK_END,	XXX,	XXX,	XXX,	XXX },
+ /* ble */	{ BBLOCK_END,	XXX,	XXX,	XXX,	XXX },
+ /* blm */	{ HOPELESS,	XXX,	XXX,	XXX,	XXX },
+ /* bls */	{ HOPELESS,	XXX,	XXX,	XXX,	XXX },
+ /* blt */	{ BBLOCK_END,	XXX,	XXX,	XXX,	XXX },
+ /* bne */	{ BBLOCK_END,	XXX,	XXX,	XXX,	XXX },
+ /* bra */	{ BBLOCK_END,	XXX,	XXX,	XXX,	XXX },
+ /* cai */	{ SIDE_EFFECTS,	XXX,	XXX,	XXX,	XXX },
+ /* cal */	{ SIDE_EFFECTS,	XXX,	XXX,	XXX,	XXX },
+ /* cff */	{ TERNAIR_OP,	XXX,	XXX,	CVT,	FLT },
+ /* cfi */	{ TERNAIR_OP,	XXX,	XXX,	CVT,	ANY },
+ /* cfu */	{ TERNAIR_OP,	XXX,	XXX,	CVT,	ANY },
+ /* cif */	{ TERNAIR_OP,	XXX,	XXX,	CVT,	FLT },
+ /* cii */	{ TERNAIR_OP,	XXX,	XXX,	CVT,	ANY },
+ /* ciu */	{ TERNAIR_OP,	XXX,	XXX,	CVT,	ANY },
+ /* cmf */	{ BINAIR_OP,	ARGW,	ARGW,	WS,	ANY },
+ /* cmi */	{ BINAIR_OP,	ARGW,	ARGW,	WS,	ANY },
+ /* cmp */	{ BINAIR_OP,	PS,	PS,	WS,	ANY },
+ /* cms */	{ BINAIR_OP,	ARGW,	ARGW,	WS,	ANY },
+ /* cmu */	{ BINAIR_OP,	ARGW,	ARGW,	WS,	ANY },
+ /* com */	{ UNAIR_OP,	ARGW,	XXX,	ARGW,	ANY },
+ /* csa */	{ BBLOCK_END,	XXX,	XXX,	XXX,	XXX },
+ /* csb */	{ BBLOCK_END,	XXX,	XXX,	XXX,	XXX },
+ /* cuf */	{ TERNAIR_OP,	XXX,	XXX,	CVT,	FLT },
+ /* cui */	{ TERNAIR_OP,	XXX,	XXX,	CVT,	ANY },
+ /* cuu */	{ TERNAIR_OP,	XXX,	XXX,	CVT,	ANY },
+ /* dch */	{ UNAIR_OP,	PS,	XXX,	PS,	PTR },
+ /* dec */	{ UNAIR_OP,	WS,	XXX,	WS,	ANY },
+ /* dee */	{ KILL_ENTITY,	XXX,	XXX,	XXX,	XXX },
+ /* del */	{ KILL_ENTITY,	XXX,	XXX,	XXX,	XXX },
+ /* dup */	{ FIDDLE_STACK,	XXX,	XXX,	XXX,	XXX },
+ /* dus */	{ FIDDLE_STACK,	XXX,	XXX,	XXX,	XXX },
+ /* dvf */	{ BINAIR_OP,	ARGW,	ARGW,	ARGW,	FLT },
+ /* dvi */	{ BINAIR_OP,	ARGW,	ARGW,	ARGW,	ANY },
+ /* dvu */	{ BINAIR_OP,	ARGW,	ARGW,	ARGW,	ANY },
+ /* exg */	{ FIDDLE_STACK,	XXX,	XXX,	XXX,	XXX },
+ /* fef */	{ UNAIR_OP,	ARGW,	XXX,	FEF,	XXX },
+ /* fif */	{ BINAIR_OP,	ARGW,	ARGW,	FIF,	XXX },
+ /* fil */	{ IGNORE,		XXX,	XXX,	XXX,	XXX },
+ /* gto */	{ BBLOCK_END,	XXX,	XXX,	XXX,	XXX },
+ /* inc */	{ UNAIR_OP,	WS,	XXX,	WS,	ANY },
+ /* ine */	{ KILL_ENTITY,	XXX,	XXX,	XXX,	XXX },
+ /* inl */	{ KILL_ENTITY,	XXX,	XXX,	XXX,	XXX },
+ /* inn */	{ BINAIR_OP,	ARGW,	WS,	WS,	ANY },
+ /* ior */	{ BINAIR_OP,	ARGW,	ARGW,	ARGW,	ANY },
+ /* lae */	{ SIMPLE_LOAD,	XXX,	XXX,	XXX,	XXX },
+ /* lal */	{ SIMPLE_LOAD,	XXX,	XXX,	XXX,	XXX },
+ /* lar */	{ LOAD_ARRAY,	XXX,	XXX,	XXX,	ANY },
+ /* ldc */	{ SIMPLE_LOAD,	XXX,	XXX,	XXX,	XXX },
+ /* lde */	{ SIMPLE_LOAD,	XXX,	XXX,	XXX,	XXX },
+ /* ldf */	{ EXPENSIVE_LOAD,	XXX,	XXX,	XXX,	ANY },
+ /* ldl */	{ SIMPLE_LOAD,	XXX,	XXX,	XXX,	XXX },
+ /* lfr */	{ FIDDLE_STACK,	XXX,	XXX,	XXX,	XXX },
+ /* lil */	{ SIMPLE_LOAD,	XXX,	XXX,	XXX,	XXX },
+ /* lim */	{ SIMPLE_LOAD,	XXX,	XXX,	XXX,	XXX },
+ /* lin */	{ IGNORE,		XXX,	XXX,	XXX,	XXX },
+ /* lni */	{ IGNORE,		XXX,	XXX,	XXX,	XXX },
+ /* loc */	{ SIMPLE_LOAD,	XXX,	XXX,	XXX,	XXX },
+ /* loe */	{ SIMPLE_LOAD,	XXX,	XXX,	XXX,	XXX },
+ /* lof */	{ EXPENSIVE_LOAD,	XXX,	XXX,	XXX,	ANY },
+ /* loi */	{ EXPENSIVE_LOAD,	XXX,	XXX,	XXX,	ANY },
+ /* lol */	{ SIMPLE_LOAD,	XXX,	XXX,	XXX,	XXX },
+ /* lor */	{ SIMPLE_LOAD,	XXX,	XXX,	XXX,	XXX },
+ /* los */	{ FIDDLE_STACK,	XXX,	XXX,	XXX,	XXX },
+ /* lpb */	{ UNAIR_OP,	PS,	XXX,	PS,	PTR },
+ /* lpi */	{ SIMPLE_LOAD,	XXX,	XXX,	XXX,	XXX },
+ /* lxa */	{ EXPENSIVE_LOAD,	XXX,	XXX,	XXX,	PTR },
+ /* lxl */	{ EXPENSIVE_LOAD,	XXX,	XXX,	XXX,	PTR },
+ /* mlf */	{ BINAIR_OP,	ARGW,	ARGW,	ARGW,	FLT },
+ /* mli */	{ BINAIR_OP,	ARGW,	ARGW,	ARGW,	ANY },
+ /* mlu */	{ BINAIR_OP,	ARGW,	ARGW,	ARGW,	ANY },
+ /* mon */	{ HOPELESS,	XXX,	XXX,	XXX,	XXX },
+ /* ngf */	{ UNAIR_OP,	ARGW,	XXX,	ARGW,	FLT },
+ /* ngi */	{ UNAIR_OP,	ARGW,	XXX,	ARGW,	ANY },
+ /* nop */	{ HOPELESS,	XXX,	XXX,	XXX,	XXX },
+ /* rck */	{ BBLOCK_END,	XXX,	XXX,	XXX,	XXX },
+ /* ret */	{ BBLOCK_END,	XXX,	XXX,	XXX,	XXX },
+ /* rmi */	{ BINAIR_OP,	ARGW,	ARGW,	ARGW,	ANY },
+ /* rmu */	{ BINAIR_OP,	ARGW,	ARGW,	ARGW,	ANY },
+ /* rol */	{ BINAIR_OP,	ARGW,	WS,	ARGW,	ANY },
+ /* ror */	{ BINAIR_OP,	ARGW,	WS,	ARGW,	ANY },
+ /* rtt */	{ BBLOCK_END,	XXX,	XXX,	XXX,	XXX },
+ /* sar */	{ STORE_ARRAY,	XXX,	XXX,	XXX,	XXX },
+ /* sbf */	{ BINAIR_OP,	ARGW,	ARGW,	ARGW,	FLT },
+ /* sbi */	{ BINAIR_OP,	ARGW,	ARGW,	ARGW,	ANY },
+ /* sbs */	{ BINAIR_OP,	PS,	PS,	ARGW,	ANY },
+ /* sbu */	{ BINAIR_OP,	ARGW,	ARGW,	ARGW,	ANY },
+ /* sde */	{ STORE_DIRECT,	XXX,	XXX,	XXX,	XXX },
+ /* sdf */	{ STORE_INDIR,	XXX,	XXX,	XXX,	XXX },
+ /* sdl */	{ STORE_DIRECT,	XXX,	XXX,	XXX,	XXX },
+ /* set */	{ UNAIR_OP,	WS,	XXX,	ARGW,	ANY },
+ /* sig */	{ FIDDLE_STACK,	XXX,	XXX,	XXX,	XXX },
+ /* sil */	{ STORE_INDIR,	XXX,	XXX,	XXX,	XXX },
+ /* sim */	{ STORE_DIRECT,	XXX,	XXX,	XXX,	XXX },
+ /* sli */	{ BINAIR_OP,	ARGW,	WS,	ARGW,	ANY },
+ /* slu */	{ BINAIR_OP,	ARGW,	WS,	ARGW,	ANY },
+ /* sri */	{ BINAIR_OP,	ARGW,	WS,	ARGW,	ANY },
+ /* sru */	{ BINAIR_OP,	ARGW,	WS,	ARGW,	ANY },
+ /* ste */	{ STORE_DIRECT,	XXX,	XXX,	XXX,	XXX },
+ /* stf */	{ STORE_INDIR,	XXX,	XXX,	XXX,	XXX },
+ /* sti */	{ STORE_INDIR,	XXX,	XXX,	XXX,	XXX },
+ /* stl */	{ STORE_DIRECT,	XXX,	XXX,	XXX,	XXX },
+ /* str */	{ HOPELESS,	XXX,	XXX,	XXX,	XXX },
+ /* sts */	{ HOPELESS,	XXX,	XXX,	XXX,	XXX },
+ /* teq */	{ UNAIR_OP,	WS,	XXX,	WS,	ANY },
+ /* tge */	{ UNAIR_OP,	WS,	XXX,	WS,	ANY },
+ /* tgt */	{ UNAIR_OP,	WS,	XXX,	WS,	ANY },
+ /* tle */	{ UNAIR_OP,	WS,	XXX,	WS,	ANY },
+ /* tlt */	{ UNAIR_OP,	WS,	XXX,	WS,	ANY },
+ /* tne */	{ UNAIR_OP,	WS,	XXX,	WS,	ANY },
+ /* trp */	{ BBLOCK_END,	XXX,	XXX,	XXX,	XXX },
+ /* xor */	{ BINAIR_OP,	ARGW,	ARGW,	ARGW,	ANY },
+ /* zeq */	{ BBLOCK_END,	XXX,	XXX,	XXX,	XXX },
+ /* zer */	{ SIMPLE_LOAD,	XXX,	XXX,	XXX,	XXX },
+ /* zge */	{ BBLOCK_END,	XXX,	XXX,	XXX,	XXX },
+ /* zgt */	{ BBLOCK_END,	XXX,	XXX,	XXX,	XXX },
+ /* zle */	{ BBLOCK_END,	XXX,	XXX,	XXX,	XXX },
+ /* zlt */	{ BBLOCK_END,	XXX,	XXX,	XXX,	XXX },
+ /* zne */	{ BBLOCK_END,	XXX,	XXX,	XXX,	XXX },
+ /* zre */	{ KILL_ENTITY,	XXX,	XXX,	XXX,	XXX },
+ /* zrf */	{ SIMPLE_LOAD,	XXX,	XXX,	XXX,	XXX },
+ /* zrl */	{ KILL_ENTITY,	XXX,	XXX,	XXX,	XXX }
 };
 
 #define GROUP(n)	(info[n].i_group)

+ 1 - 0
util/ego/cs/cs_profit.c

@@ -15,6 +15,7 @@
 #include "../share/lset.h"
 #include "cs.h"
 #include "cs_aux.h"
+#include "cs_alloc.h"
 #include "cs_debug.h"
 #include "cs_avail.h"
 #include "cs_partit.h"

+ 16 - 13
util/ego/em_ego/em_ego.c

@@ -10,6 +10,9 @@
 #include <em_path.h>
 #include <signal.h>
 #include <system.h>
+#include <sys/types.h>
+#include <sys/wait.h>
+#include "../share/debug.h"
 
 #define	IC	1
 #define CF	2
@@ -89,7 +92,7 @@ static void cleanup()
 	register int i;
 
 	for (i = NTEMPS*2; i > 0; i--) {
-		register char	*f = phargs[i];
+		char	*f = phargs[i];
 		if (f != 0 && *f != '\0' && *f != '-') (void) unlink(f);
 	}
 	if (ddump[0] != '\0') (void) unlink(ddump);
@@ -102,9 +105,9 @@ static void fatal(char *s, char *s2)
 {
   /*	A fatal error occurred; exit gracefully */
 
-  fprint(STDERR, "%s: ", prog_name);
-  fprint(STDERR, s, s2);
-  fprint(STDERR, "\n");
+  fprintf(stderr, "%s: ", prog_name);
+  fprintf(stderr, s, s2);
+  fprintf(stderr, "\n");
   cleanup();
   sys_stop(S_EXIT);
   /*NOTREACHED*/
@@ -149,9 +152,9 @@ static void get_infiles()
 {
   /*	Make output temps from previous phase input temps of next phase. */
 
-  register int	i;
-  register char	**dst = &phargs[1];
-  register char	**src = &phargs[NTEMPS+1];
+  int	i;
+  char	**dst = &phargs[1];
+  char	**src = &phargs[NTEMPS+1];
 
   for (i = 1; i <= NTEMPS; i++) {
 	*dst++ = *src++;
@@ -164,8 +167,8 @@ static void new_outfiles()
   static int	Bindex = 0;
   static char	dig1 = '1';
   static char	dig2 = '0';
-  register int	i;
-  register char	**dst = &phargs[NTEMPS+1];
+  int	i;
+  char	**dst = &phargs[NTEMPS+1];
 
   if (! Bindex) {
 	Bindex = strrchr(tmpbufs[0], 'B') - tmpbufs[0];
@@ -190,8 +193,8 @@ static void run_phase(int phase)
 	IC and CA.
   */
   static int flags_added;
-  register int	argc;
-  register int	i;
+  int	argc;
+  int	i;
   char	buf[256];
   int	pid, status;
 
@@ -242,10 +245,10 @@ static void run_phase(int phase)
 		register int i = 0;
 
 		while (phargs[i]) {
-			fprint(STDERR, "%s ", phargs[i]);
+			fprintf(stderr, "%s ", phargs[i]);
 			i++;
 		}
-		fprint(STDERR, "\n");
+		fprintf(stderr, "\n");
 	}
 	(void) execv(phargs[0], phargs);
 	fatal("Could not exec %s", phargs[0]);

+ 1 - 0
util/ego/ic/ic_lookup.c

@@ -18,6 +18,7 @@
 #include "../share/map.h"
 #include "ic.h"
 #include "ic_lookup.h"
+#include "ic_io.h"
 #include "../share/alloc.h"
 
 

+ 2 - 0
util/ego/ic/ic_lookup.h

@@ -74,3 +74,5 @@ void cleandblocks(sym_p hash[], int n, int mask);
 					/* Make the names of all data blocks
 					 * for which d_flags1&mask = 0 invisible
 					 */
+
+void dump_dblocknames(sym_p hash[], int n, FILE *f);

+ 5 - 0
util/ego/il/il.c

@@ -8,6 +8,9 @@
 #include <stdlib.h>
 #include <stdio.h>
 #include <string.h>
+#include <unistd.h>
+
+#include <missing_proto.h>
 #include <em_path.h>
 #include <em_mnem.h>
 #include <em_pseu.h>
@@ -20,9 +23,11 @@
 #include "../share/files.h"
 #include "../share/map.h"
 #include "il_aux.h"
+#include "il1_aux.h"
 #include "il1_anal.h"
 #include "il2_aux.h"
 #include "il3_subst.h"
+#include "il3_change.h"
 #include "../share/get.h"
 #include "../share/put.h"
 #include "../share/go.h"

+ 2 - 0
util/ego/il/il1_anal.c

@@ -18,6 +18,8 @@
 #include "../share/global.h"
 #include "../share/lset.h"
 #include "../share/aux.h"
+#include "../share/cset.h"
+#include "il_aux.h"
 #include "il1_aux.h"
 #include "il1_formal.h"
 #include "il1_cal.h"

+ 1 - 0
util/ego/il/il1_cal.c

@@ -19,6 +19,7 @@
 #include "../share/global.h"
 #include "../share/lset.h"
 #include "il1_aux.h"
+#include "il_aux.h"
 #include "../share/parser.h"
 
 static actual_p acts, *app;

+ 1 - 0
util/ego/il/il2_aux.c

@@ -20,6 +20,7 @@
 #include "il_aux.h"
 #include "il2_aux.h"
 #include "../share/get.h"
+#include "../share/cset.h"
 #include "../share/aux.h"
 
 #define USE_INDIR(p)	(p->p_use->u_flags & UF_INDIR)

+ 2 - 0
util/ego/il/il_aux.h

@@ -52,3 +52,5 @@ long putcc(calcnt_p head, FILE *ccf);
 				/* Write call-count information to
 				 * file ccf.
 				 */
+
+void remunit(short kind, proc_p p, line_p l);

+ 2 - 0
util/ego/ra/ra.c

@@ -19,12 +19,14 @@
 #include "../share/get.h"
 #include "../share/put.h"
 #include "../share/lset.h"
+#include "../share/cset.h"
 #include "../share/map.h"
 #include "../share/alloc.h"
 #include "../share/go.h"
 #include "ra.h"
 #include "ra_items.h"
 #include "ra_allocl.h"
+#include "ra_lifet.h"
 #include "ra_profits.h"
 #include "ra_pack.h"
 #include "ra_xform.h"

+ 2 - 2
util/ego/ra/ra_items.c

@@ -175,9 +175,9 @@ static bool lt_item(item_p a, item_p b)
  */
 
 
-
+#if 0
 static item_p items[NRITEMTYPES];  /* items[i] points to the list of type i */
-
+#endif
 
 
 static short reg_type(item_p item)

+ 2 - 1
util/ego/ra/ra_lifet.c

@@ -25,7 +25,8 @@
 #include "ra_aux.h"
 #include "ra_items.h"
 #include "ra_lifet.h"
-
+#include "ra_interv.h"
+#include "ra_profits.h"
 
 #define MSG_OFF(l)	aoff(ARG(l),2)
 #define is_livemsg(l)	(INSTR(l) == ps_mes && aoff(ARG(l),0) == ms_ego && \

+ 1 - 0
util/ego/ra/ra_pack.c

@@ -20,6 +20,7 @@
 #include "ra.h"
 #include "ra_aux.h"
 #include "ra_interv.h"
+#include "ra_profits.h"
 
 
 short regs_occupied[NRREGTYPES];	/* #occupied registers for reg_pointer,

+ 6 - 6
util/ego/ra/ra_xform.c

@@ -268,12 +268,12 @@ static void apply_alloc(bblock_p b, line_p l, alloc_p alloc)
 
 static int loaditem_tab[NRITEMTYPES][2] =
 {	/* 		WS		2 * WS */
-	/*LOCALVAR*/	op_lol,		op_ldl,
-	/*LOCAL_ADDR*/	op_lal,		op_lal,
-	/*GLOBL_ADDR*/	op_lae,		op_lae,
-	/*PROC_ADDR*/	op_lpi,		op_lpi,
-	/*CONST*/	op_loc,		op_nop,
-	/*DCONST*/	op_nop,		op_ldc
+	/*LOCALVAR*/	{ op_lol,		op_ldl },
+	/*LOCAL_ADDR*/	{ op_lal,		op_lal },
+	/*GLOBL_ADDR*/	{ op_lae,		op_lae },
+	/*PROC_ADDR*/	{ op_lpi,		op_lpi },
+	/*CONST*/		{ op_loc,		op_nop },
+	/*DCONST*/		{ op_nop,		op_ldc }
 };
 
 

+ 2 - 0
util/ego/share/debug.h

@@ -5,6 +5,8 @@
  */
 /* D E B U G G I N G   T O O L S */
 
+#include "types.h"
+
 /* TEMPORARY: */
 /* #define DEBUG */
 

+ 2 - 2
util/ego/share/files.c

@@ -9,9 +9,9 @@
  */
 
 #include <stdio.h>
+#include "debug.h"
 
-FILE *openfile(name,mode)
-	char *name,*mode;
+FILE *openfile(char *name, char *mode)
 {
 	FILE *f;
 

+ 3 - 3
util/ego/share/makecldef.c

@@ -34,7 +34,7 @@ void convert(FILE *mnemfile, FILE *classfile)
 
 	newcl = TRUE;
 	printf("struct class classtab[] = {\n");
-	printf("\tNOCLASS,\tNOCLASS,\n");
+	printf("\t{ NOCLASS,\tNOCLASS },\n");
 	/* EM mnemonics start at 1, arrays in C at 0 */
 	for (;;) {
 		fscanf(mnemfile,"%s%s%d",def,mnem1,&opc);
@@ -51,10 +51,10 @@ void convert(FILE *mnemfile, FILE *classfile)
 			/* there is no line for this mnemonic, so
 			 * it has no class.
 			 */
-			printf("\tNOCLASS,\tNOCLASS,\n");
+			printf("\t { NOCLASS,\tNOCLASS },\n");
 			newcl = FALSE;
 		} else {
-			printf("\tCLASS%d,\t\tCLASS%d,\n",src,res);
+			printf("\t { CLASS%d,\t\tCLASS%d },\n",src,res);
 			/* print a line like "CLASS8, CLASS1," */
 			newcl = TRUE;
 		}

+ 1 - 3
util/ego/share/put.c

@@ -18,6 +18,7 @@
 #include "lset.h"
 #include "alloc.h"
 #include "put.h"
+#include "cset.h"
 
 FILE *curoutp;
 
@@ -36,11 +37,8 @@ static void putstr(argb_p abp);
 static void outlab(lab_id lid);
 static void outobject(obj_p obj);
 static void putstr(argb_p abp);
-void outshort(short i);
 static void putstr(argb_p abp);
 
-
-
 static void putargs(arg_p ap)
 {
 	while (ap != (arg_p) 0) {

+ 3 - 1
util/ego/share/types.h

@@ -4,7 +4,8 @@
  * See the copyright notice in the ACK home directory, in the file "Copyright".
  */
 /* I N T E R N A L   D A T A S T R U C T U R E S   O F   E G O  */
-
+#ifndef UTIL_EGO_SHARE_TYPES_H
+#define UTIL_EGO_SHARE_TYPES_H
 
 /* This file contains the definitions of the global data types.
  */
@@ -422,3 +423,4 @@ struct cond_tab {
 #define IN_0_63		2
 #define IN_0_8		3
 
+#endif /* UTIL_EGO_SHARE_TYPES_H */

+ 1 - 0
util/ego/sr/sr.c

@@ -23,6 +23,7 @@
 #include "../share/aux.h"
 #include "sr_aux.h"
 #include "sr_iv.h"
+#include "sr_reduce.h"
 
 /* Strength reduction tries to change expensive operators occurring
  * in a loop into cheaper operators. The expensive operators considered