From d296eed0c351f65d528d599e7237b7dc93c230f2 Mon Sep 17 00:00:00 2001 From: eck Date: Thu, 27 Sep 1990 15:49:13 +0000 Subject: [PATCH] added head_ac.e --- lang/cem/libcc.ansi/.distr | 1 + lang/cem/libcc.ansi/MakeArch | 1 + lang/cem/libcc.ansi/Makefile | 7 +++ lang/cem/libcc.ansi/head_ac.e | 102 ++++++++++++++++++++++++++++++++++ 4 files changed, 111 insertions(+) create mode 100644 lang/cem/libcc.ansi/head_ac.e diff --git a/lang/cem/libcc.ansi/.distr b/lang/cem/libcc.ansi/.distr index d9f76aa95..db8483e36 100644 --- a/lang/cem/libcc.ansi/.distr +++ b/lang/cem/libcc.ansi/.distr @@ -4,6 +4,7 @@ Makefile assert ctype errno +head_ac.e headers locale make.proto diff --git a/lang/cem/libcc.ansi/MakeArch b/lang/cem/libcc.ansi/MakeArch index 58dbe7d4a..addd9a30d 100755 --- a/lang/cem/libcc.ansi/MakeArch +++ b/lang/cem/libcc.ansi/MakeArch @@ -37,6 +37,7 @@ then echo MakeArch >> OLIST echo Makefile >> OLIST echo make.proto >> OLIST + echo head_ac.e >> OLIST fi DIRS=`cat LIST` diff --git a/lang/cem/libcc.ansi/Makefile b/lang/cem/libcc.ansi/Makefile index 2155ad85f..46676086b 100644 --- a/lang/cem/libcc.ansi/Makefile +++ b/lang/cem/libcc.ansi/Makefile @@ -21,6 +21,13 @@ clean: (cd ctype; make clean) (cd stdlib; make clean) +headcp: head + ../../install head_$(PREF).$(SUF) head_$(PREF) + rm -f head_$(PREF).$(SUF) + +head: head_$(PREF).e + make -r -f make.proto "CC=$(MACH)" "CFLAGS=-I$(EMHOME)/h $(MACHFL)" head_$(PREF).$(SUF) + tail: lib tailcp: tail diff --git a/lang/cem/libcc.ansi/head_ac.e b/lang/cem/libcc.ansi/head_ac.e new file mode 100644 index 000000000..998112f19 --- /dev/null +++ b/lang/cem/libcc.ansi/head_ac.e @@ -0,0 +1,102 @@ +# +#include "em_abs.h" +/* + * (c) copyright 1983 by the Vrije Universiteit, Amsterdam, The Netherlands. + * + * This product is part of the Amsterdam Compiler Kit. + * + * Permission to use, sell, duplicate or disclose this software must be + * obtained in writing. Requests for such permissions may be sent to + * + * Dr. Andrew S. Tanenbaum + * Wiskundig Seminarium + * Vrije Universiteit + * Postbox 7161 + * 1007 MC Amsterdam + * The Netherlands + * + */ + +/* Author: E.G. Keizer */ + + mes 2,_EM_WSIZE,_EM_PSIZE + + exa environ + exa _end + exa _penvp +_penvp + bss _EM_PSIZE,0,0 + + exp $m_a_i_n + pro $m_a_i_n,0 + loc 1336 ; EIOVFL | EIUND | ECONV | EFOVFL | EFUNFL + sim ; ignored + lal _EM_WSIZE+_EM_PSIZE + loi _EM_PSIZE + lae _penvp + sti _EM_PSIZE +/* Now test if environ is our own environ, or some user defined environ. + * First test if environ < _end. This is done for separate I&D systems. + */ + lae environ + lae _end + cmp + zge *1 +/* Now environ < end, which means that we can derefence it without trouble + * on separate I&D systems. + */ + lae environ + loi 2 + loc 2 + loc _EM_WSIZE + cii + loc 21331 /* == 0x5353 */ + bne *1 +/* environ contains the magic value. Assume it's our own environ */ + lae _envp + loi _EM_PSIZE + lae environ + sti _EM_PSIZE +1 +#if unix && ! (em22 || em24 || em44) + lpi $_ctch_ + sig + asp _EM_PSIZE +#endif + lal _EM_WSIZE+_EM_PSIZE + loi _EM_PSIZE + lal _EM_WSIZE + loi _EM_PSIZE + lal 0 + loi _EM_WSIZE + cal $main + asp _EM_WSIZE+_EM_PSIZE+_EM_PSIZE + lfr _EM_WSIZE + cal $exit + end + +#if unix && ! (em22 || em24 || em44) + exp $_ctch_ + pro $_ctch_,0 + lol 0 + loc EIDIVZ + beq *1 + lol 0 + loc EFDIVZ + beq *1 + lol 0 + trp + bra *3 +1 + loc 8 + cal $_getpid + lfr _EM_WSIZE + cal $_kill + asp 2*_EM_WSIZE +3 + lpi $_ctch_ + sig + asp _EM_PSIZE + rtt + end 0 +#endif -- 2.34.1