5907 Commits

Author SHA1 Message Date
cvs2hg
c092566f4a fixup commit for branch 'less_self_calls' 1994-12-06 09:12:24 +00:00
ceriel
218c8c209f Many changes:
- added some data flow stuff
- many cosmetic changes
1994-12-06 09:12:21 +00:00
ceriel
24a3714754 Fix: sometimes produced branch to non-existing label 1994-11-29 14:53:02 +00:00
ceriel
61f4cce396 Fix: made 'rep' equivalent to 'repz' 1994-11-16 14:43:42 +00:00
ceriel
b8d8e1082d made statbuf static, so that is is zero when not initialized 1994-11-14 12:34:50 +00:00
ceriel
0261e7a853 exit with erno+1, because otherwise exit status is 0 with array bound error 1994-11-14 11:51:24 +00:00
ceriel
ef217e26bc disabled a warning 1994-11-01 11:45:23 +00:00
ceriel
21e30ab7f7 SkipToNewLine() fixed: did not work with a / at the end of a line 1994-10-28 15:26:36 +00:00
ceriel
806a084be5 removed warning and fixed two problems:
- remove_def was wrong, and parameter defs should not be removed at the
  end of a scope
1994-10-27 14:57:48 +00:00
ceriel
b1479c63dc Fix: sometimes wrote register gotten from pop_reg(); Fix: WINDOWSIZE; Fix: make distr 1994-10-25 16:14:08 +00:00
ceriel
90e4d5c15d mark file parameters as used in reads/writes 1994-10-25 15:41:59 +00:00
ceriel
78e493ac0b Avoid some empty if- and else- parts. gcc -Wall does not like it 1994-10-20 12:43:35 +00:00
ceriel
92bee588be void LoadChar 1994-10-20 11:52:15 +00:00
ceriel
b77cd9bb8e Fine tuning of some patterns 1994-10-19 14:09:26 +00:00
ceriel
ddef45be2f A couple of fixes: use Bourne shell, and fixed recursive call of get_sys 1994-10-18 16:07:27 +00:00
ceriel
0793b2ecc6 Remove prototype idfs in casts! 1994-10-18 13:43:50 +00:00
ceriel
56505254c5 Fixed: union initialization did not work properly 1994-10-03 12:57:39 +00:00
ceriel
c89cabee0b Improved driver, handles quotes better 1994-09-16 12:41:55 +00:00
ceriel
f29489f3ad Changed PATH somewhat 1994-08-25 08:05:28 +00:00
ceriel
c21f5558ba removed un-used variable 1994-07-06 08:34:27 +00:00
ceriel
3628b8b8c0 Header --> Id 1994-06-28 14:41:17 +00:00
ceriel
c57d76db57 Changed Header into Id 1994-06-27 08:03:14 +00:00
ceriel
f26dd7bb01 Header --> Id 1994-06-24 14:02:31 +00:00
ceriel
bcc84a94d5 Header --> Id 1994-06-24 11:31:16 +00:00
ceriel
e97e8edd13 Header --> Id && bug fix 1994-06-24 07:25:30 +00:00
ceriel
5e57b9a901 Header --> Id && bug fix 1994-06-23 16:08:51 +00:00
ceriel
24741f9c69 Changed Header into Id 1994-06-23 13:47:02 +00:00
ceriel
fdfe4f12c0 Fix: forgot to initialize malloced mem 1994-06-23 10:00:01 +00:00
ceriel
7894646cff Fix: also redefine LLsafeerror 1994-06-23 09:58:30 +00:00
ceriel
b0ea434716 Minor fix in error message 1994-06-02 10:54:13 +00:00
ceriel
e960c8cba3 Fix: dit not handle multiple POINTER TO constructs right 1994-05-25 12:10:59 +00:00
ceriel
25b0941b80 removed wrong assertion 1994-04-19 10:46:08 +00:00
ceriel
550ad0d82c Minor fix 1994-04-19 10:04:53 +00:00
ceriel
9c6968d42c Fix: error recovery sometimes skipped tokens it needed later on 1994-04-19 09:38:00 +00:00
ceriel
58c76078a7 Generate octal char constants instead of ints for LLsets 1994-04-12 13:53:38 +00:00
ceriel
83f8bc669c changed Header to Id 1994-03-11 10:37:39 +00:00
ceriel
6bc329e77c Fix: prevent unintentional token pasting 1994-03-01 15:04:52 +00:00
ceriel
0faa8fb27f Also update alignment in complete_type(); resulted in obscure (and wrong) error message 1994-03-01 09:54:16 +00:00
ceriel
a1f0020de5 Added -DNDEBUG to compilation flags 1994-02-25 14:14:55 +00:00
ceriel
ebdcf062ec call abort() only when NDEBUG is not defined 1994-02-25 14:01:54 +00:00
ceriel
f1847c8a28 get section alignments right 1994-01-14 11:42:01 +00:00
ceriel
c5fac7eb3b Updated 1993-12-15 13:28:16 +00:00
ceriel
f2e8b724db minor change: commented __ANSI_H__INCLUDED after #endif 1993-12-15 09:55:35 +00:00
ceriel
d06bb6af86 Fixed problem with calloc() declaration 1993-12-09 16:31:05 +00:00
ceriel
d9df8a922c Fix: CMP instruction with small constant does not handle PC-relative 1993-12-06 10:14:43 +00:00
ceriel
62e3431f8d Several changes: did not work right when compiled with the ANSI C compiler 1993-11-24 15:37:27 +00:00
ceriel
038afe488d export WRITE 1993-11-24 15:32:45 +00:00
ceriel
d8e9515218 Fixed typo 1993-11-24 13:01:08 +00:00
ceriel
d12b7be5d1 Export .stop 1993-11-24 12:57:43 +00:00
ceriel
5e72837e62 Fixed typo 1993-11-24 12:54:29 +00:00
ceriel
18c50f6768 Wrong references to _endbss; changed to endbss 1993-11-24 12:45:29 +00:00
ceriel
1331833c68 Fixed: tail_mon2 instead of tail_sys 1993-11-24 12:42:08 +00:00
ceriel
be00d7e3f9 define .cs[ab]4 instead of .cs[ab] 1993-11-24 12:39:21 +00:00
ceriel
61501029f9 Improved CSA some more 1993-11-24 12:39:19 +00:00
ceriel
610bb4a6d8 .long replaced by .data4 1993-11-24 12:37:16 +00:00
ceriel
e6e41b924f Fixed bug in newlabel: assertion was wrong 1993-11-24 12:07:26 +00:00
ceriel
eabced42ae Changed as suggested by Frans Meulenbroeks 1993-11-23 15:35:08 +00:00
ceriel
3c91208f8c Fixed for machines without .o 1993-11-19 09:59:11 +00:00
ceriel
69ed537f4c Fixed problem with the IN operator 1993-11-19 09:53:47 +00:00
ceriel
e101155c40 Some minor modifications 1993-11-19 09:50:20 +00:00
ceriel
a93d33c53b Fixed too large constant 1993-11-19 09:37:44 +00:00
ceriel
032e0e36d7 Added declarations for static functions 1993-11-18 15:38:13 +00:00
ceriel
3dabb8327c use 0xFFFF mask for printing shorts, and work around gcc 2.4.5 bug 1993-11-18 15:35:03 +00:00
ceriel
0fa5010335 signal now deals with void functions 1993-11-17 16:53:43 +00:00
ceriel
884b36cfdc Fix: reset DISABLE_LANG and DISABLE_SUP when installing everything 1993-11-17 16:49:43 +00:00
ceriel
c14352585a signal now deals with void functions 1993-11-17 16:38:52 +00:00
ceriel
0e2665ca35 signal now deals with void functions 1993-11-17 16:27:44 +00:00
ceriel
1b4c0de360 Updated: signal now uses a void function 1993-11-17 11:04:32 +00:00
ceriel
5093b2f32e Some minor changes 1993-11-17 10:25:17 +00:00
ceriel
a62ccfddbb Oops: committed wrong version 1993-11-17 09:37:02 +00:00
ceriel
3428f93f80 and again ... 1993-11-17 09:10:36 +00:00
ceriel
e977f41f16 Fixed: version with typo committed 1993-11-17 09:05:28 +00:00
ceriel
abc8061d75 Fixed problem with IN operator 1993-11-16 16:31:27 +00:00
ceriel
abc232fee7 signal, second arg is void function 1993-11-16 12:03:22 +00:00
ceriel
f6961821b9 Some small fixes 1993-11-16 12:00:06 +00:00
ceriel
a479850890 Define PRIVATE as static 1993-11-16 11:59:09 +00:00
ceriel
a111adf573 prevent some gcc warnings 1993-11-16 11:54:00 +00:00
ceriel
1dba0d4628 Define PRIVATE as static, and consequences 1993-11-16 11:49:17 +00:00
ceriel
6422389e88 Fixed several lint complaints 1993-11-16 11:35:23 +00:00
ceriel
56177b33f4 Changed: create directories if needed 1993-11-15 09:37:05 +00:00
ceriel
acc3f843fe Fixed bug with "/*" 1993-11-15 09:29:39 +00:00
ceriel
ebef128e09 Fixed bug 1993-11-15 09:25:32 +00:00
ceriel
9bc6c9ef36 Fixed some minor problems 1993-11-12 16:59:06 +00:00
ceriel
13dc306413 catch is a signal arg, and should be void catch() 1993-11-12 16:57:15 +00:00
ceriel
597c9a97bc noodstop is a signal arg, and should be void noodstop() 1993-11-12 16:53:24 +00:00
ceriel
29b989a53c Realloc call: put cast in front of first arg 1993-11-12 15:48:22 +00:00
ceriel
4f932bc6ea made symbol2str decl global 1993-11-12 15:45:09 +00:00
ceriel
07c8cac6e5 Correction: also put ack_sys in conf/bin, otherwise mk_makefile does not work 1993-11-12 15:38:49 +00:00
ceriel
486b73c9ad updated 1993-11-12 15:37:30 +00:00
ceriel
f830152ba8 Minor changes: gave double def of __ctype with gcc on solaris 2 1993-11-12 15:16:08 +00:00
ceriel
2d22258dd7 Restored em_codeO.h; it is also needed when em_opt is not installed 1993-11-12 13:40:17 +00:00
ceriel
b4e86b6450 onintr must be void 1993-11-12 12:53:28 +00:00
ceriel
6ac18892c8 Changes for release 5.1 1993-11-12 10:56:15 +00:00
ceriel
ffb607942e Added proto.make 1993-11-12 10:08:55 +00:00
ceriel
a81544287a Little trick to make distribution easier 1993-11-12 10:02:53 +00:00
ceriel
47ad02f4d2 Added proto.make 1993-11-11 12:02:20 +00:00
ceriel
eb15533ec8 Some minor mods 1993-11-11 12:00:22 +00:00
ceriel
c94e95c158 Added comment about Solaris 2 and GNU cc 1993-11-10 16:35:58 +00:00
ceriel
371240c8b9 No longer depend on /bin/arch 1993-11-10 16:07:31 +00:00
ceriel
52fd06595a Many changes, mostly for Solaris 2 1993-11-10 15:11:28 +00:00
ceriel
a4f651cbee Added -DNDEBUG to compile flags 1993-11-10 15:07:55 +00:00
ceriel
ea4b3dc8be Updated for C_ prototypes 1993-11-10 15:07:12 +00:00
ceriel
2da8f052f9 Updated for C_ prototypes 1993-11-10 14:40:27 +00:00
ceriel
03387e093f Added -DNDEBUG to compile flags 1993-11-10 14:38:32 +00:00
ceriel
21a720c65d Bug fix for dlb routines and C_ are now void 1993-11-10 14:22:26 +00:00
ceriel
48c195edaf Added -DNDEBUG to compile flags 1993-11-10 14:21:21 +00:00
ceriel
2f5a5cd1d2 Fix: CSA was not quite right 1993-11-10 13:00:01 +00:00
ceriel
6d439c8305 Fix: had array bound error 1993-11-10 12:58:26 +00:00
ceriel
5cdd5193e0 Modified for Solaris 2 1993-11-10 12:57:16 +00:00
ceriel
b751882510 Fixed CII (?) did not handle stack pointer right 1993-11-10 12:51:03 +00:00
ceriel
bc4aac7ee6 Changed debugging information to also work for Solaris 2 1993-11-10 12:44:24 +00:00
ceriel
9a7b9d316e Added void for some functions 1993-11-10 12:42:25 +00:00
ceriel
799481ef90 Some small changes 1993-11-10 12:35:33 +00:00
ceriel
e3f7597cde Changed modules mechanism 1993-11-10 12:33:15 +00:00
ceriel
744b080599 Added prototyping stuff 1993-11-10 12:32:42 +00:00
ceriel
d28c22adf4 Added prototyping stuff 1993-11-10 12:09:49 +00:00
ceriel
80982665a3 Added prototyping stuff 1993-11-10 11:49:49 +00:00
ceriel
f3fd5ba24b Added prototyping stuff 1993-11-10 11:40:41 +00:00
ceriel
8c92c04936 Changed modules mechanism 1993-11-10 11:38:42 +00:00
ceriel
4b6c6de71f Added prototyping stuff 1993-11-10 11:14:28 +00:00
ceriel
48a8bc1bd1 Added prototyping stuff 1993-11-10 10:26:07 +00:00
ceriel
671d9649e9 Changed modules mechanism 1993-11-10 10:13:04 +00:00
ceriel
2fde99447d Changed modules mechanism 1993-11-10 10:04:30 +00:00
ceriel
9f9e12cbb5 Added modules/h 1993-11-10 10:03:23 +00:00
ceriel
261f9a9625 Added prototypes 1993-11-05 15:02:57 +00:00
ceriel
e1956258b7 Added -lelf for grind on sparc_solaris 1993-11-05 13:12:46 +00:00
ceriel
2cb7e28100 Compilers should recognize void by now 1993-10-26 16:26:36 +00:00
ceriel
ba200115c8 Fixed div() and ldiv() for machines with -1/2 = -1 1993-10-26 13:58:04 +00:00
ceriel
b0e19f7f80 Include em_label.h before em_code.h 1993-10-26 09:59:06 +00:00
ceriel
267112ad42 Use LCSYM for bss and STSYM for data, so that grind can see the diff 1993-10-25 15:43:02 +00:00
ceriel
a49bae8e7f Use LCSYM for bss and STSYM for data, so that grind can see the diff 1993-10-25 15:34:08 +00:00
ceriel
144e3edfb2 Define NDEBUG if you don't want assertions 1993-10-22 14:30:43 +00:00
ceriel
c0a8a2c36f A fix for stabs, and define NDEBUG 1993-10-22 14:24:31 +00:00
ceriel
adf94d48e8 Added prototype 1993-10-22 14:09:28 +00:00
ceriel
cd1ab39040 Modified to conform to ANSI C 1993-10-22 14:05:24 +00:00
ceriel
98a44919ed Added prototypes 1993-10-22 13:49:04 +00:00
ceriel
05107a98c9 ANSI C fixes 1993-10-21 12:50:58 +00:00
ceriel
bbb110a15a Added -s option to as (to keep stabs) 1993-10-13 13:06:49 +00:00
ceriel
083f358378 All 'follows' checks only to be done when ! unresolved 1993-10-13 10:47:28 +00:00
ceriel
bc67008f0d Mention all sections 1993-10-13 10:46:11 +00:00
ceriel
c44cb846f0 Some more space for file names 1993-10-12 09:45:59 +00:00
ceriel
e95cc619ee Fixed: functions were implicitly declared extern and later static 1993-10-07 17:47:26 +00:00
ceriel
ee4d7610f9 Added sparc_solaris 1993-10-07 17:41:19 +00:00
ceriel
5ac4321a7a Some minor changes: prevent some warnings 1993-10-07 14:07:42 +00:00
ceriel
638c2fe15e Added -LIB where needed 1993-10-07 10:56:25 +00:00
ceriel
1a04e108d4 Added sparc_solaris 1993-10-07 09:52:41 +00:00
ceriel
7b5fe8b311 Added end_em 1993-10-07 09:48:06 +00:00
ceriel
238c7717e9 Added sparc_solaris description 1993-10-07 09:47:16 +00:00
ceriel
e38adbdb89 Added missing stuff 1993-10-07 09:46:14 +00:00
ceriel
c95f4d2609 Fix: set error flag in some error cases 1993-10-07 09:44:03 +00:00
ceriel
2a64289208 Added sparc Solaris 2 support 1993-10-07 09:09:16 +00:00
ceriel
1052c78c59 Added sparc_solaris stuff 1993-10-06 17:04:49 +00:00
ceriel
6f0cf8ae19 Added sparc_solaris stuff 1993-10-06 16:42:05 +00:00
ceriel
eb2b8d6f04 Changed for Solaris 2 1993-10-06 16:18:58 +00:00
ceriel
cdae684cd6 fix: probably just a typo 1993-10-06 16:15:30 +00:00
ceriel
bafc37f8d0 Fix: setrlimit has two parameters 1993-10-06 16:12:40 +00:00
ceriel
112ab34ab9 Made more portable 1993-10-06 13:15:12 +00:00
ceriel
c1aef17cc8 Some more changes for Solaris 2 1993-10-06 11:47:11 +00:00
ceriel
215c3b07b0 Several fixes; ported to Solaris 2 1993-10-06 11:45:13 +00:00
ceriel
1ded03a114 proper trap on divide by 0 1993-10-04 14:13:51 +00:00
ceriel
d0dabdc6b2 An offset fix, and added some files for solaris 2 1993-10-04 08:57:25 +00:00
ceriel
c9e891733f Fix to Makefile: define CFLAGS 1993-09-30 15:13:11 +00:00
ceriel
014fa34d31 Some stuff for solaris 2 1993-09-30 15:11:52 +00:00
ceriel
e1cbe380fb Fixed previous fix 1993-09-30 15:10:59 +00:00
ceriel
7ba293d0d6 Fix: Makefile used cc instead of $(UCC) 1993-09-03 11:02:02 +00:00
ceriel
af50f645c0 New, improved fmod.c 1993-08-31 10:54:08 +00:00
ceriel
2401d9876c Added check, but probably never happens with correct FEF 1993-08-31 10:53:05 +00:00
ceriel
dca16dfd0f Fix to icompute.c: always had one digit too much 1993-08-26 10:08:37 +00:00
ceriel
b1c1dec355 Fixed bug with union initializers 1993-08-09 09:40:44 +00:00
ceriel
395e8d4605 Fixed make.hfiles; some "shells" did not accept it 1993-08-05 13:00:40 +00:00
ceriel
304bfbade3 Fixed make.hfiles; some "shells" did not accept it 1993-08-05 12:30:57 +00:00
ceriel
c8910826b5 Always define __ACK when preprocessing 1993-08-05 11:09:12 +00:00
ceriel
0bd295c1c0 Reversed bitfields for compatibility with (g)cc 1993-08-05 11:08:48 +00:00
ceriel
f350a6f701 Fixed typo 1993-08-04 09:24:07 +00:00
ceriel
8fd67c5e30 Fix make.hfiles; some shells did not accept it 1993-07-07 13:42:45 +00:00
ceriel
e939ab6db0 Fixed infinite loop 1993-06-24 15:48:46 +00:00
ceriel
42b5a324eb Improved 'stop in' mechanism, and prevent core dump ir currlang is not set 1993-06-09 14:18:43 +00:00
ceriel
467484a30b Prevent warning about overflow 1993-06-09 11:47:01 +00:00
ceriel
5c8b465a4e Fixed for change in LLgen 1993-06-09 10:34:48 +00:00
ceriel
e5b7e10f99 Also skip lint comments in skip_block() 1993-06-09 10:17:44 +00:00
ceriel
458946e791 Also skip lint comments in skip_block() 1993-06-09 09:40:54 +00:00
ceriel
7e453d7aa2 Mention filename for some error messages 1993-06-08 13:02:01 +00:00
ceriel
89ebd7aa4b Don't free filenames when lint 1993-06-04 10:30:16 +00:00
ceriel
aed8cc5cb6 A fix: make error_type usable as function type; prevents core dump on some inputs 1993-05-14 12:01:14 +00:00
ceriel
561b7fcf65 Fixed error: did not compile 1993-05-12 08:33:03 +00:00
ceriel
0c8ce4c9dd Added /usr/local/bin to PATH (for tbl and the like) 1993-05-12 08:26:39 +00:00
ceriel
99d14de3f4 Fixed for empty parameter lists 1993-05-10 14:02:52 +00:00
ceriel
61c1a76870 small fix in ftell 1993-04-05 11:49:59 +00:00
ceriel
e06f0fdfe4 Added make entries to produce troff output on standard output 1993-04-01 11:11:49 +00:00
ceriel
82871ed9ab Also run soelim 1993-04-01 11:06:04 +00:00
ceriel
a8fe176c06 Fix: wrong target and refs 1993-04-01 10:55:46 +00:00
ceriel
8ab04269c7 Fix in proto.make: forgot to define SRC_DIR 1993-04-01 10:52:32 +00:00
ceriel
f6e1e8c000 Changed installation mechanism for docs 1993-03-31 16:47:12 +00:00
ceriel
28d8a4af4a Changed installation mechanism for docs, deleted mkun 1993-03-31 13:34:42 +00:00
ceriel
9f6cc101c8 Changed installation mechanism for docs 1993-03-31 13:33:07 +00:00
ceriel
1fca8fde3d Changed installation mechanism 1993-03-31 13:22:17 +00:00
ceriel
5e2915512f Now uses -ms macros 1993-03-30 15:43:44 +00:00
ceriel
a9cdc723c7 Fixed problem with missed unstacks 1993-03-30 09:41:00 +00:00
ceriel
3e60fd70c1 Fixed error which sometimes caused core dumps 1993-03-30 09:40:07 +00:00
ceriel
a2cb61e0f0 Improved constant arithmetic: had several bugs 1993-03-18 13:24:20 +00:00
ceriel
a2bf695f83 repositioned lint comments, so that they work better 1993-03-18 13:09:55 +00:00
ceriel
2e469361ec Added some code to check for Nan/Inf 1993-02-24 15:12:49 +00:00
ceriel
3d2e5447e6 Enabled divide by 0 and improper trap 1993-02-24 15:10:14 +00:00
ceriel
7d8bf4efe8 Fixed bug: some offsets were just plain wrong 1993-02-19 17:33:40 +00:00
ceriel
ac7f45b546 Fixed bug: some offsets were just plain wrong 1993-02-08 13:35:44 +00:00
ceriel
ff895004b2 Fixed problem with relocation,
added curr_token, so that parser can access token
1993-02-08 13:01:30 +00:00
ceriel
0b9361b642 Changed order of declarations 1993-02-05 18:21:46 +00:00
ceriel
200b54f28a Fixed bit-field initializers bug 1993-02-05 18:15:32 +00:00
ceriel
8bca78cd29 Fix: did not work properly on 2-4 machines 1993-02-03 13:28:14 +00:00
ceriel
108f8aacfa Added some patterns and fixed error in constant multiplication 1993-02-03 10:10:07 +00:00
ceriel
122a7ab1bb Fix: previous version did not work with variable # of args 1993-01-28 11:45:38 +00:00
ceriel
b2ea48418a No more global space for structure returns 1993-01-28 10:09:51 +00:00
ceriel
057500f1f6 Fix small bug: space following a replacement list was included in the list 1993-01-26 11:58:00 +00:00
ceriel
f80730fd47 Fix small bug: space following a replacement list was included in the list 1993-01-26 11:49:23 +00:00
ceriel
f1232235ac Fixed bit-field initializers bug 1993-01-21 11:00:51 +00:00
ceriel
85fd09415b Improved previous fix 1993-01-19 15:33:35 +00:00
ceriel
3d9aebdd69 found some small leaks with Purify 1993-01-18 16:14:43 +00:00
ceriel
c79e53c02e found a small error with Purify 1993-01-18 15:30:54 +00:00
ceriel
551396bc5b found some small leaks with Purify 1993-01-18 15:29:54 +00:00
ceriel
d858cd7e1b found some small leaks with Purify 1993-01-18 15:10:01 +00:00
ceriel
9fe21d6e8d Added diagnostic about use of for example union tag as a struct tag 1993-01-15 12:41:15 +00:00
ceriel
42edc1d202 Fixed bug in flushbuf: did not reset stream->_ptr on write error 1993-01-14 10:02:28 +00:00
ceriel
8023799213 Fix in tes mechanism: CAL and CAI 1993-01-12 15:48:39 +00:00
ceriel
31a4b8a26f Fixed error: ] was missing in translation of COM 1993-01-11 12:46:04 +00:00
ceriel
4aa3ae80c8 Removed adder.h from proto.libfp 1993-01-05 12:52:47 +00:00
ceriel
f2fc6667ac Removed adder.h from .distr 1993-01-05 12:50:30 +00:00
ceriel
479d3c1417 Updated for ANSI C, cleaned up a bit 1993-01-05 12:06:58 +00:00
ceriel
b0b49e1ab1 fixed bug: qualified type introduction within structure decl 1992-12-22 15:29:56 +00:00
ceriel
1b41a02527 improved ply handling 1992-12-18 10:29:31 +00:00
ceriel
5150d9cbb2 improved ply handling 1992-12-18 10:22:55 +00:00
ceriel
a7dca96e97 Use test instruction for testing 1992-12-17 12:58:05 +00:00
ceriel
a96b52e85d ply adaption was wrong for EM replacements 1992-12-17 12:52:21 +00:00
ceriel
77fdce183a Fix: lint complained about ptr->void* conversions 1992-12-17 11:18:38 +00:00
ceriel
5ad7b5b5ab shifts do NOT set condition codes properly 1992-12-14 16:40:22 +00:00
ceriel
20fec3c6a2 Several fixes: SDF was wrong, and shifts do NOT set contition codes properly 1992-12-14 16:37:35 +00:00
ceriel
6056bb80c1 Fix: used data from freed memory 1992-12-08 17:44:01 +00:00
ceriel
e56e7c50c2 Fix in fef.s: handles infinity more graceful now 1992-12-08 17:26:41 +00:00
ceriel
0a6915c243 Several changes for ANSI C 1992-12-04 09:36:54 +00:00
ceriel
f3c71e7d18 Fix: MkCoercion did not handle error_type 1992-11-20 13:37:49 +00:00
ceriel
448c743214 Added M68030 MMU instructions 1992-11-19 18:19:55 +00:00
ceriel
4a067ba156 Added LL_MAXTOKNO 1992-11-19 15:37:52 +00:00
ceriel
e1ae5f02dc Documented LL_MAXTOKNO 1992-11-19 15:37:04 +00:00
ceriel
c5cfce7324 Separated the m68020 syntax from the table, so that we can also create
a m68000 code generator producing m68020 syntax
1992-11-16 17:24:25 +00:00
ceriel
3003070e62 Fixed bug in register initialization for offsets > 4096 1992-11-16 14:31:49 +00:00
ceriel
01e6c10d77 Fix 1.69 was partly wrong 1992-11-16 13:52:07 +00:00
ceriel
a2b39689d1 Yet another bug: null reference 1992-11-09 14:30:28 +00:00
ceriel
c9b63eaf8d Fixed bug: divide by 0 1992-11-09 10:14:47 +00:00
ceriel
6b14e7be46 Fixed error: removed space where it did not belong 1992-11-04 16:08:11 +00:00
ceriel
b0da651a21 declared loadbuf 1992-10-26 11:07:55 +00:00
ceriel
8c801ca268 Removed static buffer in gen_idf 1992-10-22 16:56:28 +00:00
ceriel
d687237b30 Removed static buffer in gen_idf 1992-10-22 16:00:05 +00:00
ceriel
8f98fac873 Fixed bug: checking for multiple occurrences of same case label was wrong 1992-10-21 10:53:45 +00:00
ceriel
b46b9ce380 small fix: carry was not always clear before the 'sbc' 1992-10-16 15:43:46 +00:00
ceriel
dbf212f30a Fixed scope bug for structures: a(struct S *p) { struct S { int i; }; p->i ...
should work
1992-10-14 10:48:27 +00:00
ceriel
6b7fcb5a8c Fixed bug: REP resulted in 0xF2 instead of 0xF3 1992-10-12 17:25:15 +00:00
ceriel
d313baf4f4 Use 80386 SET instruction 1992-09-17 14:15:20 +00:00
ceriel
81e56858c1 Several fixes and addition of 80486 instructions 1992-09-16 16:10:30 +00:00
ceriel
42d4bff6fb Fixed ARPL instruction 1992-09-07 14:13:11 +00:00
ceriel
fe2e66b273 Improved installation mechanism 1992-09-07 13:21:34 +00:00
ceriel
6fb7d510e6 Fix previous change 1992-09-07 12:47:11 +00:00
ceriel
85b0f49946 fix: DO_FAST was not set properly 1992-09-04 09:22:11 +00:00
ceriel
8f0c681a67 Added some patterns involving DUPs 1992-09-01 11:16:20 +00:00
ceriel
f0253d1dd7 Small change in register allocation criteria 1992-09-01 11:13:42 +00:00
ceriel
b585c03728 Fix for sparc description 1992-09-01 10:41:37 +00:00
ceriel
d4b2adb2dd Some minor modifications reflecting some changes in the peephole optimizer 1992-09-01 10:35:57 +00:00
ceriel
ae57d22fc9 Some minor modifications reflecting some changes in the peephole optimizer 1992-09-01 10:19:21 +00:00
ceriel
ae9ad8fe54 Some minor modifications reflecting some changes in the peephole optimizer 1992-09-01 09:39:15 +00:00
ceriel
5e30d43097 Disable multiplication optimizer when global optimizer is used 1992-08-31 16:47:40 +00:00
ceriel
bc82da7db8 Fixed bug: imulb was given wrong opcode 1992-08-31 15:23:59 +00:00
ceriel
345e8e84dc tell users to call /bin/TakeAction instead of /TakeAction 1992-08-11 11:08:47 +00:00
ceriel
f97cf85423 Apparently forgot about the .so suffix 1992-07-28 08:28:48 +00:00
ceriel
17c450c3cb Suffix is .so, not .s 1992-07-28 08:24:26 +00:00
ceriel
a08ccc7191 Always did limit_enquire 1992-07-27 14:32:53 +00:00
ceriel
fd8beaadfa Fix: always assumed that base type of bitfield had sizeof(int) 1992-07-27 13:28:49 +00:00
ceriel
0491d8bb32 Fix previous 'fix' 1992-07-23 11:51:39 +00:00
ceriel
43717e8aa7 Fix in "bits_in_type" variable 1992-07-22 15:44:47 +00:00
ceriel
82de44d5f0 Was wrong when compiled with ANSI compiler 1992-07-22 13:49:15 +00:00
ceriel
66756122bd And some more ... 1992-07-22 13:45:08 +00:00
ceriel
01bc62c104 Added some patterns 1992-07-22 13:37:27 +00:00
ceriel
c215fb6510 Fixed comparison functions: unsigned char! 1992-07-22 12:51:53 +00:00
ceriel
5a89770759 fixed lint complaint 1992-07-21 14:40:23 +00:00
ceriel
5eabd4725b Fix evaluation order problem 1992-07-21 11:23:24 +00:00
ceriel
d9515cda2c Added mk_tokdefs 1992-07-13 10:38:31 +00:00
ceriel
0d0e12f563 Use UTIL_HOME instead of TARGET_HOME 1992-07-13 10:34:49 +00:00
ceriel
f3ceea65f0 Fixed bug in UCFLAGS 1992-07-13 10:28:08 +00:00
ceriel
a9cd7ac30d Fixed V7 and SYS_V utime problem 1992-07-10 15:22:01 +00:00
ceriel
2b2f52c36b strip did not truncate file 1992-07-09 14:02:43 +00:00
ceriel
add3dc5158 Improved N_SOL handling 1992-07-02 11:15:18 +00:00
ceriel
e07e849cab improved symbol table generation when source file has line directives 1992-07-02 10:23:46 +00:00
ceriel
fd51b64d2c No system-calls from libem 1992-06-30 17:43:24 +00:00
ceriel
629ad9b0c8 Added EXIT, WRITE entry point 1992-06-30 17:42:09 +00:00
ceriel
7fc17ff54f No system-calls from libem 1992-06-30 17:37:35 +00:00
ceriel
05c2157545 Added EXIT, WRITE entry point 1992-06-30 17:36:49 +00:00
ceriel
cf7ebf60e4 Added EXIT, WRITE and BRK entry point 1992-06-30 17:06:10 +00:00
ceriel
9f6f801829 No system-calls from libem 1992-06-30 16:51:19 +00:00
ceriel
318251899f Added EXIT, WRITE and BRK entry point 1992-06-30 16:39:49 +00:00
ceriel
a3fa9dc8b5 No system-calls from libem 1992-06-30 16:39:47 +00:00
ceriel
0a885c8dfa No system-calls from libem 1992-06-30 16:31:52 +00:00
ceriel
08aa8d7b53 Added EXIT, WRITE and BRK entry point 1992-06-30 16:30:56 +00:00
ceriel
05eb707e37 Added EXIT, WRITE and BRK entry point 1992-06-30 16:24:17 +00:00
ceriel
aae75a86a7 Added EXIT, WRITE and BRK entry point 1992-06-30 16:10:24 +00:00
ceriel
73555852ff No system-calls from libem 1992-06-30 16:08:42 +00:00
ceriel
1b7684fea9 Added BRK,WRITE and EXIT entry points 1992-06-30 16:05:33 +00:00
ceriel
20c7c47ddd Added EXIT, WRITE and BRK entry point 1992-06-30 16:04:38 +00:00
ceriel
7761553980 No system-calls from libem 1992-06-30 15:58:35 +00:00
ceriel
01c5465287 Added EXIT, WRITE and BRK entry point 1992-06-30 15:52:07 +00:00
ceriel
434c65e461 Added BRK and EXIT entry points 1992-06-30 15:51:31 +00:00
ceriel
3e7daebcc7 Added EXIT and BRK entry point 1992-06-30 15:22:55 +00:00
ceriel
4175c4a20b No system-calls from libem 1992-06-30 15:22:07 +00:00
ceriel
7902c4ae2a Added EXIT and BRK entry point 1992-06-30 15:11:49 +00:00
ceriel
c488731340 Added BRK entry point 1992-06-30 15:08:35 +00:00
ceriel
6c7b51fe62 Added EXIT and BRK entry point 1992-06-30 15:02:56 +00:00
ceriel
c197d5a015 No system-calls from libem 1992-06-30 15:02:32 +00:00
ceriel
b34e813dc8 Added EXIT and BRK entry point 1992-06-30 11:40:12 +00:00
ceriel
a9a491db4b No system-calls from libem 1992-06-30 11:39:12 +00:00
ceriel
a6b80a7eed No system-calls from libem 1992-06-30 11:19:33 +00:00
ceriel
66ebea6cfe Added EXIT entry point 1992-06-30 11:18:17 +00:00
ceriel
2be29ee963 Removed # in commands 1992-06-26 12:54:57 +00:00
ceriel
1fc9c139cf Removed # in commands, changed mechanism for computing mem used 1992-06-26 12:47:07 +00:00
ceriel
38b44fe79f Removed # in commands, removed call to _cleanup() 1992-06-26 12:42:31 +00:00
ceriel
1cc922d7d9 Changed mechanism for coputing amount of memory used 1992-06-26 12:38:10 +00:00
ceriel
86985e019f Removed # in commands 1992-06-26 12:01:31 +00:00
ceriel
6a4ae37ef7 Removed # in commands, and a small fix in ch3mon.c 1992-06-26 11:57:17 +00:00
ceriel
e307e6c659 Some corrections 1992-06-26 11:54:22 +00:00
ceriel
722ff1561e Made a declaration a little less suspicious, and removed # from proto.make 1992-06-25 17:41:51 +00:00
ceriel
4c68772bbf Added declaration for st_alloc() 1992-06-25 11:32:30 +00:00
ceriel
b8f596af87 Added rm_deps 1992-06-24 14:13:10 +00:00
ceriel
e311f43d19 bug fix: an illegal 'inc' was generated 1992-06-12 15:04:27 +00:00
ceriel
6803611c91 Fix: sometimes did not reserve space for local on a mes ms_gto 1992-06-12 09:46:43 +00:00
ceriel
469368bf9f Fixed checking of unary '*' 1992-06-12 09:03:07 +00:00
ceriel
e79802bb12 Fixed typo 1992-06-09 11:23:39 +00:00
ceriel
5639e6b55c Fixed bug in '#ifdef FALSE || 1 (garbage) 1992-05-26 18:09:11 +00:00
ceriel
3eb6c6b7d9 Corrected problem in reading symbol table: t14=15, t15=16 did not work properly 1992-05-20 10:57:42 +00:00
ceriel
d94959483f Corrected: end_em is in lib/m68k2, not in lib/minixST 1992-05-20 10:54:40 +00:00
ceriel
164c4c6997 Improved symbol table for grind 1992-05-20 10:54:28 +00:00
ceriel
167f29f5fd Restored exit.c and cleanup.c 1992-05-18 16:10:18 +00:00
ceriel
3cc222cf43 Restored exit.c and cleanup.c 1992-05-18 16:01:16 +00:00
ceriel
fd128bb692 Added missing files 1992-05-15 13:55:14 +00:00
ceriel
55fe5e601d Filename check now only for implementation modules 1992-05-15 13:53:36 +00:00
ceriel
927d3db808 updated catchsig.s 1992-05-15 13:31:19 +00:00
ceriel
61bf039906 Added some missing files 1992-05-15 13:14:55 +00:00
ceriel
e20bfab87e Fix in previous added check 1992-05-11 16:15:28 +00:00
ceriel
63828b7256 Added filename check 1992-05-11 11:52:22 +00:00
ceriel
96804aa49b Fixed bug: temporary local was used more than once 1992-05-11 11:30:04 +00:00
ceriel
dcb4a075c4 Cardinal checking sometimes produced wrong error message 1992-05-11 09:50:21 +00:00
ceriel
f247d0c543 Fixed problem with repl_mul(); it was called far too often 1992-04-24 12:39:58 +00:00
ceriel
a7f57b54cf Corrected limit_impl for installation of interpreters 1992-04-23 16:10:13 +00:00
ceriel
5c592b4dd5 Improved fe 1992-04-23 13:28:28 +00:00
ceriel
567bef9349 em.c still used lib instead of lib.bin 1992-04-23 13:02:37 +00:00
ceriel
6bc04d9d23 Fixed proto.make 1992-04-23 12:55:34 +00:00
ceriel
67c9de101b Corrected manual pages 1992-04-23 12:53:03 +00:00
ceriel
7d380bbc44 Fixed bug in initalization expression handling 1992-04-21 09:54:32 +00:00
ceriel
1d580149ee Fixed bug: old-style float parameters resulted in wrong addresses for following parameters 1992-04-16 16:29:35 +00:00
ceriel
8dbfd7b187 Documented -gdb flag 1992-04-15 10:24:15 +00:00
ceriel
9feec0c9eb Added -gdb flag 1992-04-15 10:21:16 +00:00
ceriel
814d63f2fd Fixed problem with array's of incomplete types 1992-04-14 13:30:37 +00:00
ceriel
4e1fd547da Allow for machine-dependent options 1992-03-27 17:38:54 +00:00
ceriel
9edc1b9b2e Accept -gdb option 1992-03-27 17:36:49 +00:00
ceriel
c43126ba98 Allow letters after the -g flag (for -gdb) 1992-03-27 17:33:19 +00:00
ceriel
d5a7a50c11 improved assert macro 1992-03-20 13:43:10 +00:00
ceriel
66edad8a3b fixed linting 1992-03-02 16:47:03 +00:00
ceriel
9ecbb353d6 Fixed linting 1992-03-02 14:55:47 +00:00
ceriel
fe75366bf6 Fixed linting 1992-03-02 14:46:03 +00:00
ceriel
14305ca64d Bug fix in old-style/new-style mixing 1992-03-02 14:37:37 +00:00
ceriel
5b1de5a348 Fixed CFU implementation 1992-03-02 11:52:09 +00:00
ceriel
5bb7aeb88e minor change: give anonymous struct a name 1992-02-26 15:46:44 +00:00
ceriel
999b149738 corrected the making of make_macros 1992-02-26 15:32:39 +00:00
ceriel
745b8ee22c corrected the making of make_macros 1992-02-26 15:10:50 +00:00
ceriel
65110eb02a corrected the making of make_macros 1992-02-26 14:44:00 +00:00
ceriel
93c7c8d2d1 corrected the making of make_macros 1992-02-26 14:24:26 +00:00
ceriel
e2a688ce03 corrected the making of make_macros 1992-02-26 14:17:32 +00:00
ceriel
af7e116314 corrected the making of make_macros 1992-02-26 13:51:27 +00:00
ceriel
b2ce13d2b8 initialize inctable better 1992-02-26 13:38:34 +00:00
ceriel
3cff201a9f Fix in DEFPATH mechanism, improved proto.make 1992-02-26 13:35:06 +00:00
ceriel
709031afd3 Fix in DEFPATH mechanism, improved proto.make 1992-02-26 13:10:48 +00:00
ceriel
b7c289048a Fix proto.make and initialize inctable better 1992-02-25 11:07:45 +00:00
ceriel
0246f198d4 Added i386 description 1992-02-11 16:59:43 +00:00
ceriel
bb7e72755c Bug fix: INC/DEC evaluated argument twice(!) 1992-01-31 13:44:57 +00:00
ceriel
1803c56862 differing characters should be left untouched 1992-01-24 13:05:30 +00:00
ceriel
7e63c4818f small fix for compatibility with different make's 1992-01-22 11:25:52 +00:00
ceriel
a70ab7644a Bug fix: generated a 'push dl', which does not exist 1992-01-13 10:31:23 +00:00
ceriel
5ea94512cd Updates for 5th distribution 1991-12-19 10:32:01 +00:00
ceriel
f3981cea50 Put malloc.c after malloc in .distr file, otherwise it cannot be made 1991-12-19 10:22:15 +00:00
ceriel
ccfc202eac Added stab.c 1991-12-19 10:19:31 +00:00
ceriel
cf58891cec Added dbsym.c 1991-12-19 09:30:53 +00:00
ceriel
ab45420b88 do not install peephole optimizer libs when not installing fast compilers 1991-12-18 17:26:52 +00:00
ceriel
4d6e354609 replaced atol definition 1991-12-18 16:15:18 +00:00
ceriel
a9ba0dcaec removed atol reference 1991-12-18 16:01:44 +00:00
ceriel
bce4511bbb Made installation mechanism more portable 1991-12-18 14:51:08 +00:00
ceriel
e4af3b2418 Added some more info about i386 version 1991-12-18 14:39:14 +00:00
ceriel
5403ede0ab Accomodate symbolic debugger info 1991-12-18 14:38:57 +00:00
ceriel
d8abf18eb5 Ported to 80386 (problem: different read() semantics) 1991-12-18 14:36:26 +00:00
ceriel
b580397423 Added pop_push.h 1991-12-18 09:47:19 +00:00
ceriel
fc4bd85342 No longer use ushort 1991-12-18 09:45:26 +00:00
ceriel
87a148facb Use cp_dir to copy directories 1991-12-18 09:44:10 +00:00
ceriel
5866c2a57b Added debugger library for -g 1991-12-18 09:42:04 +00:00
ceriel
a5345dc5c9 Fix: produced dependencies were wrong 1991-12-18 09:40:23 +00:00
ceriel
9aa79eacba Fixed typo in previous fix 1991-12-18 09:34:52 +00:00
ceriel
27e3ba5880 Fixed typo 1991-12-18 09:22:13 +00:00
ceriel
8aff7d0e91 Fixed typo in previous fix 1991-12-18 09:14:25 +00:00
ceriel
ecdf136c83 Do not use '#endif/#else xxx'; it is not allowed for ANSI C 1991-12-17 15:49:18 +00:00
ceriel
d33da47a2a Do not use '#endif/#else xxx'; it is not allowed for ANSI C 1991-12-17 15:28:58 +00:00
ceriel
8daa5b2260 Do not use '#endif/#else xxx'; it is not allowed for ANSI C 1991-12-17 15:05:43 +00:00
ceriel
bd6685cd34 Do not use '#endif/#else xxx'; it is not allowed for ANSI C 1991-12-17 14:36:35 +00:00
ceriel
c8fa012584 Do not use '#endif/#else xxx'; it is not allowed for ANSI C 1991-12-17 14:27:24 +00:00
ceriel
7d78a01b64 Do not use '#endif/#else xxx'; it is not allowed for ANSI C 1991-12-17 14:11:15 +00:00
ceriel
a3bbaf4940 Do not use '#endif/#else xxx'; it is not allowed for ANSI C 1991-12-17 13:12:22 +00:00
ceriel
f35e193d72 Do not use '#endif xxx'; it is not allowed for ANSI C 1991-12-17 11:41:12 +00:00
ceriel
17f6b22fe7 Do not use '#endif xxx'; it is not allowed for ANSI C 1991-12-17 11:33:08 +00:00
ceriel
3a10a7021a Fix to previous fix 1991-12-17 11:23:09 +00:00
ceriel
6b21455cbf 'int x[];' is a valid compilation unit! See 3.7.2 of ANSI 1991-12-17 10:18:41 +00:00
ceriel
c8159af975 Added errno.h 1991-12-16 16:54:12 +00:00
ceriel
688ed3e35c Changed order in ceg/list 1991-12-16 16:06:29 +00:00
ceriel
8a9e4b2387 Improved installation of make_ files 1991-12-16 15:35:14 +00:00
ceriel
3c04dbbde5 Prevent name clashes with sys/types.h on system V 1991-12-16 15:24:24 +00:00
ceriel
4dd5f72af5 Do not use '#undef aap xxx'; it is not allowed for ANSI C 1991-12-16 14:34:06 +00:00
ceriel
37bfb6a700 Do not use '#undef aap xxx'; it is not allowed for ANSI C 1991-12-16 14:15:46 +00:00
ceriel
8b1e6a8065 Fix '#undef' handling 1991-12-16 14:06:09 +00:00
ceriel
944060bef4 Do not use '#undef aap xxx'; it is not allowed for ANSI C 1991-12-16 13:45:18 +00:00
ceriel
0944cad7ab be consistent in naming of itemtab.h 1991-12-12 16:02:59 +00:00
ceriel
89e4d1e01d Added 'extern' 1991-12-12 16:01:46 +00:00
ceriel
6d07891e3f removed macro defining ushort; gave clash with /usr/include/sys/types.h 1991-12-12 14:15:14 +00:00
ceriel
cfbff7180d Fixed comments 1991-12-12 14:12:36 +00:00
ceriel
f5beec83ca Fixed comment 1991-12-12 13:01:00 +00:00
ceriel
c286b7327e Fixed comments 1991-12-12 12:50:42 +00:00
ceriel
5f2a9d4be6 Some bug fixes 1991-12-04 16:28:37 +00:00
ceriel
b4393b9617 Added target optimozer 1991-12-04 14:27:11 +00:00
ceriel
adeddf5c45 Made acceptable for our ANSI C compiler 1991-12-03 11:03:58 +00:00
ceriel
f7ad1b00bf bug fix in generating prototypes 1991-12-03 10:56:40 +00:00
ceriel
286f6b17bf Changed identifier name to make it acceptable for our ANSI C compiler 1991-12-03 10:52:03 +00:00
ceriel
efc2255218 Install yacc before installing flex 1991-12-03 10:50:03 +00:00
ceriel
6a7cfe749a Minor mod to prevent compiler warning 1991-12-03 10:48:57 +00:00
ceriel
d9c77a9768 Several changes 1991-12-03 09:44:01 +00:00
ceriel
c2780b7149 Updated LIST 1991-12-03 09:34:29 +00:00
ceriel
d07364cce2 Take sys/types.h and sys/stat.h from old C library 1991-12-02 16:43:08 +00:00
ceriel
bceedad2af upgraded 1991-12-02 16:42:31 +00:00
ceriel
c3774b0c2b Updated 1991-12-02 15:55:49 +00:00
ceriel
6dda9a3029 removed sgtty.h; is taken from _tail_cc 1991-12-02 15:54:26 +00:00
ceriel
55e78c72de Made acceptable for our ANSI C compiler 1991-12-02 15:30:28 +00:00
ceriel
bc91b5c790 Fixed for ANSI-C part 1991-12-02 15:25:01 +00:00
ceriel
559beab0b3 Don't use calloc and our own malloc combined 1991-12-02 14:44:20 +00:00
ceriel
79bc624aae Made acceptable for our ANSI C compiler 1991-12-02 13:55:09 +00:00
ceriel
72d46b4049 Several fixes for ANSI 1991-12-02 13:43:59 +00:00
ceriel
16d4dca396 l_states.c used 'const' as an identifier; unacceptable for ANSI-C! 1991-12-02 13:09:15 +00:00
ceriel
dd7a98928e Fixed typo 1991-12-02 12:01:04 +00:00
ceriel
8038e7050b Always also produce ANSI-C, depending on __STDC__ and __cplusplus 1991-12-02 09:15:04 +00:00
ceriel
16515e7822 minor mods to parameters in grammar 1991-11-29 14:11:31 +00:00
ceriel
e9633fbe8b minor mods to parameters in grammar 1991-11-29 13:57:24 +00:00
ceriel
3d9156d31b minor modification 1991-11-29 13:33:12 +00:00
ceriel
ef4f4a052d bug fix in repl_mul and moved call to it so that it is done after pattern matching 1991-11-28 16:59:25 +00:00
ceriel
6c2e52acd1 Changed error messages mechanism 1991-11-27 16:34:12 +00:00
ceriel
566a34c9fa Deleted comment that was no longer applicable 1991-11-27 14:52:17 +00:00
ceriel
0f2001ce84 Changed error-messages mechanism 1991-11-27 13:40:52 +00:00
ceriel
9a6aaa700b Improved for lint 1991-11-27 13:38:51 +00:00
ceriel
912e4b0977 produce ANSI C under -a option 1991-11-26 15:38:41 +00:00
ceriel
53aa761bcd made more acceptable for ANSI C 1991-11-26 14:48:27 +00:00
ceriel
52b36079a7 made more acceptable for ANSI C 1991-11-26 14:39:52 +00:00
ceriel
75e3e3af11 Several modifications and additions 1991-11-25 16:54:25 +00:00
ceriel
6686eacae6 Some more fine-tuning of the installation mechanism 1991-11-25 16:47:36 +00:00
ceriel
99e880ff5b Some minor changes 1991-11-25 09:52:08 +00:00
ceriel
cdced53d10 lib --> lib.bin 1991-11-25 09:51:57 +00:00
ceriel
044bc77a2d lib/em_data.a --> lib.bin/em_data.a 1991-11-25 09:49:27 +00:00
ceriel
81b6d45d2a Another minor change in manual page 1991-11-25 09:41:30 +00:00
ceriel
069f15b5e4 Minor change in manual page 1991-11-25 09:39:31 +00:00
ceriel
b2fb4435f3 Added target optimizer 1991-11-23 15:14:32 +00:00
ceriel
6824718e04 Added 1991-11-23 15:04:01 +00:00
ceriel
ba6916508e removed makedepend 1991-11-23 12:43:11 +00:00
ceriel
5ccd0776dd Removed makedepend 1991-11-23 12:26:02 +00:00
ceriel
6fba68c551 Bug fix in multiplication optimization 1991-11-23 12:17:18 +00:00
ceriel
b528a64177 Changed copyright notice, made installation less dependent on ACK 1991-11-23 10:41:43 +00:00
ceriel
c46a547f91 Added pics directory to .distr 1991-11-23 09:35:36 +00:00
ceriel
bb9538b73b Changed action names to reflect action taken 1991-11-22 13:55:56 +00:00
ceriel
b3740afbb5 Avoid use of 'you' 1991-11-22 13:18:57 +00:00
ceriel
695dc618c7 Avoid informal use of 'you' 1991-11-22 11:10:09 +00:00
ceriel
94e3f7f1d1 updated manual page 1991-11-20 16:45:25 +00:00
ceriel
61b5110dac Added MACHOPT_F 1991-11-20 16:07:33 +00:00
ceriel
5ecc56fa3c Added code to optimize multiplies with constants 1991-11-20 15:53:11 +00:00
ceriel
9a2c5db588 Added MACHOPT_F 1991-11-20 15:52:27 +00:00
ceriel
6bd6b8457b Avoid informal usage of 'you' 1991-11-19 17:25:02 +00:00
ceriel
d3766ed50c Avoid informal usage of 'you', updated installation manual 1991-11-19 13:44:09 +00:00
ceriel
e9bb2115f1 Avoid informal usage of 'you' 1991-11-19 13:37:20 +00:00
ceriel
e2494bc20b Error message listed was never given 1991-11-19 13:24:55 +00:00
ceriel
c46fc013f3 Avoid informal usage of 'you' 1991-11-19 13:19:02 +00:00
ceriel
fcec818ba0 Avoid informal usage of 'you' 1991-11-19 13:09:50 +00:00
ceriel
d8b47cd0fc Made installation of fast compilers optional, removed own version of 'echo' 1991-11-18 09:53:58 +00:00
ceriel
2751c6eef5 Added labeldef stuff 1991-11-18 09:51:35 +00:00
ceriel
6d3cc8e653 anm also works on aal archives now 1991-11-18 09:46:53 +00:00
ceriel
ae0355cfec Fixed manual page 1991-11-15 14:41:41 +00:00
ceriel
73d8ea10b5 Updated ack manual page 1991-11-15 13:37:36 +00:00
ceriel
cf64ceb63c Also preprocess when user explicitly askes for it through -c.i 1991-11-15 12:50:13 +00:00
ceriel
18607abac9 Fixed fef.s: did not work for unnormalized numbers 1991-11-15 09:47:44 +00:00
ceriel
10bacd48a8 Fixed NOP 1991-11-14 15:53:05 +00:00
ceriel
c209fed33d Bug fix in LOC LOC CII ZEQ/ZNE pattern 1991-11-14 13:20:55 +00:00
ceriel
2b34c00a67 Many changes in installation mechanism 1991-11-14 09:35:36 +00:00
ceriel
2ac0b945f5 Accomodate ANSI C compiler better 1991-11-13 17:07:30 +00:00
ceriel
9ae0501736 Added sections 1991-11-13 16:57:40 +00:00
ceriel
e973ce69c1 Also install ce and libce 1991-11-13 16:56:48 +00:00
ceriel
2d5fd9bfcd Also install libce 1991-11-13 16:56:12 +00:00
ceriel
2fd9d25a46 updated 1991-11-13 16:55:20 +00:00
ceriel
a7b3af0b27 Added dbsym and updated output.c 1991-11-13 16:54:59 +00:00
ceriel
7b6f62e308 Added 1991-11-13 16:53:49 +00:00
ceriel
040b1f26aa Removed vars.s 1991-11-13 15:03:01 +00:00
ceriel
43fd2a6f46 Added sys.s 1991-11-13 14:33:10 +00:00
ceriel
4771f9356c Added C_db_sline 1991-11-11 18:08:14 +00:00
ceriel
4f0a9b97bd Some more fixes 1991-11-11 18:03:52 +00:00
ceriel
795322503b Accomodate old C compiler, don't call ack(1): too slow for fcc 1991-11-11 13:16:23 +00:00
ceriel
e3a7754fd6 Added 1991-11-11 13:14:08 +00:00
ceriel
18324d6834 Added old C compiler, renamed ansi C one 1991-11-11 13:13:09 +00:00
ceriel
403e9a5dc9 Fixed 1991-11-11 09:40:06 +00:00
ceriel
c3ea2a2ffa Added dbsymtab.h 1991-11-11 09:39:05 +00:00
ceriel
b4960b5d3a Added libdb 1991-11-08 15:45:47 +00:00
ceriel
ab1f1a6229 Added 1991-11-08 15:44:30 +00:00
ceriel
9b580c31b1 Added grind support 1991-11-08 15:12:28 +00:00
ceriel
cb7925684d A few fixes 1991-11-07 11:36:09 +00:00
ceriel
604a0b2074 '\v' is not a K&R character 1991-11-07 09:53:11 +00:00
ceriel
39474028b4 '\v' is not a K&R character 1991-11-07 09:45:09 +00:00
ceriel
be86229b5e Fixed typo 1991-11-07 09:39:30 +00:00
ceriel
dd4798bebb Also remove scan.c on cleanup 1991-11-07 09:35:35 +00:00
ceriel
45af92ec27 '\v' is not a K&R character 1991-11-07 09:34:02 +00:00
ceriel
a4f9a96b15 '\v' is not K&R C 1991-11-06 14:36:25 +00:00
ceriel
d122461894 Changed manual page installation mechanism 1991-11-05 15:31:14 +00:00
ceriel
7ca27ad5e6 Added mk_manpage 1991-11-04 16:51:48 +00:00
ceriel
1b6505c374 Replaced Makefile by proto.make 1991-11-04 11:47:15 +00:00
ceriel
6fb1ad4242 code expanders now support grind 1991-11-01 11:55:34 +00:00
ceriel
6f4094c7c4 Added grind support 1991-11-01 11:53:42 +00:00
ceriel
6d553a379a Added C_db_sline for grind 1991-11-01 11:47:41 +00:00
ceriel
1aeb208b12 Added some tests and changed ordering mechanism 1991-11-01 10:37:26 +00:00
ceriel
fcb5d029e2 Fixed error in debugger support for enumeration constants 1991-11-01 10:17:30 +00:00
ceriel
b0c766a907 Fixes involving floating point constants and debugger support 1991-11-01 10:15:15 +00:00
ceriel
e7b04c5d38 Added 1991-11-01 09:43:36 +00:00
ceriel
1acc267573 Some fixes to ashow, and also install it 1991-10-31 11:04:02 +00:00
ceriel
2da0408b1a prevent null reference 1991-10-31 10:01:34 +00:00
ceriel
72387765ad Fixed Email addresses 1991-10-30 18:21:52 +00:00
ceriel
4d7cd94c91 Bug fix in structure assignments 1991-10-29 15:57:26 +00:00
ceriel
2a84fa54c2 Added -L option for C compilations 1991-10-29 15:52:40 +00:00
ceriel
1ac7c9608f Change of directory name 1991-10-29 09:27:09 +00:00
ceriel
d8e8c7fc56 Several corrections 1991-10-29 09:26:46 +00:00
ceriel
1c6438de99 Improved lint entry 1991-10-29 09:26:01 +00:00
ceriel
24503bc331 Corrected lintlib entry 1991-10-29 09:24:48 +00:00
ceriel
9ab8a3e7b7 Only install ACK-object producing part 1991-10-29 09:19:57 +00:00
ceriel
d85010d460 Deal with CASE a OF 10 .. MAX(CARDINAL) ... and things like that 1991-10-29 09:18:46 +00:00
ceriel
c5c1b74381 Fixes to local label stuff 1991-10-28 17:59:57 +00:00
ceriel
ad89450ae6 Added 1991-10-25 18:23:32 +00:00
ceriel
fbfdda97e4 No unsigned long arithmetic is default 1991-10-25 16:03:37 +00:00
ceriel
6223886542 On i386 systems, make code expander lib 1991-10-25 15:46:30 +00:00
ceriel
73be509117 Pass COPTIONS, not CFLAGS 1991-10-25 15:23:01 +00:00
ceriel
ce5c32157e protect against multiple inclusion 1991-10-25 14:44:21 +00:00
ceriel
06ca50cf94 Bug fix: used field of freed struct 1991-10-25 14:27:59 +00:00
ceriel
1f7734acc3 Only install machine-independent part when required 1991-10-25 11:44:18 +00:00
ceriel
9afa47b79c Some more typedefs 1991-10-25 11:39:06 +00:00
ceriel
9f2477371a lib --> lib.bin in ego description 1991-10-25 11:31:20 +00:00
ceriel
babdfc0678 do not depend on sys/wait.h, it does not always exist 1991-10-25 11:18:29 +00:00
ceriel
bd7c45b3da Do not depend on include files too much 1991-10-25 11:16:56 +00:00
ceriel
42e90786b2 Bug fix in padding code 1991-10-25 11:15:09 +00:00
ceriel
0004e24613 Several fixes 1991-10-25 11:13:43 +00:00
ceriel
edf82faed0 Added some more types 1991-10-25 11:10:21 +00:00
ceriel
71d8948654 cv was made twice 1991-10-25 09:32:18 +00:00
ceriel
77a53a77e7 Some fixes 1991-10-24 15:29:02 +00:00
ceriel
c8cdd184e4 Fix in proto.make 1991-10-22 14:35:13 +00:00
ceriel
33c7e0139d Made more portable by not depending on a.out.h file 1991-10-22 13:31:36 +00:00
ceriel
a0c81217e2 improved clean entry 1991-10-22 10:56:06 +00:00
ceriel
8494dcb27b fixes 1991-10-22 10:55:19 +00:00
ceriel
f1cd5adc70 Added vprintf etc 1991-10-22 09:50:57 +00:00
ceriel
05c4956024 Added rule to compile as.c 1991-10-22 09:18:32 +00:00
ceriel
cd673cd6a1 NSIG is not always defined 1991-10-22 09:07:31 +00:00
ceriel
8d75f5ab41 Define NSIG 1991-10-22 09:05:15 +00:00
ceriel
acf35ab345 Do not define _end; causes name clashes 1991-10-22 09:01:09 +00:00
ceriel
98a5ccf85c Bug fix: used wrong option letter 1991-10-21 16:38:27 +00:00
ceriel
4118aa8d6b Fixed typo 1991-10-21 14:17:32 +00:00
ceriel
859c2baddd Added compilation rule for scan.c 1991-10-21 14:13:29 +00:00
ceriel
19c6163586 cleanup better 1991-10-21 13:59:48 +00:00
ceriel
b4c36b81cb cleanup better 1991-10-21 13:26:50 +00:00
ceriel
0df166101c cleanup better 1991-10-21 13:19:41 +00:00
ceriel
febad02af9 Allow mk_config to run over existing tree, make ack_sys executable 1991-10-18 12:00:42 +00:00
ceriel
8d11d92ae8 Do not perform actions if NoAction file is present 1991-10-18 12:00:17 +00:00
ceriel
1ee4f073a3 Make target writable 1991-10-18 10:07:38 +00:00
ceriel
a669125265 A few fixes 1991-10-18 10:02:44 +00:00
ceriel
0cb5903e3b Make targets writable 1991-10-18 09:58:52 +00:00
ceriel
8c61b49a6a Some fixes 1991-10-18 09:47:46 +00:00
ceriel
ff9b38712d Make files writable 1991-10-17 21:17:17 +00:00
ceriel
c57533bdf9 Fixed typo 1991-10-17 16:36:54 +00:00
ceriel
dc1753f4d3 a few minor fixes 1991-10-17 13:27:53 +00:00
ceriel
7a224258eb Use ASAR instead of AR 1991-10-16 17:57:53 +00:00
ceriel
929116affc qsort arg was wrong for ANSI C 1991-10-16 16:08:27 +00:00
ceriel
c7fd7e86bf Additions for 5th distribution 1991-10-16 13:36:54 +00:00
ceriel
b5dfb8768b Added Action.lint 1991-10-16 13:36:15 +00:00
ceriel
728edfe861 Adapted for 5th distribution 1991-10-16 13:33:50 +00:00
ceriel
b2cba6b4f1 many changes 1991-10-16 13:33:38 +00:00
ceriel
69008c7531 Updated 1991-10-16 13:28:48 +00:00
ceriel
066947e198 generate Version.c 1991-10-16 13:07:28 +00:00
ceriel
b6310c32c0 5th distribution now! 1991-10-16 11:54:35 +00:00
ceriel
78cf0040f5 fixed lintlib entry 1991-10-16 11:42:25 +00:00
ceriel
c097753801 Return values 1991-10-16 11:41:33 +00:00
ceriel
da4264f1fd New installation mechanism 1991-10-15 16:02:38 +00:00
ceriel
7bcafc2ab5 Added cmp and clean entries 1991-10-15 09:31:01 +00:00
ceriel
77fd6f2b37 Only define NULL when not defined yet 1991-10-15 09:25:44 +00:00
ceriel
cbe82179fb Removed some files that are no longer needed 1991-10-14 15:17:40 +00:00
ceriel
6b71379259 Added clean entry 1991-10-14 13:37:43 +00:00
ceriel
bbfa88743c Added some patterns 1991-10-14 13:04:29 +00:00
ceriel
bb741649d4 improved installation mechanism 1991-10-14 11:39:24 +00:00
ceriel
4e80599e03 improved installation mechanism 1991-10-14 09:38:04 +00:00
ceriel
77e9be0d3c Updated 1991-10-14 09:33:55 +00:00
ceriel
c28203d1b4 improved installation mechanism 1991-10-14 09:18:33 +00:00
ceriel
ce670c7c0f Corrected 1991-10-14 09:17:38 +00:00
ceriel
1dafdb1c98 corrected installation mechanism 1991-10-14 09:13:40 +00:00
ceriel
992331d413 Corrected installation mechanism 1991-10-14 09:12:13 +00:00
ceriel
aafd9edc13 Added errno.h 1991-10-14 09:05:56 +00:00
ceriel
63c49b4ca9 Changed type to int 1991-10-14 08:56:56 +00:00
ceriel
1219af36e7 Removed some strange lines 1991-10-11 09:22:25 +00:00
ceriel
162d52fc94 Added proto.libf77 1991-10-10 15:00:43 +00:00
ceriel
400fc8ab30 Added scripts 1991-10-10 14:39:33 +00:00
ceriel
fd4cec66ba Do not install lintlib by default: maybe lint is not installed yet 1991-10-09 19:12:52 +00:00
ceriel
f9c4a5e37a do not do lintlib installation on 'make install', also make sure
that every proto.make has a lintlib entry
1991-10-09 19:02:55 +00:00
ceriel
a88a66615c Fixed manual page 1991-10-09 16:05:24 +00:00
ceriel
47390a8b2c include local.h from the config dir 1991-10-09 15:49:20 +00:00
ceriel
9e95c438ab Updated 1991-10-08 10:04:53 +00:00
ceriel
e02360b2cc Define NFS 1991-10-08 09:45:12 +00:00
ceriel
b0f1167eb5 Added 1991-10-08 09:23:46 +00:00
ceriel
ece7e8c299 Added fortran 1991-10-07 17:00:59 +00:00
ceriel
e3c91880ab Added 1991-10-07 16:59:33 +00:00
ceriel
b62d0feed1 Added 1991-10-07 16:35:03 +00:00
ceriel
2525e49337 Added fortran 1991-10-07 15:29:25 +00:00
ceriel
2e16b73e07 Use int instead of gid_t and/or uid_t 1991-10-07 13:37:20 +00:00
ceriel
17dae849de More additions 1991-10-04 17:37:32 +00:00
ceriel
25f001366b Own fcntl.h 1991-10-04 17:37:22 +00:00
ceriel
76dbcd49ce Added 1991-10-04 14:34:29 +00:00
ceriel
ddb4c798f3 own time.h 1991-10-04 14:06:34 +00:00
ceriel
ff5278a459 Added time.h 1991-10-04 14:04:30 +00:00
ceriel
38a3ec1e93 Added some patterns 1991-10-04 11:10:07 +00:00
ceriel
be7f8c11e3 Several fixes 1991-10-04 10:38:53 +00:00
ceriel
1891f423b8 only check for positive powers of 2 1991-10-04 10:37:06 +00:00
ceriel
b9713c4949 Fixes 1991-10-03 15:57:23 +00:00
ceriel
37727a19ee Fixes and additions 1991-10-03 15:45:13 +00:00
ceriel
5195c49b0f Fixed wrong constant used for CUF 1991-10-02 15:27:54 +00:00
ceriel
3628266abd Fixed flt_ar2flt.c 1991-10-02 15:20:22 +00:00
ceriel
4a1cf4cf8e Did shift of 32. Not allowed 1991-10-02 13:41:33 +00:00
ceriel
16d7372ac1 Added support for volatile 1991-10-02 13:03:31 +00:00
ceriel
46a85041c8 Fixed ADF 4 error 1991-10-02 12:36:36 +00:00
ceriel
f312e973f8 Fix: sometimes generated illegal register messages for parameters 1991-10-02 12:00:05 +00:00
ceriel
e81338ccf6 ip_spec.h is moved 1991-10-01 17:37:21 +00:00
ceriel
2c4f240164 Additions 1991-10-01 16:57:53 +00:00
ceriel
73eb400e2c Adapted for distribution 1991-10-01 16:44:14 +00:00
ceriel
621d4d4756 Distribute proto.make, not Makefile 1991-10-01 16:31:08 +00:00
ceriel
1cdd961bd0 Moved ip_spec.h to h directory 1991-10-01 16:24:49 +00:00
ceriel
a315e8ea0d Added ip_spec.h 1991-10-01 16:20:38 +00:00
ceriel
b5916a4347 Added include directories 1991-10-01 14:59:33 +00:00
ceriel
b6b710d21b Updated c.llb 1991-10-01 13:59:16 +00:00
ceriel
5052973dd5 Changes to manual page 1991-10-01 12:18:39 +00:00
ceriel
e66f4218d5 small change to manual page 1991-10-01 11:14:24 +00:00
ceriel
fe7a19ce9c Removed LintPars 1991-10-01 09:54:42 +00:00
ceriel
4cf370922d New additions 1991-10-01 09:27:44 +00:00
ceriel
270ceb3829 Added 1991-09-30 17:58:00 +00:00
ceriel
4551038c47 Added lint 1991-09-30 17:54:44 +00:00
ceriel
ad78ab14dc Added lint 1991-09-30 16:58:12 +00:00
ceriel
61dc4984f2 Added -ansi flag to lint.1 1991-09-30 16:55:35 +00:00
ceriel
4a70e280f6 Adapted for ACK distribution 1991-09-30 16:53:21 +00:00
ceriel
576ee03ffa Added 1991-09-30 16:51:49 +00:00
ceriel
fa194c6dc8 Distribute malloc.c to improve lint library generation 1991-09-30 16:36:17 +00:00
ceriel
0f005d2ac0 fixed some lint complaints 1991-09-30 16:24:45 +00:00
ceriel
67e81d745b fixed lint complaints 1991-09-30 16:12:08 +00:00
ceriel
d7e6f14273 Fix: sometimes crashed on initializers for unknown types 1991-09-30 15:00:46 +00:00
ceriel
896942b7c4 Hidden name 'not_implemented' 1991-09-30 09:26:09 +00:00
ceriel
2b79b3f35d Added debugger support library 1991-09-30 09:24:11 +00:00
ceriel
6967cfb459 Added sparc docs 1991-09-27 17:08:48 +00:00
ceriel
71bfd5f71e Added 1991-09-27 16:19:24 +00:00
ceriel
c9302b5a06 Hidden some names, fixed STR 1 bug, use stdio instead of print module 1991-09-27 15:02:33 +00:00
ceriel
1b4e0c78db Use stdio instead of print module 1991-09-27 14:58:31 +00:00
ceriel
b98e6f5029 Adapted for SPARC. LBRAC not reliable 1991-09-27 14:58:30 +00:00
ceriel
b1d88287ea Added __sun define 1991-09-27 14:57:38 +00:00
ceriel
4792373fa2 Added support for grind 1991-09-27 14:55:04 +00:00
ceriel
3429aea213 Made to work for SPARC 1991-09-27 14:51:43 +00:00
ceriel
a817ff446f Also include back.h 1991-09-26 12:55:43 +00:00
ceriel
fc263bbf2d Fixed typo 1991-09-25 15:39:43 +00:00
ceriel
ed2cc4c19b Fixed calls to ioctl; sizes of structs are different in ACK 1991-09-25 15:35:57 +00:00
ceriel
b4a2483da7 small change to get a better LB 1991-09-25 15:35:03 +00:00
ceriel
711bd6c840 Made to work with interpreter 1991-09-25 15:04:05 +00:00
ceriel
2e102b3248 Fixed illegal array descriptors 1991-09-25 15:04:02 +00:00
ceriel
d6b8c56967 removed tst.ocm; did not compile 1991-09-25 15:03:05 +00:00
ceriel
e7a60a0fc5 Several fixes 1991-09-25 10:44:30 +00:00
ceriel
8bdfaed628 Several fixes 1991-09-25 10:30:45 +00:00
ceriel
6827752584 Added {} around generated for-loop 1991-09-25 10:29:00 +00:00
ceriel
e61bbc89f3 Fixed problem in gen_str.c: back-slash escape 1991-09-25 10:28:06 +00:00
ceriel
e0ecfba967 Added fef,fif and fixes 1991-09-25 09:17:14 +00:00
ceriel
455a540f31 Added libend 1991-09-25 09:16:08 +00:00
ceriel
cde85b6dec Added mes 11 1991-09-25 09:15:22 +00:00
ceriel
6994616f77 Added 1991-09-25 09:15:10 +00:00
ceriel
309edc74b0 Gave coroutine more stack space 1991-09-25 09:14:25 +00:00
ceriel
119eca3dd0 Added _dvi and _dvil 1991-09-25 09:14:08 +00:00
ceriel
8fc180e2b7 Added FLOATS macro and fixed array bound error 1991-09-25 09:11:14 +00:00
ceriel
de39f29d16 Added typedef for sigset_t 1991-09-25 09:07:28 +00:00
ceriel
3003a092dd Fixed for Sparc 1991-09-24 17:48:37 +00:00
ceriel
863cd4ee18 Avoid DVI instruction. Use library call instead 1991-09-24 10:45:43 +00:00
ceriel
96a90c7615 Added 1991-09-23 13:44:18 +00:00
ceriel
2220c3b6fb Added 1991-09-20 18:14:05 +00:00
ceriel
7905507e1d Added 1991-09-20 16:05:17 +00:00
ceriel
ff114b0bf1 Added 1991-09-20 15:20:22 +00:00
ceriel
78d15e770d Added sparc 1991-09-20 15:18:26 +00:00
ceriel
e7eafc690b Fixed proto.make 1991-09-20 10:39:07 +00:00
ceriel
c6f924c435 Fixes 1991-09-19 14:39:10 +00:00
ceriel
7f807a137e Removed dir.h 1991-09-19 13:05:02 +00:00
ceriel
b0306115b4 Updates and fixes 1991-09-19 12:54:23 +00:00
ceriel
fc380486c9 Updates 1991-09-19 12:46:16 +00:00
ceriel
02d0eb7442 Several fixes 1991-09-19 11:26:10 +00:00
ceriel
312e54ce9d Added some decls 1991-09-19 10:47:01 +00:00
ceriel
80ec871798 NSIG --> _NSIG 1991-09-19 10:38:40 +00:00
ceriel
b06686fce6 Added definition for SIGSYS 1991-09-19 10:36:32 +00:00
ceriel
cb7922e014 Added stat.h 1991-09-19 09:35:16 +00:00
ceriel
51f98ecc5e Added types.h 1991-09-19 09:05:20 +00:00
ceriel
18b9f7c1f8 Added unistd.h 1991-09-19 08:59:59 +00:00
ceriel
988a3c8bd3 Fixed pmds4 description 1991-09-19 08:48:59 +00:00
ceriel
783afff6f9 improved test entries 1991-09-18 19:39:02 +00:00
ceriel
626ec6c0b1 Same for mach.h 1991-09-18 19:19:35 +00:00
ceriel
647b38ccc2 Fixed: failed on MLU 4 pattern; changed register variables 1991-09-18 19:17:56 +00:00
ceriel
ddffc187f9 r3 is now scratch 1991-09-18 19:10:24 +00:00
ceriel
bfe223f904 Added -L flag 1991-09-18 18:44:30 +00:00
ceriel
1bd6fb3e31 one more minor change: display name of file being compiled 1991-09-18 18:40:55 +00:00
ceriel
e78c2983db minor changes 1991-09-18 18:39:11 +00:00
ceriel
41566a983a Added include directory for tail_mon 1991-09-18 18:36:22 +00:00
ceriel
ec7442e7c0 whichone.h in <> so that -I option determines which one to take 1991-09-18 18:23:36 +00:00
ceriel
7c902ffc94 Added entries for clean, etc. 1991-09-18 14:17:27 +00:00
ceriel
dff9a35be8 Forgot next.c 1991-09-18 10:16:06 +00:00
ceriel
b33769911a Fixed: em_path now resides in config 1991-09-18 10:14:52 +00:00
ceriel
9141df6ef4 Fixed proto.make 1991-09-18 10:03:49 +00:00
ceriel
899a03e05b Many fixes 1991-09-18 10:02:37 +00:00
ceriel
d40380a995 Fixed mach_params 1991-09-18 09:58:12 +00:00
ceriel
49383874d5 Fixed proto.make: Cfiles also depends on Makefile 1991-09-18 09:49:37 +00:00
ceriel
3312447740 Fixed some errors 1991-09-18 09:48:15 +00:00
ceriel
388d5ee96a signal stuff not included on BSD 4.2 or SunOs 1991-09-18 09:46:08 +00:00
ceriel
1d9599f1ce Added stdtypes.h 1991-09-18 09:43:45 +00:00
ceriel
ef9874293e popen.c did not compile with __USG defined 1991-09-18 09:19:40 +00:00
ceriel
3980e40773 Fix: used wrong name 1991-09-17 16:38:16 +00:00
ceriel
6693faf063 Fixed array bound error. Amazing that it worked on a SUN-3 1991-09-17 10:39:20 +00:00
ceriel
aa67a0640f system-call to MON mapping is in libsys 1991-09-17 09:47:16 +00:00
ceriel
ac1262cc45 MAXPROCARG could be 0 1991-09-17 09:46:12 +00:00
ceriel
9f19aa18e2 fixed description for -g flag 1991-09-16 14:48:15 +00:00
ceriel
891ebe004c Added compmodule 1991-09-16 12:47:00 +00:00
ceriel
3d26c1ab5a Added libdb 1991-09-16 11:54:19 +00:00
ceriel
89a04e876e Added 1991-09-16 11:53:12 +00:00
ceriel
ea17f405ed Added libdb 1991-09-16 11:49:03 +00:00
ceriel
e3921f4076 Added 1991-09-16 11:47:43 +00:00
ceriel
c344441ef9 Added proto.libdb 1991-09-16 11:45:37 +00:00
ceriel
7fa58d6b18 Added grind 1991-09-16 11:45:26 +00:00
ceriel
91886731a3 Fixed proto.make 1991-09-16 11:09:10 +00:00
ceriel
4c29afc2b3 Fixed proto files 1991-09-16 09:59:09 +00:00
ceriel
2691f2e63f Added -I. to includes 1991-09-16 09:44:21 +00:00
ceriel
610672eacb Fixed 1991-09-16 09:38:58 +00:00
ceriel
a9c5ae704b Only install cv; Xcv can only be compiled on a SUN-3 1991-09-16 09:37:06 +00:00
ceriel
5775934cfd Added ops.c and ops.h 1991-09-13 15:13:59 +00:00
ceriel
c8b1eb50e7 fix: make.ops takes a parameter 1991-09-13 15:09:38 +00:00
ceriel
0f7b731d1b Added grind 1991-09-13 15:05:49 +00:00
ceriel
6cf472f1c2 Fixed proto.make 1991-09-13 14:56:50 +00:00
ceriel
4b42a9c7fa No longer made with amake 1991-09-13 14:53:27 +00:00
ceriel
1d9f7e12c7 Fixed proto.make 1991-09-13 12:36:13 +00:00
ceriel
03868ef221 Fixed proto.make 1991-09-13 12:01:42 +00:00
ceriel
0d3b911f25 Fixed proto.make 1991-09-13 11:20:27 +00:00
ceriel
6aca775b27 Fixed proto.make 1991-09-13 11:00:50 +00:00
ceriel
b9bf492940 Fixed proto.make 1991-09-13 10:29:06 +00:00
ceriel
2d0e996a7b Fixed 1991-09-13 10:24:29 +00:00
ceriel
4c73ea48a6 Fixed 1991-09-13 10:12:17 +00:00
ceriel
acbc648af9 fix: make directory lib.bin/ego 1991-09-13 10:07:37 +00:00
ceriel
24a9bcb3ed Identifier name change; tmpnam is reserved 1991-09-13 09:59:54 +00:00
ceriel
f36fe7a20b Fixed problem with parameter counts 1991-09-13 09:15:36 +00:00
ceriel
6593048018 Fixed typo 1991-09-12 16:41:15 +00:00
ceriel
bcd762fca4 Fixed: Added -I. 1991-09-12 16:39:50 +00:00
ceriel
1b779dd916 scan.c must be read-write 1991-09-12 16:22:48 +00:00
ceriel
f6869de484 Fixed 1991-09-12 14:19:28 +00:00
ceriel
7c6311786d install libmon AND libsys 1991-09-12 12:01:08 +00:00
ceriel
df513395ac install system call library 1991-09-12 11:57:55 +00:00
ceriel
8b1e92caf5 install libmon AND libsys 1991-09-12 11:52:59 +00:00
ceriel
e141ca6c53 install libbsd4_2 system-call interface by default 1991-09-12 11:50:03 +00:00
ceriel
6add1f6fe4 Added proto.sysmon to .distr 1991-09-10 12:23:18 +00:00
ceriel
37ba41d514 Added flex and byacc 1991-09-10 11:48:47 +00:00
ceriel
8c7695c351 Added ANSI-C to Action file 1991-09-10 11:20:45 +00:00
ceriel
06b24022fb Added Makefile to do a 'make distr' 1991-09-10 09:55:38 +00:00
ceriel
3a308f6d80 Added 1991-09-06 16:01:22 +00:00
ceriel
bc7927c74f new installation mechanism 1991-09-06 15:37:13 +00:00
ceriel
75d8e8cd79 Added 1991-09-06 15:36:00 +00:00
ceriel
99fd8f4abb Added todo 1991-09-06 15:31:41 +00:00
ceriel
dae1aff342 Added test.s 1991-09-06 15:06:36 +00:00
ceriel
4a8b98cd95 Added ANSI stuff 1991-09-06 14:37:35 +00:00
ceriel
e078dfe493 Distribute proto.make, not Makefile 1991-09-06 13:58:59 +00:00
ceriel
e1dce6b98e Fixed for current nroff 1991-09-06 13:36:26 +00:00
ceriel
c71ebf0470 new installation mechanism 1991-09-06 11:38:51 +00:00
ceriel
fb7b8d23ed Changed comment 1991-09-06 11:34:41 +00:00
ceriel
32c4657377 Added libce 1991-09-06 11:33:10 +00:00
ceriel
0f7b9ef00b New installation mechanism 1991-09-06 11:33:09 +00:00
ceriel
8213357795 New installation mechanism 1991-09-06 11:04:20 +00:00
ceriel
2d8a383ddd Added ce to .distr 1991-09-05 16:37:00 +00:00
ceriel
7e44ee64bb New installation mechanism 1991-09-05 16:36:59 +00:00
ceriel
f7e81eb914 minor change 1991-09-05 16:35:57 +00:00
ceriel
eabe96905b new installation mechanism 1991-09-05 16:35:56 +00:00
ceriel
2d2f55a5af new installation mechanism 1991-09-05 11:56:23 +00:00
ceriel
80e85aea43 LIBS was not used; removed it 1991-09-05 11:52:04 +00:00
ceriel
91fbcc1a11 New installation mechanism 1991-09-05 11:50:17 +00:00
ceriel
c737440708 new installation mechanism 1991-09-05 11:43:36 +00:00
ceriel
ec2c82db83 New installation mechanism 1991-09-05 11:33:24 +00:00
ceriel
3b79dad306 New installation mechanism 1991-09-05 11:22:37 +00:00
ceriel
bf68e143c5 Some fixes 1991-09-05 11:19:37 +00:00
ceriel
e83c5d93c9 new installation mechanism 1991-09-05 11:10:43 +00:00
ceriel
cc4654a716 New installation mechanism 1991-09-05 11:06:46 +00:00
ceriel
e1128005a1 Fixed error in path name 1991-09-05 10:56:45 +00:00
ceriel
611b6bf5e5 New installation mechanism 1991-09-05 10:56:44 +00:00
ceriel
4fd1eaf0dd Adapted NEW 1991-09-05 10:34:46 +00:00
ceriel
e0f2200872 some fixes 1991-09-05 09:47:57 +00:00
ceriel
5d2b3101ec proto.make instead of Makefile 1991-09-05 09:26:23 +00:00
ceriel
7720024e34 Added .distr 1991-09-05 09:25:02 +00:00
ceriel
420e4bfbdd libros --> libmon 1991-09-05 09:24:05 +00:00
ceriel
6bb7ed82fa MON library also linked with .e 1991-09-04 17:57:34 +00:00
ceriel
69ef93aa5c Added arm 1991-09-04 17:56:54 +00:00
ceriel
9293787fa5 lib --> lib.bin for programs 1991-09-04 17:56:11 +00:00
ceriel
4883a04860 lib --> lib.bin for programs 1991-09-04 17:50:11 +00:00
ceriel
1575c042ba lib --> lib.bin for programs 1991-09-04 16:53:25 +00:00
ceriel
ddb56ae7ed lib --> lib.bin for programs 1991-09-04 16:25:34 +00:00
ceriel
b05c411cc7 Fixed machine-dependant defines 1991-09-04 16:18:23 +00:00
ceriel
19974ae103 lib --> lib.bin for programs 1991-09-04 16:18:20 +00:00
ceriel
63d80c036a fix machine-dependant #if's 1991-09-04 16:01:22 +00:00
ceriel
25686b2f45 Fixed machine-dependant defines 1991-09-04 15:59:56 +00:00
ceriel
56c8e8651e fix machine-dependant #if's 1991-09-04 15:49:34 +00:00
ceriel
89f849c696 fix machine-dependant #if's 1991-09-04 15:37:41 +00:00
ceriel
a6862e646b lib --> lib.bin for programs 1991-09-04 13:29:18 +00:00
ceriel
3d2b98418d Added tail_mon2 1991-09-04 13:29:04 +00:00
ceriel
958187f89c Added arm 1991-09-04 13:26:41 +00:00
ceriel
24fe67aef7 lib --> lib.bin for programs 1991-09-04 13:23:32 +00:00
ceriel
76639795c5 lib --> lib.bin for programs 1991-09-04 13:12:45 +00:00
ceriel
2e8c96275b updated for Minix 1.5 1991-09-04 13:07:02 +00:00
ceriel
85ca3f3236 New installation mechanism 1991-09-04 12:01:39 +00:00
ceriel
b796ff9f49 New installation mechanism 1991-09-04 11:32:07 +00:00
ceriel
72210aff74 new installation mechanism 1991-09-04 11:31:36 +00:00
ceriel
340ab6ea8a new installation mechanism 1991-09-04 11:22:19 +00:00
ceriel
51db30d469 New installation mechanism 1991-09-04 11:19:28 +00:00
ceriel
11c13393e2 new installation mechanism 1991-09-04 11:10:36 +00:00
ceriel
8f4b447757 Only call NOP routine when debugging table 1991-09-04 10:55:52 +00:00
ceriel
815e76eb9c New installation mechanism 1991-09-04 10:45:29 +00:00
ceriel
6a1ea81d70 new installation mechanism 1991-09-04 10:43:51 +00:00
ceriel
afcbdcc291 new installation mechanism 1991-09-03 17:38:15 +00:00
ceriel
fca23ab21b new installation mechanism 1991-09-03 16:57:49 +00:00
ceriel
57ec1d9fc5 New installation mechanism 1991-09-03 16:57:00 +00:00
ceriel
a59f05a801 New installation mechanism 1991-09-03 16:45:48 +00:00
ceriel
5ecefbd403 new installation mechanism 1991-09-03 16:44:58 +00:00
ceriel
c611b61a1a New installation mechanism 1991-09-03 16:34:31 +00:00
ceriel
84d90e5d07 new installation mechanism 1991-09-03 16:28:37 +00:00
ceriel
653718418a new installation mechanism 1991-09-03 16:20:41 +00:00
ceriel
b33372b66b New installation mechanism 1991-09-03 16:03:33 +00:00
ceriel
d3e307c276 new installation mechanism 1991-09-03 16:03:08 +00:00
ceriel
af2636009a New installation mechanism 1991-09-03 15:37:56 +00:00
ceriel
29609f4089 new installation mechanism 1991-09-03 15:37:16 +00:00
ceriel
0b09c7378a New installation mechanism, updated to minix 1.5 1991-09-03 15:11:18 +00:00
ceriel
818f942eaa new installation mechanism 1991-09-03 15:01:06 +00:00
ceriel
71f05594ae new installation mechanism 1991-09-03 14:44:30 +00:00
ceriel
cfa4cf1419 New installation mechanism 1991-09-03 14:27:06 +00:00
ceriel
f663b592e7 New installation mechanism, updated to 1.5 1991-09-03 14:22:32 +00:00
ceriel
1b8d6ed5e3 updated to minix 1.5 1991-09-03 12:00:30 +00:00
ceriel
7cb774c127 updated to minix 1.5 1991-09-03 11:54:28 +00:00
ceriel
9cc783bb47 updated to minix 1.5 1991-09-03 11:47:14 +00:00
ceriel
83633084bd new installation mechanism 1991-09-03 10:55:59 +00:00
ceriel
e2ea32d075 New installation mechanism 1991-09-03 10:55:25 +00:00
ceriel
4082c11bd8 New installation mechanism 1991-09-03 10:54:20 +00:00
ceriel
a80f6cfc55 new installation mechanism 1991-09-03 10:39:56 +00:00
ceriel
82597772ab New installation mechanism 1991-09-02 17:47:41 +00:00
ceriel
05b9d85074 New installation mechanism 1991-09-02 17:27:44 +00:00
ceriel
921c1f2b23 New installation mechanism 1991-09-02 17:00:19 +00:00
ceriel
a3a4d929ca New installation mechanism 1991-09-02 15:46:16 +00:00
ceriel
2fd3d6ee92 New installation mechanism 1991-09-02 15:23:50 +00:00
ceriel
ff8ce3b365 New installation mechanism 1991-09-02 15:08:48 +00:00
ceriel
619d25897d New installation mechanism 1991-09-02 14:52:41 +00:00
ceriel
a965d30d28 New installation mechanism 1991-09-02 14:35:41 +00:00
ceriel
81d0afa366 New installation mechanism 1991-09-02 14:18:44 +00:00
ceriel
e0dc1e8aa4 New installation mechanism 1991-09-02 14:11:40 +00:00
ceriel
2c574e4885 New installation mechanism 1991-09-02 14:03:15 +00:00
ceriel
43e2d1da15 NOP does nothing but stacking 1991-08-30 15:48:10 +00:00
ceriel
c9afe7fb8e New installation mechanism 1991-08-30 15:45:58 +00:00
ceriel
caa2f23cd4 New installation mechanism 1991-08-30 15:19:38 +00:00
ceriel
b2adb8ee49 new installation mechanism 1991-08-30 15:18:42 +00:00
ceriel
ca0d0d4cb1 New installation mechanism 1991-08-30 12:59:04 +00:00
ceriel
458eb79ee0 New installation mechanism 1991-08-29 15:15:40 +00:00
ceriel
194f56b8d3 use __exit and __write instead 1991-08-29 15:08:24 +00:00
ceriel
eeffa6ab01 New installation mechanism 1991-08-29 11:57:16 +00:00
ceriel
862a86d4a8 Adapted to new assembler 1991-08-29 11:52:50 +00:00
ceriel
3f0c5aa8f6 New installation mechanism 1991-08-29 11:36:20 +00:00
ceriel
8eaf21fc0b use __exit and __write instead 1991-08-29 11:34:42 +00:00
ceriel
8b8045504b only depend on MON implementation for system calls 1991-08-29 11:30:58 +00:00
ceriel
dd8ae5b234 New installation mechanism 1991-08-28 16:00:10 +00:00
ceriel
59705465f2 new directory for system-dependant things 1991-08-28 15:55:18 +00:00
ceriel
d367563902 end, etext, edata library 1991-08-28 15:43:46 +00:00
ceriel
d705b7cac2 New installation mechanism 1991-08-28 15:23:40 +00:00
ceriel
20dcb4a1d1 Distribute ncg, not cg 1991-08-28 14:32:58 +00:00
ceriel
610caecbc1 New installation mechanism 1991-08-28 14:14:44 +00:00
ceriel
eee9660d58 Include whichone.h with <> so that the -I options decide which one is included 1991-08-28 14:13:14 +00:00
ceriel
7caed0c027 Distribute ncg, not cg 1991-08-28 14:11:03 +00:00
ceriel
a5427040d6 Distribute ncg, not cg 1991-08-28 13:41:24 +00:00
ceriel
3dcd172445 new installation mechanism 1991-08-28 13:39:54 +00:00
ceriel
49cd19fd46 New installation mechanism 1991-08-28 13:10:52 +00:00
ceriel
6a6bae59e1 New installation mechanism 1991-08-28 12:50:30 +00:00
ceriel
52cba19a5c New installation mechanism 1991-08-28 12:02:16 +00:00
ceriel
36df9913a1 New installation mechanism 1991-08-28 11:28:56 +00:00
ceriel
0a845357fc New installation mechanism 1991-08-28 11:08:03 +00:00
ceriel
799bb4006f New installation mechanism 1991-08-28 10:55:22 +00:00
ceriel
7623cb11f5 New installation mechanism 1991-08-27 10:47:25 +00:00
ceriel
90fa7546b2 New installation mechanism 1991-08-27 10:18:09 +00:00
ceriel
eda56a5859 removed compare and install 1991-08-27 10:17:25 +00:00
ceriel
11c05f3c94 removed ud_locals.h; it was not used 1991-08-27 10:15:59 +00:00
ceriel
bf26a4ca10 Handle entries without name 1991-08-27 09:55:25 +00:00
ceriel
df1a65df90 Removed includes with relative paths 1991-08-27 09:45:37 +00:00
ceriel
9cd11cdf66 Added u flag 1991-08-27 09:44:53 +00:00
ceriel
cfd793a8af New installation mechanism 1991-08-27 09:41:49 +00:00
ceriel
af110e350a New installation mechanism 1991-08-27 09:20:30 +00:00
ceriel
a1d932e4ee parameterized cvtkeywords 1991-08-27 09:09:49 +00:00
ceriel
0ed0757094 Keep ms_stb's where they are 1991-08-27 09:08:05 +00:00
ceriel
da67983385 New installation mechanism 1991-08-27 09:05:27 +00:00
ceriel
3c53d7bffc Some minor mods 1991-08-27 08:57:28 +00:00
ceriel
702c14d5ac New installation mechanism, changed byte order mechanism 1991-08-26 16:57:47 +00:00
ceriel
c2caead0c8 New installation mechanism 1991-08-26 16:50:25 +00:00
ceriel
a9c094851c New installation mechanism 1991-08-26 16:21:27 +00:00
ceriel
55335db9e3 New installation mechanism 1991-08-26 16:02:10 +00:00
ceriel
8936d6cb00 New installation mechanism 1991-08-26 15:18:31 +00:00
ceriel
43495862cc New installation mechanism 1991-08-26 15:10:59 +00:00
ceriel
2c09787cbd New installation mechanism 1991-08-26 14:39:14 +00:00
ceriel
49aa61ea56 New installation mechanism 1991-08-26 14:29:59 +00:00
ceriel
ba3e149ac6 improved structure assignments 1991-08-26 14:26:07 +00:00
ceriel
ed7ccd3d03 New installation mechanism 1991-08-26 14:05:16 +00:00
ceriel
65b2425052 New installation mechanism 1991-08-26 13:23:36 +00:00
ceriel
16a5dd9520 New installation mechanism 1991-08-26 12:50:21 +00:00
ceriel
09cecef79b New installation mechanism 1991-08-26 12:04:28 +00:00
ceriel
4ee414a676 Removed Makefile 1991-08-26 12:01:41 +00:00
ceriel
3d30e413ee New installation mechanism 1991-08-26 11:08:07 +00:00
ceriel
62622b1e84 relaxed the ;-terminator requirement for parameters 1991-08-23 16:23:07 +00:00
ceriel
821e0eeb57 Added proto files 1991-08-23 14:07:27 +00:00
ceriel
d9f5302844 Added proto.make file 1991-08-23 14:06:51 +00:00
ceriel
dd2a7133d0 Added .distr file 1991-08-21 15:28:46 +00:00
ceriel
d551877a7b Added .distr file 1991-08-21 15:19:39 +00:00
ceriel
7e004ed6cc renamed fe 1991-08-21 11:38:52 +00:00
ceriel
70f8f983f8 renamed descr 1991-08-21 11:33:24 +00:00
ceriel
249cb79257 cv is no longer dependant on COFF include files 1991-08-19 16:36:58 +00:00
ceriel
29299afffc Made to compile on non-COFF systems 1991-08-19 16:09:17 +00:00
ceriel
e142584be5 If NOPP is defined, do not do trigraph translation; cpp does it 1991-08-09 13:57:13 +00:00
ceriel
6291119c4a Removed definition of EMHOME; it was not used 1991-08-07 10:52:35 +00:00
ceriel
b53183875a Fix for symbolic debugger 1991-08-05 13:23:45 +00:00
ceriel
e6580c0cad Fixes: sometimes entered panic mode with wrong fakestack 1991-07-30 16:05:59 +00:00
ceriel
2b1dc29ab0 removed scan.c and fixed a bug: 'struct a;' is an empty decl if struct a is already known 1991-07-25 16:00:32 +00:00
ceriel
d655193d6f Fixed the HFILES macro 1991-07-25 15:45:35 +00:00
ceriel
364be3c0fe Fix in 'LDC CMS TNE' pattern 1991-07-22 09:23:25 +00:00
ceriel
df06ee22f2 Changed mechanism for defining size_type 1991-07-12 10:16:11 +00:00
ceriel
8aca156256 Removed the id_enum macro and replaced id_struct by id_tag (better name) 1991-07-08 16:49:04 +00:00
dick
af7aea382a prototypes now handled by lint 1991-07-05 11:55:17 +00:00
dick
60bb42a26b compatibility change in l_class.h for prototypes in ANSI C 1991-07-05 11:33:49 +00:00
ceriel
41197ef864 Fixed two bugs:
- did not accept arrays in 'if (a) ...'
- did not detect too few parameters in functions with ellipsis prototypes
1991-07-01 14:10:15 +00:00
ceriel
f711f471da updated 1991-06-26 17:39:48 +00:00
ceriel
d6c2d58d2b Added end_em 1991-06-26 17:38:06 +00:00
ceriel
183d2215f4 New global optimizer driver 1991-06-26 17:36:59 +00:00
ceriel
6397f6e797 Removed wrong patterns 1991-06-26 17:35:03 +00:00
ceriel
1c1b303b41 Fix NOP 1991-06-26 17:33:16 +00:00
ceriel
84a849fdcf Fixed call to mktemp() so that it does not try to change a constant string 1991-06-26 17:32:44 +00:00
ceriel
96f93bade1 fixed trp.s (undid change by Hans v Eck) 1991-06-26 17:32:09 +00:00
ceriel
483ed2860c produce debugging info 1991-06-26 17:30:48 +00:00
ceriel
572bd1eaeb improved clean entry 1991-06-26 17:30:36 +00:00
ceriel
28ba1c0a9d removed unused variable 1991-06-26 17:29:58 +00:00
ceriel
5b621832df Added verbose flag 1991-06-26 17:28:15 +00:00
ceriel
3510d90ec0 correction 1991-06-26 17:26:59 +00:00
ceriel
8c5cf1575f made alloc.h acceptable for ANSI C compiler 1991-06-26 17:26:03 +00:00
ceriel
019a9152db Fixed grammar 1991-06-26 17:23:55 +00:00
ceriel
baf63140b3 some more statistics 1991-06-24 16:35:08 +00:00
ceriel
84a96cecec Fixed memory leak 1991-06-24 16:33:43 +00:00
ceriel
b6d8d87d32 minor improvement to volatile code 1991-06-21 10:31:20 +00:00
ceriel
502ea4a67c CLK_TCK --> CLOCKS_PER_SEC; was toch goed 1991-06-21 09:58:57 +00:00
ceriel
b5c8b560a2 Patched in D option (feature from Johan) 1991-06-20 14:22:37 +00:00
ceriel
cdf50398c1 fixed some label problems 1991-06-20 10:17:36 +00:00
ceriel
478d7e56e1 ANSI requires separate name space for labels, and made to use idf module 1991-06-19 16:12:56 +00:00
ceriel
b5ac99a5e2 FIxed problem with volatile structs and the ./-> operators 1991-06-13 15:56:14 +00:00
ceriel
92402b88b4 corrected time.h header 1991-06-11 09:25:32 +00:00
ceriel
1e2aa9d187 Fixed flushbuf() so that it works with POSIX conformant Unix versions 1991-06-10 17:07:18 +00:00
ceriel
38562ebeb6 Changed an int into a short 1991-06-06 11:47:23 +00:00
ceriel
55cde2572f Fixed Makefile 1991-06-05 09:25:20 +00:00
ceriel
f30616ce42 Added isnan.c 1991-06-04 15:33:34 +00:00
ceriel
246495fe4c Modified to output a little less white space 1991-06-03 14:46:13 +00:00
ceriel
25d541d717 Did not detect redeclaration of formal as local 1991-05-27 15:06:36 +00:00
ceriel
146e4d9466 prevent complaints about unused variables when they are used as var-param 1991-05-21 14:11:27 +00:00
ceriel
5b8150662c Fixed a few problems 1991-05-16 13:22:15 +00:00
ceriel
86c9bf3750 Fixed missing ; before } 1991-05-16 13:08:32 +00:00
ceriel
beca927dab fixed two possible null-references 1991-05-13 13:57:25 +00:00
ceriel
5f6b3240fa Fixed a cast bug (unsigned to unsigned char) 1991-05-13 10:08:54 +00:00
ceriel
fa89b0f280 Delinted a bit 1991-04-25 16:47:47 +00:00
ceriel
831b8ab578 Delinted a bit 1991-04-25 16:26:11 +00:00
ceriel
6ce1f992aa Fixed some sprint's 1991-04-25 13:54:25 +00:00
ceriel
60dce6fe60 fixed 1991-04-25 10:54:44 +00:00
ceriel
1c7b226f3a fixed 1991-04-25 10:49:28 +00:00
ceriel
3c596d647d There was no RCK 2 due to a preprocessor-directive error 1991-04-24 14:09:20 +00:00
ceriel
13bb1c1117 Fixed bug in checking of last char of environment variable 1991-04-24 12:18:03 +00:00
ceriel
214302fc11 ptr_diff is a long in ANSI C; cast to int 1991-04-23 09:35:51 +00:00
ceriel
61c79318ad Changed name of loc_incl.h to loc_time.h 1991-04-22 13:21:11 +00:00
ceriel
286b33864d Fixed bug 1991-04-22 11:29:48 +00:00
ceriel
bda7abe112 Minor change: improved conflict resolver that tested for never happening case 1991-04-19 15:26:50 +00:00
ceriel
b726c80da0 Added LOS 4 and STS 4 1991-04-19 13:09:30 +00:00
ceriel
588b3d93d3 Added some more patterns 1991-04-19 12:03:49 +00:00
ceriel
0baea7a374 Added LOS 4 and STS 4 1991-04-19 12:02:52 +00:00
ceriel
af13e6591d fixed bug with struct/union/enum declarations 1991-04-18 12:27:58 +00:00
ceriel
4167d8d1c6 Corrected #error and #define 1991-04-11 10:52:52 +00:00
ceriel
ea0eeabf71 Added defaults for M2COMPILER and DEF_DIR 1991-04-10 15:10:32 +00:00
ceriel
133c9476a6 Removed use of STATIC 1991-04-10 13:32:42 +00:00
ceriel
34aff30749 Added some patterns 1991-04-10 10:23:34 +00:00
ceriel
14af91a47a Changed default value of rts to '.' 1991-04-09 15:29:46 +00:00
ceriel
ce2a0931b6 fixed problem with extern declarations 1991-04-09 10:15:48 +00:00
ceriel
45c90ed988 Added some more patterns 1991-04-05 13:27:49 +00:00
ceriel
447f7eca30 fixed typo 1991-04-05 09:45:11 +00:00
ceriel
7d0d84f0c7 prevent overflow 1991-04-05 09:24:45 +00:00
ceriel
990935105f Some small changes to reduce local variable count 1991-04-04 16:48:18 +00:00
ceriel
14c00670e2 Added some re-ordering patterns 1991-04-04 16:45:31 +00:00
ceriel
a0e801fc9b Added patterns 1991-04-04 13:21:46 +00:00
ceriel
f6c363f4ff correction: mixture of old-fashioned with ellipsis is always wrong 1991-04-03 10:02:40 +00:00
ceriel
9b5a4519f3 Added patterns to improve code for getc() and putc() 1991-03-27 15:47:50 +00:00
ceriel
b6fefd8219 Some minor mods in mixed mode checking 1991-03-27 12:46:37 +00:00
ceriel
0159b2b79d Removed superfluous : 1991-03-26 18:41:47 +00:00
ceriel
fb49b7964d Added some patterns 1991-03-26 18:10:29 +00:00
ceriel
e19479c22e Fixed typo 1991-03-26 14:43:06 +00:00
ceriel
ab0d625e36 Fixed bug in function return code 1991-03-26 13:38:36 +00:00
ceriel
a01b000bdc Added some patterns 1991-03-26 10:11:23 +00:00
ceriel
f425f28ec0 Fix: prevent incorrect error messages 1991-03-26 09:45:20 +00:00
ceriel
f6bdc70006 Improved code generation for sets somewhat 1991-03-25 13:28:50 +00:00
ceriel
20d4d031dd Fix to fix 1991-03-25 13:16:02 +00:00
ceriel
6d23b30471 Yet another fix: this time for AND/IOR/XOR/COM ? 1991-03-25 11:39:27 +00:00
ceriel
f3e1fb7e2b bug fix for SET instruction on m68k2 1991-03-22 18:23:55 +00:00
ceriel
1e4cdcddd1 Rearranged a bit 1991-03-22 15:17:16 +00:00
ceriel
ccfb7ac221 Delinted 1991-03-22 14:26:10 +00:00
ceriel
959cfc08b6 Some modifications for running on smaller machines 1991-03-21 10:45:42 +00:00
ceriel
941c2896ec Added some patterns for Kees Visser 1991-03-21 09:50:06 +00:00
ceriel
22dd209969 Removed evaluation order dependency bug 1991-03-21 09:49:35 +00:00
ceriel
9d199fb4ae Use of em_flag was wrong: did not use sp_fmnem 1991-03-20 17:31:20 +00:00
ceriel
1c8242fcef Allow for AALMAG as well as ARMAG 1991-03-20 16:24:50 +00:00
ceriel
0ef5531d24 allow for AALMAG as well as ARMAG 1991-03-20 16:21:53 +00:00
ceriel
1e897be870 fixed typo 1991-03-20 13:47:18 +00:00
ceriel
2a27456795 Both aal and arch can read each others archives 1991-03-20 12:45:58 +00:00
ceriel
1e32111a32 Several fixes 1991-03-20 11:30:35 +00:00
ceriel
dae6de87e0 added check for Nan 1991-03-19 16:51:28 +00:00
ceriel
5b9fe61434 Check for Nan 1991-03-19 16:39:40 +00:00
ceriel
369c45fa11 do not write in strings: they could reside in ROM 1991-03-19 11:14:39 +00:00
ceriel
6df7f603c4 Detect too large values 1991-03-19 10:25:36 +00:00
ceriel
7488acfbbc Several minor mods: simplifications and identifier name changes 1991-03-18 16:30:49 +00:00
ceriel
5792ba43da produce commons for newlbss 1991-03-18 15:06:01 +00:00
ceriel
e781c7f2fa newlbss takes size as unsigned 1991-03-18 14:19:27 +00:00
ceriel
299ba20dd2 fcntl.h now requires sys/types.h 1991-03-18 09:16:00 +00:00
ceriel
b4da32804f Fixed bug that never occurred, but was discovered by reading the code 1991-03-15 11:21:46 +00:00
ceriel
1e2b428a31 Call _cleanup before _exit 1991-03-15 09:24:03 +00:00
ceriel
83d1456bd3 Fixed typo 1991-03-14 13:46:53 +00:00
ceriel
c8a6600afa minor mods 1991-03-14 13:43:45 +00:00
ceriel
6e0e2ad4fa minor mods 1991-03-14 13:16:32 +00:00
ceriel
b3c630fd80 Do not use the allocation mechanism for the desig structure; overkill 1991-03-14 11:10:40 +00:00
ceriel
75a52c1d15 Corrected error on NOCROSS 1991-03-14 09:31:32 +00:00
ceriel
17de458ad6 Cleaned up a bit more 1991-03-13 17:26:07 +00:00
ceriel
1354659b85 Added some more patterns 1991-03-13 15:56:43 +00:00
ceriel
11e54ac11f Cleaned up a bit 1991-03-13 13:49:56 +00:00
ceriel
fbb59e601f A strict warning was given too often 1991-03-13 10:11:25 +00:00
ceriel
925d52f416 Changes to make node structure smaller, and cleaned up a bit 1991-03-12 16:52:00 +00:00
dick
6dc42d1139 allow full paths for library names in shell script lint 1991-03-12 10:58:22 +00:00
ceriel
b585ba14d4 fixed bug in coroutine mechanism 1991-03-11 16:21:13 +00:00
ceriel
7108fc9c6c Removed unused variable 1991-03-11 14:38:28 +00:00
ceriel
8213f855d0 Added VARARGS 1991-03-11 14:33:13 +00:00
dick
152b7719a2 ANSI C prototype handling added 1991-03-08 15:54:05 +00:00
ceriel
1abdbe3e2f the -S option also falls under ifndef NOCROSS 1991-03-07 12:51:11 +00:00
ceriel
893f514974 be a bit more tolerant about external definitions 1991-03-07 12:01:34 +00:00
ceriel
68a6386741 m_a_i_n --> _m_a_i_n 1991-03-06 14:44:25 +00:00
ceriel
63d0b48c19 m_a_i_n --> _m_a_i_n 1991-03-06 14:26:16 +00:00
ceriel
94d759700a Added macro's for long selections 1991-03-06 10:52:34 +00:00
ceriel
2a8682bf68 Fixed bugs 1991-03-06 10:20:17 +00:00
ceriel
ad8ab1cb21 Added -S flag 1991-03-05 17:52:37 +00:00
ceriel
df3095c2d3 Lay-out changes and made IMPORTS more specific 1991-03-05 13:47:08 +00:00
ceriel
51e0848468 Removed WORDLENGTH generation program; no longer assume that the machine
on which we compile is the machine on which we run
1991-03-05 13:06:00 +00:00
ceriel
ca7ea18785 Changed #include's 1991-03-05 12:44:05 +00:00
ceriel
c808143f0b Changed #include's 1991-03-05 12:16:17 +00:00
ceriel
6b20a3b125 Replaced some EM code by C code 1991-03-05 11:56:39 +00:00
ceriel
777e5ff937 Changed unsigned checking so that runtime routines cab be written in C 1991-03-05 11:55:22 +00:00
ceriel
fc0c8ac625 Fixed problem with top-of-stack mechanism on globally optimized code 1991-03-04 15:04:14 +00:00
ceriel
13eac75ebe Under -t option, temporaries are in the current directory 1991-03-04 15:00:54 +00:00
ceriel
981abb0d4b Fixed wrong %c conversion 1991-03-04 13:35:22 +00:00
ceriel
7fe7fef0fb Replaced driver by C version 1991-03-04 12:59:46 +00:00
ceriel
fcc648271a Prevent possible null-dereference 1991-03-01 14:55:46 +00:00
ceriel
4da2dddd7b Prevent superfluous label generation 1991-03-01 14:54:43 +00:00
ceriel
3650bd14fd Improved switches, and fixed wrong place indication in error messages 1991-03-01 13:51:37 +00:00
ceriel
df3dfee373 Changed stat() interface 1991-02-28 16:47:45 +00:00
ceriel
c6f1209725 fixed bug with -j option 1991-02-28 14:48:17 +00:00
ceriel
13f45228e5 fixed old-fashioned decl check 1991-02-27 13:48:54 +00:00
ceriel
ba6ada2692 Some modifications to improve floating point printing 1991-02-26 18:37:47 +00:00
ceriel
d393de38dc Added some casts so that it works for negative values 1991-02-26 18:17:21 +00:00
ceriel
9f0ae1f44c Added hypot.c 1991-02-26 18:08:25 +00:00
ceriel
2fe2b8692f minor mods 1991-02-26 15:46:18 +00:00
ceriel
c5cb80b346 Fixed tmpnam(): name contained null-byte 1991-02-26 09:28:39 +00:00
ceriel
bd9ac66548 Use _ versions of system-calls 1991-02-22 16:57:42 +00:00
ceriel
186324ac08 fixed problems with flushbuf 1991-02-22 16:45:47 +00:00
ceriel
575ea3e7d7 Fix FOPEN_MAX array bound error 1991-02-22 16:32:05 +00:00
ceriel
d8614f80a6 Make sure that line directives start on the beginning of a line 1991-02-22 14:29:37 +00:00
ceriel
f6dd920649 Undid previous change 1991-02-22 13:49:51 +00:00
ceriel
ef0989f7e7 Removed unused variables 1991-02-22 13:43:22 +00:00
ceriel
b0471ef883 Fixed preprocessor problem with empty macro bodies 1991-02-21 12:08:13 +00:00
ceriel
a9f739b35d Added varargs.h 1991-02-20 14:53:31 +00:00
ceriel
b4b4fb3528 removed -i flag 1991-02-20 09:59:26 +00:00
ceriel
ac2ba8ae1a Do not copy libsrc; only extract 1991-02-20 09:56:17 +00:00
ceriel
1f52c5054b Changed method of allocating locals 1991-02-20 09:54:55 +00:00
ceriel
186fc17584 Added some patterns 1991-02-20 09:51:43 +00:00
ceriel
2aef15d9fb Changed some identifier names (ANSI C, Ultrix ...) 1991-02-20 09:51:07 +00:00
ceriel
02da577152 removed -i flag 1991-02-20 09:48:36 +00:00
ceriel
a67f36fdfa removed unused variables 1991-02-20 09:48:00 +00:00
ceriel
7ad8e806dc removed -i flag 1991-02-19 16:57:39 +00:00
ceriel
8bece83925 fixed typo (?) 1991-02-19 16:54:06 +00:00
ceriel
6b37863a7b removed -i flag 1991-02-19 16:51:50 +00:00
ceriel
a00336f3dc Added SLI reduce 1991-02-19 16:45:57 +00:00
ceriel
2bec02cc45 Added byacc and flex to .distr 1991-02-19 16:39:36 +00:00
ceriel
a89ef5a4e6 delinted 1991-02-19 16:25:21 +00:00
ceriel
1a15bd9edb Made use of C_insertpart dependant on compile-time flag 1991-02-19 16:22:41 +00:00
ceriel
88f3437815 Delinted a bit 1991-02-19 15:28:48 +00:00
ceriel
f68b8ccb58 Changed name of include file 1991-02-19 13:53:04 +00:00
ceriel
b36936693f moved some static declarations that were illegal ANSI C 1991-02-19 12:44:38 +00:00
ceriel
9b2e7c16fc prevent sign-extension in unpack when needed 1991-02-19 12:41:27 +00:00
ceriel
3cd78541b2 prevent sign-extension in unpack when needed 1991-02-19 12:13:08 +00:00
ceriel
337a02cb76 Made ability for -g dependant on compile-time flag 1991-02-18 17:18:36 +00:00
ceriel
204726f487 Corrected -g option 1991-02-18 17:15:11 +00:00
ceriel
59f6cb5272 Fixed problem with multiple TOKSEP's 1991-02-18 15:50:39 +00:00
ceriel
6a4a3639af prevent multiple occurrences of TOKSEP in replace.c 1991-02-18 15:25:11 +00:00
ceriel
0d01683601 Delinted some more 1991-02-18 12:05:06 +00:00
ceriel
6c882bd642 One less significant digit: 20 was too much 1991-02-18 11:43:44 +00:00
ceriel
e9412dcf4a Delinted somewhat (did not work on 2/2 machines) 1991-02-18 11:11:04 +00:00
ceriel
58f742200b delinted 1991-02-18 10:58:49 +00:00
ceriel
75ba8c2adf made D_ definitions a long and made symbol table generation conditional 1991-02-15 18:00:26 +00:00
ceriel
ada6ae5c12 Removed some incorrect STATIC's 1991-02-15 14:54:53 +00:00
ceriel
eaca4e29a3 Fixed: contained construction that was illegal for ANSI C 1991-02-15 14:21:41 +00:00
ceriel
0593b6d8d4 Removed switches on longs (portability) and added packed subranges 1991-02-14 18:15:22 +00:00
ceriel
357baf08ad hash() now returns same value on 2-byte and 4-byte machines 1991-02-04 14:25:58 +00:00
ceriel
72e4ab8c17 Added end library and floating point processor support 1991-02-01 15:38:19 +00:00
ceriel
51b4df4b6c fixed CFI problem 1991-02-01 15:33:41 +00:00
ceriel
ec816c41b8 Added end library and floating point processor support 1991-02-01 15:09:58 +00:00
ceriel
3905681d67 Added support for floating point processor 1991-02-01 12:51:48 +00:00
ceriel
adc1d04fa1 Added mktemp.c 1991-02-01 10:31:03 +00:00
ceriel
08d15e2b9c reduce memory usage (again) 1991-02-01 10:21:39 +00:00
ceriel
8c952c6649 Generate less stupid conversions 1991-02-01 09:54:21 +00:00
ceriel
b1471bc78d modified hash function to deliver same value on 2 byte and 4 byte machines 1991-01-31 15:17:54 +00:00
ceriel
7326e385a8 simplified 'tes' mechanism 1991-01-31 15:17:04 +00:00
ceriel
992c546f2b Added fdopen() 1991-01-30 16:26:06 +00:00
ceriel
1977509c1f fixed 'times' systemcall interface 1991-01-30 16:10:13 +00:00
ceriel
51bac735e1 Improved identifier string allocation mechanism 1991-01-30 11:25:25 +00:00
ceriel
e98f3fceb3 fixed problem with qsort(): did not work for objects whose size did not
fit in an int
1991-01-29 14:37:37 +00:00
ceriel
4c4ee4f2c1 hide some VAX-ce specific names 1991-01-22 13:28:21 +00:00
ceriel
52a818520c assembling of (xxx,a6) addressing mode was wrong for large values of xxx 1991-01-22 12:43:40 +00:00
ceriel
426a98c8bc assembling of (xxx,a6) addressing mode was wrong for large values of xxx 1991-01-22 12:01:25 +00:00
ceriel
397e1c1de6 Upgraded to Berkeley's version 1.8 1991-01-22 10:58:49 +00:00
ceriel
4886962a41 now has own C library 1991-01-18 11:06:30 +00:00
ceriel
e06fc06745 Added libcc 1991-01-18 11:04:30 +00:00
ceriel
065c919720 Added files 1991-01-18 11:03:05 +00:00
ceriel
7452cc7dc6 Made to work if BYTES_REVERSED and/or WORDS_REVERSED are not defined 1991-01-18 09:54:56 +00:00
ceriel
92c55fa13a yytext is an array in lex, but a char * in flex 1991-01-18 09:43:04 +00:00
ceriel
e94f2d7e1d Changed implementation of dependency generator 1991-01-17 17:49:27 +00:00
ceriel
506591c3d8 Modified manual page so that STDOUT and STDERR are mentioned 1991-01-17 13:24:28 +00:00
ceriel
ca5b579f4b Added code expander to Action file 1991-01-17 11:59:25 +00:00
ceriel
4de0dc3433 initial version 1991-01-16 16:07:50 +00:00
ceriel
e2a1aa81f9 simplified compile time floating point somewhat 1991-01-15 18:21:16 +00:00
ceriel
6ef7433396 in SkipToNewLine(), check for TOKSEP; fixed problem with volatile 1991-01-15 12:00:24 +00:00
ceriel
60fd245e73 wctomb() now also returns 1 on 0-char 1991-01-15 11:55:33 +00:00
ceriel
853c0cfc99 in SkipToNewLine(), check for TOKSEP 1991-01-15 11:51:40 +00:00
ceriel
47930ff0cb Corrected some patterns 1991-01-14 17:13:58 +00:00
ceriel
69450aeb77 made acceptable for flex (no yyless() callable from other source file) 1991-01-11 14:36:37 +00:00
ceriel
92229ee6bf Made acceptable for flex (no yylineno, no yymorfl) 1991-01-11 14:35:14 +00:00
ceriel
4d9ab23a51 Made acceptable for flex (no yylineno) 1991-01-11 14:32:43 +00:00
ceriel
454037295f Made acceptable for flex 1991-01-11 14:28:59 +00:00
ceriel
386d6a5b7c Some changes in search for more efficiency 1991-01-11 14:20:59 +00:00
ceriel
b3c13c6cfb fixed bug with APPEND in sys_open() 1991-01-11 13:19:36 +00:00
ceriel
5c7e66249d Some more optim (?) 1991-01-11 10:54:03 +00:00
ceriel
e363f145a1 some changes that may make ncg a tiny bit less inefficient 1991-01-10 18:39:36 +00:00
dick
65a90ed198 undo modifications outside #ifdef LINT 1991-01-10 17:49:19 +00:00
ceriel
6cbf598d2f corrected small ommission 1991-01-10 13:57:29 +00:00
ceriel
d4990525c7 Added Berkeley Yacc sources 1991-01-10 11:19:59 +00:00
dick
49ce694fe2 more additions for lint 1991-01-07 12:33:38 +00:00
ceriel
ad483e3e09 Changed installation mechanism of LLgen 1991-01-04 15:08:28 +00:00
ceriel
93580cb58b Changed installation mechanism 1991-01-04 15:01:59 +00:00
ceriel
b1083ab3c4 Fixed error in clearerr 1991-01-03 16:08:31 +00:00
ceriel
88fcf7cb50 clearerr is now also a macro 1991-01-03 14:31:16 +00:00
ceriel
d5593e5f80 clearerr is now also a macro 1991-01-03 14:23:54 +00:00
ceriel
177b2f0744 Check for garbage in #pragma and #include 1991-01-03 13:50:57 +00:00
ceriel
13f0286788 Check for garbage after #include 1991-01-03 13:45:22 +00:00
ceriel
4274e43ced order of fields in struct was changed; PLEASE DICK, DO NOT DO THAT! 1990-12-19 17:32:04 +00:00
eck
65bd615d62 added information about top element size computation 1990-12-19 17:07:10 +00:00
ceriel
bb20d83961 some fixes 1990-12-19 12:59:36 +00:00
ceriel
e116db6971 Fixed stat interface 1990-12-19 12:42:21 +00:00
ceriel
b3a34ee194 Adapted for debugger 1990-12-19 11:54:55 +00:00
ceriel
54d51b829a Adapted READ_ME file to current situation 1990-12-19 11:52:37 +00:00
ceriel
6d592a7503 fixed byte order in 'desc' field 1990-12-19 11:23:25 +00:00
ceriel
fc040b4e21 Changed LS/PS, ported to DEC VAX 1990-12-19 11:17:06 +00:00
ceriel
9943c03f53 simplified options.c 1990-12-19 11:07:15 +00:00
ceriel
fe6528229a Correct byte order of 'desc' field 1990-12-19 10:26:39 +00:00
ceriel
0532d1c22b Regenerated dependencies 1990-12-18 14:29:04 +00:00
ceriel
bc16e6d487 changed lint flags, use ms_ego, changed allocation strategy for loops 1990-12-18 11:14:34 +00:00
ceriel
dafd7385ab corrected register save cost counts 1990-12-18 11:13:03 +00:00
ceriel
1b47314695 Moved some macros to ../share, changed lint flags 1990-12-17 16:48:31 +00:00
ceriel
3a7e8a8bea Changed lint flags 1990-12-17 16:35:26 +00:00
ceriel
668638dbc7 Changed types in core allocation routines, changed lint flags 1990-12-17 14:55:03 +00:00
eck
71ca9b484f added casts of pointer difference to integer 1990-12-17 14:22:41 +00:00
ceriel
1f21fb4aa2 Added -t flag to keep temporaries around 1990-12-17 14:22:09 +00:00
ceriel
6982691483 use ms_ego, changed lint flags 1990-12-17 14:11:13 +00:00
ceriel
5b5140d2d7 removed unused macros, changed lint flags 1990-12-17 13:53:44 +00:00
ceriel
a6540b5f26 Changed lint flags 1990-12-17 13:52:53 +00:00
ceriel
bffcf39b22 fixed problem with multiple definitions going by undetected 1990-12-17 13:19:31 +00:00
ceriel
76ed0a2981 Changed types in core allocation routines, changed lint flags 1990-12-17 13:15:03 +00:00
ceriel
597ae10a14 Changed lint flags 1990-12-17 13:11:13 +00:00
ceriel
2e7e07d0f9 changed lint flags, changed macro name, deleted unused macro 1990-12-17 13:09:57 +00:00
eck
f279db3650 fixed bugs with storage-class and void in prototype 1990-12-17 13:08:05 +00:00
ceriel
b8d5d9e893 Changed lint flags 1990-12-17 13:05:24 +00:00
ceriel
1dc8cf5a3e print some info in comment in tables.c 1990-12-17 12:52:41 +00:00
ceriel
0d13d02c1c Fixed problem with cost computation, added some assertions and
added some more precise debugging printing
1990-12-17 10:02:52 +00:00
eck
4bf2f9c703 set _IOMYBUF in setvbuf() when necessary 1990-12-14 14:47:26 +00:00
dick
b7495e5f55 added dummy definition of C_ms_err 1990-12-14 14:42:20 +00:00
ceriel
d67ddb5f2d Changed print format 1990-12-14 13:57:46 +00:00
eck
cfc56b03b0 aligment (yet again) 1990-12-13 14:03:31 +00:00
eck
43721f5437 added error message because of declaration problems 1990-12-13 09:14:54 +00:00
eck
4439cdc4fd fixed error for m68k2 1990-12-13 08:31:44 +00:00
eck
714ce1e77d fixed nasty bug with sets that were used in kill-parts 1990-12-12 17:17:04 +00:00
ceriel
f15c121252 regenerated dependencies 1990-12-11 14:09:02 +00:00
ceriel
bd3338e65d Added Pascal support 1990-12-11 13:53:01 +00:00
ceriel
ae977f0aa8 Added debugger support 1990-12-11 13:52:08 +00:00
ceriel
c7c40b7551 Some fixes: delinted and fixed alignment bug (bloody sizeof strikes again) 1990-12-11 11:10:46 +00:00
ceriel
2a598d0a9b Fixed for OUTSEEK (by C. Verstoep) 1990-12-11 10:38:22 +00:00
eck
4986206ca0 improved error-handling on conditionally excluded #-lines 1990-12-10 11:17:34 +00:00
dick
0810c19168 lint update (merge from C compiler) 1990-12-07 14:42:26 +00:00
ceriel
00643c6620 Fixed RMU 4 1990-12-07 11:25:45 +00:00
dick
9507d33945 adapted to integration into cemcom.ansi 1990-12-06 14:56:42 +00:00
ceriel
cbdb0088c5 fixed possible non-sign-extension problem 1990-12-06 11:34:50 +00:00
ceriel
0c3eba4dc1 Added test program 1990-12-04 16:40:21 +00:00
eck
344b46880c fixed typo 1990-12-04 12:52:41 +00:00
ceriel
0457f201c8 Fixed for Ultrix: pass SUF 1990-12-04 11:42:25 +00:00
ceriel
616ba9874e improved for numbers that can be represented exactly 1990-12-04 11:33:01 +00:00
eck
582954d10f fixed bug with function returning pointer to function 1990-12-04 11:09:34 +00:00
ceriel
a3670020dd Fixed: some moves were wrong 1990-12-03 16:01:51 +00:00
ceriel
cc506f0c82 Fixed con_float for non-IEEE machines 1990-12-03 16:00:53 +00:00
eck
b40f360956 oops: forgot to update LIST 1990-12-03 14:21:21 +00:00
ceriel
12ba59e5fc leave SIGFPE alone 1990-12-03 14:14:48 +00:00
eck
a93abde5f2 added isatty.c: it is reasonably standard on UNIX systems 1990-12-03 14:13:31 +00:00
ceriel
ce639aabe4 also handle SIGFPE; runtime start-off should leave it alone 1990-12-03 13:54:36 +00:00
eck
11c958956f oops, do set errno in ldexp() (blanket rules) 1990-12-03 13:09:27 +00:00
ceriel
f99b94ded1 NOP now does not call .nop anymore 1990-12-03 09:36:56 +00:00
ceriel
db70e8ea7f some more improvement to CUF 1990-11-30 15:58:33 +00:00
ceriel
78147b5279 fixed problem with CUF 1990-11-30 14:35:51 +00:00
ceriel
c923390193 fixed bug with auto-increments and -decrements 1990-11-30 14:34:04 +00:00
ceriel
d472f1b7ef Some modifications to reduce the number of terminals (for Ultrix) 1990-11-30 09:42:49 +00:00
ceriel
c8b8291940 corrected spelling error 1990-11-29 18:05:41 +00:00
ceriel
cd9d3be884 Added _syscall.s and _sigvec.c 1990-11-29 16:13:49 +00:00
ceriel
b94885a84c Added _sigsetmask.s 1990-11-29 16:04:04 +00:00
ceriel
b6c512bf2d made Makefile more portable 1990-11-27 16:51:58 +00:00
ceriel
2861ad1ce0 made Makefile more portable 1990-11-27 16:41:13 +00:00
ceriel
4c9733d702 Corrected error messages 1990-11-27 09:39:52 +00:00
eck
64bd56ab06 added protection against #define of _POSIX_SOURCE 1990-11-22 13:59:54 +00:00
ceriel
6778e7bf68 make cmp entry was wrong 1990-11-22 13:48:08 +00:00
ceriel
31855e8f72 Added -ansi flag 1990-11-22 13:18:47 +00:00
ceriel
2c0e05ee6d Changed INCLUDES 1990-11-22 13:16:54 +00:00
ceriel
7d13773c0b Changed INCLUDES and deleted be description 1990-11-22 13:09:46 +00:00
ceriel
5a7c846539 Changed INCLUDES 1990-11-22 13:09:04 +00:00
ceriel
2eeeb0c8c5 Some more amake simplifications 1990-11-22 12:56:23 +00:00
ceriel
2bc2154dcd Also update WorkingDir on line directives 1990-11-22 12:02:00 +00:00
ceriel
a8f3296e4b Wrong version committed 1990-11-22 11:48:08 +00:00
ceriel
abc2c10054 Also update WorkingDir on line directives 1990-11-22 11:25:34 +00:00
ceriel
ad67e9e2dd Did not handle RETURN's in module bodies right 1990-11-22 09:49:37 +00:00
ceriel
a7674c8ad0 Added -ansi flag for ANSI C compiler 1990-11-21 16:51:49 +00:00
ceriel
bd7957c22e Simplified Amakefile 1990-11-20 13:02:27 +00:00
dick
9694b35d75 improved error messages 1990-11-19 14:14:12 +00:00
ceriel
f8390a7118 Some corrections and simplifications 1990-11-16 16:31:40 +00:00
ceriel
1162300ed3 Added Johan's changes (nothing significant) 1990-11-16 16:01:04 +00:00
ceriel
23489d3f23 Added Johan's changes 1990-11-16 15:58:36 +00:00
ceriel
ecc34c2227 Some corrections 1990-11-16 09:58:33 +00:00
ceriel
9053a42a3c don't allow empty format string 1990-11-15 17:00:39 +00:00
ceriel
8552c93ebb Forgot to add ARPLOP to mach2.c 1990-11-15 16:18:33 +00:00
ceriel
4e207f3638 Added arpl instruction 1990-11-15 15:02:49 +00:00
ceriel
3f675ed4a4 Added some (short) casts, because valu_t is a long 1990-11-15 12:10:13 +00:00
ceriel
042f118ef8 Replaced a .data4 by two .data2's: .data4 not guaranteed to work with big numbers 1990-11-15 11:53:22 +00:00
ceriel
54deef2704 Some corrections 1990-11-15 10:43:25 +00:00
ceriel
2faeff52ad Added a default for WRD_FMT 1990-11-15 10:27:15 +00:00
ceriel
b322a6aa64 Only produce #define for WRD_FMT when FORMAT is used 1990-11-15 10:26:40 +00:00
ceriel
9720860c11 also remove barrier.so 1990-11-13 17:38:50 +00:00
ceriel
d4fc73b083 Added support for DBX; Unfortunately, DBX still does not like it; GDB does 1990-11-13 17:00:51 +00:00
eck
b6b4ed47f4 fixed two preprocessing bugs 1990-11-13 16:50:55 +00:00
ceriel
8f35c7c6ab Compile fptrp.e with EMFLAGS 1990-11-13 15:39:11 +00:00
ceriel
65f6b2d36d Adapted for size of ARM table 1990-11-13 15:04:47 +00:00
ceriel
6d9868f52c Some simplifications 1990-11-13 14:52:51 +00:00
ceriel
bc43b98b75 Albert Koelmans newest version, with adaptions 1990-11-13 13:54:10 +00:00
ceriel
b5446c6b8f Additions from Albert Koelmans 1990-11-13 13:36:15 +00:00
ceriel
a34c63228b Adapted for use with improved fp package 1990-11-13 13:21:21 +00:00
ceriel
5470d10df8 Albert Koelmans newest version, adapted for use with improved fp package 1990-11-13 13:10:45 +00:00
ceriel
6e6324b738 Albert Koelmans newest version 1990-11-13 12:53:53 +00:00
ceriel
fd63e11237 Albert Koelmans newest version 1990-11-13 12:05:13 +00:00
ceriel
5ce266dd9e Albert Koelmans newest version 1990-11-13 11:59:29 +00:00
ceriel
8f9d7ba0e5 Albert Koelmans newest version 1990-11-13 11:53:52 +00:00
ceriel
4f5f49b8ef Albert Koelmans newest version 1990-11-13 11:46:48 +00:00
ceriel
9b9dc220d2 don't move ms_ego's 1990-11-13 11:26:04 +00:00
eck
b20ff47127 vsprintf() sets _IOWRITING flag 1990-11-13 10:56:53 +00:00
ceriel
cf222b9e7a Some corrections 1990-11-13 10:51:02 +00:00
eck
8fa5ab6219 added patterns 1990-11-13 10:03:55 +00:00
ceriel
846b431942 Albert Koelmans latest version 1990-11-12 17:13:45 +00:00
ceriel
1fb1f9057e Albert Koelmans newest version 1990-11-12 17:09:15 +00:00
ceriel
05de7098f7 New version from Albert Koelmans 1990-11-12 15:41:50 +00:00
ceriel
c30bba1bcf Latest version from Albert Koelmans 1990-11-12 15:36:03 +00:00
ceriel
6267a5533c Latest version from Albert Koelmans 1990-11-12 15:29:14 +00:00
eck
5579494979 fixed type of sizeof (decreases size!)
fixed bug with typedef of function with block scope
1990-11-12 15:28:44 +00:00
ceriel
c4cf17c448 speeded up std_alloc() 1990-11-12 13:56:38 +00:00
ceriel
71ec6960ee many changes, delinted 1990-11-12 13:46:31 +00:00
eck
06faac014d fixed bugs with sizeof() and unnormalized values 1990-11-09 16:26:15 +00:00
eck
3f5193c2f0 never set errno in ldexp() 1990-11-09 16:20:49 +00:00
eck
8676c7d2e6 corrected type of *_EPSILON values 1990-11-08 12:01:52 +00:00
ceriel
3f4e94f994 updated manual page 1990-11-07 15:25:24 +00:00
eck
7f8a4b9d15 handle 'asp -x' correctly, instead of giving up 1990-11-06 13:22:15 +00:00
ceriel
753d7ec3b4 Added Copyright notice 1990-11-06 13:16:57 +00:00
ceriel
07b3edb20b Added pc_math.h 1990-11-06 13:04:12 +00:00
ceriel
6286e8039a Made compilable with ANSI C compiler 1990-11-06 13:02:55 +00:00
ceriel
965f305152 Many more changes 1990-11-06 12:23:41 +00:00
eck
2c5370239d prevent warning when #including setjmp.h 1990-11-06 10:49:12 +00:00
ceriel
3d748f5273 fixed bug with reading from standard input 1990-11-02 14:44:37 +00:00
ceriel
ddb632ac13 made compilable by the ACK ANSI C compiler 1990-11-02 14:29:02 +00:00
eck
009541d133 added warning about old-fashioned declarations
cleaned up error reporting
changed implicit declaration handling
1990-11-02 09:23:27 +00:00
eck
7dffd9af9a fixed bug with reading from standard input 1990-11-01 11:09:09 +00:00
ceriel
b3fdd76177 Use make variable ACK 1990-11-01 09:42:51 +00:00
ceriel
93dfefd860 Added debugger support 1990-11-01 09:42:03 +00:00
ceriel
744986b7f1 Added sparc description, don't put constants in regs on M68020 1990-11-01 09:37:02 +00:00
ceriel
f3f7749360 LIM puts a word-size object on stack 1990-11-01 09:36:47 +00:00
ceriel
b6cd19f7ba Several fixes 1990-11-01 09:33:51 +00:00
ceriel
5c82aee19b Added high-speed clear loops and changed behaviour of Realloc 1990-11-01 09:32:21 +00:00
ceriel
c78ed7f1fa fixed picture and use soelim 1990-10-31 16:42:05 +00:00
ceriel
2dac530db0 Fixed bug in example program 1990-10-31 16:28:37 +00:00
ceriel
6ba33f8b1c Fixed a few bugs 1990-10-31 15:56:51 +00:00
ceriel
bfbd2211fe Made communication protocol more machine-independant 1990-10-30 15:50:33 +00:00
eck
8e09fcaa7d removed a cast from offsetof() 1990-10-30 09:53:48 +00:00
eck
3f9fa1b202 fixed labeldefs so that registers are killed
replaced 'cms <w>' bij 'cmi <w>'
1990-10-29 17:05:35 +00:00
ceriel
a828a92953 fixed labeldefs so that registers are killed 1990-10-29 16:39:39 +00:00
eck
fe8f29488e changed offsetof(), so it will not generate a warning on 2-4 machines 1990-10-29 13:52:18 +00:00
ceriel
eaaab0063b Added 'file ?' and shell escape, and some re-organization 1990-10-29 11:38:35 +00:00
ceriel
7188b07f43 changed 'uses REG=%1' behaviour: if no REG containing %1 is found, an
attempt is made to find an empty one
1990-10-26 18:18:53 +00:00
eck
cdb39d5f18 fixed bugs with ext_[wl] arguments, changed reusage of registers 1990-10-26 16:52:43 +00:00
eck
df694aa951 initialize sp_occurred[SP_SETJMP] at start of function 1990-10-26 12:38:06 +00:00
eck
c249355a42 changed definition of jmp_buf (alignment problems) 1990-10-26 11:31:27 +00:00
ceriel
8cd836b421 protect against multiple inclusions, commented text after #endif 1990-10-25 11:18:44 +00:00
eck
86e75cb465 deleted toupper and tolower macros: they were wrong 1990-10-24 17:24:12 +00:00
eck
10938b57a1 added to*() routines: a macro is impossible 1990-10-24 17:19:50 +00:00
ceriel
ff551045d5 corrected subrange handling: char type was not recognized 1990-10-24 16:46:46 +00:00
eck
8eff8f8cfb made a function-call of HUGE_VAL 1990-10-24 14:31:50 +00:00
eck
720e9691c1 fixed small bug (void expr. cast to void), squeezing for MINIX 1990-10-23 14:13:10 +00:00
eck
eefc2b2658 fixed bug with undefined structs
ceriel changed debugging information
1990-10-19 11:50:32 +00:00
eck
2b7a3c14db fixed bug with undefined structs
ceriel changed debugging information
1990-10-19 11:21:43 +00:00
ceriel
2952aff355 more fixes 1990-10-17 17:00:03 +00:00
eck
b9df23072d changed homefromsubdir a little 1990-10-16 10:07:12 +00:00
ceriel
0955b5339c fix to fit? macros 1990-10-15 13:59:55 +00:00
eck
7c0e3dec64 added #include of <sys/types.h> to sigmisc.c 1990-10-15 11:23:08 +00:00
eck
8519a01099 added table for time-zone determination 1990-10-12 14:48:55 +00:00
ceriel
2d5497513a Too many changes and fixes to mention them all here 1990-10-11 08:42:07 +00:00
ceriel
0232695ebe Fixed problem with global names used for statics as well as externs 1990-10-08 11:44:15 +00:00
ceriel
452964a882 fix: addr_t must be long 1990-10-05 16:31:55 +00:00
ceriel
5cb18ec227 de-linted somewhat 1990-10-02 17:19:17 +00:00
ceriel
79290db683 de-linted somewhat 1990-10-02 17:13:40 +00:00
eck
f75be67768 made implementation defined behaviour (POSIX) more explicit 1990-10-02 09:59:30 +00:00
eck
bd7bc23d8c forgot to add homefromsubdir to .distr 1990-10-01 17:12:54 +00:00
ceriel
64e090af69 Pass -g to cemcom 1990-10-01 15:42:10 +00:00
ceriel
568c87f5ba Added support for debugger, de-linted somewhat 1990-10-01 15:28:28 +00:00
ceriel
955353cb59 some more changes and fixes 1990-10-01 11:44:27 +00:00
eck
15e95081fd added _sigvec.s and changed call of sigvec() in signal.c 1990-09-28 17:13:40 +00:00
ceriel
a739f70776 Added _sigvec and _syscall 1990-09-28 17:12:33 +00:00
eck
a80002e015 changed _end to __end because of namespace pollution 1990-09-28 15:35:16 +00:00
eck
395e806665 changed some names because of namespace pollution 1990-09-28 15:19:06 +00:00
eck
2af50acb2b removed some names from tokenname.c 1990-09-28 14:03:15 +00:00
eck
9c95da6b40 changed some names because of namespace pollution 1990-09-28 13:47:47 +00:00
eck
53fdbf54a7 changed makefile, added homefromsubdir 1990-09-28 13:13:34 +00:00
eck
028d45b39b changed some names because of namespace pollution 1990-09-28 13:08:07 +00:00
eck
4de2288096 changed end_em to avoid namespace pollution 1990-09-28 09:47:50 +00:00
eck
fb31d00907 completed Makefile entries 1990-09-28 09:47:40 +00:00
eck
e7e6ccfc40 some minor fixes 1990-09-28 09:29:51 +00:00
ceriel
951b534d29 Fixed problem with -I option 1990-09-27 17:50:52 +00:00
ceriel
3265860819 Fixed problem with -I option 1990-09-27 17:45:34 +00:00
ceriel
c9a734814e Fixed problems with -I and with value conformant arrays 1990-09-27 17:01:01 +00:00
eck
f5d5fab54f forgot homefromsubdir in .distr 1990-09-27 16:56:10 +00:00
eck
a55e047f20 oops, _envp should have been _penvp 1990-09-27 16:52:07 +00:00
ceriel
2e281b6ca3 fixed bug in -I handling 1990-09-27 16:43:51 +00:00
eck
337d0e5629 fixed bug with -I flag 1990-09-27 16:39:54 +00:00
eck
efc2d2ee63 forgot to update LIST 1990-09-27 16:38:32 +00:00
eck
2aff1064ee added head_ac 1990-09-27 16:37:22 +00:00
eck
55ab3cdd45 fixed bug with -I flag 1990-09-27 15:59:38 +00:00
eck
dd3688b9ce added head_ac.e 1990-09-27 15:49:13 +00:00
eck
e99451e72c changed end_em to library to avoid namespace pollution 1990-09-27 14:29:09 +00:00
eck
e7dc9ed7f6 changed environment handling to decrease namespace pollution 1990-09-27 13:40:08 +00:00
ceriel
cc8ace5b95 Some more changes 1990-09-26 17:32:42 +00:00
eck
dcb3ddb3fc changed first arg of sscanf() to const char * 1990-09-26 13:19:19 +00:00
ceriel
f656bdc676 Many more changes 1990-09-25 17:40:47 +00:00
ceriel
87af8d0aa5 Added patterns 1990-09-25 15:12:26 +00:00
ceriel
41ba54ddb6 Added patterns 1990-09-25 15:04:55 +00:00
ceriel
524f9b4c20 Fix: cmp.l A,A is not the same as tst.l A 1990-09-25 14:59:28 +00:00
eck
564653926e oops, fix for ## operator was wrong 1990-09-25 13:46:59 +00:00
eck
a43e63cd42 oops, previous fix was wrong for ## operator 1990-09-25 13:40:32 +00:00
ceriel
2f55ab8b71 fixed typo 1990-09-24 15:22:36 +00:00
ceriel
538b201d0d Some lay-out changes and always use value of LLuserhook 1990-09-24 13:35:28 +00:00
ceriel
0e0bf77274 added manual page, some improvements 1990-09-21 16:58:20 +00:00
ceriel
de395f4659 fix INS and INSB 1990-09-21 14:24:03 +00:00
eck
44f4ba2d25 added cv to .distr 1990-09-21 12:53:58 +00:00
eck
6172445028 fixed typo 1990-09-21 09:27:04 +00:00
ceriel
76f1cf30ee Some new commands and improvements 1990-09-20 17:51:14 +00:00
eck
b68cb52de6 added em_mesX.h to .distr 1990-09-20 17:03:05 +00:00
ceriel
1a5559b359 Added .distr 1990-09-20 16:18:57 +00:00
ceriel
84940ba2a5 Added JC and JNC (aliases for JB and JNB) 1990-09-20 14:18:52 +00:00
eck
f22f65cf45 changed shc.[ch] to tes.[ch] in .distr 1990-09-19 15:14:07 +00:00
ceriel
2a765e88b6 many changes 1990-09-19 14:31:12 +00:00
eck
08415507b0 Added ANSI-C library 1990-09-18 15:02:27 +00:00
eck
45602e9e65 forgot to update Action 1990-09-18 14:59:50 +00:00
eck
9f2d838fc6 improved makefile 1990-09-18 14:56:52 +00:00
eck
d2f6181114 Initial revision 1990-09-18 14:42:32 +00:00
eck
1e5100b8a1 added libcc.ansi to .distr 1990-09-18 14:37:29 +00:00
dick
2a4d8e0a25 clean-up code generation suppression for lint 1990-09-18 14:29:42 +00:00
eck
e6dbf12f0a removed crash() call: it was wrong 1990-09-14 16:39:11 +00:00
eck
90390417df deleted unnecessary label 1990-09-14 16:37:30 +00:00
ceriel
b62c56b3dd Added some C support 1990-09-14 14:37:26 +00:00
ceriel
da21e46cd3 improved line number administration 1990-09-14 14:37:24 +00:00
eck
a2c9a56a36 replaced some move's by move_i's 1990-09-14 14:30:07 +00:00
eck
e1aef2390e fixed error with # && ##-operators in non function-like macro's 1990-09-13 15:14:52 +00:00
eck
5de2d83b43 fixed error with # && ##-operators in non function-like macro's
pass printable garbage characters on to parser
1990-09-13 15:12:13 +00:00
ceriel
306934733c 'x(x) int x; { }' was not accepted 1990-09-12 17:32:31 +00:00
ceriel
75cb9970be Fix: the type INTEGER[0..255] was put in one byte 1990-09-12 17:09:57 +00:00
eck
3102132019 fixed bugs with prototype scopes 1990-09-12 16:36:16 +00:00
ceriel
4489689f71 many changes 1990-09-12 16:13:59 +00:00
eck
6ad4c2c0a1 added #if because rename() is also in POSIX 1990-09-11 10:26:42 +00:00
eck
7f4e95884f changed int-functions to void-functions 1990-09-11 10:24:15 +00:00
eck
74847f83b5 removed assumption that time_t is an unsigned type 1990-09-11 10:18:51 +00:00
eck
e4bb8e61b0 fixed small bug with token separation 1990-09-10 11:57:16 +00:00
ceriel
f7726082d3 recognize expressions 1990-09-07 14:56:24 +00:00
eck
477d7891f0 strod() & _str_ext_cvt() made more strictly conforming 1990-09-07 11:00:24 +00:00
eck
606e882015 sometimes swap operands in expressions with side-effects 1990-09-06 14:49:52 +00:00
eck
118473af52 added some optimalizations 1990-09-06 11:32:51 +00:00
eck
60497c47a0 stupid error fixed: tes shouldn't have worked 1990-09-06 08:59:02 +00:00
ceriel
3c4d21c9c2 Added Xcv.c 1990-09-05 11:54:11 +00:00
eck
2349ff780b added top element size computation information 1990-09-05 09:29:05 +00:00
eck
456f03afec changed stackheight computation to top element size computation
changed some parameters
1990-09-04 17:19:04 +00:00
eck
ab04cc203d changed stackheight computation to top element size computation 1990-09-04 17:16:00 +00:00
eck
8f077a272d changed stacheight to topeltsize 1990-09-04 17:13:37 +00:00
eck
e7c55f01db changed stacheight computation to top element size computation 1990-09-04 16:56:39 +00:00
eck
ce530f7ea3 changed stackheight computation to top element size computation 1990-09-04 16:42:43 +00:00
ceriel
8b3c52d049 distribute makefile.std, not makefile 1990-09-04 11:47:50 +00:00
eck
5b7144f004 fixed bug in qualifier_type() 1990-09-04 10:48:04 +00:00
eck
b32faf6cc0 fixed problems with declaration syntax 1990-09-03 13:46:30 +00:00
ceriel
b897e9896e fix: also kill condition codes if they are set to a register that is to be killed 1990-09-03 11:12:44 +00:00
ceriel
aa8bfb5554 Additions for debugger information 1990-09-03 11:07:22 +00:00
ceriel
13f1026d7a keep the names .csa and .csb for backwards compatibility 1990-09-03 10:25:57 +00:00
ceriel
d723289148 Initial version 1990-08-31 18:22:53 +00:00
eck
bf1c637528 fixed two little bugs 1990-08-31 10:27:12 +00:00
ceriel
b47fcf10b9 only deal with signals that are not ignored 1990-08-29 11:44:33 +00:00
eck
ea49b0cbca fixed some bugs in new pattern 1990-08-28 15:01:17 +00:00
eck
b720a6f3f9 removed test because of moon3 1990-08-28 14:53:34 +00:00
eck
7bcf968253 merged vax and pdp #defines in float.h 1990-08-28 14:52:52 +00:00
eck
12114e4e08 fixed qsort() for 0 elements 1990-08-28 14:03:24 +00:00
eck
ebc37d14b4 changed pow() a little 1990-08-28 13:59:36 +00:00
eck
3310d79e1a improved the speed somewhat
fixed bug with negative chars in comparisons
1990-08-28 13:54:46 +00:00
eck
8f8bca227a fixed freopen() bug by deleting some code 1990-08-28 13:44:48 +00:00
eck
a0ee315857 fixed types because of the 2-4 version 1990-08-24 17:05:53 +00:00
eck
5cfb5c8b38 fixed some strange constructions 1990-08-24 16:20:57 +00:00
ceriel
e720d07c79 Did not handle quotes in C comments right 1990-08-23 15:53:13 +00:00
ceriel
869816ffe0 changed 'enter' into 'entry' (80286) 1990-08-23 09:30:56 +00:00
eck
966ad936fa several improvements + fixes 1990-08-22 16:26:21 +00:00
ceriel
928e88ce22 avoid double LINs and corrected bug in symbol table entries for records 1990-08-22 15:33:43 +00:00
eck
edfaa243ea added optional .w to OP_EA_D 1990-08-21 10:59:09 +00:00
eck
8b22a78f32 changed interface for cs[ab] 1990-08-21 10:17:49 +00:00
ceriel
d00d22b1c4 made produced itemtab.h file more readable 1990-08-20 15:32:29 +00:00
ceriel
e27e0eafd0 Initial revision 1990-08-20 15:07:38 +00:00
ceriel
378bb9322b new table (merged with m68k2) 1990-08-20 15:00:15 +00:00
eck
b587691b16 added m68k2 stuff, added patterns 1990-08-20 13:55:38 +00:00
eck
aa39c4b4aa fixed several bugs with object sizes 1990-08-14 09:59:37 +00:00
ceriel
e1897b27b5 improved REAL constant and string constant stab generation 1990-08-10 18:01:50 +00:00
ceriel
ea10f794cd fixed bug concerning back-slashes within strings 1990-08-10 17:57:32 +00:00
eck
7391776b2a added _sigsetmask.s 1990-08-09 15:40:08 +00:00
eck
ae671e2b91 added _sigsetmask.s 1990-08-09 15:29:51 +00:00
eck
1dacdfc4c6 changed sigsetmask to _sigsetmask 1990-08-09 15:27:13 +00:00
ceriel
c97e7263f7 keep comments in actions; they may be significant (for lint) 1990-08-07 10:48:02 +00:00
eck
b5e965ef09 fixed error in .trp: it could generate a bus error 1990-08-03 16:16:28 +00:00
ceriel
96cd8b3420 don't throw away pseudo's, even if they are not reachable 1990-08-02 16:01:21 +00:00
ceriel
e8c881c8e0 show some more of the name list entries 1990-08-02 15:58:10 +00:00
ceriel
a6b82288bc pass -g flag to Modula-2 compiler 1990-08-01 14:46:07 +00:00
ceriel
2eb1451f91 bug fix: did not return soon enough 1990-08-01 14:41:18 +00:00
ceriel
7839c58641 increase size of yytext buffer 1990-08-01 14:40:22 +00:00
ceriel
aa8bd39666 only leave ms_std's if prodepth > 0 1990-08-01 14:36:45 +00:00
ceriel
61ed03dd46 some more changes for debugger support 1990-08-01 14:35:07 +00:00
ceriel
ac6cf0393b #ifdeffed strange test 1990-08-01 14:34:53 +00:00
ceriel
078e8d67f5 time optimization is default now 1990-08-01 14:33:08 +00:00
ceriel
c4d485ef8c minor change 1990-08-01 14:32:04 +00:00
ceriel
12b0177500 support for long strings 1990-08-01 14:30:45 +00:00
ceriel
9ce9dc654f Added support for debugger messages 1990-07-30 16:05:27 +00:00
ceriel
e123dc64f4 fixed declaration of C_error 1990-07-30 16:03:15 +00:00
ceriel
640fe76319 added support for debugger 1990-07-30 15:56:25 +00:00
ceriel
36ce140e43 changed a comment 1990-07-30 15:51:32 +00:00
ceriel
271f1d0549 removed limit on string size 1990-07-30 15:40:08 +00:00
ceriel
ff2abb98d3 some fixes 1990-07-30 14:52:58 +00:00
ceriel
fa6d7b204b several changes 1990-07-30 14:32:43 +00:00
ceriel
7d7931aec4 vax4 uses own assembler now 1990-07-30 14:29:13 +00:00
ceriel
721b78ee49 modifications for debugger 1990-07-30 14:20:20 +00:00
ceriel
239ea49727 protect types.h against multiple inclusions 1990-07-30 14:17:30 +00:00
ceriel
520d0fd42e fixed: tail_mon is needed for languages 1990-07-30 14:10:35 +00:00
ceriel
60093266ae clarified text somewhat 1990-07-30 12:46:12 +00:00
ceriel
dc46fef981 fixed typo 1990-07-30 12:43:38 +00:00
ceriel
526f073ec6 Added support for S_CRS 1990-07-30 11:56:28 +00:00
ceriel
28f52822c9 Added some more support for debugger 1990-07-30 09:43:45 +00:00
eck
314c139b9e fixed bug with state 1990-07-26 15:08:49 +00:00
ceriel
ff66ac48b3 removed g-flag 1990-07-25 17:40:02 +00:00
ceriel
a59f70805a do not move ms_std message, added shc.c and shc.h to .distr 1990-07-25 17:10:40 +00:00
eck
ce8a4ab9e6 improved -I handling 1990-07-25 13:00:40 +00:00
eck
6c851594f0 changed names of csa and csb to csa4 and csb4 1990-07-25 11:46:27 +00:00
eck
a765b8f5d6 #if X=3 caused infinite loop 1990-07-25 10:20:44 +00:00
eck
33f8192790 switch to text segment when generating a label 1990-07-20 14:02:35 +00:00
eck
0b6e73197b atw.h was wrong, since word_size may contain a cast 1990-07-20 10:30:49 +00:00
ceriel
b241f143db improved conversion of extended to string 1990-07-20 09:39:43 +00:00
eck
987d3d0316 added patterns for stackheight mechanism 1990-07-19 17:22:56 +00:00
eck
539ab11985 squeezing for MINIX & bug fix in dumpidf 1990-07-19 17:16:36 +00:00
ceriel
779c77ac21 dumped core on SIM instruction 1990-07-19 10:00:02 +00:00
eck
7e156aa654 forgot pop_push.awk 1990-07-18 16:31:32 +00:00
eck
68ff00fd8b added stackheight message handling 1990-07-18 14:53:19 +00:00
eck
4320d836e1 added #defines for stackheight computation 1990-07-18 14:42:37 +00:00
ceriel
8a4be18b77 prevent core dump when no args are given 1990-07-18 14:38:48 +00:00
eck
c08f3b3c80 added stackheight computation 1990-07-18 14:33:07 +00:00
ceriel
4565dd1dc0 replaced call of non-existing Dvu to a call to Duv 1990-07-18 09:11:33 +00:00
ceriel
0f735aa2a4 fix problem with variant tag and made double compatible with subranges 1990-07-17 13:57:01 +00:00
ceriel
396c70c16e Fix: DIV and MOD on negative args 1990-07-16 09:05:19 +00:00
eck
2acd7638cc fixed int to unsigned conversions, declarations, pp-list initialization 1990-07-13 10:18:27 +00:00
ceriel
78afeb1674 Added patterns 1990-07-12 16:12:17 +00:00
eck
b1c76184a1 fixed character count in doscan 1990-07-11 09:08:33 +00:00
ceriel
3551214ac0 check result of array address calculation 1990-07-04 14:24:55 +00:00
ceriel
22efec2b64 rand() did not work on 2-byte machines 1990-06-30 20:02:45 +00:00
ceriel
ef28037143 use new con_float 1990-06-29 11:05:19 +00:00
ceriel
f6ebebfc27 fixed -I option 1990-06-29 10:00:41 +00:00
ceriel
24c669d9aa fixed -I option 1990-06-28 18:06:16 +00:00
ceriel
0a82ab43e6 bug fix: wrong procedure was called 1990-06-27 09:29:55 +00:00
ceriel
e3f14f93d1 Added some more patterns 1990-06-25 16:58:33 +00:00
ceriel
1e14068343 Added strtol() 1990-06-25 15:59:16 +00:00
ceriel
aac130469c produce commons, fix bug with mov-extend instructions 1990-06-25 15:48:49 +00:00
ceriel
3d5fbd3053 produce commons for bss 1990-06-25 13:42:02 +00:00
ceriel
c24776265d tp_unsigned is now a true boolean 1990-06-21 15:49:41 +00:00
ceriel
66e9c0dfcc int now uses intelligent calls 1990-06-21 13:17:50 +00:00
ceriel
57aa4a816b Model 3 (Intelligent Calls) implemented (Remco Feenstra & Peter Boersma);
a few bugs fixed
1990-06-21 12:16:31 +00:00
ceriel
e2d42c702e Model 3 (intelligent calls) implemented 1990-06-21 12:11:50 +00:00
eck
becce8cd21 always flush line-buffered output when filling an input buffer 1990-06-21 11:13:23 +00:00
ceriel
e8bbfc7b88 Added em_mesX.h which makes some C_ms_... unique in first 7 chars 1990-06-20 12:00:26 +00:00
ceriel
a43f3f97c2 Added debugger message routines 1990-06-20 11:59:57 +00:00
ceriel
87d9000d0f Added debugger messages 1990-06-20 11:58:38 +00:00
ceriel
d3a17633aa Made to work with troff 1990-06-20 10:05:22 +00:00
ceriel
955002df6c Added bsbb and bsbw 1990-06-19 15:27:43 +00:00
ceriel
28af33211c fixed optimizations that were wrong with indexed mode 1990-06-19 15:15:37 +00:00
eck
f5d5a1973d fixed some typos 1990-06-19 11:29:20 +00:00
ceriel
e4a8b9d316 Updated for IEEE format 1990-06-15 16:50:08 +00:00
ceriel
adbaad4069 correct M_MAX_D for old floating point format 1990-06-15 16:47:27 +00:00
ceriel
9606911f7f cg no longer part of distribution 1990-06-14 16:52:04 +00:00
ceriel
f574629a08 Added new patterns 1990-06-14 16:45:33 +00:00
ceriel
7e0f0872ae Added a SBS pattern for constant args 1990-06-13 09:59:11 +00:00
ceriel
73e9d937f1 fix: #if instead of #ifdef 1990-06-12 11:22:49 +00:00
ceriel
675d578036 changed order so that it works without ranlib 1990-06-12 11:21:40 +00:00
ceriel
94e1102a42 fix from Verstoep: free() was called twice on same arg 1990-06-12 10:07:00 +00:00
ceriel
41dac7db23 fix previous fix 1990-06-11 15:17:50 +00:00
ceriel
a379e76138 Added dependency generator, reduced size of type structure 1990-06-08 10:03:47 +00:00
ceriel
08a2f076a1 do not generate line number/file name information by default for C 1990-06-06 17:04:46 +00:00
ceriel
09f9431d23 use own version of assert (ASSERT) 1990-06-06 16:54:30 +00:00
ceriel
038224b51c dependencies 1990-06-06 16:23:47 +00:00
ceriel
61e9ad9f57 change flag -xs to -i, -xm to -m, dependencies 1990-06-06 16:10:19 +00:00
ceriel
9336a78274 change flag -xs to -i, -xm to -m 1990-06-06 16:01:03 +00:00
ceriel
e4d4880971 change flag -s to -i 1990-06-06 16:00:28 +00:00
ceriel
db96ca46e2 removed useless #ifdef 1990-06-06 15:35:33 +00:00
ceriel
590cf5dde0 Added dependency generator 1990-06-06 14:42:53 +00:00
ceriel
814058acf1 Added -A option, like -d 1990-06-06 14:37:03 +00:00
ceriel
9edc40831e mktime() did not work for 2-byte machines 1990-06-05 12:07:28 +00:00
ceriel
16ae54ece3 fixed typo 1990-06-05 09:50:28 +00:00
ceriel
472dd9f563 optimized a bit 1990-05-31 18:33:38 +00:00
ceriel
b2359023d6 Removed some erroneous fclose() calls 1990-05-31 13:54:33 +00:00
ceriel
c379c45b45 removed DEBUG #define 1990-05-31 13:33:31 +00:00
ceriel
96d4ac23e1 fix: IL sometimes removed procedures that could be called indirectly 1990-05-30 11:31:32 +00:00
ceriel
d727292d39 Added EM_vars.c 1990-05-23 09:24:55 +00:00
ceriel
8a96862162 make GMT the default 1990-05-22 14:42:28 +00:00
ceriel
e25facbde1 fix to fix 1990-05-22 12:22:25 +00:00
ceriel
11ea6dd63c atol and atoi get old-fashioned behaviour 1990-05-22 10:48:12 +00:00
ceriel
8eae65ef03 Use fputs instead of printf in perror.c 1990-05-21 10:20:15 +00:00
ceriel
cb8bc681cf compares with 0 were wrong 1990-05-18 13:22:13 +00:00
ceriel
af550576e8 made size of yylex bigger 1990-05-18 11:04:53 +00:00
ceriel
1659f22e4f Added a pattern 1990-05-18 10:47:12 +00:00
ceriel
ec43d15906 unsigned but-fields were sometimes sign-extended when converted to int 1990-05-18 10:29:57 +00:00
ceriel
3acfc6ef84 ignore NOP 1990-05-17 19:40:15 +00:00
ceriel
6376c77a07 C_out uses EM_bsssize etc. instead of C_bsssize etc. 1990-05-16 18:05:55 +00:00
ceriel
0042005fde removed references to C_bssinit etc. 1990-05-16 18:03:50 +00:00
ceriel
e503e4f52c removed pc_size.h 1990-05-16 10:56:45 +00:00
ceriel
0454c6f9c3 the tp_sdef field of the type structure may only be used after checking tp_fund 1990-05-15 15:28:01 +00:00
ceriel
d05cc4ae3e an = was temporarily set to 0, but not reset 1990-05-14 12:30:18 +00:00
eck
8bf3486d6d error with cast to unsigned long 1990-05-11 15:22:19 +00:00
ceriel
1c9671e2d0 check -m option 1990-05-11 13:11:12 +00:00
ceriel
6bfe1fb9a9 fix in sscanf: _count field was wrong 1990-05-09 13:31:36 +00:00
ceriel
e13e0c1002 fixed some patterns: operand could have side effects 1990-05-08 09:03:28 +00:00
eck
f874db085d fixed bug with double definition 1990-05-03 16:18:22 +00:00
eck
b8be04bb47 scan with %p didn't work properly on 2-4 machines 1990-05-03 10:50:23 +00:00
eck
57a4db49d4 cast ptrdiff_t to int for ANSI 1990-04-25 15:10:13 +00:00
eck
c5b9658ba0 warn about ptrdiff_t passed as long on 2-4 machines 1990-04-25 15:09:51 +00:00
ceriel
fddc825d0f cast ptrdiff_t to int for ANSI 1990-04-25 14:23:05 +00:00
ceriel
5208b6f8ad avoid a crash in directives 1990-04-24 14:07:07 +00:00
eck
193a4a5845 garbage is allowed in the fdopen mode string 1990-04-24 09:40:47 +00:00
eck
6ec0bcd32f garbage is allowed in the f[re]open mode string 1990-04-24 09:30:15 +00:00
ceriel
793a090bf5 avoid null references on illegal input 1990-04-23 16:11:37 +00:00
eck
5f8fafc559 some more corrections 1990-04-23 13:48:43 +00:00
ceriel
b2ac4e2b9c Use C_out instead if EM_mkcalls 1990-04-23 13:43:05 +00:00
ceriel
92a8e56228 use .limhp 1990-04-23 13:39:26 +00:00
ceriel
fdc7260040 moved a coercion 1990-04-23 13:38:19 +00:00
ceriel
14c34e3128 INS instruction fix 1990-04-23 13:33:26 +00:00
eck
ed1a25aea5 result of sizeof() is 'unsigned int' (for backward compatibility) 1990-04-23 13:33:07 +00:00
eck
1c38259279 size_t is 'unsigned int' (for backward compatibility) 1990-04-23 13:26:09 +00:00
ceriel
2e80db6b55 yet another bug fix in instructions handling special registers 1990-04-23 12:35:41 +00:00
eck
2d23508c8a changed remark about predefined identifiers 1990-04-19 16:04:58 +00:00
eck
486f0283b8 the -U option did not work properly; call do_undef() now 1990-04-18 16:40:17 +00:00
eck
7e22978393 two -D options for one identifier didn't work 1990-04-18 13:09:36 +00:00
eck
4d857ad62e two -D options for one identifier didn't work 1990-04-18 13:03:05 +00:00
eck
a5cfdee69a added wait-statements for floating-point library 1990-04-17 13:57:23 +00:00
eck
d58b2dc6b3 added a.out.h for the cv program 1990-04-12 17:03:31 +00:00
eck
1fad7d011d added csa4 and csb4 1990-04-12 11:35:10 +00:00
eck
f4ef16f727 added csa4 and csb4 1990-04-12 11:29:49 +00:00
eck
94ff1151b7 added warning for nested comment 1990-04-10 10:52:52 +00:00
eck
140a597ebd don't free prototype lists, they might be part of a typedef 1990-04-10 10:14:46 +00:00
eck
121d5e86cb timezone info should not end up in rom 1990-04-09 17:03:58 +00:00
eck
51f533a3d6 changed over/underflow for exp() 1990-04-09 16:54:09 +00:00
eck
c3edbe2528 file creation on f[re]open() was still wrong 1990-04-09 15:55:51 +00:00
eck
cb0606b8ba deleted _tname from __iobuf structure 1990-04-09 15:38:02 +00:00
eck
35886fdf28 improved file creation on f[re]open() 1990-04-09 15:21:43 +00:00
eck
a5684dfc58 various bug fixes & improvements 1990-04-06 15:37:16 +00:00
eck
e55199d2b2 definition of ptrdiff_t was wrong 1990-04-04 16:21:34 +00:00
eck
7efece4c16 improved _doscan(); fflush() doesn't call fseek() anymore 1990-04-04 15:52:01 +00:00
eck
b50e3aeab5 code for '*(ip = iarr) = x' was wrong 1990-04-04 15:08:45 +00:00
ceriel
ae3d58b76f corrected SDF patterns 1990-04-04 15:06:32 +00:00
ceriel
d4fb901288 Fixed wrong assertion, and fixed bug in distance routine: it did not check
that each stackpattern token that does not exactly match can be made from the
stack
1990-04-04 14:52:29 +00:00
eck
e7e3e5e7e1 changed assert() macro so __bad_assertion() can use fputs() 1990-04-03 15:29:03 +00:00
eck
263dbbaea9 changed __bad_assertion(), it now uses fputs() 1990-04-03 15:01:58 +00:00
eck
64f406d532 improved volatiles, added warning for possibly nested comments 1990-04-02 15:57:51 +00:00
ceriel
416c725017 Fix: did generate wrong code for 'if (x && 0) ...' 1990-03-29 11:19:36 +00:00
eck
151b89ac03 bug fix for #line directives 1990-03-29 10:45:15 +00:00
eck
f2e782cf95 bug fixes after test-suite 1990-03-29 10:41:46 +00:00
ceriel
e16a40c84c produced incorrect 'pure' objects 1990-03-29 09:46:14 +00:00
eck
4a906fb5be several bug fixes after test-suite 1990-03-29 09:05:21 +00:00
ceriel
58b8c62dc7 Added #defines for _EM_?SIZE 1990-03-28 17:14:35 +00:00
eck
d9d8f6e325 several bug fixes after test-suite 1990-03-28 16:37:18 +00:00
eck
2af6ccbe58 bug fixes for scanf() 1990-03-28 16:33:05 +00:00
ceriel
15d1c835b0 fix: still sometimes assumed that a move to address register sets condition codes 1990-03-26 14:47:26 +00:00
ceriel
f55a0cebea fixed bug in conversion from float/double to unsigned 1990-03-26 14:16:59 +00:00
ceriel
e508fbd614 Fix: did not work with ALIGNMENT < MIN_SIZE 1990-03-21 16:45:39 +00:00
eck
22b9642add forgot ) 1990-03-21 14:46:18 +00:00
eck
c78b5a2bf8 fixed wrong assertion 1990-03-21 13:33:14 +00:00
eck
7f363d07b6 adapted directory test for POSIX 1990-03-21 11:13:21 +00:00
ceriel
b22dfc8f61 simplified stupid ?: expression 1990-03-20 16:24:21 +00:00
ceriel
1747ce3b6d minor improvement: LDC CMS T?? does not need STACK in stack pattern 1990-03-20 15:49:04 +00:00
ceriel
487e985a3e LDC CMS TNE was wrong 1990-03-20 15:01:25 +00:00
ceriel
bdff18dd76 Fixed 16-bit address mode bugs 1990-03-19 14:46:55 +00:00
ceriel
6e6064b6e6 Added verbose option 1990-03-15 10:44:14 +00:00
eck
a6925f69bf changed commented #define's into #undef's 1990-03-14 12:49:16 +00:00
ceriel
149a379a19 Fixed to also handle pseudo instructions 1990-03-14 11:47:09 +00:00
ceriel
23df1e5e8a fix: generated wrong loops 1990-03-14 11:42:28 +00:00
ceriel
07a7e342ec EM_mkcalls is obsolete 1990-03-14 10:16:49 +00:00
eck
37f00e57b5 fixed calls of echo() macro's 1990-03-13 14:33:43 +00:00
ceriel
19a70d3d31 Added 16-bit mode 1990-03-12 16:24:58 +00:00
eck
cf2b486447 changed target_sizes.h to trgt_sizes.h 1990-03-12 13:35:26 +00:00
eck
8ed413d777 changed line_prefix.h to ln_prefix.h 1990-03-12 13:28:12 +00:00
ceriel
8b40c2385c documented .use16 and .use32 1990-03-09 12:37:19 +00:00
ceriel
9a1a1435c0 Added arpl instruction 1990-03-09 11:07:43 +00:00
ceriel
2f9db198e6 allow for % in assembler strings 1990-03-07 16:24:06 +00:00
ceriel
e3b48b556d fixed typo 1990-03-06 13:39:48 +00:00
ceriel
fac688e128 fix: ARRAY type of itself caused crash;
better implementation of ranges in CASE labels
1990-03-06 13:22:30 +00:00
eck
2b521b56f9 added test for directory 1990-03-06 13:10:35 +00:00
eck
369cf7ea09 made little mistakes in div() and ldiv() 1990-03-05 13:48:03 +00:00
eck
490e7b7f63 fixed div() and ldiv() 1990-03-01 16:32:22 +00:00
eck
8bf712378d floating-point yet again, fixed debugging bug 1990-03-01 13:02:39 +00:00
eck
4986a13d53 also give a message on loading a floating-point function result 1990-02-28 15:32:07 +00:00
eck
6eb8242134 improved the generation of floating-point messages 1990-02-28 14:51:35 +00:00
ceriel
8add4d1e05 Added some code to reverse evaluation order of assignment operators when possible 1990-02-28 12:18:36 +00:00
ceriel
02a28ad7fc Fix: some patterns were never found due to wrong condition 1990-02-28 12:10:49 +00:00
ceriel
4c733dd928 Added some patterns 1990-02-28 12:10:19 +00:00
ceriel
6372fcf5c1 Added some more patterns 1990-02-28 11:14:39 +00:00
eck
5a5a1f9e23 changed names of ?cvt : namespace problems 1990-02-27 16:48:01 +00:00
ceriel
9117eab57d Added pattern for cmp A,A 1990-02-27 16:31:10 +00:00
ceriel
e1c865575e fixed problems with overflow bit in condition codes 1990-02-27 16:21:47 +00:00
ceriel
975bb07ba7 Fixed problem with anonymous structure tags 1990-02-27 15:45:09 +00:00
ceriel
aba2766aae improved test for overflow 1990-02-27 14:30:10 +00:00
eck
9743bc8d49 added extern declaration for flt_flt2arith() 1990-02-26 15:39:45 +00:00
ceriel
88794bd848 two fixes to the lint part: unsigned constant compares, and initializations in switch headers 1990-02-26 11:35:15 +00:00
eck
8f06d2d963 deleted a ';': pasting didn't work properly 1990-02-26 10:18:40 +00:00
ceriel
d074e81201 Oops in assertion: MAXPROCARG instead of MAXPROCARGS 1990-02-23 17:05:04 +00:00
ceriel
77c4e5ebbc fixed library order : fix for 2-byte machines 1990-02-23 17:02:06 +00:00
ceriel
e8fedf4532 fixed for 2-byte machines 1990-02-23 17:00:59 +00:00
ceriel
71d6890e1b print pointer as hex 1990-02-23 16:58:34 +00:00
eck
86224a4baf fixed bugs, added No_Mem() 1990-02-21 16:38:45 +00:00
ceriel
8775524325 a few fixes: usual arithmetic conversions were wrong 1990-02-20 13:31:52 +00:00
ceriel
7aa758eeb5 Added some patterns for shifts with constant shift count 1990-02-19 16:38:35 +00:00
ceriel
c6168eeda6 bug fix: far calls+jumps with address prefix were wrong 1990-02-19 09:06:16 +00:00
ceriel
90f89d1d54 Under the -M option, identifiers were sometimes truncated 1990-02-14 11:57:41 +00:00
eck
7e9573ba40 fixed fflush: it didn't even compile! 1990-02-13 17:08:05 +00:00
ceriel
ed05607cd8 some corrections 1990-02-13 09:23:04 +00:00
ceriel
40713da413 corrected: _fstat is in _Xstat.c 1990-02-13 09:20:50 +00:00
ceriel
c79763b1a9 is_rom is boolean, not integer 1990-02-12 15:15:21 +00:00
ceriel
bd780df1db recognize but ignore -undef flag 1990-02-12 14:33:57 +00:00
ceriel
44bf2a78e9 removed MKDEP; it is now a cpp option (-d) 1990-02-12 11:47:50 +00:00
ceriel
c407fbc3a5 Added a change suggested by Cees Verstoep 1990-02-12 09:32:04 +00:00
ceriel
92ca72deb6 Added a new operator for ncg: is_rom() 1990-02-09 16:34:17 +00:00
eck
d796fe1f4e added ANSI-C document 1990-02-09 16:30:40 +00:00
ceriel
74463085d6 documented recent changes 1990-02-09 16:28:26 +00:00
ceriel
7ac38346b5 updated to current situation 1990-02-09 16:27:59 +00:00
ceriel
d078eeed78 Added some patterns for unsigned compares 1990-02-09 15:28:46 +00:00
ceriel
dddbcc0746 Changed an #ifdef NOTDEF to #if 0 1990-02-09 15:03:17 +00:00
ceriel
f87501f0d4 Added U flag for exit status 0 with unresolved refs 1990-02-09 12:44:37 +00:00
eck
4adc9a7646 made a little mistake with the #else and #endif 1990-02-09 11:29:57 +00:00
ceriel
ed92bf23fd removed wrong pattern 1990-02-09 10:41:58 +00:00
eck
dddd613773 fixed bug with 0L; don't give warning on char x[3] = "abc" 1990-02-09 10:35:44 +00:00
ceriel
a06002d3d7 only print file names if there is more than one 1990-02-08 15:11:23 +00:00
ceriel
d96a3fd61a remove LLlex #define 1990-02-07 10:53:05 +00:00
ceriel
cd5a1d9c6e Documented %prefix 1990-02-07 10:49:30 +00:00
ceriel
64e9a24564 several improvements 1990-02-05 10:06:42 +00:00
eck
64c20956eb added 80286 instructions 1990-02-02 16:28:06 +00:00
eck
db7cf8a6a3 fixed 2 bugs with line directives 1990-02-02 09:56:35 +00:00
eck
abe15a3d50 fixed bug with character constants 1990-02-01 13:09:40 +00:00
ceriel
d919f6dd35 max filename length too short in error messages 1990-01-31 16:27:05 +00:00
ceriel
d00d812267 some fixes 1990-01-31 15:50:30 +00:00
eck
1b81d44aea don't recognize any pragma's (mechanism is still present) 1990-01-31 11:52:40 +00:00
ceriel
cdfc0c793b Fixes: random did not work properly, and RealToString did not deal with
numbers not fitting in the format given properly
1990-01-31 11:01:53 +00:00
ceriel
77b374e263 Fixed MON instruction: getpid() was wrong 1990-01-31 10:54:26 +00:00
ceriel
0c1cc485ed remove comments in macro texts completely 1990-01-30 18:33:54 +00:00
ceriel
be1fa7e8b9 fixed again 1990-01-30 14:02:49 +00:00
ceriel
ca659ea85a Fix: illegal optimizations of muls 1990-01-30 13:41:36 +00:00
eck
3ad14daa2e ignore qualifiers when looking for sdef 1990-01-30 11:19:30 +00:00
ceriel
7b3d18e5a1 minor correction to runtime start-off 1990-01-29 15:52:08 +00:00
ceriel
968de9e599 Fixed shell command in READ_ME file 1990-01-29 15:36:45 +00:00
ceriel
feb0e8498a allow for multiple parsers within one program 1990-01-29 13:51:32 +00:00
ceriel
53c919642c allow for multiple parsers within one program 1990-01-29 13:45:42 +00:00
ceriel
8b01730e53 open and close output file in one place 1990-01-29 12:40:43 +00:00
ceriel
bba0ec77b9 fixed for OUTSEEK 1990-01-29 11:42:58 +00:00
ceriel
458b4ec409 maintain own free list of buffer headers 1990-01-29 11:41:37 +00:00
eck
0566d64e05 formal parameters in prototyps need only 1 underscore 1990-01-29 10:09:00 +00:00
ceriel
5e5e040af3 Fixed check in COM 1990-01-26 17:12:23 +00:00
ceriel
7e9b61cbc0 Fixed SIG 1990-01-26 16:43:29 +00:00
ceriel
7cc9d3b246 bug fix: it said \(nl where \n(nl was meant 1990-01-26 15:08:22 +00:00
eck
5507c169f7 big fix for #include in macro argument 1990-01-26 14:59:50 +00:00
eck
ae2eddb822 bug fix with #include in argument
save #pragma's until they can be printed
1990-01-26 14:49:13 +00:00
ceriel
1befe63f01 bug fix with many -I options 1990-01-26 12:00:35 +00:00
ceriel
2dbec15983 Added some mkdep features and fixed a bug 1990-01-26 11:53:08 +00:00
ceriel
e33dd0ccb5 creat mode 666 1990-01-26 11:02:34 +00:00
ceriel
9bb678fdd0 fixed typo 1990-01-26 09:50:44 +00:00
ceriel
d9bec21bb8 ftime has an error return(?) 1990-01-26 09:38:45 +00:00
ceriel
5d8da66d1c ftime has an error return(?) 1990-01-26 09:33:23 +00:00
ceriel
c57d1caa65 some optimizations were not protected by calls to small() 1990-01-24 12:37:33 +00:00
ceriel
cab91f165e Added some code for dependency generator 1990-01-23 15:25:21 +00:00
ceriel
afb9d1e2af improved Makefile 1990-01-23 13:16:47 +00:00
ceriel
035f3fe957 fixed: did not compile 1990-01-23 12:06:05 +00:00
ceriel
d22cbfae61 fixed; did not compile 1990-01-23 11:00:47 +00:00
ceriel
6afec88cbb corrected 1990-01-22 17:07:11 +00:00
ceriel
4d9f673c03 corrected 1990-01-22 16:48:13 +00:00
eck
fdaed2a9ed changed system-call to avoid namespace pollution 1990-01-22 16:26:12 +00:00
ceriel
4fa659b3cc Added strhp.s 1990-01-22 16:25:52 +00:00
eck
1f5b09a058 big fix: auto aggregate strings didn't work 1990-01-22 16:16:03 +00:00
ceriel
2ec250ab3c adapted so that _brk routine may update .limhp 1990-01-22 15:38:46 +00:00
ceriel
4b4811e586 adapted so that _brk routine may update .limhp 1990-01-22 15:32:44 +00:00
ceriel
1846d00f58 No chmk; use the system call library 1990-01-22 15:28:45 +00:00
ceriel
3955de2af2 brk routine updates .limhp 1990-01-22 15:05:10 +00:00
ceriel
b9662d1f3c Use .limhp 1990-01-22 15:03:13 +00:00
ceriel
c15de5b98c Added .limhp 1990-01-22 14:57:58 +00:00
ceriel
db148cdd4d Use .limhp 1990-01-22 14:39:47 +00:00
ceriel
0ab0c55d65 Added .limhp (for later use?) 1990-01-22 14:34:58 +00:00
ceriel
89e55c3c3a Use .limhp 1990-01-22 14:25:10 +00:00
ceriel
97c92f712e Added entry points for ANSI C 1990-01-22 14:15:55 +00:00
ceriel
7d37137d4e Use .limhp 1990-01-22 14:14:38 +00:00
ceriel
a94479e854 Use .limhp 1990-01-22 14:08:16 +00:00
ceriel
f445c23a41 Added entry points for ANSI C 1990-01-22 13:59:43 +00:00
ceriel
c9e2ab3d4f Use .limhp 1990-01-22 13:58:54 +00:00
ceriel
862312d185 Added entry points for ANSI C 1990-01-22 13:41:58 +00:00
eck
9263515e07 some additions for MINIX 1990-01-22 13:29:46 +00:00
eck
d5b669c94b changed setjmp implementation for POSIX
made some changes for MINIX
1990-01-22 13:20:42 +00:00
ceriel
281e2d38e3 Added entry points for ANSI C 1990-01-22 13:09:29 +00:00
eck
0345181b76 changed system-calls to avoid namespace pollution 1990-01-22 13:08:36 +00:00
eck
ddd710bad1 changed system-calls to avoid namespace pollution 1990-01-22 13:00:13 +00:00
eck
34d58cddc3 forgot to update .distr 1990-01-22 12:54:26 +00:00
eck
c66ec1fff7 added sigsetjmp() & siglongjmp() 1990-01-22 12:53:21 +00:00
eck
de8dc5b667 added new routines for ansi 1990-01-22 11:56:01 +00:00
ceriel
545b54b4c7 Added entry points for ANSI C 1990-01-22 11:48:01 +00:00
eck
e13435712d changed system-calls to avoid namespace pollution 1990-01-22 11:44:21 +00:00
ceriel
c514c25061 Added entry points for ANSI C 1990-01-22 11:24:37 +00:00
eck
ab0ce6b989 added new routines for ansi 1990-01-22 11:14:56 +00:00
eck
7af411f637 changed system-calls to avoid namespace pollution 1990-01-22 11:13:26 +00:00
ceriel
2aa8df2d40 Added entry points for ANSI C 1990-01-22 11:01:47 +00:00
eck
c78fcdb719 added new routines for ansi 1990-01-22 10:54:12 +00:00
eck
1e465327a6 forgot _dup() & _creat() 1990-01-22 10:34:50 +00:00
eck
226643ab4a forgot _dup() 1990-01-22 10:28:09 +00:00
ceriel
651b4b3ba7 Added some more entry points for ANSI C 1990-01-22 10:20:09 +00:00
eck
0314a04b79 forgot _creat() 1990-01-22 09:28:35 +00:00
eck
7cc80df960 added new routines for ansi 1990-01-22 08:51:54 +00:00
ceriel
cc24b3e8fd Added entry points for ANSI C 1990-01-19 17:37:29 +00:00
ceriel
626b3d3039 Added entry points for ANSI C 1990-01-19 17:22:11 +00:00
eck
d42146a5cc forgot _execve() 1990-01-19 17:15:47 +00:00
ceriel
ef42a6393a Added entry points for ANSI C 1990-01-19 17:05:29 +00:00
eck
caea5fe61b forgot _sbrk(), _fstat(), _times() 1990-01-19 16:25:54 +00:00
ceriel
463b3c5b76 Added entry points for ANSI C 1990-01-19 16:22:03 +00:00
ceriel
2592095655 Added mechanism to warn correctly about conflicts 1990-01-19 16:05:44 +00:00
ceriel
d00a333dca Added entry points for ANSI C 1990-01-19 16:03:46 +00:00
eck
1dc6509af2 added new routines for ansi 1990-01-19 15:17:33 +00:00
ceriel
7c353a791b made allocation chunk size dependant on pointer size 1990-01-19 11:30:16 +00:00
eck
1e086f7268 bug fixes from modules/malloc; changed formats to use %p 1990-01-18 17:24:18 +00:00
ceriel
6457b9560b several fixes in the CHECK part 1990-01-18 17:11:41 +00:00
eck
77fc957f64 fixed bug: tp_up is field in union; be more careful
give warning for struct/union declarations in prototypes
1990-01-18 16:58:53 +00:00
ceriel
35c2daff59 Removed a call to 'abort'; just a non-zero exit status is enough 1990-01-18 16:35:39 +00:00
ceriel
00220b8b3d Bug fix: also use ACKDIR to look for description files 1990-01-18 16:07:42 +00:00
ceriel
7d614d6ade removed unused variables 1990-01-18 10:59:04 +00:00
ceriel
5567187e2c bug fix: casts of constants to a set type caused memory fault 1990-01-18 10:12:38 +00:00
ceriel
e9737cd2ed simplified a bit, and documented better 1990-01-17 16:05:00 +00:00
ceriel
fea5dc907b Changed an o into $suf 1990-01-17 14:39:50 +00:00
eck
54f4f0a925 bug fix: defined(aap)1 expanded to 01 1990-01-16 15:27:24 +00:00
eck
f33399738b MINIX squeezing with strings, fixed small preprocessor bug 1990-01-16 15:21:15 +00:00
ceriel
f2f139cc0b graceful degradation: allocate fewer structs if cannot get requested amount 1990-01-16 14:38:28 +00:00
ceriel
192935e9a9 Added i386_as.6 1990-01-16 13:27:47 +00:00
ceriel
555922492a added comment 1990-01-16 10:11:45 +00:00
ceriel
087c8bdc57 Commented out a wrong warning, as was already done in the C compiler 1990-01-16 10:08:34 +00:00
ceriel
4876fb6bf5 bug fix: #if defined(...) did not work properly 1990-01-15 17:01:36 +00:00
ceriel
fe995572a8 fixed prvious change 1990-01-15 12:42:57 +00:00
ceriel
2750630335 do not remove targets for install or cmp 1990-01-15 11:47:10 +00:00
ceriel
40d5102b6c fixed bug in translation of BR instruction 1990-01-15 11:44:43 +00:00
ceriel
f2eab87e1e adapted for use of ACK VAX assembler 1990-01-12 18:03:50 +00:00
ceriel
baeb525e0a Adapted for use of the ACK VAX assembler 1990-01-12 17:58:12 +00:00
ceriel
0db405f36d Adapted for use of ACK VAX assembler 1990-01-12 17:05:42 +00:00
ceriel
5b8123914b some more fixes 1990-01-12 17:02:31 +00:00
ceriel
4469de8ed1 VAX a.out to ACK a.out conversion program, first version 1990-01-12 16:58:02 +00:00
ceriel
dd268b68b4 ACK VAX assembler, first version 1990-01-12 16:55:50 +00:00
ceriel
871029324b fixed again 1990-01-12 15:41:59 +00:00
ceriel
cbfd89ca02 fixed for 0 argument 1990-01-12 15:34:21 +00:00
ceriel
5d280748aa errno in .bss 1990-01-12 14:13:39 +00:00
ceriel
59991b92f1 Fix for PDPFLOAT format 1990-01-12 11:52:51 +00:00
ceriel
5108678fcd some more changes to use VAX assembler 1990-01-12 10:29:26 +00:00
ceriel
2bf8e3f535 make labels disappear 1990-01-12 10:11:44 +00:00
ceriel
66f9e38113 Adapted for use of ACK VAX assembler 1990-01-11 16:44:19 +00:00
ceriel
944567bf66 use LABEL_STARTER 1990-01-11 16:33:53 +00:00
ceriel
97691de98b Adapted for use of ACK VAX assembler 1990-01-11 16:10:13 +00:00
ceriel
4ef63cdaea Adapted for use of ACK VAX assembler 1990-01-11 16:00:19 +00:00
eck
d8832134d2 deleted struct mlist 1990-01-11 08:30:19 +00:00
eck
679ce613e9 added alloction dump
shrunk some data structures
changed some ALLOCDEF's
changed setjmp to __setjmp
1990-01-10 17:33:35 +00:00
ceriel
04149f328e bug fix: cannot optimize IMUL 1990-01-10 11:23:45 +00:00
eck
33b15ed01a changed UnGetChar() to ChPushBack() in domacro.c 1990-01-05 09:28:54 +00:00
eck
39119e1ada there are only 24 hours in a day, not 29 1990-01-04 11:33:10 +00:00
eck
36ccfe6f97 changed strrchr() into strchr() 1990-01-04 08:39:10 +00:00
eck
ab93cfefa0 added putenv.c 1990-01-03 17:23:10 +00:00
eck
0449c9f331 changed genfiles to shell script 1990-01-03 16:58:22 +00:00
eck
0f21e4a367 various fixes to makefile 1990-01-03 16:42:36 +00:00
ceriel
2a5dc99044 mkdir command always executed and result ignored 1990-01-03 16:07:05 +00:00
ceriel
ddc59de759 wr_fd no longer exists, because the object module now buffers 1990-01-03 14:24:08 +00:00
ceriel
a03186a587 changed creat mode to 0666 1989-12-19 16:44:57 +00:00
eck
b44510f03a forgot .distr 1989-12-19 15:46:39 +00:00
eck
bf7f5ac279 Initial revision 1989-12-19 15:45:15 +00:00
ceriel
a769cc45bf Added mechanism for installing header files 1989-12-19 15:32:51 +00:00
eck
2e7ea9a523 changed Makefile again 1989-12-19 15:06:03 +00:00
ceriel
651a5f5f1b again, dependencies 1989-12-19 14:54:40 +00:00
ceriel
bb0718dd2c corrected install entry 1989-12-19 13:56:57 +00:00
ceriel
cbe22f74f4 dependencies 1989-12-19 13:55:08 +00:00
eck
4db129cf71 changed Makefile 1989-12-19 11:20:16 +00:00
ceriel
b15c5226e4 prepared for distribution 1989-12-19 11:17:21 +00:00
ceriel
26e02b6689 name is cpp.ansi 1989-12-19 11:12:17 +00:00
ceriel
ab65999447 use normal C compiler 1989-12-19 11:07:03 +00:00
eck
09d0386b52 added MakeArch and Makefile to .distr 1989-12-19 11:02:22 +00:00
eck
dbb30f743f Initial revision 1989-12-19 10:59:33 +00:00
ceriel
0c690061b3 Added support for constant floating point expressions 1989-12-19 09:40:25 +00:00
ceriel
fe14fd11f4 fix: flt_status was not always set properly 1989-12-19 09:27:16 +00:00
ceriel
e3ab981ca2 flt_status maintained for flt_str2flt() 1989-12-18 18:17:17 +00:00
ceriel
47cd66ba27 use normal C compiler 1989-12-18 16:41:55 +00:00
eck
54cecf41e9 added Makefile, LIST and .distr 1989-12-18 16:15:07 +00:00
eck
e34bca8ce2 changed EM_* to _EM_*, added Makefile, LIST and .distr 1989-12-18 16:11:26 +00:00
eck
75374c5e26 fixed Makefile, added .distr 1989-12-18 16:06:47 +00:00
eck
9fd02fcbdb fixed some bugs, added LIST, Makefile & .distr 1989-12-18 16:02:55 +00:00
eck
7bc64364c4 fixed some bugs, added LIST, Makefile & .distr 1989-12-18 15:49:11 +00:00
eck
83b86f355f changed from Hart & Cheney to Cody & Waite 1989-12-18 15:44:36 +00:00
eck
5defb0b9aa made a lot of changes 1989-12-18 15:33:48 +00:00
eck
dd1196b169 made a lot of changes 1989-12-18 15:14:14 +00:00
eck
a5be75a764 made a lot of changes 1989-12-18 15:04:14 +00:00
eck
e9b080e13a small changes, added LIST, Makefile and .distr 1989-12-18 14:44:38 +00:00
eck
31739ec27c Initial revision 1989-12-18 14:40:54 +00:00
eck
fe9baee372 many changes and improvements 1989-12-18 14:00:32 +00:00
eck
233e05111a added Header 1989-12-18 13:53:00 +00:00
eck
c1b3b9f43c Initial revision 1989-12-18 13:50:55 +00:00
eck
264b7cbba1 Intial revision 1989-12-18 13:31:20 +00:00
ceriel
19320b2f5d publicdata is extern for development version 1989-12-18 13:18:43 +00:00
ceriel
fc58f416e4 test on BIGMACHINE was wrong 1989-12-15 15:35:17 +00:00
ceriel
f382b0d3de fixed: did not compare properly with 0; reduced size 1989-12-13 16:35:19 +00:00
ceriel
6b59220f90 removed declaration of unused variable 1989-12-13 13:09:10 +00:00
eck
7ac81eae59 fixed sizeof() 1989-12-13 12:53:22 +00:00
ceriel
ff1e465100 changed character comparisons with NULL 1989-12-13 09:19:47 +00:00
eck
65c40f83aa U-flag was not handled properly 1989-12-12 14:59:59 +00:00
eck
b59ed5e96e fixed null-pointer constants and SkipToNewLine() 1989-12-12 12:52:03 +00:00
eck
1d3b1f73e4 SkipToNewLine() now recognizes strings and character constants 1989-12-12 12:41:39 +00:00
ceriel
fc5cc52e75 Bug fix in ZRL decoding 1989-12-08 15:04:37 +00:00
ceriel
0795da732f better error checking 1989-12-07 16:28:05 +00:00
ceriel
4724283d0f copied from newer version 1989-12-06 12:53:37 +00:00
ceriel
2d5c2002de Changed maximum # of args 1989-12-06 12:43:01 +00:00
ceriel
aed7dd024e .word -> .data2 1989-12-06 12:41:05 +00:00
ceriel
90d340911f changed alignments 1989-12-06 12:39:25 +00:00
ceriel
15b6ab6873 some small fixes 1989-12-06 12:38:18 +00:00
ceriel
29e74f51f2 bug fix: the in_store test did not work when NON_STANDARD was defined,
because in this case, the bit tested resided in user area
1989-11-30 17:29:00 +00:00
ceriel
d717a5cac9 Corrected assertion 1989-11-30 15:12:11 +00:00
ceriel
edf943cf0e new malloc.c, derived from new Minix version 1989-11-30 14:59:18 +00:00
ceriel
5b8c6f2943 changed commented #defines to #undefs 1989-11-30 14:25:40 +00:00
ceriel
d7fa8f5383 LOE INE used address register; it is probably better to use a general register 1989-11-30 10:07:49 +00:00
ceriel
d4dfbdea81 Made compilation command and interpreter command variable 1989-11-29 16:12:47 +00:00
ceriel
0da41a00c6 Added a move 1989-11-29 12:47:23 +00:00
ceriel
50cda3bfbf corrected clean entry in Makefile 1989-11-29 10:56:11 +00:00
ceriel
0c11d07cae rounding for un-normalized numbers was wrong 1989-11-29 09:56:59 +00:00
ceriel
e6d0e47e87 do not declare sprintf. On some systems it is an int, on others it is
a char *
1989-11-29 09:55:03 +00:00
ceriel
8084852ab9 Added 80[23]87 support 1989-11-29 09:49:35 +00:00
eck
cef2864905 array type-checking was wrong 1989-11-28 15:28:52 +00:00
ceriel
59e398620b fixed bug: sometimes destroyed contents of register variable 1989-11-28 14:42:56 +00:00
ceriel
69860ac7b5 fixed entier routine: did not work properly for negative args 1989-11-28 14:16:38 +00:00
ceriel
39120c6a25 fef did not work properly for negative args 1989-11-28 12:51:35 +00:00
ceriel
b56689fd89 speeded up a bit for printing 0.0 1989-11-27 17:29:35 +00:00
ceriel
ab2e0bf933 speeded up a bit for converting 0.0 to string 1989-11-27 17:25:55 +00:00
ceriel
d8e233941c fixed rounding on ties to round to even, and fixed extend bug (test for 0
was wrong)
1989-11-27 16:26:02 +00:00
ceriel
866dda88bf Added fp8087.s 1989-11-27 16:19:16 +00:00
ceriel
4e9f170142 Added 8087 support 1989-11-27 16:19:15 +00:00
eck
9072c238a6 fixed small bug 1989-11-27 11:40:58 +00:00
eck
ca46cd0363 improved type-checking, fixed preprocessor bug, fixed syntax bug 1989-11-27 11:37:11 +00:00
ceriel
054336e637 Corrected MathLib0.mod: entier was wrong on negative args 1989-11-27 09:37:56 +00:00
eck
6998494800 removed ctype.c, the library functions are generated 1989-11-23 10:43:15 +00:00
eck
b5dfa18949 fixed unary & and indirect calls 1989-11-22 16:41:09 +00:00
eck
2e97e6e8b2 fixed bugs, added dynamic buffer allocation to preprocessor 1989-11-22 13:58:36 +00:00
ceriel
793a6b8ddd some more speed-up changes 1989-11-22 13:38:37 +00:00
eck
a1b292bb31 fixed bugs, added dynamic buffer allocation 1989-11-22 12:59:15 +00:00
ceriel
d73d657cda cleaned up a bit 1989-11-21 15:44:29 +00:00
ceriel
49502c8c8f removed some superfluous instructions 1989-11-21 15:42:56 +00:00
ceriel
b40407e35f changed label formats 1989-11-21 15:40:24 +00:00
ceriel
9b725a856f a fix to ZER ? and simplified ZRL, ZRE 1989-11-21 11:38:08 +00:00
ceriel
2cd2db28d9 changed some variables from arith to int 1989-11-21 11:37:10 +00:00
ceriel
424f2857dd fixed line number after line directives 1989-11-21 11:33:21 +00:00
ceriel
c49bd8f512 some arith variables changed into int 1989-11-21 11:28:56 +00:00
ceriel
209aebc700 changed mechanism a bit 1989-11-20 14:35:23 +00:00
ceriel
b154fa4b9f no default size for asld 1989-11-17 16:55:48 +00:00
ceriel
2920f5b1c2 default size is now large 1989-11-17 16:53:53 +00:00
ceriel
667df74333 new object module makes buffering superfluous 1989-11-17 16:50:59 +00:00
ceriel
fb97ca7100 print unsigned bitfields as unsigned 1989-11-17 16:37:20 +00:00
ceriel
4cb312287f more internal buffering 1989-11-17 15:56:53 +00:00
ceriel
ef6c8451b9 fix to previous change 1989-11-17 15:19:55 +00:00
ceriel
a4c50516b0 improved #line handling 1989-11-17 14:53:05 +00:00
ceriel
ff77dabbbe generate ; after label 1989-11-17 13:15:48 +00:00
ceriel
6e10227a94 improved error messages 1989-11-17 11:52:33 +00:00
ceriel
0ba5b155a3 improved error messages 1989-11-17 11:44:48 +00:00
ceriel
7f958dfb8d improved make.tokcase for EOF handling 1989-11-17 11:41:47 +00:00
ceriel
6c40cad879 improved for EOF handling 1989-11-17 11:40:48 +00:00
ceriel
af6b40a9a3 fixed bug which caused memory faults on erroneous input 1989-11-17 11:36:43 +00:00
ceriel
d0ac9f9e08 fixed error messages by allowing more than one "simultaneous" symbol2str 1989-11-17 11:31:05 +00:00
ceriel
ac37584270 fixed bug which caused unsigned bitfield problems 1989-11-17 11:28:38 +00:00
ceriel
e22d8cceaa improved error messages 1989-11-17 11:27:26 +00:00
ceriel
12a028160f removed some unused variables 1989-11-16 16:08:59 +00:00
ceriel
4f0b3578a1 new version with internal buffering 1989-11-16 15:52:08 +00:00
ceriel
a1ebb548cf bug fix: static link was not always removed 1989-11-16 14:57:15 +00:00
ceriel
dd600df3dd Added unsigned bit-field test 1989-11-15 17:46:58 +00:00
ceriel
0a68486a3f fixed assembler part of link instruction 1989-11-15 17:46:25 +00:00
ceriel
7e2a7c05a9 link instruction does not work for more than 32768 bytes locals on M68000 1989-11-15 16:10:18 +00:00
ceriel
c878bff7a6 many speed-up changes, resulting in 20-25% speedup, and fixed
serious floating point handling bug
1989-11-13 15:36:12 +00:00
eck
6fc0921238 improved qualifier checking 1989-11-13 14:01:50 +00:00
ceriel
5fa1bbbc38 fixes: ucmp did not quite work right, flt_div had an obscure bug 1989-11-13 12:54:33 +00:00
ceriel
2210242923 call to abs should be call to fabs 1989-11-13 10:15:35 +00:00
ceriel
a4bdacd9d8 do not use sprintf; use sprint instead 1989-11-09 21:33:29 +00:00
ceriel
8e08cbe221 Added patterns 1989-11-09 18:43:02 +00:00
ceriel
62ca83b92b fixed typo 1989-11-09 18:12:12 +00:00
ceriel
f9960dbbab no casts in constants used in #if! 1989-11-09 18:07:14 +00:00
ceriel
08c6364ff4 fix: did not work for 4-byte floats 1989-11-09 17:01:29 +00:00
ceriel
cc05bda4ab cleaned up a little 1989-11-09 14:06:35 +00:00
ceriel
3cf48f19f4 minor mod: added comment and removed a variable 1989-11-09 12:33:08 +00:00
ceriel
6be896c8f1 Allow more procedure parameters 1989-11-09 11:04:18 +00:00
ceriel
d37d6f69f4 generate #defines for MAXREPLLEN, MAXEMREPLLEN 1989-11-08 17:14:52 +00:00
ceriel
f865bb9fe7 fixed bug in EM replacement code, and use new #defines from tables.h 1989-11-08 17:13:33 +00:00
ceriel
acbf5fe28f many little changes: removed some lint complaints; max_int and max_unsigned
are now constants if NOCROSS is defined; added lexstrict and expr_strict,
and changed calls where needed
1989-11-08 16:52:34 +00:00
ceriel
c7dbf19b40 fix: printed wrong message; now dumps core at end 1989-11-08 14:42:09 +00:00
ceriel
29b3ecd25f fixed some lint complaints 1989-11-08 14:18:57 +00:00
ceriel
7bf1499039 Added some casts for lint 1989-11-08 12:52:41 +00:00
ceriel
84ef2d4d11 Added a few more patterns 1989-11-08 12:44:33 +00:00
ceriel
326f3217ab improved checking 1989-11-08 12:30:55 +00:00
ceriel
5931ae29dc fixed: commited wrong version 1989-11-08 11:22:50 +00:00
ceriel
73ac4e384e fixed exit status 1989-11-07 16:17:06 +00:00
ceriel
9ff9f7b8d8 fixed sed script: \> is special under SunOs 4.0, and the escape was not needed anyway 1989-11-07 16:13:26 +00:00
dick
2dfcf65526 wrong Makefile committed at 1.209 1989-11-07 13:04:39 +00:00
ceriel
e22032fdc5 Made suitable for fast compiler version 1989-11-06 16:01:13 +00:00
ceriel
5c7f912c6a fixed: send ended up in data segment! 1989-11-06 11:35:52 +00:00
ceriel
968dd67796 use fwrite instead of write 1989-11-03 18:32:32 +00:00
ceriel
58acdb913b Added some patterns 1989-11-03 13:28:37 +00:00
ceriel
57e3d1220b updated to Minix 1.3 version 1989-11-03 12:57:25 +00:00
ceriel
899b98d409 Added a nicer trap handler 1989-11-03 11:54:41 +00:00
ceriel
d505985c25 removed stop.s 1989-11-03 11:53:47 +00:00
eck
94dc3255b1 fixed some more bugs 1989-11-03 10:36:56 +00:00
ceriel
d88cb410b7 updated to minix 1.3 1989-11-03 09:25:46 +00:00
dick
88bd7de0b1 restrained error messages for lint + misc. 1989-11-02 18:17:59 +00:00
ceriel
81d26fa096 fixed Constant Width 1989-11-01 17:30:44 +00:00
ceriel
d04e2e9211 fixed memory fault, adapted mechanism code_scope 1989-11-01 15:41:06 +00:00
ceriel
9a23e968ed modified labels 1989-11-01 15:35:42 +00:00
ceriel
9e9f998bed the include file is called con_float, not float_cst 1989-11-01 10:57:04 +00:00
ceriel
4c39e6fe41 kill tokens using address registers better 1989-11-01 10:14:27 +00:00
eck
82116f4994 format for % was wrong 1989-11-01 10:02:23 +00:00
ceriel
28157a0fd8 the error() routine did not set err_occurred! 1989-11-01 09:46:16 +00:00
ceriel
e006705fbf better unknown flags handling 1989-10-31 11:15:23 +00:00
ceriel
9d0a8037f7 Added code expander 1989-10-31 11:14:01 +00:00
eck
a8b3ef51ed relaxed typechecking a little bit 1989-10-31 10:48:20 +00:00
eck
bac0ae9da3 fixed bug, added -o option 1989-10-31 10:02:48 +00:00
ceriel
cc56ae65dd if malloc can return 0 on a 0 argument, free should also accept 0 1989-10-31 09:44:21 +00:00
ceriel
b7fa7592f8 malloc can return NULL when given a 0 argument 1989-10-30 18:25:30 +00:00
ceriel
744ee3ad52 use varargs.h 1989-10-30 17:51:31 +00:00
dick
3194915d0a better (more restrained) error reporting 1989-10-30 16:19:35 +00:00
ceriel
f31ee74fc5 no more -T option to pic 1989-10-30 16:08:07 +00:00
ceriel
cc290b34a0 fix to for-loop code was wrong; fixed again 1989-10-30 15:45:43 +00:00
ceriel
b2b5e94344 improved check for loop 1989-10-30 15:17:01 +00:00
ceriel
341918027a There is no d0 register! 1989-10-27 18:20:14 +00:00
ceriel
53235c19b8 andl3 does not exist! use bicl3 instead 1989-10-27 18:03:37 +00:00
eck
6bc575ba9e fixed some bugs, changed warning interface 1989-10-27 13:33:10 +00:00
ceriel
dccb2a8b8a Added code expander 1989-10-27 09:06:43 +00:00
ceriel
2ab83deae0 use more simple hashing algorithm, made namelist generation dependant on a #define 1989-10-26 16:16:35 +00:00
ceriel
1f5e73692b improved STI 8 code 1989-10-26 15:54:21 +00:00
ceriel
9f7d9364eb fixed so that jumps back to local labels also work 1989-10-26 15:42:30 +00:00
ceriel
92145d4a79 Added a command to kill a register 1989-10-26 15:41:38 +00:00
ceriel
97a78aaf10 Added _exit.c 1989-10-26 11:51:46 +00:00
ceriel
140c755977 Added _exit.c 1989-10-26 11:39:31 +00:00
ceriel
14e1de6194 use new version of con_float 1989-10-26 11:07:26 +00:00
ceriel
69b6c1f47a Use Motorola byte order for floating point 1989-10-26 11:04:53 +00:00
ceriel
d3f957e21f Use Intel byte order for floating point 1989-10-26 11:03:30 +00:00
ceriel
8d81d29aa1 fixed so that jumps back to local labels also work 1989-10-26 11:01:44 +00:00
ceriel
58ed5b639e Do not call the .nop subroutine for a NOP (ANSI C modification) 1989-10-26 10:10:34 +00:00
ceriel
3c15d645b1 Use Intel byte order for floating point 1989-10-26 09:52:41 +00:00
ceriel
af72287f31 Use Motorola byte order for floating point 1989-10-26 09:49:32 +00:00
ceriel
8d1bad1378 Motorola byte ordering 1989-10-25 17:35:09 +00:00
ceriel
2b0022e768 use 8087 byte order 1989-10-25 17:33:49 +00:00
ceriel
4bb0faaf55 Added CSA ==4 and CSB ==4 entries, needed for ANSI C 1989-10-25 17:21:52 +00:00
ceriel
58d0332d59 changes for different byte orderings 1989-10-25 17:15:37 +00:00
ceriel
2093a1d946 Added csa4.s and csb4.s 1989-10-25 17:08:45 +00:00
ceriel
08e3986b57 Also recognize 'defined' without parentheses 1989-10-25 14:23:08 +00:00
ceriel
392e60cc99 DEFDIR fix 1989-10-25 13:37:26 +00:00
ceriel
90e8732746 fixed bug and changed con_float 1989-10-25 13:24:29 +00:00
ceriel
0365786fe4 improved error handling: C_busy now returns 0 if C_failed is called 1989-10-25 11:36:51 +00:00
ceriel
12469b7c72 changed string to change into CHANGE_ME 1989-10-24 16:58:28 +00:00
ceriel
8f7b9d31f4 Added mechanism to change default directory 1989-10-24 16:54:55 +00:00
ceriel
05ef6a33de adapted floating point package to handle IEEE format in different byte orders 1989-10-24 16:10:01 +00:00
ceriel
10772303fd fixed for SunOs 4.0 make 1989-10-24 16:09:24 +00:00
ceriel
ec4685f419 adapted to use 80387 floating point format 1989-10-24 16:00:37 +00:00
ceriel
6c02d0d213 define IEEEFLOAT 1989-10-24 15:08:27 +00:00
eck
fb0d4e37df removed bug for identifiers starting with L 1989-10-24 15:06:23 +00:00
eck
ed8602e247 improved domacro when NOPP defined 1989-10-24 15:02:02 +00:00
ceriel
451259712d adapted to use 80387 floating point format 1989-10-24 15:00:09 +00:00
ceriel
ba5bff1461 adapted to also generate other byte-orders 1989-10-24 14:57:17 +00:00
ceriel
a9c2a815d0 correction 1989-10-24 14:42:49 +00:00
ceriel
0eca1bf583 corrected assertions 1989-10-24 12:58:23 +00:00
eck
44787913e2 renamed nccp.6 to ncpp.6 1989-10-24 10:18:45 +00:00
ceriel
0ba5f8deb7 fixed for minix, which does not have ftime 1989-10-24 10:04:35 +00:00
ceriel
a6e2924411 Added ce directory 1989-10-24 09:30:32 +00:00
ceriel
cfef5ca890 also include ../read_em; C_out.c needs em_comp.h. We cannot install
read_em first, because that needs em_codeEK.h
1989-10-24 09:29:30 +00:00
eck
46188cca28 deleted } in arith.c 1989-10-23 14:39:33 +00:00
ceriel
9eace2894a improved handling of , (comma) operator and some more Minix squeezing 1989-10-23 13:50:27 +00:00
ceriel
eb7d986502 improvements for the , (comma) operator 1989-10-23 13:45:19 +00:00
eck
a44521c1cd renamed ch7xxx to ch3xxx 1989-10-23 13:00:35 +00:00
ceriel
b5d27d7f6d initial commit 1989-10-23 11:25:20 +00:00
ceriel
eb781c5f72 Added .distr file 1989-10-23 11:20:46 +00:00
ceriel
e50514b4b6 Initial commit 1989-10-23 11:19:44 +00:00
ceriel
273b5e53cb only give warning about relocation info if -u flag is not given 1989-10-23 10:51:46 +00:00
ceriel
0208a5c68f Added an ARGSUSED to shut up lint 1989-10-23 10:37:00 +00:00
eck
c15756c0f8 Initial revision 1989-10-23 10:35:56 +00:00
ceriel
38e43b85fe Added another pattern 1989-10-23 10:26:00 +00:00
ceriel
91580be26d Added patterns 1989-10-20 17:32:04 +00:00
ceriel
0caf120b86 Added routine to evaluate operands of binary operator 1989-10-20 17:08:48 +00:00
ceriel
021b6ff4c9 some more Minix squeezing 1989-10-20 16:16:06 +00:00
ceriel
029ff4d95e Added patterns 1989-10-20 14:36:26 +00:00
eck
c318e2f6ca Minix again 1989-10-20 13:06:10 +00:00
ceriel
8eaf33bfd4 Added CBO (commutative binary operator) to make it a little easier to
write reordering patterns
1989-10-20 11:59:52 +00:00
ceriel
8c6213b6b5 some more Minix squeezing 1989-10-20 11:58:37 +00:00
eck
4f7b72aaa3 added CPP variable to Makefile 1989-10-20 11:05:00 +00:00
eck
b0fcc3e5b6 added CPP variable to Makefile 1989-10-20 10:37:25 +00:00
ceriel
ae42a03152 some more squeezing for Minix 1989-10-19 19:29:39 +00:00
ceriel
5f58e12b6d many minor modifications (it still will not fit on Minix!) 1989-10-19 14:53:25 +00:00
ceriel
a7e08a2e2a some minor improvements 1989-10-19 14:50:52 +00:00
ceriel
d5b57c5890 improved the making of libCEopt.a 1989-10-18 14:40:15 +00:00
eck
62424b9629 squeezing for MINIX 1989-10-18 13:12:31 +00:00
ceriel
6b3eabf743 parameterize back library name (needed for SUN) 1989-10-18 12:36:28 +00:00
ceriel
71e9acf5a6 parameterize back library name (needed for SUN) 1989-10-18 11:51:12 +00:00
ceriel
df39bcf5da Added mechanism to make peephole optimizer version bigger (needed for SUN-3) 1989-10-18 11:39:19 +00:00
ceriel
b9e81da3fb small improvement: added pattern for LDC -1 CMS 4 ZEQ/ZNE 1989-10-18 10:15:49 +00:00
ceriel
57c656ce54 a simple optimization added 1989-10-18 09:22:47 +00:00
eck
4da4737655 introduced TABGEN variable 1989-10-17 11:35:13 +00:00
ceriel
56ebe80f2c Added split.c to .distr 1989-10-16 18:02:55 +00:00
ceriel
75608ad194 simplified a bit 1989-10-16 17:56:36 +00:00
ceriel
2c0f0a415a merged cricon.c+crfcon.c+crucon.c into crxcon.c 1989-10-16 16:37:46 +00:00
ceriel
fc4f8bae50 only give warning about unresolved references if -u option is not given 1989-10-16 14:52:03 +00:00
ceriel
579686b7d7 head_em.sun renamed to head_ext 1989-10-16 14:45:00 +00:00
ceriel
15daf83022 Added em_private.h 1989-10-16 14:23:25 +00:00
eck
6c29f89fae adjusted sources for NOPP 1989-10-16 12:38:25 +00:00
ceriel
4b3453a55e util/ceg/as_parser also uses lex 1989-10-16 09:53:04 +00:00
ceriel
cd741b08fc improved Makefile: save libemopt.a when creating libCEopt.a 1989-10-16 09:45:06 +00:00
ceriel
54ae1ed869 improved: did not work with SunOs 4.0 make 1989-10-16 09:32:05 +00:00
ceriel
535ad269a5 improved: did not work with SunOs 4.0 make 1989-10-16 09:24:52 +00:00
ceriel
d1969b0bef cleaned up considerably 1989-10-13 18:26:05 +00:00
ceriel
f350f324fa Added head_em.s for Sun floating point emulation 1989-10-13 14:35:50 +00:00
ceriel
8c20f88dd6 Added headers 1989-10-13 14:27:28 +00:00
ceriel
83bd04003a Added RCS Headers 1989-10-13 14:03:25 +00:00
eck
006ad3a33c fltcstoper.c addded to Repository 1989-10-13 11:04:42 +00:00
ceriel
8bca388927 Added mechanism for generating fast compilers 1989-10-13 10:48:07 +00:00
ceriel
08ad999f07 Added mechanism for generating fast compilers 1989-10-13 09:59:54 +00:00
ceriel
21d6a0a936 Added mechanism for generating fast compilers 1989-10-13 09:25:21 +00:00
ceriel
8c7c5af21a fixed typo 1989-10-13 09:22:53 +00:00
ceriel
c1fdc1ef44 formatted a bit 1989-10-12 16:57:37 +00:00
ceriel
801c3a1422 Added peephole optimizer library, code expander, and i386 1989-10-12 16:52:17 +00:00
ceriel
764f21008f Added entry for peephole optimizer library and code expander 1989-10-12 16:50:29 +00:00
ceriel
fa668aee72 cleaned up Makefile 1989-10-12 16:18:38 +00:00
ceriel
87d41e5622 The InputLevel variable only exists when NOPP is not defined 1989-10-12 14:22:35 +00:00
ceriel
a17cb6d151 use strindex() instead of index() 1989-10-12 11:16:43 +00:00
ceriel
0fe46680f1 some fixes, f.i. process # in actual parameter list 1989-10-12 11:16:02 +00:00
ceriel
5281bcf441 fixed wrong code for for-loop 1989-10-12 11:10:48 +00:00
ceriel
b63cb736be install code-expander version 1989-10-11 15:31:10 +00:00
ceriel
8c13506a8d removed include file in_all.h 1989-10-11 15:25:07 +00:00
ceriel
4cd5c0daa0 also install peephole optimizer and code expander versions 1989-10-11 15:15:47 +00:00
ceriel
458d278e2b Added em_codeO.h 1989-10-11 15:13:07 +00:00
ceriel
a3bf2f0830 use EMHOME instead of ../../.. 1989-10-11 14:21:37 +00:00
ceriel
b492526d13 bug fix in rounding for 4-byte floating point numbers 1989-10-11 13:34:05 +00:00
ceriel
58e825e192 Added nopt.doc and ceg 1989-10-11 13:17:21 +00:00
ceriel
53c4e37131 Added em_opt 1989-10-11 12:43:53 +00:00
ceriel
e117dd7637 moved and initialized the C_tmpdir variable; some linkers do not
find it otherwise
1989-10-10 15:06:56 +00:00
ceriel
9406461c89 Added code-expander-generator 1989-10-10 14:48:42 +00:00
ceriel
44d9dc2b7a Added i386 1989-10-10 14:42:59 +00:00
ceriel
3688f1e14c Added i386 to .distr file 1989-10-10 14:20:45 +00:00
ceriel
1273c73366 initial version 1989-10-10 11:40:55 +00:00
ceriel
6e9201945f many fixes, found by actually running the code 1989-10-10 11:38:18 +00:00
dick
a947b16247 some small corrections in the lint part 1989-10-10 11:21:55 +00:00
ceriel
70db8e4c85 initial version 1989-10-10 11:01:01 +00:00
ceriel
371621cffb many fixes; got working afcc with this version 1989-10-10 10:58:30 +00:00
ceriel
103d769278 many fixes, found by actually running the code it produces 1989-10-10 10:54:20 +00:00
ceriel
bb1f976bcd many fixes; now passes the tests 1989-10-10 10:44:26 +00:00
ceriel
03bc5847c7 Initial revision 1989-10-10 10:38:39 +00:00
ceriel
01c2a40996 mkstrct.o ended up in the archive twice 1989-10-09 15:03:01 +00:00
ceriel
853347952f some fixes 1989-10-09 14:15:51 +00:00
ceriel
90a1b864ee fix to bitfield code: contained non-portable shift 1989-10-09 13:42:39 +00:00
ceriel
4fdd23a32e recursive calls to sametest routine were wrong; How could this ever work? 1989-10-06 14:53:49 +00:00
ceriel
179995b95b corrected XOR problem, and ILOCAL does not exist for m68k4 1989-10-06 11:13:16 +00:00
dick
dd04f05ed5 varargs in panic() 1989-10-04 16:04:02 +00:00
dick
7546d23ab9 better error reporting 1989-10-04 15:36:56 +00:00
dick
b0397d0d71 correction lint.1 1989-10-04 15:33:49 +00:00
ceriel
f2a9d8a160 if to be preprocessed, # should be the first character 1989-10-04 15:18:12 +00:00
ceriel
a806c41ba3 fixed problem: sometimes incorrect labels were generated in case descriptors 1989-10-04 14:39:55 +00:00
ceriel
adf6002035 Added some XOR patterns 1989-10-04 14:35:50 +00:00
ceriel
34a1714a58 latest Makefile Version 1989-10-04 11:12:57 +00:00
ceriel
f627764679 fixed: removed an #endif 1989-10-04 11:06:18 +00:00
ceriel
545469ea53 This is the 4th distribution version 1989-10-04 11:02:39 +00:00
cvs2hg
ef8ebf1440 fixup commit for tag 'distr3' 1989-10-04 10:56:17 +00:00
ceriel
33dcea6aa5 Initial revision 1989-10-04 10:56:16 +00:00
ceriel
a334211f80 use the con_float include file 1989-10-04 10:28:50 +00:00
ceriel
7a3ee9a2be makefile removed, was path-dependant 1989-10-03 16:31:29 +00:00
eck
3b0fac78bd minor changes concerning void and pre-processor 1989-09-29 16:20:38 +00:00
eck
2d9ff63276 improved parameters 1989-09-29 15:46:33 +00:00
ceriel
a9d95930e8 removed yet another eor.l error 1989-09-29 11:45:19 +00:00
eck
16212b4cc2 some minor fixes, renamed ch7 stuff to ch3 1989-09-25 14:28:10 +00:00
eck
8721b0f01d lots and lots of changes & improvements 1989-09-19 16:13:23 +00:00
ceriel
7646d37ef1 exit from main instead of return 1989-08-22 11:46:56 +00:00
ceriel
b3c79be6c0 Improved checks for conversion between cardinal and integer 1989-08-21 17:08:54 +00:00
ceriel
44ccefc092 use strindex instead of index 1989-08-21 17:03:05 +00:00
ceriel
95a527224d use strindex instead of index 1989-08-21 16:56:15 +00:00
ceriel
25785a7aeb Added em_codeCE.h to repository and to .distr file 1989-08-21 13:12:51 +00:00
ceriel
50d0930e13 made to compile under Xenix 1989-08-21 12:46:54 +00:00
ceriel
8e5e22aba7 declaration of sprintf only if __STDC__ is not defined 1989-08-21 11:43:41 +00:00
ceriel
fbe921023a Added l_comment.h to .distr file, fixed problem with #
occurring between macro name and arguments
1989-08-21 10:58:24 +00:00
ceriel
45c25de1f8 replaced size_t by siz_t; size_t is reserved for ANSI C 1989-08-21 10:17:49 +00:00
ceriel
11ca323f97 pc directory no longer distributed 1989-08-16 13:03:58 +00:00
ceriel
26a8bcfb8d prevent core dump when the input file is not present 1989-08-15 09:06:26 +00:00
ceriel
988493a4ae did not handle -0.0 right 1989-08-15 09:04:49 +00:00
ceriel
720c036014 fix: did not handle 0.0 right 1989-08-15 09:02:38 +00:00
ceriel
b082fe48d5 inline FEF code for M68881 was wrong; replaced bu subroutine call 1989-08-10 14:17:50 +00:00
ceriel
dabff33228 removed old dependency on EM_WSIZE 1989-08-10 09:23:44 +00:00
ceriel
86b27aef19 removed old comment 1989-08-09 16:38:12 +00:00
ceriel
6ebee3b495 removed old EM_WSIZE dependency 1989-08-09 16:34:27 +00:00
ceriel
a1d157efc6 fix to fix: did not handle negative arguments right 1989-08-09 16:29:15 +00:00
ceriel
30260ca8e7 made more ANSI conformant 1989-08-09 16:25:50 +00:00
ceriel
e4df2e1d58 fixed: arguments to fputs were the wrong way around 1989-08-09 16:22:59 +00:00
ceriel
1ad622100f fixed problem with fef on Infinity 1989-08-09 14:37:37 +00:00
ceriel
9d4b82e7b2 improved rounding 1989-08-09 14:37:07 +00:00
ceriel
7c75d4cd21 changed name of some identifiers to more accurately represent their
meaning, and fixed a problem with sometimes not detecting overflow in
constants
1989-08-08 09:11:32 +00:00
ceriel
4fc6d6e73d Added warning for initializer of formal parameter (the syntax allows this!) 1989-08-02 11:26:51 +00:00
ceriel
158595b208 include mach directory (for con_float) 1989-08-02 10:34:49 +00:00
ceriel
71e90ba21c fixed typo 1989-08-02 09:47:27 +00:00
ceriel
596c778d27 much improved version 1989-08-01 16:40:28 +00:00
ceriel
d9684673fa some fixes: representation for 0, and corrected check for overflow 1989-08-01 16:34:01 +00:00
ceriel
6589e2e2db Added fp68881.s 1989-08-01 16:32:34 +00:00
ceriel
7d23a1ecbb removed #define for IEEEFORMAT; now, the floating point package always
uses this format
1989-07-31 15:15:41 +00:00
ceriel
14d6cc7286 some fixes: fif did loose too many bits; unnormalized form did not work 1989-07-31 15:10:54 +00:00
ceriel
5c38a43e17 use con_float routine 1989-07-31 15:10:36 +00:00
ceriel
0f0d4b1fa4 adapted for changed floating point package 1989-07-31 14:54:53 +00:00
ceriel
0cff4d0e71 removed IEEEFORMAT #define 1989-07-31 14:52:45 +00:00
ceriel
d9a86af8ea use con_float file, and use new interface to fif and fef routines 1989-07-31 14:50:19 +00:00
ceriel
f675fc1252 Added #define for CODE_GENERATOR 1989-07-31 14:45:40 +00:00
ceriel
0b8bdee7d3 fixed interface to fef routines 1989-07-31 14:43:51 +00:00
ceriel
0ff6037772 removed IEEEFORMAT #define, and define USE_DIVIDE for i386 1989-07-31 14:35:34 +00:00
ceriel
4f92c808cf use new interface to fif and fef routines 1989-07-31 14:34:23 +00:00
ceriel
3c4cb647fb removed IEEEFORMAT #define 1989-07-31 14:32:08 +00:00
ceriel
a3514174d2 use con_float file, and use new interface to fif and fef routines 1989-07-31 14:25:53 +00:00
ceriel
07447b1fc5 Added #define for buffer size needed for flt_flt2str() 1989-07-31 13:05:51 +00:00
ceriel
4d98ce5fa5 Added some assertions 1989-07-31 12:55:33 +00:00
ceriel
85fc2173cc use con_float file, and use new interface to fif and fef routines 1989-07-31 11:42:27 +00:00
ceriel
f0fe7757c6 use con_float file 1989-07-31 11:22:43 +00:00
ceriel
fabf440d6c fixed some bugs, added flt_umin 1989-07-28 14:13:39 +00:00
ceriel
3dd8d1cf40 needs tail_mon for all languages 1989-07-27 10:22:26 +00:00
ceriel
4b0b8f6228 fixed behaviour on too long floating point constants 1989-07-26 11:16:59 +00:00
ceriel
6a818e57d5 Added ext_comp.c 1989-07-26 11:08:24 +00:00
ceriel
9da93a1d2b use IEEE format in floating point package 1989-07-25 15:50:29 +00:00
ceriel
30b9507f62 many changes, to use IEEE format 1989-07-25 14:21:09 +00:00
ceriel
b5f5a11e4f bug fix in NGI for longs 1989-07-24 10:40:21 +00:00
ceriel
c910cb9ca1 needed ldexp routine for exp.c 1989-07-19 14:51:19 +00:00
ceriel
3b76c83ff0 main.old is not always present, so ignore exit status of 'size main.old' 1989-07-19 14:27:19 +00:00
ceriel
7b9fefb691 new directory for Pascal front-end 1989-07-19 09:01:57 +00:00
ceriel
b116bcbc24 LIBSUF must be 'a', not 'ma' 1989-07-19 08:56:46 +00:00
ceriel
88d1906ff7 merged -m flag with -j flag 1989-07-17 16:40:18 +00:00
ceriel
5ae08cd2bf documented environment variables, changed EM_DIR into ACKDIR 1989-07-17 16:19:10 +00:00
ceriel
4c92b4bf08 undef PASS_BIG_VAL_AS_VAR for now; it does not work properly in all cases 1989-07-17 15:37:04 +00:00
ceriel
ebf61935c5 fixed a problem with the store: we sometimes lost some memory 1989-07-17 15:13:09 +00:00
ceriel
9e5f1fc97d fixed a problem with recursive macros: this was not always detected 1989-07-14 09:51:02 +00:00
ceriel
fa56cdd906 exponent was wrong in divide routine; corrected 1989-07-13 11:18:02 +00:00
ceriel
bf5785d035 procedure function --> function procedure 1989-07-12 10:59:16 +00:00
ceriel
23b51e2526 changed lay-out of manual page a bit 1989-07-12 09:48:15 +00:00
ceriel
38e8f1d2ff Added #define for Free, improved text 1989-07-11 17:02:07 +00:00
ceriel
ca2c4c55fd con_float now uses the flt_arith module 1989-07-11 14:17:34 +00:00
ceriel
11419c04a7 tail_mon needed for .e 1989-07-11 12:52:00 +00:00
ceriel
42f953ad12 made to compile, added proper cast 1989-07-11 12:48:40 +00:00
ceriel
3779649a53 Added some %persistents, improved behaviour of preprocessor, and other
minor mods
1989-07-11 12:34:38 +00:00
ceriel
9184397ef7 made names of some files shorter 1989-07-11 11:38:52 +00:00
ceriel
f858524e90 there is no longer a lib directory; it is replaced by ../libce 1989-07-11 11:34:51 +00:00
ceriel
d1f2070f22 made to work, and added the b64 shift routines to the interface 1989-07-11 09:15:17 +00:00
ceriel
48442bd89b new mechanism for floating point constants 1989-07-10 17:15:55 +00:00
ceriel
9d71033768 new floating point constant mechanism 1989-07-10 16:52:02 +00:00
ceriel
ba9eeaa271 Added flt_arith 1989-07-10 11:25:02 +00:00
ceriel
a70a30805e Initial revision 1989-07-10 11:17:19 +00:00
ceriel
ad5d0d78d0 replaced some db.. instructions; they are wrong if the count register
contains a count > 65535
1989-07-07 16:01:03 +00:00
ceriel
3b7944d777 replaced some db.. instructions; they are wrong if the count register
contains a count > 65535
1989-07-07 15:11:35 +00:00
ceriel
31c6ce4ebc replaced some db.. instructions; they are wrong if the count register
contains a count > 65535
1989-07-07 15:05:33 +00:00
ceriel
6966f6586c replaced some db.. instructions; they are wrong if the count register
contains a count > 65535
1989-07-07 13:53:37 +00:00
ceriel
9b496d5477 made a bit more robust 1989-06-30 14:46:27 +00:00
ceriel
44d4a33db4 fix: did not work when called from different directory 1989-06-29 11:03:23 +00:00
ceriel
d6a1744fe0 some fixes 1989-06-28 12:51:16 +00:00
ceriel
26b3f264ac Added ret.s 1989-06-28 12:40:22 +00:00
ceriel
552786170a fixed bug: the assembler suppressed a relocation record because it
thought it was RELPC. It was not
1989-06-27 16:26:02 +00:00
ceriel
da19710f77 Added descriptions for EM machines 1989-06-27 15:46:58 +00:00
ceriel
960bbddf67 fixed reading of archives 1989-06-27 15:41:47 +00:00
ceriel
4ec11dcaac removed the ACKFLOAT #define 1989-06-27 13:17:39 +00:00
ceriel
bf6c7556c8 Added con_float, for floating point constants 1989-06-27 13:16:17 +00:00
ceriel
38fc4ac293 removed some useless PushBack's, and added warnings 1989-06-27 11:43:26 +00:00
eck
0950464770 various fixes and improvements 1989-06-26 10:37:05 +00:00
ceriel
a9abd596f4 use better algorithms for some mathematical functions 1989-06-20 13:10:32 +00:00
ceriel
9c00856e6f bug fix: printed some reals wrong 1989-06-20 11:43:01 +00:00
ceriel
2c23bb6566 Added routines to read and write LONGREALS 1989-06-20 11:23:43 +00:00
ceriel
5c45e01a6f use new math algorithms 1989-06-19 16:22:23 +00:00
ceriel
9024db9e45 use new math routines 1989-06-19 15:56:30 +00:00
ceriel
e76a12ed76 initialize variable inheader 1989-06-19 11:31:22 +00:00
ceriel
0a496230a4 generated with newer makefile generator 1989-06-19 11:30:37 +00:00
ceriel
f77cea49de use make_asobj 1989-06-19 11:27:36 +00:00
ceriel
2463fed6bc Added some patterns for floating point code 1989-06-19 11:24:10 +00:00
ceriel
4ebb67930e generated stupid code for long unsigned comparison 1989-06-19 11:23:08 +00:00
ceriel
aae1163ab0 don't remove compiler generated labels when they are external 1989-06-19 11:19:22 +00:00
ceriel
20ac2ba2c5 use different (better) hashing algorithm 1989-06-19 11:17:41 +00:00
ceriel
ebc7a9ac9f Added ranlib line 1989-06-19 11:16:53 +00:00
ceriel
da3000aa58 Avoid I/O buffering when using the checking malloc 1989-06-19 11:10:58 +00:00
ceriel
cc8a28ef83 avoid a null-reference 1989-06-19 11:09:44 +00:00
ceriel
f41c7fb3ae fix: sizes were the wrong way around for MAXINSTR 1989-06-19 09:57:35 +00:00
ceriel
7bdc0856dc some minor corrections 1989-06-19 09:56:16 +00:00
ceriel
bf9b3eb667 fixed some leapyear problems 1989-06-19 09:50:38 +00:00
ceriel
e9f2b9999b fixed exit status of test program 1989-06-19 09:49:22 +00:00
ceriel
fd32d4271d versions for new Pascal compiler 1989-06-19 09:46:29 +00:00
ceriel
ba0366975d fixed some typos 1989-06-15 19:50:14 +00:00
ceriel
a29051f2a8 improved Makefile, fixed writes: a field width of 0 is not standard 1989-06-15 19:11:01 +00:00
ceriel
044b8e1b5c Added call to C_close in the fatal routine 1989-06-15 19:08:18 +00:00
ceriel
db37900654 fixed problem with void returns and changed a warning somewhat 1989-06-15 19:06:56 +00:00
ceriel
f783ed921d some added patterns for M688881, and a fix 1989-06-15 10:35:42 +00:00
ceriel
b40ad96472 continue when an include file is not found 1989-06-15 09:16:27 +00:00
eck
18def1e965 Initial revision 1989-06-14 16:11:19 +00:00
eck
cddf1c17d3 Initial revision 1989-06-14 15:07:06 +00:00
eck
f0370f479b Initial revision 1989-06-14 14:41:35 +00:00
eck
571dc274bb Initial revision 1989-06-13 11:23:28 +00:00
eck
5c6439d2e2 Initial revision 1989-06-12 15:22:14 +00:00
ceriel
a2db4a8b50 removed old Pascal error files 1989-06-12 14:24:17 +00:00
ceriel
50c17231fb some optimizations for M68881; it is still horrible, though 1989-06-12 14:05:25 +00:00
ceriel
c5ddc899c7 Added simple support for M68881 1989-06-12 09:30:39 +00:00
ceriel
d5a8ad0e87 Added some flags 1989-06-09 15:07:54 +00:00
ceriel
25a492ca14 fixed typo 1989-06-09 09:53:29 +00:00
ceriel
b2c9885b83 Added saving of registers 1989-06-09 09:32:40 +00:00
ceriel
434a22bfae installed new Pascal compiler 1989-06-08 13:05:21 +00:00
ceriel
5134a254e2 some additions to .distr file 1989-06-08 13:02:26 +00:00
ceriel
1ccb8e2aa2 Added support for MC68881 floating point processor 1989-06-08 12:46:17 +00:00
ceriel
2bf468c8a0 leave register messages with a count of 0 1989-06-05 15:47:53 +00:00
ceriel
a430e96cff fix to constant unary minus 1989-05-31 12:42:56 +00:00
ceriel
195e9d1983 improved fix 1989-05-30 14:50:16 +00:00
ceriel
a404df913e transform HOL into BSS so that IL does not get confused 1989-05-30 14:32:12 +00:00
eck
0cb43d15fa Initial revision 1989-05-30 13:34:25 +00:00
ceriel
2c8fc48369 token references in EM replacements do not work. Give error message 1989-05-30 12:20:54 +00:00
ceriel
75e36d3a38 static links are not considered read-only anymore 1989-05-30 10:44:34 +00:00
ceriel
ac92184766 fixed typo, which resulted in memory fault 1989-05-30 10:41:42 +00:00
ceriel
05ea165960 removed printf.s, put in dia.s 1989-05-30 10:38:45 +00:00
ceriel
8babd0b097 Added files 1989-05-29 14:45:56 +00:00
ceriel
a282d5f74e changed printf name: removed underscore 1989-05-29 14:42:18 +00:00
ceriel
e6b8fcd33a removed printf.s 1989-05-29 14:40:51 +00:00
ceriel
03fde8ecde some fixes 1989-05-29 11:32:23 +00:00
ceriel
33022cdf20 Added version number to binary 1989-05-29 11:17:40 +00:00
ceriel
41ec3574be bug fix: did not handle #elif right 1989-05-29 11:11:34 +00:00
ceriel
f8b23ccdc0 Added Version.c 1989-05-29 10:32:46 +00:00
ceriel
71df0f78b4 Modified to make the default M2 compiler name definable at compile time 1989-05-29 10:27:54 +00:00
ceriel
13af90d93c fixed typo 1989-05-25 17:22:27 +00:00
ceriel
52f784fb56 some more fixes 1989-05-18 18:02:24 +00:00
ceriel
26e3f7a751 fixed some errors 1989-05-18 16:48:28 +00:00
ceriel
e95fbe2d60 new versions, mostly from Cody and Waite 1989-05-18 15:37:54 +00:00
ceriel
b26f76ed3b bug fixes 1989-05-16 16:02:46 +00:00
ceriel
f2d00ea6fd call .sts instead of .sti for STS instruction 1989-05-16 15:44:49 +00:00
ceriel
b7514e907f some fixes 1989-05-16 15:41:36 +00:00
ceriel
156231126f some fixes 1989-05-16 14:48:47 +00:00
eck
3e89ee1969 Initial revision 1989-05-16 13:13:53 +00:00
ceriel
74d51b5d97 a trap from a routine called by the termination sequence could
cause an infinite loop. This is prevented
1989-05-12 09:36:16 +00:00
ceriel
b1806c5e5a fix: kills line for STI 1 with ADDR_LOCAL was wrong 1989-05-11 13:55:31 +00:00
eck
4672ce6d94 Initial revision 1989-05-11 12:32:26 +00:00
ceriel
926a22037b fixes: you cannot do stack-references in EM replacements! 1989-05-11 11:25:16 +00:00
ceriel
287927b7ac some fixes 1989-05-11 10:57:34 +00:00
ceriel
607eac48b3 fixed typo 1989-05-11 10:43:37 +00:00
eck
3e40d142f8 Initial revision 1989-05-11 10:21:37 +00:00
eck
ebb49c3d79 Initial revision 1989-05-11 10:09:52 +00:00
eck
8d48d8eeed Initial revision 1989-05-10 16:22:28 +00:00
eck
c97cb1c0d0 Initial revision 1989-05-10 16:08:14 +00:00
eck
a4f43d5219 Initial revision 1989-05-10 10:43:58 +00:00
eck
c456a14c9a converted to ANSI C 1989-05-10 10:20:14 +00:00
ceriel
d1f061f380 reversed a-option 1989-05-10 10:19:22 +00:00
eck
4acb626840 Initial revision 1989-05-10 09:39:49 +00:00
ceriel
28345e5cf6 default is assertions ON 1989-05-09 15:54:01 +00:00
ceriel
c838754021 updated for new Pascal version 1989-05-09 13:49:25 +00:00
ceriel
3acdac0148 Added 'all' entry 1989-05-08 12:42:53 +00:00
ceriel
b75e95a4ef not include em_path.h anymore 1989-05-08 12:39:33 +00:00
eck
16840a4e83 updated for new pascal compiler 1989-05-08 10:04:50 +00:00
ceriel
1978818cf7 removed printf 1989-05-03 11:14:42 +00:00
ceriel
5ce88603df Many improvements by Hans van Eck 1989-05-03 10:30:22 +00:00
ceriel
89539fa451 Adapted for new Pascal Compiler 1989-05-03 09:53:25 +00:00
ceriel
49ca2cbb8b fixed: signed divide by power of 2 not equivalent to shift-right 1989-05-02 18:00:37 +00:00
ceriel
9150f2e06c some fixes 1989-05-01 18:32:24 +00:00
ceriel
1a15ea4f31 Added cemain entry in Resolve script 1989-04-26 11:32:46 +00:00
ceriel
e40d14b40a fix: M_DMAXEXP was wrong 1989-04-20 15:27:00 +00:00
ceriel
4ee9b51030 removed one goto 1989-04-19 15:00:07 +00:00
ceriel
2859b3921a new pascal compiler 1989-04-18 13:34:50 +00:00
ceriel
32afc0e9f9 just define unix, not unix=unix 1989-04-18 10:35:57 +00:00
dick
54374eeeb6 some printf format corrections 1989-04-17 10:10:59 +00:00
ceriel
ceaa4cf9f8 take care of proper exit status 1989-04-14 18:33:56 +00:00
ceriel
a264fb65b5 fix: filename label sometimes turned up as external 1989-04-14 18:25:39 +00:00
ceriel
be6b1cc7ff make entry to generate .o files 1989-04-11 15:51:01 +00:00
ceriel
38d375401f Corrected some warnings a bit 1989-04-11 14:34:21 +00:00
ceriel
e210343ec0 fixed problem with hex numbers, and use new PushBack feature 1989-04-11 11:40:49 +00:00
ceriel
d68340e71c fixed clock for larger word sizes 1989-04-07 09:20:06 +00:00
ceriel
310218d1cd fixed typo 1989-04-06 14:18:17 +00:00
ceriel
390594394b using new input module simplifies EOI handling 1989-04-04 15:02:47 +00:00
ceriel
c550c43fff better error handling, simplified EOI handling with improved input module 1989-04-04 14:53:48 +00:00
ceriel
05f256fb4c improved version with better PushBack 1989-04-04 14:49:31 +00:00
ceriel
5e10da4a6a better attempt to indicate start and end of own BSS; still not good
enough
1989-04-04 10:09:27 +00:00
ceriel
4590e0e55e Added DUP pattern 1989-04-04 09:46:47 +00:00
ceriel
22a4ef930b improved ASP patterns 1989-04-03 16:16:10 +00:00
ceriel
0379ada7ad recognize but ignore #pragma 1989-03-31 11:47:12 +00:00
ceriel
f9269a9aca recognize but ignore #pragma 1989-03-31 10:56:53 +00:00
ceriel
5191ba299c fix to fix 1989-03-30 15:14:37 +00:00
ceriel
c5d4740476 fix: initialize relocation records properly: some fields that are
not used on SunOs 3.5 are used on SunOs 4.0
1989-03-30 14:36:07 +00:00
ceriel
c3ff604997 fix: prevent unwanted sign-extension in the get4 routine 1989-03-30 09:34:43 +00:00
ceriel
d541e64f7f check arguments better 1989-03-29 14:58:42 +00:00
ceriel
068ffbc391 make realloc behave like most Unix realloc versions when handed a
null pointer
1989-03-29 12:58:18 +00:00
ceriel
6a2a94ed72 Changed semantics of CallAtEnd so that it calls installed procedures
in reversed order
1989-03-22 17:36:20 +00:00
ceriel
07d02ed496 declare extnd_main 1989-03-22 16:55:06 +00:00
ceriel
4625a80676 documented extnd_main 1989-03-22 16:46:38 +00:00
ceriel
641221f9c0 Added extnd_main routine 1989-03-22 16:44:20 +00:00
ceriel
e12ef40218 fixed: beginpart must divert main stream 1989-03-22 16:41:38 +00:00
ceriel
2ddfdff471 Added ce and libce to .distr 1989-03-22 15:16:36 +00:00
ceriel
f3aff5704c Initial revision 1989-03-22 15:06:05 +00:00
ceriel
7768504a93 bug fix in WITH statement: called WalkDesignator instead of ChkDesig 1989-03-22 11:07:21 +00:00
ceriel
ce0e423e9f made the previous changes in parameter passing mechanism and return
value mechanism settable with compile time constants
1989-03-22 09:53:47 +00:00
ceriel
58b6c40aaf New version with different parameter passing mechanism and some
minor fixes
1989-03-20 13:32:06 +00:00
ceriel
6b73c84ee1 use value parameters when VAR not needed 1989-03-20 13:03:34 +00:00
ceriel
448fdf4a58 use value parameters when VAR not needed 1989-03-20 12:46:25 +00:00
ceriel
8a75c997c8 more fine-tuning 1989-03-20 12:36:22 +00:00
ceriel
aa69b0ed21 generate -c instead of -c.$(SUFFIX) 1989-03-17 17:06:21 +00:00
ceriel
9332516a7f some fixes: fix order in which registers are allocated, make sure that
a pattern chosen by the distance routine can be made from the stack if the
fakestack does not contain enough tokens
1989-03-17 16:49:58 +00:00
ceriel
da56e17b75 Also put the unstackset in tables.c, so that ncg can look at it 1989-03-17 16:34:39 +00:00
ceriel
78351e80ad documented null-string behaviour 1989-03-16 15:41:43 +00:00
ceriel
9953833a05 Added tables1 files to .distr 1989-03-16 11:32:16 +00:00
ceriel
d2c715a752 Added pattern for BLS 4 1989-03-16 11:21:37 +00:00
ceriel
4e23e8da1e fixed typo's 1989-03-16 11:20:47 +00:00
ceriel
df07a36d88 no dependencies in suffix rules 1989-03-15 13:28:52 +00:00
ceriel
64cdfc8c51 fixed the arctan routine 1989-03-15 13:16:40 +00:00
ceriel
fa1d129a2d improved error message for no RETURN from function procedure 1989-03-15 10:46:27 +00:00
ceriel
94af67cf03 adapted for larger function result area 1989-03-14 15:36:33 +00:00
ceriel
e2b1f05f4b fixed: pattern for ADI STL and the like was wrong 1989-03-14 14:05:10 +00:00
ceriel
03cf2ee6f0 some more improvements; made fancy modes dependant on #define 1989-03-14 12:47:11 +00:00
ceriel
6f220b0d0b return area has maximum size 2*pointer-size 1989-03-14 12:28:55 +00:00
ceriel
548a7a386d updated to current situation 1989-03-14 11:03:24 +00:00
ceriel
737b777683 better warnings for unused/undefined parameters 1989-03-13 15:04:05 +00:00
ceriel
e5ec23354d some changes for more fine-tuning 1989-03-13 14:12:22 +00:00
ceriel
bad23f9779 made return value of topsize an unsigned. Some 2/4 back-ends do
not implement BLS 4
1989-03-10 14:03:34 +00:00
ceriel
16753f7a42 Changed method for returning big values; Instead of using a chunk of
global data area, caller creates space on the stack just above parameters
to store the result
1989-03-10 10:40:07 +00:00
ceriel
7e4845e2ef put saved label in correct segment 1989-03-10 10:08:22 +00:00
ceriel
c2e6bb1bba fix: when looking for f.i. C_loe.., forgot to reset to_change when found 1989-03-10 10:06:47 +00:00
ceriel
d576d630d8 cleaner versions of Makefiles 1989-03-10 09:47:41 +00:00
ceriel
ae7648fe0a updated to ed4 1989-03-08 17:28:08 +00:00
ceriel
919d699385 Added code-expander documentation 1989-03-07 16:25:32 +00:00
ceriel
a943caaf4a simplified a bit 1989-03-07 10:33:47 +00:00
ceriel
f6d19729f3 undid some changes; they were not effective 1989-03-07 10:29:15 +00:00
ceriel
3506d29d82 changed lint flags 1989-03-07 10:27:22 +00:00
ceriel
e1dc6e8e25 use general as pointer flag added 1989-03-07 10:24:32 +00:00
ceriel
dacaa278f9 bug fix: if a case-statement did not have a default, so that the
default is the successor of the block containing the CSA/CSB instruction,
the branch to the CSA/CSB block was not optimized
1989-03-07 10:11:24 +00:00
ceriel
812f7dce16 use $(REFER) instead of refer 1989-03-07 10:00:45 +00:00
ceriel
2c07fd4d02 fix to fix 1989-03-07 09:26:42 +00:00
ceriel
c9c08fd077 avoid null-reference if some nonterminal is not defined 1989-03-06 18:48:30 +00:00
ceriel
2346a0a88c commented out some code 1989-03-06 18:15:50 +00:00
ceriel
f285dbdf43 commented out some code 1989-03-06 18:02:53 +00:00
dick
0b27a93069 more lint code 1989-03-06 15:17:39 +00:00
ceriel
743ba6d408 fixed problem with size option 1989-03-03 17:53:31 +00:00
ceriel
0a7fb3243e brought up-to-date, and documented back-interface better 1989-03-03 17:09:28 +00:00
ceriel
e7151506f1 Added options 1989-03-03 16:16:52 +00:00
ceriel
f5a2c69481 Added a local extension: procedure constants 1989-03-03 16:13:45 +00:00
ceriel
9352716e2d some improvements and corrections 1989-03-03 15:16:12 +00:00
ceriel
568316e2db Added some patterns 1989-03-03 12:46:59 +00:00
ceriel
6aaceb7d35 Initial revision 1989-03-03 11:41:29 +00:00
ceriel
927c3eee0f Added some patterns 1989-03-03 11:10:13 +00:00
ceriel
80fcb8c31a Added some patterns 1989-03-03 10:36:42 +00:00
ceriel
b85653d55d replace more multiplies by shifts 1989-03-02 18:56:05 +00:00
ceriel
67a513a488 adapted to new ordering in FILE struct 1989-03-02 11:24:55 +00:00
ceriel
929946d753 made several patterns dependant on a #define. Using some of the
fancy addressing modes actually made the code slower.
1989-03-01 16:28:18 +00:00
ceriel
04a3b0a092 avoid spurious error messages about missing #endif 1989-03-01 13:39:50 +00:00
ceriel
ea8f852fc5 Many new patterns 1989-03-01 11:32:37 +00:00
ceriel
ccd99fa45e Added some patterns 1989-03-01 11:28:49 +00:00
ceriel
36d634824c use calloc instead of malloc, to make sure block is initialized to 0 1989-03-01 10:00:37 +00:00
ceriel
1a7833a0e3 fix: tst instruction also allowed on address register 1989-02-28 18:40:35 +00:00
ceriel
88c579f2d1 simplified CFF somewhat 1989-02-24 14:58:21 +00:00
ceriel
fa71baa4d7 fixed bug in Usage line 1989-02-24 14:53:49 +00:00
ceriel
6b94b30af4 Added patterns and made some improvements 1989-02-24 14:09:46 +00:00
ceriel
66b5ddcfd8 Added pattern for unlk after stack adjustment 1989-02-24 13:34:49 +00:00
ceriel
b0513b7a66 better rule for LOE LOF DUP ADP ... 1989-02-23 17:59:30 +00:00
ceriel
e97129f991 generate better code for LOL ADP STL 1989-02-23 15:46:46 +00:00
ceriel
cc59120347 bug fix: some variables were not initialized all the time 1989-02-23 10:40:12 +00:00
ceriel
f431230f7d removed prt_ext 1989-02-23 10:08:20 +00:00
ceriel
83639826d6 fixed error in previous commit 1989-02-22 17:38:07 +00:00
ceriel
70ab911d0b do not depend on SP for restoring registers 1989-02-22 17:18:34 +00:00
ceriel
3e17d769b9 changed interface to CSA and CSB 1989-02-22 17:18:17 +00:00
ceriel
086f4ceacb speeded up a bit 1989-02-22 16:16:11 +00:00
ceriel
50cbf84293 try to move side effects as much as possible to the left of the
expression tree, to avoid stacking. This is not good enough yet!
1989-02-22 16:16:08 +00:00
ceriel
404618c7c5 many improvements to the table, mostly to make it more readable
and less chaotic. Also removed some dummy routines in mach.c
1989-02-22 16:13:51 +00:00
ceriel
3cc595c2b7 improve signal handling of Floating Point Exception 1989-02-21 10:49:51 +00:00
ceriel
e9b8cb06bf changed entry points csa and csb 1989-02-21 10:11:26 +00:00
ceriel
25074fb608 fixed syntax error in table 1989-02-21 10:09:22 +00:00
ceriel
f295a15614 changed entry points csa and csb; strscript should call m68020
instead of acc
1989-02-21 10:09:01 +00:00
ceriel
558b077fd8 changed entry points for csa and csb 1989-02-21 10:05:03 +00:00
ceriel
afca9aeba9 use a larger buffer on larger machines 1989-02-21 10:01:55 +00:00
ceriel
8e485ab09a some fixes: calloc was wrong; catch traps, and let divides
by 0 generate a signal, if on a unix machine
1989-02-20 18:01:33 +00:00
ceriel
84e71248e2 made easier to compile with different compiler 1989-02-20 15:29:10 +00:00
ceriel
ff0b9c8ab6 fixed; did not work because there was no dependency on as_lib.a 1989-02-20 15:25:27 +00:00
ceriel
a71decee90 do not catch floating point exceptions anymore 1989-02-17 09:58:06 +00:00
ceriel
73ac1d53ec Made easier to use other compiler 1989-02-16 16:33:29 +00:00
ceriel
612cfe1058 empty string in directory list now means current directory 1989-02-16 11:46:39 +00:00
ceriel
7844122141 empty string in directory list now means current directory 1989-02-16 11:24:01 +00:00
ceriel
f860afc981 empty string in directory list now means current directory 1989-02-16 11:18:44 +00:00
ceriel
31ecc93082 fixed; the previous change was wrong 1989-02-16 11:14:22 +00:00
ceriel
fd70e803a0 Handle empty string in search path; It means: current directory 1989-02-16 10:48:06 +00:00
ceriel
babdd65d68 Add include directory when compiling head 1989-02-16 09:40:52 +00:00
ceriel
8d8876cafc Initial revision 1989-02-15 16:39:58 +00:00
ceriel
81fd8811a0 fixed some incorrect kills 1989-02-15 11:39:13 +00:00
ceriel
c3cd93397e Initial revision 1989-02-14 18:03:13 +00:00
ceriel
2028c4652e Initial revision 1989-02-14 15:52:25 +00:00
ceriel
a2169cd8f2 fixed some problems, updated with cemcom 1989-02-14 14:35:38 +00:00
ceriel
e51a262554 fixed wrong count in popping parameters 1989-02-14 14:10:31 +00:00
ceriel
0b3bf6705c New coroutine mechanism incorporated 1989-02-13 18:41:17 +00:00
ceriel
0f04dda084 make runtime error messages emacs-compatible 1989-02-13 18:28:17 +00:00
dick
0d87bd16bd more and better declarations in c.llb 1989-02-10 16:46:01 +00:00
ceriel
b3702e14a3 Try to allocate to the next power of 2, instead of just aligning
with GRABSIZE; This way, malloc(1000000) followed by free() followed by
another malloc(1000000) will result in the same block being allocated,
because first_present will now find it
1989-02-10 09:18:19 +00:00
ceriel
14a37445df Added documentation about priority and optimizer keywords 1989-02-09 16:17:00 +00:00
ceriel
390bc72f85 Added some comments 1989-02-09 15:58:34 +00:00
ceriel
f1e69ba5dc Fix: current distribution is 4th 1989-02-09 15:57:27 +00:00
ceriel
4ca0a9fcb0 Adapted; Do not use /dev/tty 1989-02-09 15:55:33 +00:00
ceriel
9c2934c25d Added Algol68S 1989-02-09 15:53:09 +00:00
ceriel
e3a1bdee64 fix: CHR expects a CARDINAL parameter 1989-02-09 15:43:28 +00:00
ceriel
bdfe2ec9cf deleted makefile from distribution; Added some comments about this to
the README file
1989-02-09 15:43:25 +00:00
ceriel
ff974411bb New method of calling optimizers; fixed lint entry in Makefile 1989-02-09 14:08:47 +00:00
ceriel
f5f3c78f28 New method of calling optimizer; Added Algol68S 1989-02-09 13:46:32 +00:00
ceriel
fe90dbc022 minor correction 1989-02-09 13:26:24 +00:00
ceriel
4ffc5effc8 *** empty log message *** 1989-02-09 13:24:20 +00:00
ceriel
c2a77056f3 Fixed lintflags 1989-02-09 11:33:11 +00:00
ceriel
d26ae9524b fixed lint options; Added -O<num> option 1989-02-09 11:22:24 +00:00
ceriel
20bdcdb730 The s option now gives a percentage of the size of the input 1989-02-09 10:18:48 +00:00
ceriel
0fe5503e58 use pusha and popa instructions, and on the proper place 1989-02-08 15:47:22 +00:00
ceriel
e93ffe54b0 Added 1989-02-08 15:29:51 +00:00
ceriel
2b4351612b Added 1989-02-08 15:19:42 +00:00
ceriel
46f14c974d Initial revision 1989-02-08 15:12:03 +00:00
ceriel
634ffd0111 Initial revision 1989-02-08 14:57:48 +00:00
ceriel
3cbeef9506 fixed problem with importing enumeration literals 1989-02-08 10:24:10 +00:00
ceriel
a4d2bc520b make sure that every command ends up in the same directory where it started 1989-02-08 09:44:32 +00:00
ceriel
49d1c86cbc Adapted to our installation 1989-02-08 09:38:15 +00:00
ceriel
a474dcaeae fixed return value of signal 1989-02-08 09:29:27 +00:00
ceriel
8d664a267e replaced some BSS by CON; The order in memory is important!
Adapted to our installation
1989-02-08 09:23:46 +00:00
ceriel
92361b4669 use an ed script instead of an ex script; more portable 1989-02-07 17:54:33 +00:00
ceriel
f66169c2d2 fix in IMUL, define DEBUG 1 1989-02-07 14:30:47 +00:00
ceriel
d3a832bd33 fixed several problems:
- hex numbers and floating point numbers were wrong
- grammar was wrong; did not accept correct ANSI C
- prototype updates did not work
- float parameters to routines without prototype were not upgraded to double
- the dot operator no longer requires lvalue as left-hand-side
1989-02-07 13:16:02 +00:00
ceriel
fa9f197afd made arg_error dependent on DEBUG; fixed cmp instruction in as_table 1989-02-07 11:42:28 +00:00
ceriel
ea22ca0f3c made back.a dependent on some C files in this directory 1989-02-07 11:32:47 +00:00
ceriel
3897571520 Added FORMAT information for our lint; Documented the _format routine 1989-02-07 11:17:22 +00:00
ceriel
6ac0b14a21 made back.a dependent on some C files in this directory 1989-02-07 11:12:13 +00:00
ceriel
466770c802 Documented need of em_data.a for libeme.a 1989-02-07 11:11:57 +00:00
ceriel
3ca38fbe2e Initial revision 1989-02-07 11:04:05 +00:00
ceriel
14a0e523e3 increment error count on errors 1989-02-07 09:50:28 +00:00
ceriel
042b9384b2 fixed problem in sizeof() 1989-02-06 19:06:55 +00:00
ceriel
ef128982bf some fixes 1989-02-06 15:15:27 +00:00
ceriel
791300c5a6 move to address register does not set condition codes 1989-02-06 15:11:49 +00:00
ceriel
325abcee85 Improved label handling and handling of jumps to jumps 1989-02-06 14:39:08 +00:00
ceriel
02159e48b4 Added some patterns for LOC LOC CII followed by test on (in)equality to 0 1989-02-06 14:38:21 +00:00
ceriel
d05287f87c Bug fix in cast 1989-02-06 14:38:00 +00:00
ceriel
9b12f58b23 Use our own preprocessor, added dependencies 1989-02-06 14:37:51 +00:00
ceriel
e0fbecfcfb changed order of registers, so that d0 is allocated first 1989-02-06 14:35:10 +00:00
ceriel
1af2760ded some simplifications and a bug fix 1989-02-03 16:32:07 +00:00
ceriel
2f20b3e612 corrected print formats 1989-02-02 16:32:19 +00:00
ceriel
52ceb5a624 delinted somewhat 1989-02-02 16:31:51 +00:00
ceriel
0de84449fb bitwise operators available now 1989-02-02 16:15:54 +00:00
ceriel
4b299df52a Added header 1989-02-02 16:10:15 +00:00
ceriel
ce33e1442d improved pattern 1989-02-02 16:04:18 +00:00
ceriel
364db71364 Added some patterns 1989-02-02 16:01:13 +00:00
ceriel
42ffe00f42 many changes, to make the make_* files more portable 1989-02-02 14:45:26 +00:00
ceriel
3c35dfc730 name changes 1989-02-02 14:41:24 +00:00
ceriel
244f5ec0ef as_back/const.h is deleted 1989-02-02 14:36:34 +00:00
dick
eacc6e770e better evaluation order checking in expressions 1989-02-02 13:57:07 +00:00
ceriel
d6878e6125 delinted, added chstack.c 1989-02-02 13:24:50 +00:00
ceriel
636e36857b made arg_error dependant on DEBUG 1989-02-02 12:49:21 +00:00
ceriel
604c4ed430 hidden names, made arg_error dependant on DEBUG 1989-02-02 12:29:14 +00:00
ceriel
d039590255 removed unused code 1989-02-02 12:27:33 +00:00
ceriel
1aca6f8dcd made arg_error dependant on a DEBUG constant, improved Makefile 1989-02-02 11:45:50 +00:00
ceriel
a8a5248bb7 made arg_error dependant on a DEBUG constant 1989-02-02 11:42:53 +00:00
ceriel
3690e264bf simplified a bit to make the resulting optimizer smaller; Added a
constant w2 that can be used in the patterns instead of 2*w
1989-02-02 11:41:31 +00:00
ceriel
1f60decc07 documented w2 1989-02-01 15:58:31 +00:00
ceriel
39b85e29b6 fixed bug: OO_halfflush did not work properly 1989-01-31 10:33:59 +00:00
ceriel
268c23ac82 include back.h file 1989-01-27 16:41:04 +00:00
ceriel
a16943c363 Changed some names 1989-01-27 14:15:55 +00:00
ceriel
355e158dba Makefile added 1989-01-27 13:22:55 +00:00
ceriel
ee37544370 Makefile added 1989-01-27 13:10:44 +00:00
ceriel
9786adbeb6 minor mods 1989-01-27 13:09:37 +00:00
ceriel
cab9f5b253 define CODE_EXPANDER 1989-01-27 12:41:43 +00:00
ceriel
9ef488cd07 improved Makefile 1989-01-27 12:02:55 +00:00
ceriel
5561b16f80 put table in alphabetical order again 1989-01-26 17:10:18 +00:00
ceriel
63250e1881 moved definitions for extnd routines 1989-01-26 17:08:15 +00:00
ceriel
3a976aed0f renamed jump, prolog, and locals to C_jump, C_prolog, and C_locals 1989-01-26 15:42:50 +00:00
ceriel
dddf857632 adapted to no longer need an as.h file 1989-01-26 15:20:56 +00:00
ceriel
9a95fd3684 replaced Dutch comment 1989-01-26 14:47:03 +00:00
ceriel
0846e8f43b cleaned up a bit 1989-01-26 14:43:09 +00:00
ceriel
3ecbfced88 cleaned up a bit 1989-01-26 14:39:09 +00:00
ceriel
37b4c2f476 replaced Dutch comments 1989-01-26 14:27:02 +00:00
ceriel
8322750e2a Added prefix C_ to the names prolog, jump, and locals 1989-01-26 14:04:11 +00:00
ceriel
976f28b326 change some names 1989-01-26 13:46:19 +00:00
ceriel
d5390e7556 changed identifier Hashitems 1989-01-26 13:41:31 +00:00
ceriel
ca4b91fbbe change some names 1989-01-26 13:39:03 +00:00
ceriel
722e8f761f hide names, and remap public ones 1989-01-26 13:32:57 +00:00
ceriel
b88bd1732f change some names 1989-01-26 13:24:23 +00:00
ceriel
81af204fa5 previous fix was wrong; corrected 1989-01-26 10:58:30 +00:00
ceriel
4616d80802 Added includes 1989-01-26 10:52:51 +00:00
ceriel
2a064b7738 be a bit more liberal with prefixes 1989-01-24 13:51:05 +00:00
ceriel
95da8a6b2e fix in compile time int2float conversion 1989-01-23 16:52:22 +00:00
ceriel
dee27422e1 evaluate switch-expression on a different spot,
allow for *STRING expressions
1989-01-23 15:37:57 +00:00
ceriel
14ca6ec8e2 changed bss() into a macro 1989-01-20 15:19:33 +00:00
ceriel
3959d9aaf9 fixed parameter types 1989-01-20 15:01:37 +00:00
ceriel
acfefb688c Added some conversions 1989-01-20 14:54:55 +00:00
ceriel
21dfb2ee1b Added Makefile 1989-01-19 17:51:44 +00:00
ceriel
5b015de6f0 Initial revision 1989-01-19 16:43:32 +00:00
ceriel
f5b16597a6 delinted a little 1989-01-19 16:41:55 +00:00
ceriel
649d97e9de Added .distr 1989-01-19 16:26:18 +00:00
ceriel
6ab75b5c09 Initial revision 1989-01-19 16:20:46 +00:00
ceriel
dd114de7e3 simplified assertion 1989-01-19 13:48:09 +00:00
ceriel
cf872fd6c7 fixed another POINTER TO IDENT problem 1989-01-19 10:58:43 +00:00
ceriel
97eeb04ecb use STS and LOS routines 1989-01-19 09:16:15 +00:00
ceriel
9182f23c4f Added STS and LOS routines 1989-01-18 10:51:57 +00:00
ceriel
8c9cb07b55 use STS and LOS routine 1989-01-18 10:51:06 +00:00
ceriel
1fff73bd82 change to keep lint happy 1989-01-17 11:23:33 +00:00
ceriel
2e6ee2845b Added floating point, fixed LPB 1989-01-17 11:05:02 +00:00
ceriel
ba080af7ec changes to hide names and some fixes 1989-01-17 10:27:55 +00:00
ceriel
0570864f72 changes to hide names and some fixes 1989-01-17 09:48:32 +00:00
ceriel
c157dab6d0 many improvements 1989-01-16 16:10:32 +00:00
ceriel
390560a78f Added patterns 1989-01-16 13:35:02 +00:00
ceriel
babbf408ce deleted some patterns; they caused loop 1988-12-14 17:55:02 +00:00
ceriel
5a17ea0662 fixes and improvements 1988-12-14 15:33:20 +00:00
ceriel
faa60da6c5 Added patterns 1988-12-12 18:22:59 +00:00
ceriel
a70cb3cc78 use C_con_cst instead of C_con_icon when possible;
fix sizeof(string) to return the size of the string instead of the size of
a pointer
1988-12-12 14:21:45 +00:00
ceriel
e4172993f1 Added extra explanation of on_valu field 1988-12-12 12:51:52 +00:00
ceriel
93b5b5b7d7 fixed: the fgets replacement did not work properly 1988-12-08 16:18:29 +00:00
ceriel
a304524caa Added some patterns 1988-12-08 13:21:07 +00:00
ceriel
adae10f8e1 declare holno 1988-12-07 16:00:46 +00:00
ceriel
f9f338fb00 handle local commons in one place only 1988-12-06 13:22:34 +00:00
ceriel
b29fbd2567 killbss routine smarter now; does not overwrite all BSS; did not work
as it should, because systemcall interface also uses the fact that BSS = 0
1988-12-02 15:39:59 +00:00
ceriel
7e4969064c handle intorcard_type better in case statements 1988-11-29 13:13:03 +00:00
ceriel
17e744b5e0 changed error messages, initialize bss with funny value, and be
somewhat more conservative with memory usage
1988-11-28 12:54:38 +00:00
ceriel
0008704904 improved interface 1988-11-25 13:49:07 +00:00
ceriel
838514ccf8 cleaned up interface a bit 1988-11-24 11:46:31 +00:00
ceriel
dcebb77bfe Fix from Lindsey: changed CURRDIR mechanism to make it work on SunOs 4.0 1988-11-24 11:29:14 +00:00
ceriel
886b18be3b Fix from Lindsey: changed CURRDIR mechanism to make it work on SunOs 4.0 1988-11-24 09:41:39 +00:00
ceriel
0b707bc8b8 fix from Lindsey 1988-11-24 09:23:51 +00:00
ceriel
89cb15bcbe another minor problem fixed: only test on options['R'] once
in a FOR statement!
1988-11-23 13:10:57 +00:00
ceriel
cd47424718 minor fix: sometimes wrote 0-byte 1988-11-23 11:31:20 +00:00
ceriel
fea41392c0 Added termcap support 1988-11-23 10:59:09 +00:00
ceriel
7774835cde fixed typo 1988-11-22 09:21:25 +00:00
ceriel
e35c517640 some more improvements and a fix 1988-11-21 16:55:16 +00:00
ceriel
6f94216107 many improvements 1988-11-21 15:04:23 +00:00
ceriel
3efc7c62b0 declare procno and holno, extend_ilb changed 1988-11-18 18:00:47 +00:00
ceriel
222cef0714 declare procno, extend_ilb changed 1988-11-18 17:57:28 +00:00
ceriel
4e6540b3f7 declare procno and holno 1988-11-18 17:53:57 +00:00
ceriel
c70b1ec0d3 cleaned up; hidden names 1988-11-18 17:52:39 +00:00
ceriel
744894ca09 removed mysprint.c 1988-11-18 17:45:02 +00:00
ceriel
9c1df5f89e extnd_ilb changed, declared holno and procno 1988-11-18 17:43:47 +00:00
ceriel
ef8f1c778a fixed wr_arhdr: date and size 1988-11-18 16:06:07 +00:00
ceriel
f1d053651b removed tab.c, use tabgen, and some fixes 1988-11-16 15:18:21 +00:00
ceriel
12b89fa9f0 fixed typo 1988-11-16 13:37:46 +00:00
ceriel
373f74dc7f removed tab.c, use tabgen 1988-11-16 11:23:58 +00:00
ceriel
6e3fa51042 removed tab.c, use tabgen 1988-11-16 11:04:17 +00:00
ceriel
bb7e5e5850 removed tab.c, use tabgen 1988-11-16 10:58:33 +00:00
ceriel
c26539a88d Use tabgen, so deleted chtab.c 1988-11-16 10:43:15 +00:00
ceriel
10d25e95af Added tabgen 1988-11-16 10:14:26 +00:00
ceriel
08f8310e09 Added tabgen + manual 1988-11-16 09:37:04 +00:00
ceriel
10f0200f66 fixed some problems:
- removed null-reference in illegal use of pointers in constant expressions
- FOR-loops that count downwards did not work
- POINTER TO mechanism changed; works better now
1988-11-15 14:45:59 +00:00
ceriel
eb73f30c5a fixed typo 1988-11-15 11:30:47 +00:00
ceriel
6286e0403f Added some new patterns 1988-11-15 10:54:37 +00:00
ceriel
7ffc4a2861 fix to fix 1988-11-14 16:50:06 +00:00
ceriel
7ef8432c5a replaced some 'move's by the move instructions; Some were just wrong 1988-11-14 12:43:23 +00:00
ceriel
e0b6e7d44d several fixes 1988-11-11 19:13:26 +00:00
ceriel
c0cb7d8e25 fix to fix 1988-11-11 12:53:40 +00:00
ceriel
4b3e917320 Use -kun option instead of absolute path 1988-11-11 11:06:47 +00:00
ceriel
6fb5990a90 removed extra DUP rule. It was wrong after all 1988-11-10 15:38:50 +00:00
ceriel
7028a6659f Use the system module for error messages 1988-11-10 13:46:53 +00:00
ceriel
996d8fc8e8 fixed to generate only external commons. This cannot be done in common.c
because an external could later be declared static, and a static could later
be declared external.
1988-11-10 13:16:22 +00:00
ceriel
cd1307122a fixed to generate only external commons 1988-11-10 13:01:15 +00:00
ceriel
d4808e1417 fixed problem with DUP: it also dupped tokens with side-effects 1988-11-09 15:49:29 +00:00
ceriel
e82a5c3c14 Initial revision 1988-11-08 14:09:24 +00:00
ceriel
a962d0f39b changes in search for more speed 1988-11-08 13:47:18 +00:00
ceriel
8db18e8f62 do not refer to _exit. For some machines, it does not exist 1988-11-07 10:25:45 +00:00
ceriel
c98d8e1ed4 produce better code for EXG 1988-11-07 09:35:47 +00:00
ceriel
0a2b1c0ee5 included changes from Andy Michael 1988-11-07 09:24:36 +00:00
ceriel
9b99c5603b Changed translation of FOR-statement: now, if it is executed 0
times, the loop-control-variable is not assigned to
1988-11-04 13:12:14 +00:00
ceriel
b9f037d109 new version number 1988-11-04 10:24:34 +00:00
ceriel
595e913007 Added new line after trap message 1988-11-04 09:55:50 +00:00
ceriel
4f8fe87ee6 Fixed problem with IMPORTS through PROCEDURE bounds 1988-11-03 15:37:37 +00:00
ceriel
28e8984b72 Fixed bug with underscores in identifiers 1988-11-03 15:36:46 +00:00
dick
b8bd81f18f lint: printf testing and FORMATs 1988-11-03 15:18:46 +00:00
dick
e91938cdf2 foute declaratie van sprint() 1988-11-03 14:59:47 +00:00
dick
01912378ff lint: retrieving string arguments from str_list 1988-11-03 13:20:27 +00:00
ceriel
c1ce4d054d removed include: was already done in nopt.h 1988-11-03 10:03:45 +00:00
ceriel
776e96cecd fixed typo 1988-11-02 16:33:56 +00:00
ceriel
a58f200d8a modifications in search for more speed 1988-10-31 16:03:44 +00:00
ceriel
fe9fb2fb9d modyfications in search for more speed 1988-10-31 15:54:54 +00:00
ceriel
aaa3fa1467 many modyfications in search for more speed 1988-10-31 15:42:15 +00:00
ceriel
2b29ce2298 modyfied to generate only one switchseg for each C_ routine 1988-10-31 15:21:47 +00:00
ceriel
050f15f772 many changes, in search for more speed 1988-10-31 15:02:39 +00:00
ceriel
d305dcf18b Added code-expander library 1988-10-31 14:17:17 +00:00
ceriel
65819423ce inline substitution of strcmp: was called many times! 1988-10-31 14:10:39 +00:00
ceriel
bf2896177c fixed bug in preprocessor part:
#define aap(a) a did not work if the actual argument was spread over
multiple lines
1988-10-31 14:10:00 +00:00
dick
302745f3fc library files now end in .llb 1988-10-28 16:27:32 +00:00
dick
4cb51452f8 moving lint and lint.1 to lpass2 1988-10-28 16:04:31 +00:00
ceriel
04f0a3c6d1 some minor improvements 1988-10-28 13:37:48 +00:00
ceriel
2744d4f25d some small fixes 1988-10-28 10:11:49 +00:00
ceriel
88cc8c91ff Initial revision 1988-10-26 15:21:11 +00:00
ceriel
ca26a52b10 Only generate FIL when needed 1988-10-25 17:43:19 +00:00
ceriel
c5d939084e some fixes 1988-10-24 10:35:17 +00:00
ceriel
0b60a0659a moved comment 1988-10-21 17:35:54 +00:00
ceriel
13c621b5e8 changed assert macro to also work with ANSI C compilers 1988-10-21 17:34:20 +00:00
ceriel
a4d2164f4a fixed minor problem with subranges 1988-10-21 17:24:34 +00:00
ceriel
b98afd7c70 patches to make more suitable for push-pop optim 1988-10-20 15:08:59 +00:00
ceriel
00fed9521a some minor changes 1988-10-20 14:33:55 +00:00
ceriel
d646cd1209 Many changes:
- added floating point
- improved assembler part, now uses short encodings when possible
- reduced generated relocation - and name table
1988-10-20 14:21:37 +00:00
ceriel
be64cfc96b use common() when possible 1988-10-20 13:28:02 +00:00
ceriel
a3cbfd56f3 switch to text segment before generating the label 1988-10-20 13:23:52 +00:00
ceriel
af63a7a349 many changes, mostly for efficiency 1988-10-20 13:06:10 +00:00
ceriel
79962c56cd Added common() routine 1988-10-20 13:01:04 +00:00
ceriel
cda1118bf8 Added obj_back/common.c 1988-10-20 12:59:21 +00:00
ceriel
0a5dadfe82 Use varargs.h for routine with variable number of args 1988-10-20 12:57:32 +00:00
ceriel
42604d1423 Added missing filenames 1988-10-20 12:56:08 +00:00
ceriel
1448010401 some fixes:
- use Malloc, Realloc instead of malloc, realloc
- generate common for un-initialized bss
- removed null-reference
1988-10-20 12:55:02 +00:00
ceriel
bac6e5ea24 Changed name of compiler to m2 1988-10-19 16:44:01 +00:00
ceriel
96ffa24a89 Added vars.s 1988-10-17 12:55:24 +00:00
ceriel
8e68139bd4 made a bit more portable 1988-10-17 10:38:30 +00:00
ceriel
7cc92f5e10 Added .distr 1988-10-14 16:47:39 +00:00
ceriel
a6f865db15 improved version, generating .o files with much less relocation records
and name table entries
1988-10-13 15:53:31 +00:00
ceriel
2b111a8ba6 delinted somewhat 1988-10-13 15:43:23 +00:00
dick
1cb464b8b8 driver and manual page added 1988-10-13 11:31:00 +00:00
dick
bcf83eb1c4 formats introduced in lint 1988-10-12 16:05:17 +00:00
dick
aa4e16a912 formats introduced 1988-10-12 15:49:11 +00:00
dick
1e38c979eb formats introduced 1988-10-12 15:32:32 +00:00
ceriel
85412f3759 many changes: optimize generated code somewhat,
reduce relocation-table size
1988-10-07 16:52:44 +00:00
ceriel
c6226c137e Added pascal.ign 1988-10-07 10:59:23 +00:00
ceriel
cceb8396d3 Added 1988-10-07 10:58:26 +00:00
ceriel
1dc34bca77 delinted 1988-10-07 10:26:37 +00:00
ceriel
c4323d1dc3 Took over addition of -d flag from Erik Baalbergen 1988-10-07 09:48:23 +00:00
ceriel
9d5b1173f8 modified bts2str to also escape double quotes 1988-10-05 16:19:42 +00:00
ceriel
5d6bd5f65f Initial revision 1988-10-05 13:29:42 +00:00
ceriel
fafba34a5c Initial revision 1988-10-04 14:27:35 +00:00
ceriel
086acdc527 some mods from Charles Lindsey 1988-10-04 13:59:51 +00:00
ceriel
ed6d0225e4 Initial revision 1988-10-04 13:41:01 +00:00
ceriel
95c1a91b24 Initial revision 1988-10-04 10:56:50 +00:00
ceriel
67668218c8 Initial revision 1988-10-04 10:46:47 +00:00
ceriel
3ce78f0ae5 Initial revision 1988-10-04 10:33:39 +00:00
ceriel
fbefe2f917 Also pass SRC 1988-10-04 10:04:37 +00:00
dick
36183c5310 simplification of e.out.h 1988-10-03 14:44:39 +00:00
ceriel
c38ac1ab87 many minor changes 1988-10-03 10:53:47 +00:00
ceriel
2ac6df159e Coercion from int to float is now always done compile time 1988-10-03 10:09:19 +00:00
dick
1e851471d7 wrong Makefile committed 1988-09-30 16:49:02 +00:00
dick
fba38acb21 testing enums in switches/cases 1988-09-30 16:43:04 +00:00
ceriel
a277584532 some fixes to procude faster :-) code 1988-09-30 16:13:44 +00:00
dick
35afcd8650 refinements in error reporting 1988-09-30 15:20:24 +00:00
dick
9334204e0f Initial commit 1988-09-30 11:45:14 +00:00
ceriel
3926ec04ab corrected a bit 1988-09-30 09:36:26 +00:00
ceriel
6f2d531f03 Also handle commons 1988-09-29 16:29:11 +00:00
ceriel
54037a42c5 Also handle commons 1988-09-29 16:22:48 +00:00
dick
7795cbe549 lint: additional type tests in expressions 1988-09-29 15:24:02 +00:00
ceriel
ebdabbcaee Initial revision 1988-09-28 16:47:47 +00:00
ceriel
9e8d7bc6dd fixes from bruce: there are four, not three types of pattern that the
routine findworst should look for
1988-09-27 11:16:04 +00:00
ceriel
eb533b6430 prevent multiple includes 1988-09-27 09:50:34 +00:00
ceriel
cd0de149ae prevent multiple includes 1988-09-26 15:11:25 +00:00
ceriel
7aa9ca2b6a made names more unique 1988-09-26 15:05:00 +00:00
dick
74e032ef1f crash() replaced by ASSERT() & NOTREACHED() in lint 1988-09-26 11:37:38 +00:00
dick
6ac1c9b938 reorganisation of lint code 1988-09-25 17:29:37 +00:00
ceriel
f68e907ee4 Added flag to generate SUN .o format 1988-09-23 14:55:27 +00:00
ceriel
18dbc71683 some improvements to manual page and interface 1988-09-22 16:09:18 +00:00
ceriel
a5d5091e31 Added l_ files to .distr 1988-09-21 13:32:24 +00:00
ceriel
cbc4ae9918 fixed l_dummy.c to also work for the C-compiler,
added lint.h to BigPars and SmallPars,
and added stuff for CODE_EXPANDER and PEEPHOLE to Makefile
1988-09-21 11:48:29 +00:00
dick
5844159c7b introduction of lint source code, governed by ifdef LINT 1988-09-20 16:44:27 +00:00
ceriel
a2464a4fa5 fix: resolve forward references if definition is needed in lookfor() 1988-09-20 13:31:57 +00:00
ceriel
efdbabf464 fixed: apparently, the profil system-call does not quite work as described
in the manual page?
1988-09-19 16:55:35 +00:00
ceriel
921d6885b1 fixed; did not work properly 1988-09-19 15:07:12 +00:00
dick
fe62ccb08d error messages and error handling 1988-09-16 23:19:50 +00:00
ceriel
47a9fdaaf1 Initial revision 1988-09-15 09:49:22 +00:00
ceriel
d54cf69538 Added floating point support 1988-09-14 14:06:31 +00:00
ceriel
02bd21e69e corrected 1988-09-14 14:05:11 +00:00
ceriel
5a8c037956 correction for update_ceg 1988-09-14 14:03:50 +00:00
ceriel
718f51e581 initialize oh_stamp fields of header 1988-09-13 09:11:54 +00:00
ceriel
57cc3be42b Added define for CODE_EXPANDER 1988-09-12 14:33:15 +00:00
ceriel
9ff66cb703 Added mechanism to generate C_out 1988-09-12 14:30:22 +00:00
ceriel
0e5807f791 corrected dependencies 1988-09-12 14:05:14 +00:00
ceriel
d2568b0659 Added C_insertpart.c 1988-09-12 14:03:51 +00:00
ceriel
28e8e8778b Added C_insertpart etc 1988-09-12 13:59:43 +00:00
ceriel
1f679b93c5 replaced relative includes by <> includes 1988-09-12 09:13:49 +00:00
ceriel
0f09afdd84 fix exit status 1988-09-09 11:36:57 +00:00
ceriel
a41d9f0a24 use varargs 1988-09-09 11:32:59 +00:00
ceriel
28c097f31b fix error count on error 1988-09-09 11:25:43 +00:00
ceriel
02974a16b0 renamed update to update_ceg, fixed create_ofiles to make sure that the
.c files are detectably newer
1988-09-08 11:43:03 +00:00
ceriel
b2aa988b11 declare SEGHOL 1988-09-08 10:26:18 +00:00
ceriel
293b38b458 Added support for new C_insertpart, C_beginpart, C_endpart functions 1988-09-08 10:24:16 +00:00
ceriel
729ee1f314 declare SEGHOL 1988-09-08 10:01:32 +00:00
ceriel
444bd51224 replaced all ::= by ==> 1988-09-07 14:47:46 +00:00
ceriel
74f80f9c80 correct exit status 1988-09-07 14:47:40 +00:00
ceriel
13b8bcce1a Added install entry 1988-09-07 13:54:26 +00:00
ceriel
9709fe4c0c replace spaces by tabs 1988-09-07 13:39:07 +00:00
ceriel
82bad462cd set_segment now generates legal code for SEGHOL; if used, the code
expander will complain
1988-09-07 13:20:03 +00:00
ceriel
a67cf334a5 DS and DE are not man macros 1988-09-07 10:13:36 +00:00
ceriel
13498986a1 DS and DE are not man macros 1988-09-07 10:01:59 +00:00
ceriel
fabbe9ed5f FIX: did not handle most of the 'end of basic block' instructions right;
many of them have effect on the stack, and this went by unnoticed
1988-09-07 09:20:37 +00:00
ceriel
871ef07410 return value sometimes was wrong 1988-09-06 15:34:47 +00:00
ceriel
f2546a2006 Extended to handle user libraries 1988-09-06 11:28:16 +00:00
ceriel
9be5dcca61 delinted somewhat 1988-09-05 15:51:35 +00:00
ceriel
b8e7db1e01 Added stty and gtty 1988-09-02 15:40:45 +00:00
ceriel
1d23e4485e Made to compile with DEBUG off 1988-09-02 13:55:54 +00:00
ceriel
1a8129513d fix: assertion was wrong 1988-09-02 13:52:11 +00:00
ceriel
a20ee91475 maybe I got it right this time! 1988-09-02 13:49:07 +00:00
ceriel
99d8085d66 fix: did not handle the case that a program module name and file name
differ
1988-09-02 12:01:53 +00:00
dick
3f3875fcfd #define PRIVATE; copyright message 1988-09-02 12:00:25 +00:00
ceriel
eaf39ba279 fix in fix: INN ZEQ and INN ZNE still were wrong 1988-09-02 11:39:58 +00:00
ceriel
806e8160f0 make somewhat safer 1988-09-01 10:07:02 +00:00
ceriel
ad172c3e1f improve line number administration 1988-08-31 09:24:28 +00:00
ceriel
8d4d176582 made safer 1988-08-30 12:52:09 +00:00
ceriel
dadec39ed9 Added bsearch 1988-08-30 12:47:45 +00:00
ceriel
b7131f8b03 fix: did not work properly when name != TERM 1988-08-30 12:34:40 +00:00
ceriel
bef927cf4a corrected references 1988-08-30 11:40:58 +00:00
ceriel
bdf7c5c339 better checks for recursion in tc= 1988-08-30 11:37:32 +00:00
dick
8633baee89 filename and linenumber info in more places 1988-08-29 15:51:48 +00:00
ceriel
d9c4ee208e fixed typo 1988-08-29 14:11:13 +00:00
ceriel
13d5cde23c minor clarification 1988-08-25 15:16:31 +00:00
ceriel
1c11a30ce1 Adapted for modula-2 1988-08-25 13:03:13 +00:00
ceriel
6587649fb6 ignore exit status of size 1988-08-24 11:39:57 +00:00
ceriel
641785930e ignore exit status of size 1988-08-24 11:15:40 +00:00
ceriel
bef33e9a40 ignore exit status of size 1988-08-24 10:49:24 +00:00
ceriel
b158ce86b2 remove empty-producing nonterminals 1988-08-23 16:05:19 +00:00
ceriel
52fc2ed2c2 Parameterize archiver 1988-08-23 13:16:38 +00:00
ceriel
11673c2e59 minor change: use int in array index 1988-08-23 12:54:16 +00:00
dick
78599e150a more modifications due to lint 1988-08-23 12:45:11 +00:00
ceriel
9b082e6d5a fixed INN ZEQ and INN ZNE patterns 1988-08-22 11:23:24 +00:00
ceriel
5273c6186c fixed problem with dlbdlb 1988-08-22 10:54:03 +00:00
ceriel
361d0c4300 Changes from Nigel Hall 1988-08-19 17:05:03 +00:00
ceriel
1f3954fc37 Changes from Nigel Hall 1988-08-19 16:46:22 +00:00
ceriel
f111bf8da1 generate new style constants 1988-08-19 16:41:49 +00:00
ceriel
87cf5beec5 made easier to patch 1988-08-19 14:29:04 +00:00
ceriel
0794791516 made easier to patch 1988-08-19 14:25:59 +00:00
ceriel
114ef74a6d make easier to patch 1988-08-19 14:20:03 +00:00
dick
f8dfcefb0b initial small modifications for lint 1988-08-19 13:55:22 +00:00
ceriel
5a62a2d8df removed not-used variable 1988-08-19 13:40:01 +00:00
ceriel
bcb2d9088f made easier to patch 1988-08-19 13:26:27 +00:00
ceriel
c0699bb7b1 Added ChPushBack 1988-08-19 13:07:20 +00:00
ceriel
c04ac84cf4 use varargs 1988-08-19 09:22:07 +00:00
ceriel
653b210c36 Adapted fort ACK 1988-08-19 09:21:29 +00:00
ceriel
744b87b988 adapted for ACK 1988-08-19 09:20:25 +00:00
ceriel
a0b2cc8722 remove files before linking 1988-08-18 16:36:14 +00:00
ceriel
35469909a3 some fixes 1988-08-18 15:32:47 +00:00
ceriel
5ba01b436c Initial revision 1988-08-18 14:33:57 +00:00
ceriel
a398ae906e Adapted for ACK 1988-08-18 13:48:49 +00:00
ceriel
de0b30db39 modified for ACK 1988-08-18 13:47:56 +00:00
ceriel
9bdc09f5b4 modified for ACK 1988-08-18 13:35:09 +00:00
ceriel
95241983c5 Added Makefile 1988-08-18 13:15:16 +00:00
ceriel
786323bab7 to make sure that directories are created ... 1988-08-18 13:12:39 +00:00
ceriel
7b827ec6d2 Adapted for ack 1988-08-18 11:46:05 +00:00
ceriel
07768e86c9 be a bit more precise in cleanup 1988-08-18 11:04:55 +00:00
ceriel
dca1b4f2b1 Somewhat adapted for ACK 1988-08-18 11:00:02 +00:00
ceriel
d9d3418f13 Added Action file 1988-08-18 08:50:31 +00:00
ceriel
26f9afe52c Added 1988-08-18 08:49:57 +00:00
ceriel
9e5d2b3d1c use Realloc instead of Srealloc 1988-08-15 15:27:29 +00:00
ceriel
1ad9eea353 do not use [ for test; no as portable 1988-08-15 09:31:08 +00:00
ceriel
2fce49e119 speeded up :-) 1988-08-11 22:02:53 +00:00
ceriel
9af2a750ea fixed typo 1988-08-11 15:59:35 +00:00
ceriel
57785c5d68 improved floating point handling 1988-08-11 14:57:39 +00:00
ceriel
fb6fa7321b speeded up again :-) 1988-08-11 14:50:18 +00:00
ceriel
f482b7e681 Added strtod.c, use it in atof 1988-08-11 12:49:06 +00:00
ceriel
5bdcf0067b leave maximum value if overflow trap is handled 1988-08-11 10:28:30 +00:00
ceriel
7056216262 ignore floating overflow/underflow 1988-08-11 09:55:22 +00:00
ceriel
80149f3b95 fix: the minimum exponent is 1, not 0! 1988-08-10 22:33:48 +00:00
ceriel
3170725aec corrected M_MAX_D 1988-08-10 16:40:48 +00:00
ceriel
5bd25f4545 prevent overflow 1988-08-10 15:54:15 +00:00
ceriel
5bde69d625 corrected 1988-08-10 15:18:37 +00:00
ceriel
919545a674 use new ecvt.c from C library 1988-08-10 11:21:40 +00:00
ceriel
8f6138bc82 improved/speeded up using new ecvt 1988-08-10 11:12:57 +00:00
ceriel
acf56ca878 fix 1988-08-10 10:41:15 +00:00
ceriel
029e141135 Added version for machines with proper 4-byte operations 1988-08-10 10:07:53 +00:00
ceriel
56af03984b Use other version of div_ext 1988-08-10 10:00:30 +00:00
ceriel
212f6f2494 new, much faster version 1988-08-10 09:14:43 +00:00
ceriel
2b7e8b3dfd fix: line number administration wrong in scan.c 1988-08-09 14:07:39 +00:00
ceriel
8581d89f9a makefile --> Makefile 1988-08-08 18:03:12 +00:00
dick
8a1d0dda76 many improvements 1988-08-07 22:55:20 +00:00
ceriel
2d394a2deb corrected exit status of script 1988-08-05 13:50:27 +00:00
ceriel
249d1a3e58 fixes for exit status 1988-08-05 12:48:21 +00:00
ceriel
959564cc60 also detect 0/0 1988-08-05 11:40:29 +00:00
ceriel
124ff779dd fix: >= and <= were wrong in constant expressions 1988-08-05 11:22:39 +00:00
ceriel
5e7b675797 cleaned up a bit 1988-08-04 18:10:34 +00:00
ceriel
b9d8cbb8ff forgot leading zero in front of . in F format 1988-08-04 15:48:34 +00:00
ceriel
bd545e78b2 gcvt was called with wrong precision 1988-08-04 15:48:20 +00:00
ceriel
45ecff07d3 fixed problem with 'if (array)' 1988-08-04 14:37:06 +00:00
ceriel
8b65bb004f problem fixed: number of digits displayed and/or format was sometimes wrong 1988-08-04 11:17:27 +00:00
ceriel
2d12b422e5 cleaned up a bit, and made add_ext and sub_ext proper entry points,
without preconditions on the arguments
1988-08-04 11:16:20 +00:00
ceriel
3d3b891371 some modifications to improve speed (sorry, I mean, make a bit less slow) 1988-08-03 23:31:40 +00:00
ceriel
83f9a870bf fixed 1988-08-03 19:24:55 +00:00
ceriel
6e8742c806 Added E, G, and g format 1988-08-03 16:29:30 +00:00
ceriel
4f7c65be18 fixed 1988-08-03 16:15:48 +00:00
ceriel
63ec52d94b moved getopt to stdio, because it uses it 1988-08-03 14:42:47 +00:00
ceriel
348214d8bf fixed again 1988-08-02 11:57:37 +00:00
ceriel
bec6ede79e correct exit status 1988-08-02 11:56:34 +00:00
ceriel
78aed05012 Modified for 4th distribution 1988-08-01 09:00:03 +00:00
ceriel
a6ebcce453 fix to fix 1988-07-29 19:22:48 +00:00
ceriel
be89a9fb3d fix in preprocessor part: macro invocation with parameterlist on the
next line did not work
1988-07-29 18:38:25 +00:00
ceriel
56cd9e62f7 prevent generation of movl/movq instruction with floating point constant.
movf/movd should be used instead
1988-07-29 10:09:55 +00:00
ceriel
fb29f51fa9 grep -s means different things on different systems; do not use it 1988-07-28 18:47:21 +00:00
ceriel
d85250553c Added possibility to disable installation of some languages or some machines 1988-07-28 18:43:26 +00:00
ceriel
4d89a39ce8 Use Pascal 1988-07-28 18:33:51 +00:00
ceriel
ce31ede8f0 fixed error in declaration of sprintf 1988-07-28 18:18:29 +00:00
ceriel
0f63db8dd0 Installation of interpreters should be done from global action file 1988-07-28 16:46:23 +00:00
ceriel
0a8f919179 Installation of interpreters should not be done here 1988-07-28 16:45:13 +00:00
ceriel
d2d6f5d6b3 fixed typo 1988-07-28 15:09:01 +00:00
ceriel
125c8864fe document comment sign in Action files 1988-07-28 11:28:29 +00:00
ceriel
e03183e926 BSD4.[23] could also run NFS, so added getdirent.s 1988-07-28 09:46:43 +00:00
ceriel
8773aea248 BSD4.[23] could also run NFS 1988-07-28 09:26:22 +00:00
ceriel
506328c48a corrected Makefiles 1988-07-28 08:37:37 +00:00
ceriel
fefbf5b254 removed em_path.h and local.h from .distr 1988-07-28 00:30:40 +00:00
ceriel
0590734d26 find out about operating system on foreign machines 1988-07-28 00:09:33 +00:00
ceriel
67036f7537 clean should remove int 1988-07-27 22:43:19 +00:00
ceriel
d21fd37c8d corrected for new TakeAction 1988-07-27 13:17:15 +00:00
ceriel
5aeef6edc9 mention port to XenixV3 1988-07-27 13:14:26 +00:00
ceriel
e20572161f distribute descr.src instead of descr 1988-07-27 12:56:45 +00:00
ceriel
4c7fbef54c Remove m2mm on clean 1988-07-27 09:28:31 +00:00
ceriel
6a21258874 Added some, because local.h and em_path.h now have a source 1988-07-27 08:32:19 +00:00
ceriel
6b3e6d55eb do not write over distribution files 1988-07-26 19:22:11 +00:00
ceriel
8c513bdd61 distribute Makefile 1988-07-26 19:08:46 +00:00
ceriel
34aed240fa distribute fe.src 1988-07-26 19:06:35 +00:00
ceriel
c83f8c47e9 and yet another ... 1988-07-26 15:57:34 +00:00
ceriel
c05ac211db fixed typo 1988-07-26 15:46:09 +00:00
ceriel
652919c4df removed obsolete comment 1988-07-26 15:15:01 +00:00
ceriel
3a373d158a Added pattern 1988-07-26 14:21:15 +00:00
ceriel
dd864f5541 declared errno 1988-07-26 13:04:24 +00:00
ceriel
21b0f7b626 yet another fix 1988-07-26 13:00:30 +00:00
ceriel
8d4bc3d9c8 fix from Leo van Moergestel: signed byte offset must fit in a byte 1988-07-26 11:02:13 +00:00
ceriel
bf097e934b fixed 1988-07-26 09:53:47 +00:00
ceriel
e09dccc3e0 Used new math lib of C to create new version of Mathlib 1988-07-25 16:41:51 +00:00
ceriel
b34adc2dda fixed typo 1988-07-25 12:30:52 +00:00
ceriel
59412cb405 Added math lib 1988-07-25 12:21:59 +00:00
ceriel
92ee34c7df fixed: call to atan changed into call to _atn 1988-07-25 11:41:19 +00:00
ceriel
9d607caeca mod to remove declarations in math.h 1988-07-25 11:40:57 +00:00
ceriel
150443adba Added a #ifndef for not defining functions 1988-07-25 11:32:46 +00:00
ceriel
c0c2f589ff replaced mathematical routines by our own 1988-07-25 11:26:26 +00:00
ceriel
08423d90ae replaced mathematical routines by our own 1988-07-25 11:13:26 +00:00
ceriel
dc85e632db merged with Michael Felts latest version 1988-07-25 10:46:15 +00:00
ceriel
f77c35733b Added some prints 1988-07-22 20:58:48 +00:00
ceriel
4e2b9f9c96 adf and sbf did not work with 0.0 1988-07-22 20:54:49 +00:00
ceriel
fbb51e80b2 Made to work under Microsoft Xenix V3.2 1988-07-22 19:34:07 +00:00
ceriel
b8880b3692 Initial revision 1988-07-22 19:01:13 +00:00
ceriel
05e7adc71d Added installation of math lib 1988-07-22 18:51:02 +00:00
ceriel
71095200c3 search -l libs here 1988-07-22 18:49:00 +00:00
ceriel
d0e64b1a4e search -l libs in i86 directory 1988-07-22 18:46:09 +00:00
ceriel
4d8fbfd272 Added installation of math lib 1988-07-22 18:30:44 +00:00
ceriel
104a9b17f5 Added .distr 1988-07-22 18:29:52 +00:00
ceriel
f5177fe3e9 Added math 1988-07-22 18:29:51 +00:00
ceriel
5b20bd5e65 Added math.h 1988-07-22 16:59:22 +00:00
ceriel
f75e68e3fe Initial revision 1988-07-22 16:53:29 +00:00
ceriel
15c6eb7d61 made easier to patch 1988-07-20 08:53:31 +00:00
ceriel
34d447ce0d some more fixes 1988-07-19 16:49:49 +00:00
ceriel
55a171a40e install new back-end instead of old 1988-07-19 10:14:22 +00:00
ceriel
f0b9aa4c85 the patterns inside #ifdef LONGEMPAT were wrong anyway, so deleted 1988-07-19 10:12:21 +00:00
ceriel
297e0835e8 Added CS info 1988-07-19 09:45:59 +00:00
ceriel
3a429ec99d improved i86 description 1988-07-18 17:10:43 +00:00
ceriel
7c36d1c241 M must indicate back-end used 1988-07-18 16:59:39 +00:00
ceriel
de43db22b3 made to work on small machines 1988-07-18 16:45:25 +00:00
ceriel
4dd3e8d897 made to work; contained too many dependencies on word/pointer size 1988-07-18 16:41:04 +00:00
ceriel
6c843a4bd5 Added flag to give stack size 1988-07-15 15:29:44 +00:00
ceriel
38a9e53338 simplified a little; does not seem to make much difference 1988-07-15 14:57:43 +00:00
ceriel
bc129af82b several fixes 1988-07-15 13:00:43 +00:00
ceriel
8a59c99c03 fixed problem with temporary DEALLOCATES: sometimes a register was
used for stacking, that was only temporarily deallocated
1988-07-15 11:23:44 +00:00
ceriel
69b615e6a5 improved trap handling 1988-07-15 11:17:17 +00:00
ceriel
6d2796fcbd fixed problem with temporary DEALLOCATES: sometimes a register was
used for stacking, that was only temporarily deallocated
1988-07-15 11:12:13 +00:00
ceriel
c115dad017 Also hide name b64_sft 1988-07-14 11:11:48 +00:00
ceriel
349eb4d9e2 make to compile on Xenix 1988-07-14 10:11:01 +00:00
ceriel
89b5b9f5de adapted some sizes 1988-07-14 09:33:30 +00:00
ceriel
915917adaa make to work again 1988-07-14 09:15:21 +00:00
ceriel
734bacbdb3 fixed problem with D scale factor 1988-07-13 20:13:17 +00:00
ceriel
39c3234574 did not work properly; assumet it could remove sign AFTER converting to
machine dependant order
1988-07-13 20:00:22 +00:00
ceriel
bf6e820ee9 added -L flag 1988-07-13 18:32:06 +00:00
ceriel
0207afb434 use sun3 command to translate 1988-07-13 18:31:57 +00:00
ceriel
a12836c8fb Added -L flag 1988-07-13 18:24:07 +00:00
ceriel
dc7c1bba96 pass some size flags to basic compiler 1988-07-13 18:04:01 +00:00
ceriel
a75d2768dc changed text 1988-07-13 17:44:14 +00:00
ceriel
98d9abda3b changed text; did not work properly 1988-07-13 17:39:20 +00:00
ceriel
2ad0e541eb Added some erase() calls; aiaiai 1988-07-13 17:35:01 +00:00
ceriel
dc57d08c82 fixed 1988-07-13 16:55:48 +00:00
ceriel
c259e2c9f8 make trap handling more consistent 1988-07-13 14:29:32 +00:00
ceriel
0653065fd6 other trp routine 1988-07-13 14:21:13 +00:00
ceriel
a11765357b updated; the int command now is an interpreter 1988-07-13 13:51:57 +00:00
ceriel
268d90ca5f Added some erase() calls; aiaiai 1988-07-13 13:48:38 +00:00
ceriel
30f7f803ed Added debug statement 1988-07-13 13:43:45 +00:00
ceriel
463c90dfd3 fix: strhp should do brk system call 1988-07-13 12:51:57 +00:00
ceriel
84ab825b67 should not result in commons; does not work with some ranlibs 1988-07-12 20:34:16 +00:00
ceriel
b7f638782c some minor fixes 1988-07-12 20:16:13 +00:00
ceriel
04dbb2c2bc corrected error: name is now xenix3 1988-07-12 16:46:39 +00:00
ceriel
2e1d544984 output with better layout 1988-07-12 15:02:38 +00:00
ceriel
558d813ef0 made to compile on Xenix 1988-07-12 14:19:03 +00:00
ceriel
5a3e24fc1e do not use shell meta characters in dependents; some makes do not like it 1988-07-12 11:10:31 +00:00
ceriel
d466552e7e updated dependencies 1988-07-11 19:22:19 +00:00
ceriel
7e9fedce77 don't use our malloc in cpp on small machines 1988-07-11 15:01:12 +00:00
ceriel
472bc43825 try another SBRK 1988-07-11 14:06:11 +00:00
ceriel
ccf4b448d7 fixes for Xenix 1988-07-11 13:24:32 +00:00
ceriel
afbb8938b9 fixes for Xenix 1988-07-11 13:18:43 +00:00
ceriel
1a271f659a updated dependencies 1988-07-11 12:57:24 +00:00
ceriel
14a839fc24 fixes for Xenix 1988-07-11 12:53:01 +00:00
dick
c72e648557 various improvements 1988-07-08 22:24:06 +00:00
ceriel
afe2062edd check results in shell script 1988-07-08 16:10:17 +00:00
ceriel
f2e3177b5c don't include too much 1988-07-08 15:51:27 +00:00
ceriel
43a73310fd declare mktemp 1988-07-08 15:31:32 +00:00
ceriel
9cabdd16fe Split in several files. Did not compile on Xenix 1988-07-08 13:57:07 +00:00
ceriel
bcc1934a69 Added some extern delcarations; without them, it did not compile on Xenix 1988-07-08 13:52:52 +00:00
ceriel
dbdb5849b6 use $(CC) instead of cc 1988-07-08 11:37:17 +00:00
ceriel
a4baed5eb5 use system id from local.h 1988-07-08 10:37:00 +00:00
ceriel
2e7fadb731 Added indication of operating system 1988-07-08 10:33:53 +00:00
ceriel
2dceb157c4 indicate operating system in local.h 1988-07-08 10:33:06 +00:00
ceriel
d9559ad781 we were lucky, but - indicates a range; corrected 1988-07-08 10:29:48 +00:00
ceriel
09e829b33e keap type names different from others; some compilers don't like it 1988-07-08 09:14:04 +00:00
ceriel
e87f06ea4f fixed typo 1988-07-07 18:45:13 +00:00
ceriel
4095bfa64b do not try to install Occam lib on non-BSD4.2 systems 1988-07-07 16:46:27 +00:00
ceriel
71728b49f5 only try to install Occam lib on Berkeley 4.2 system 1988-07-07 15:13:16 +00:00
ceriel
95bbc6abd6 fix: was wrong with constants causing overflow 1988-07-07 15:02:47 +00:00
ceriel
8a43e17be2 fix for constants 1988-07-07 14:31:29 +00:00
ceriel
38122bfe30 print longs with %ld 1988-07-07 14:19:16 +00:00
ceriel
54dc9b8900 bug fix: an array was declared too small 1988-07-07 10:55:52 +00:00
ceriel
7bc0e23c09 removed the result3 variable; it was not used anymore 1988-07-07 09:59:32 +00:00
ceriel
f5bbaa7553 removed temp file 1988-07-06 18:18:46 +00:00
ceriel
ae17168585 removed cvf.s 1988-07-06 17:44:27 +00:00
ceriel
0e62a84733 fixed; did not work for vax 1988-07-06 13:10:24 +00:00
ceriel
78a021cb3e fixed syntax error 1988-07-06 10:09:18 +00:00
ceriel
d3925a5bd4 fix in english text 1988-07-06 09:52:49 +00:00
ceriel
7653d36642 fixed previously introduced error 1988-07-06 09:43:05 +00:00
ceriel
6e9022e947 made to fit on PDP-11 ... 1988-07-05 19:06:40 +00:00
ceriel
316c0b3d32 forgot C_magic 1988-07-05 18:27:10 +00:00
ceriel
68effeafba made to fit on PDP-11 1988-07-05 18:06:00 +00:00
ceriel
b5a9790ce4 don't use our malloc on small machines 1988-07-05 18:00:43 +00:00
ceriel
e94475ef2b removed faulty.h from makefile 1988-07-05 16:21:05 +00:00
ceriel
a752d3f32b identifier name clash resolved 1988-07-05 16:05:11 +00:00
ceriel
86648d7375 unsigned long is not portable 1988-07-05 15:31:33 +00:00
ceriel
f6c0b80be8 made to work 1988-07-05 14:12:26 +00:00
ceriel
a78659a463 print memory usage as unsigned 1988-07-05 14:07:19 +00:00
ceriel
d074b4a348 spaces replaced by tabs 1988-07-05 14:05:24 +00:00
ceriel
dc2a85bc71 comment sign at begin of line 1988-07-05 12:56:43 +00:00
ceriel
a92ac5c21d handle memory better 1988-07-05 11:51:47 +00:00
ceriel
7b873fea90 improved; delayed frees did not work anyway 1988-07-05 11:50:11 +00:00
ceriel
92aeedd951 don't use stdio.h 1988-07-05 10:53:53 +00:00
ceriel
983ac6cf8a changed order in archive 1988-07-05 09:12:07 +00:00
ceriel
9091ad7f3f make to work 1988-07-04 16:37:46 +00:00
dick
9b42ef5caa Initial entry, txt1 oversight 1988-07-04 15:30:12 +00:00
ceriel
572a9546cd removed README 1988-07-04 15:24:24 +00:00
ceriel
4379ed585f Added distr entry 1988-07-04 14:55:22 +00:00
ceriel
ebd69e172a made to work 1988-07-04 13:41:47 +00:00
ceriel
b7c324b01c fixed, new basic compiler, new flag for EGO 1988-07-04 13:39:15 +00:00
ceriel
c75fa5925b updated for new Basic compiler 1988-07-04 13:19:09 +00:00
ceriel
5d52e2b5a6 updated 1988-07-04 11:45:53 +00:00
ceriel
08fd084d59 Initial revision 1988-07-04 11:45:41 +00:00
ceriel
e79e905cdb corrected some more 1988-07-04 11:44:03 +00:00
ceriel
a693896a67 several fixes for new basic compiler 1988-07-01 17:30:06 +00:00
ceriel
4d9965a774 allow for three digits in exponent 1988-07-01 11:56:08 +00:00
ceriel
d93436cb6b Also export LONGREAL routines 1988-06-30 16:32:54 +00:00
ceriel
187f17f43a mods to handle forward references better 1988-06-30 14:50:30 +00:00
ceriel
8202d44a05 corrected minor problem 1988-06-30 09:19:06 +00:00
ceriel
8fbc212895 fixed; did not compile 1988-06-29 16:48:07 +00:00
ceriel
00b31876cc only change sign when value is not 0 1988-06-29 16:34:40 +00:00
ceriel
36ae5000a7 fixed bug with linenumber counting 1988-06-29 14:05:37 +00:00
ceriel
067ab0d05d fixed typo 1988-06-29 13:13:49 +00:00
ceriel
9dd236bffd small fix 1988-06-29 10:49:24 +00:00
ceriel
8e9dce7bec removed some lint complaints 1988-06-28 14:41:02 +00:00
ceriel
c61f3ed629 corrected lint entry 1988-06-28 14:36:21 +00:00
ceriel
948174dd27 removed some lint complaints 1988-06-28 13:55:25 +00:00
ceriel
21197dd8c2 removed some lint complaints 1988-06-28 13:43:54 +00:00
ceriel
150d2431fe use system module for system calls 1988-06-28 11:20:50 +00:00
ceriel
40b8726ecd Added sys_rename 1988-06-28 11:12:18 +00:00
ceriel
d365acbd47 do LLgen after modules 1988-06-28 11:00:54 +00:00
ceriel
1b75723b19 Added SMALL for small unknown machine 1988-06-28 10:20:07 +00:00
ceriel
156412be9a Added some code for small unknown machine 1988-06-28 10:19:23 +00:00
ceriel
2f3c6e4a2e get some info from ACK include files 1988-06-27 15:21:37 +00:00
ceriel
9c3ce80fb2 Added interpreter 1988-06-27 15:14:34 +00:00
ceriel
07912d18d3 do not install interpreter on small machines 1988-06-27 15:14:31 +00:00
ceriel
800be56601 Added interpreter 1988-06-27 15:08:38 +00:00
ceriel
f6d7db2bdb Added interpreter 1988-06-27 15:00:08 +00:00
ceriel
fb5eecba04 More adaptions for ACK 1988-06-27 14:54:40 +00:00
ceriel
56b8473042 improved distr entry 1988-06-27 14:52:18 +00:00
ceriel
dc7180fb8f Added interpreter 1988-06-27 14:51:59 +00:00
ceriel
a4671b79b1 Put int.1 in this directory 1988-06-27 14:48:30 +00:00
ceriel
4e36d0ac51 Adapted for ACK 1988-06-27 14:40:29 +00:00
ceriel
f31e92bbcc for the time being, do not pass IP_SPEC to the Makefile in switch;
this does not work with relative paths
1988-06-27 11:49:17 +00:00
ceriel
64271b505a added ACK entries to Makefile 1988-06-27 11:08:04 +00:00
ceriel
671fe64a6c added ACK entries to Makefile 1988-06-27 10:58:44 +00:00
ceriel
1a565dad5d added ACK entries to Makefile 1988-06-27 10:51:16 +00:00
dick
1fda68d3e8 Proper place for directory test 1988-06-24 15:59:07 +00:00
dick
bcb49cc514 Initial entry 1988-06-24 15:40:41 +00:00
ceriel
1217af0c61 LLscan either macro or function 1988-06-24 14:55:27 +00:00
ceriel
4a9acf244f minor mod: name change 1988-06-24 14:28:13 +00:00
ceriel
8b96bf6029 inline scan 1988-06-24 14:26:35 +00:00
ceriel
76ea85dedd generate #define for LL_LEXI in every file 1988-06-24 14:21:07 +00:00
ceriel
953cf6a1f4 fixed typos 1988-06-24 13:21:37 +00:00
ceriel
0d3146f70f modified distance function somewhat 1988-06-24 12:03:02 +00:00
ceriel
ff186b2daa modified generation of token mapping somewhat 1988-06-24 11:48:10 +00:00
ceriel
52dcb766dc fixed Makefile 1988-06-24 09:37:54 +00:00
ceriel
9f855f1fc5 some tables are static now 1988-06-24 09:32:15 +00:00
ceriel
7df54e099d hide some names 1988-06-24 09:31:28 +00:00
dick
e9258fbd87 Initial entry 1988-06-22 21:48:19 +00:00
ceriel
e5f325e6cd fixed panic mode 1988-06-22 18:47:48 +00:00
dick
ac4b6bf117 Initial entry 1988-06-22 17:09:12 +00:00
ceriel
7e70346612 Updated to dense switches generation 1988-06-22 17:04:52 +00:00
dick
0d49fd4227 Initial entry 1988-06-22 16:57:09 +00:00
ceriel
100ec25991 Added code to generate dense switches 1988-06-22 16:23:36 +00:00
ceriel
0f5a17403c distance routine improved a little; still not safe! 1988-06-22 16:22:07 +00:00
dick
d7c6678177 Initial entry 1988-06-22 16:22:00 +00:00
ceriel
3c233a3f53 Added some patterns to evaluate constant shifts 1988-06-22 13:47:57 +00:00
ceriel
b31dc52c10 handle SLU like SLI 1988-06-22 11:31:45 +00:00
ceriel
f33d54412b a minor fix 1988-06-22 10:56:04 +00:00
ceriel
ca8e52fea5 Added some code to reduce SLI, then decided against it 1988-06-22 10:41:52 +00:00
ceriel
c4d0c0c3c6 when checking for array computations with SLI, also check at the ADS! 1988-06-21 16:49:52 +00:00
ceriel
a1690bf1e9 corrected 1988-06-21 16:20:59 +00:00
ceriel
e1a98f17c9 better info for SLI 1988-06-21 16:10:19 +00:00
ceriel
4eec355351 made reading of list from description file a bit more general 1988-06-21 15:31:51 +00:00
ceriel
d2cc22092b run peephole optimizer after inline substitution 1988-06-21 15:20:49 +00:00
ceriel
cd8164e86e lay-out fix 1988-06-21 15:20:01 +00:00
ceriel
fbffc9770a Added ACK standard entries 1988-06-20 15:52:55 +00:00
ceriel
fdd774693f Initial revision 1988-06-20 12:46:49 +00:00
ceriel
21a9b1c1b5 Initial revision 1988-06-20 11:43:45 +00:00
ceriel
b14ab1d45b Added latest change from kaashoek 1988-06-20 11:40:31 +00:00
ceriel
1afaec236a Initial revision 1988-06-20 11:26:47 +00:00
ceriel
9f25162641 Initial revision 1988-06-20 11:21:01 +00:00
ceriel
e182f29619 Added .distr 1988-06-20 11:20:13 +00:00
ceriel
97c649da9e Initial revision 1988-06-20 11:13:07 +00:00
ceriel
74b58db6bf corrected dependancy list 1988-06-16 17:04:59 +00:00
ceriel
4116db64fd some cosmetic changes 1988-06-16 15:06:09 +00:00
ceriel
5dd2d2605b made bittable dynamic 1988-06-16 13:46:38 +00:00
ceriel
63d583638b made bittable dynamic 1988-06-16 13:24:10 +00:00
ceriel
31d237ec4c Minor adaptions to comments 1988-06-16 11:44:31 +00:00
ceriel
614ae56921 Added doc for new IL option 1988-06-16 10:49:45 +00:00
ceriel
8d5e142580 Add option to global optimizer, to indicate that it is offered the
whole program
1988-06-16 09:59:25 +00:00
ceriel
08da350be9 Added option for temporary directory 1988-06-16 09:57:59 +00:00
ceriel
77471a7573 Added option to indicate that whole program is offered 1988-06-16 09:41:51 +00:00
ceriel
66da5d309f updated 1988-06-16 09:40:09 +00:00
ceriel
c775f4cfe0 be a bit more optimistic about gain for pointer registers 1988-06-15 15:28:10 +00:00
ceriel
951d25e716 only check duplicate ms_emx 1988-06-15 15:25:50 +00:00
ceriel
fbfbb5e82d Some improvements 1988-06-15 13:15:41 +00:00
ceriel
7c497d0ef4 Added target optimizer 1988-06-14 09:43:11 +00:00
ceriel
210343a7aa Added target optimizer 1988-06-14 09:29:44 +00:00
ceriel
8a49ace78d Initial revision 1988-06-14 09:22:51 +00:00
ceriel
d6c4d4a6d5 corrected 1988-06-13 18:01:47 +00:00
ceriel
98eadc151e made nbits a long 1988-06-13 17:57:39 +00:00
ceriel
e4add7431d give some more info on global optimizer 1988-06-13 15:57:21 +00:00
ceriel
330213ca7e larger bittable 1988-06-13 15:29:32 +00:00
ceriel
316b23efff linenumber in long instead of short 1988-06-13 15:28:19 +00:00
ceriel
346587163b made to compile on system V 1988-06-13 15:01:54 +00:00
ceriel
d5fdfc4320 Added pattern for ASS 4 1988-06-13 13:42:39 +00:00
ceriel
8c7759ff53 make interface new_stackptr cleaner 1988-06-13 10:34:14 +00:00
ceriel
70bda146f1 Added short-hand for C_cal+C_asp, made interface new_stackptr cleaner 1988-06-13 10:29:36 +00:00
ceriel
dc48b7545f don't throw away external procedures 1988-06-10 15:39:05 +00:00
ceriel
a38f239dd0 tolower was called without checking for isupper; adapted 1988-06-10 14:28:32 +00:00
ceriel
b2786e0606 adaptions for generation of compiler with embedded code-generator 1988-06-10 09:17:45 +00:00
ceriel
3f17466ef1 improved error messages with opaque types 1988-06-09 11:39:11 +00:00
ceriel
4ce29d725f fixed problem with ReOrganize 1988-06-09 09:16:46 +00:00
ceriel
25ddfd7bad changed behaviour of Allocate(..., 0) 1988-06-08 09:22:31 +00:00
ceriel
943a2dc793 changed a comment 1988-06-07 12:34:04 +00:00
ceriel
b806a90bc9 prevent core dump when e.out file too large 1988-06-07 12:17:00 +00:00
ceriel
a1aaae55f2 corrected CFU 1988-06-07 11:08:55 +00:00
ceriel
f1ded7a2ec fixed problem that was introduced by fix of alignment problem 1988-06-06 13:02:41 +00:00
ceriel
0fa0bcd0bd Added code for new LOI/STI opcodes 1988-06-06 10:30:57 +00:00
ceriel
568a9ee392 Added opcodes for LOI/STI with size >= 32767 1988-06-06 10:10:27 +00:00
ceriel
c0442c7307 fixed em.c: call lib/em44 instead of lib/int44 ... 1988-06-03 16:13:57 +00:00
ceriel
97383e7b1d corrected 1988-06-03 14:25:26 +00:00
ceriel
345cb8c96d improved test 82 1988-06-03 10:42:07 +00:00
ceriel
76707055ff corrected cap.c 1988-06-03 09:36:08 +00:00
ceriel
343358d3a7 removed faulty.h, updated Parameters 1988-06-03 09:33:29 +00:00
kaashoek
57f834b07f mach.h table for generating assembly added 1988-05-31 17:00:23 +00:00
kaashoek
6a12a113ff bug removed 1988-05-31 14:12:35 +00:00
kaashoek
aa5a8fbcc2 grammar changed 1988-05-31 14:05:41 +00:00
kaashoek
c708b78cd0 *** empty log message *** 1988-05-31 13:41:03 +00:00
kaashoek
27b2b08bee *** empty log message *** 1988-05-31 13:22:14 +00:00
kaashoek
03bbb2c359 *** empty log message *** 1988-05-31 13:20:28 +00:00
kaashoek
c832d740fb skip traling spaces by operands 1988-05-31 13:16:48 +00:00
kaashoek
e79286b854 The file 'data.h' must also be included. 1988-05-31 12:56:26 +00:00
kaashoek
d30180a80d Execute_mnemonic() is changed so it won't loop when it can't find the
assembly-mnemonic in the as_table.
1988-05-31 12:54:30 +00:00
kaashoek
eb89b840e8 ::= replaced by ==> 1988-05-31 09:38:26 +00:00
dick
0a1fbbfb0d Initial version 1988-05-30 17:17:16 +00:00
kaashoek
feeda99b17 Zorgen dat de prioriteit van de 'distance' goed is; haakjes om de expressie
zetten
1988-05-29 15:22:18 +00:00
kaashoek
299c3ebe69 Quotes en back-slashes moeten ook speciaal behandeld wordeni in strings. 1988-05-29 13:55:56 +00:00
kaashoek
55c6b2d5ee Subtiel foutje met haakjes tellen, twee regels moeten omgedraaid worden. 1988-05-29 13:53:57 +00:00
kaashoek
8b32a5de71 Quotes en back-slahses moeten ook speciaal behandeld worden in strings. 1988-05-29 13:52:54 +00:00
kaashoek
d32d3c6199 Initial revision 1988-05-27 17:07:58 +00:00
kaashoek
be42070d0f Foutje met new-line karakters in een string, precies hetzelfde als bij eval. 1988-05-27 15:25:30 +00:00
kaashoek
c282fc8501 Stom tikfoutje: sitchseg ipv. switchseg. 1988-05-27 14:08:29 +00:00
kaashoek
400defa7c7 De routines C_xxx_fcon() stonden per ongeluk tussen commentaar haken. 1988-05-27 13:58:00 +00:00
kaashoek
3cc7689d9a process_mnemonic() van plaats verhuisd zodat deze nu aangeroepen wordt voor
het zoeken. Dit maakt het mogelijk om de gebruiker gekke karakters uit een
mnemonic te laten verwijderen, bijv. bij 68020 "move.l" --> "move_l".
1988-05-27 10:48:34 +00:00
kaashoek
0ebd3ad458 Stom foutje in vorige verbetering 1988-05-27 09:30:05 +00:00
kaashoek
cb9f636da0 skip_string() gewijzigd zodat ook instructies met een '.' erin geaccepteerd
worden. Komen voor in de 68020 assembler, bijv. "move.l", "add.l", etc. .
1988-05-27 09:21:37 +00:00
kaashoek
b2027b7abc Bij het vervangen van @text2() door print-statements zorgen dat het resultaat
ook 1 statement is: zet er '{' en '}' omheen.
Tevens kunnen de argumenten van een @reloc4() over meerdere regels staan. Dit
levert problemen met het in een string zetten om ze te printen, alle newlines
vervangen door '\\n'.
1988-05-27 08:56:47 +00:00
kaashoek
d3bef1e04d final version 1988-05-16 13:16:03 +00:00
kaashoek
ac91640837 16/5 1988-05-16 10:51:32 +00:00
kaashoek
0a12e7d211 Initial revision 1988-05-16 10:51:23 +00:00
kaashoek
85339394aa Initial revision 1988-05-16 10:32:30 +00:00
ceriel
b4d127ff47 changed int?? into em?? 1988-05-06 17:40:44 +00:00
ceriel
10c259ad82 some last-minute minor changes 1988-05-06 17:03:30 +00:00
ceriel
14c03d53f0 found a %D; replaced by %ld 1988-05-06 17:03:06 +00:00
ceriel
bdff3addb3 changed int?? to em?? 1988-05-06 13:46:55 +00:00
ceriel
43aff0b259 check that files can be created 1988-05-04 16:49:58 +00:00
ceriel
51f357afb9 small fix in sigvec 1988-05-04 16:16:41 +00:00
ceriel
e230a42aa8 previous change was wrong 1988-05-04 10:14:49 +00:00
ceriel
46080c31cd Added use of -T option 1988-05-04 10:14:48 +00:00
ceriel
7b1bb24911 minor update 1988-05-03 15:17:13 +00:00
kaashoek
d299217a51 more comments from Dick and Henri 1988-05-03 15:15:28 +00:00
ceriel
5bf2eb6040 fixed very minor bug: strings should be aligned on word_boundaries 1988-05-03 15:04:30 +00:00
ceriel
89d7ba29f0 Added some comments 1988-05-03 13:17:20 +00:00
kaashoek
dee0d47388 consistent naming 1988-05-03 13:03:07 +00:00
kaashoek
6b2c225b06 output_back 1988-05-03 12:55:48 +00:00
kaashoek
d8ba8bc12e close_back() 1988-05-03 12:55:30 +00:00
kaashoek
7a33d9080b open_back() 1988-05-03 12:54:52 +00:00
ceriel
6af16b8e38 declare some variables in init.c instead of runtime startoff 1988-05-03 12:44:32 +00:00
ceriel
d27ef4116e only increment line number on ASCII LF 1988-05-03 11:30:25 +00:00
ceriel
ca25759c74 added comment 1988-05-03 09:53:52 +00:00
ceriel
72e6d24d06 improved checking 1988-05-03 09:03:19 +00:00
ceriel
6f42d28e7a Added a stripped version of the Unix module 1988-05-03 08:33:33 +00:00
ceriel
c5b70d2e50 Exchanged role of ALLOCATE/Allocate 1988-05-03 08:20:11 +00:00
ceriel
1d568b95e2 minor mod 1988-05-02 15:51:29 +00:00
ceriel
1c5701f214 did not compile with NOPP defined 1988-05-02 15:37:13 +00:00
ceriel
f806b39ad4 did not compile with USE_TMP not defined 1988-05-02 14:40:35 +00:00
ceriel
c5b91b4dcf minor fixes 1988-05-02 14:13:25 +00:00
ceriel
c961ef5836 Added some OK commands and some #ifdefs 1988-05-02 13:25:38 +00:00
ceriel
4304a7fe5b fixed another typo 1988-05-02 12:35:39 +00:00
ceriel
499a4b34d6 mention limitation of Modula-2 on small machines 1988-05-02 11:11:04 +00:00
ceriel
69c8c8dc2e don't try to install Modula-2 libraries for big machines on small machines 1988-05-02 11:05:54 +00:00
ceriel
9d4cc0d74f minor mods 1988-05-02 10:33:30 +00:00
ceriel
0af37472ad fixed typo 1988-05-02 08:46:58 +00:00
ceriel
6fcb4dfd95 make to fit on PDP-11 again 1988-04-29 15:41:38 +00:00
ceriel
b21598c031 Added some unix signal handling 1988-04-29 14:38:36 +00:00
ceriel
e0654fc5fc Added another trap number 1988-04-29 12:37:02 +00:00
ceriel
fdd075c50f updated somewhat; deleted int 1988-04-29 11:16:49 +00:00
ceriel
d34d02fcca deleted int 1988-04-29 11:00:40 +00:00
ceriel
8b649ecc21 improved clean entry 1988-04-29 09:22:57 +00:00
ceriel
9b2966ca1a types of case-labels are base-types 1988-04-29 09:16:51 +00:00
ceriel
561a780366 Fixed again to work with 'indir' 1988-04-29 09:15:01 +00:00
ceriel
6cfe20c7dc mentioned another problem 1988-04-29 09:13:55 +00:00
ceriel
369e387e0e make to work with modified installation script 1988-04-29 09:12:29 +00:00
ceriel
9a61b82849 Added floating point support 1988-04-28 15:16:07 +00:00
ceriel
c6f91b51b3 don't allow allocates bigger than MAX(INTEGER) 1988-04-28 15:13:44 +00:00
ceriel
432712e44f be careful about overflow in con_float 1988-04-28 15:03:03 +00:00
ceriel
a2f49cbf98 corrected 1988-04-28 14:50:27 +00:00
ceriel
00917d06dc be careful about overflow in con_float 1988-04-28 14:46:11 +00:00
ceriel
e2c858b63b corrected the overflow checks 1988-04-28 14:21:55 +00:00
ceriel
086aa0d03b updated to current situation 1988-04-28 13:38:24 +00:00
ceriel
24ae923037 improved printf 1988-04-28 11:16:50 +00:00
ceriel
2fa030438a improved trap handling 1988-04-27 18:11:33 +00:00
ceriel
7e90e9638c corrected brk and sbrk somewhat 1988-04-27 18:02:59 +00:00
ceriel
154afef12f almost fixed problem with cfu 1988-04-27 16:57:43 +00:00
ceriel
ff5eb6dffc improved; now also runs with interpreter 1988-04-27 13:01:25 +00:00
ceriel
9e0608ba39 updated to different default action of TakeAction 1988-04-27 11:34:33 +00:00
ceriel
e74f524caf Allow for (more) complex shell commands in parameter 1988-04-27 11:30:13 +00:00
ceriel
e131a49d44 clean entry should not throw away distributed files 1988-04-27 10:57:37 +00:00
ceriel
dba48d554c Added termcap.c 1988-04-26 18:23:40 +00:00
ceriel
502922be9b updated dependencies 1988-04-26 16:15:25 +00:00
ceriel
ebf1941182 updated dependencies 1988-04-26 16:03:36 +00:00
ceriel
0ac5bd7e39 generate more register messages 1988-04-26 15:33:48 +00:00
ceriel
12626e6e9e Initial revision 1988-04-26 14:33:11 +00:00
ceriel
931d1bcce5 updated smoewhat 1988-04-26 14:21:10 +00:00
ceriel
a9413854b5 updated smoewhat 1988-04-26 14:11:05 +00:00
ceriel
e53a0da31e made epsd 1e-14 instead of 1e-17 1988-04-26 14:10:55 +00:00
ceriel
f8dfa6912f fixed: did not compute hexadecimal numbers right 1988-04-26 13:47:02 +00:00
ceriel
ef0f28404f Added comment 1988-04-26 13:04:04 +00:00
ceriel
b47bff8820 corrected 1988-04-26 11:43:23 +00:00
ceriel
08ccbf93d5 better error checking in Storage module 1988-04-26 11:25:36 +00:00
ceriel
fa094cdbb9 fixed hexadecimal character class 1988-04-26 10:51:50 +00:00
ceriel
944eba8d0f corrected 1988-04-26 10:49:07 +00:00
ceriel
10d522e388 better argument checking of standard functions 1988-04-26 10:14:01 +00:00
ceriel
ef816a643e Added many tests; probably still not enough 1988-04-25 18:20:49 +00:00
ceriel
d0ec418243 fixed bug: did not convert 0 right 1988-04-25 18:13:32 +00:00
ceriel
61825f8281 fixed bug in SIM and SIG 1988-04-25 17:05:36 +00:00
ceriel
86ce362679 improved layout with varargs 1988-04-25 16:24:42 +00:00
ceriel
375b6fb802 improved layout 1988-04-25 16:17:29 +00:00
ceriel
ca8e3270fc fixed; va_end(list) should be va_end(ap) 1988-04-25 15:31:58 +00:00
ceriel
7586aabf7d generate scope info for functions 1988-04-25 12:55:25 +00:00
ceriel
45a63c6bf1 align on ints instead of shorts 1988-04-25 10:41:33 +00:00
ceriel
e84d183e69 dont generate .data4 1988-04-25 10:31:33 +00:00
ceriel
760d905c6d Added TableHandl.def 1988-04-25 09:28:10 +00:00
ceriel
3aac0be31e made ioctls to work better on sun 1988-04-22 19:41:22 +00:00
ceriel
43398647a8 made to look better on our laser printer 1988-04-22 18:59:19 +00:00
ceriel
9a8ed6575c corrected wait systemcall 1988-04-22 18:49:13 +00:00
ceriel
aea47d7feb conversion to our assembler was not complete 1988-04-22 18:44:28 +00:00
ceriel
74e568770f conversion to our assembler was not complete 1988-04-22 18:37:59 +00:00
ceriel
ad145c4f90 fixed to not accept dots in numbers 1988-04-22 18:34:22 +00:00
ceriel
0d829c8edc restore external base, just to be sure 1988-04-22 17:19:40 +00:00
ceriel
1e2ffde798 restore external base, just to be sure 1988-04-22 16:54:58 +00:00
ceriel
3897470ab5 minor fix 1988-04-22 16:19:56 +00:00
ceriel
94d38fc875 main should return value 1988-04-22 16:00:01 +00:00
ceriel
02b5135b96 corrected; did some shifts that have undefined result 1988-04-22 15:49:20 +00:00
ceriel
de3b23ad1b avoid use of modf; not portable 1988-04-22 14:17:34 +00:00
ceriel
6253bb71b7 avoid use of modf; not portable 1988-04-22 14:11:55 +00:00
ceriel
873fd8d355 corrected; sometimes lookahead would fail 1988-04-22 14:02:43 +00:00
ceriel
b37c3d8197 some more actions for making distr 1988-04-22 09:39:50 +00:00
ceriel
3a86bffb8b made more portable 1988-04-21 18:53:31 +00:00
ceriel
d510df976e made to conform to ACK rules 1988-04-21 18:48:15 +00:00
ceriel
efd43bc6f5 corrected: a shift of 32 is not portable! 1988-04-21 18:40:42 +00:00
ceriel
de31b2f2af fixed minor bug in lin instruction (!) 1988-04-21 15:29:02 +00:00
ceriel
a484eb4ab4 improved comments; should now be understandable for anyone who knows EM 1988-04-21 10:08:56 +00:00
ceriel
e34737ea2c corrected typo 1988-04-21 09:21:18 +00:00
ceriel
20649c2cad Dicks corrected emtest 1988-04-20 17:49:42 +00:00
ceriel
89c83460f0 improved signal handling 1988-04-20 17:10:21 +00:00
ceriel
841e7857ae improved setjmp 1988-04-20 16:58:29 +00:00
ceriel
133c9ae5c4 corrected .s files 1988-04-20 16:47:41 +00:00
ceriel
2ccb9599fa rewritten setjmp: compiler now gives a bit more support 1988-04-20 15:33:17 +00:00
ceriel
98536222e3 corrected a syntax error 1988-04-20 15:28:26 +00:00
ceriel
f700e124ee new handling of setjmp; now pass return address 1988-04-20 15:28:10 +00:00
ceriel
e37e27af93 SUN4 frexp strikes again ... 1988-04-20 14:42:04 +00:00
ceriel
463a483046 changed xenix3.0 to xenix3 1988-04-20 11:52:53 +00:00
ceriel
996f4f2886 Added test 1988-04-20 10:45:09 +00:00
ceriel
c98b7d5f7b Initial revision 1988-04-20 10:43:48 +00:00
ceriel
5fdac299b4 do not call frexp with 0.0; the SUN4 cannot stand it 1988-04-20 10:01:35 +00:00
ceriel
9f6d79c73f Added include 1988-04-20 09:25:31 +00:00
ceriel
858a099dce Made a bit more portable 1988-04-19 19:46:28 +00:00
ceriel
7cfd6353be made to work for distribution 1988-04-19 18:58:08 +00:00
ceriel
acae8b1001 Added my name to author list 1988-04-19 17:19:21 +00:00
ceriel
2c3aa80148 Added minix and minixST 1988-04-19 17:16:10 +00:00
ceriel
989a2d1911 avoid installation order problem 1988-04-19 17:05:05 +00:00
ceriel
2b50ed436e Added check that script is started from proper directory 1988-04-19 16:57:19 +00:00
ceriel
843007098b order was wrong 1988-04-19 16:56:40 +00:00
ceriel
cb8686113d order was wrong 1988-04-19 16:55:51 +00:00
ceriel
48fd114c67 improved stupid test 1988-04-19 16:45:19 +00:00
ceriel
d121031a95 fixed a small problem with the 'symmetric' option; also fixed a
problem with Hex numbers
1988-04-19 14:40:27 +00:00
ceriel
03286f33c7 adapted for new distribution 1988-04-19 14:33:58 +00:00
kaashoek
bc98f4489e *** empty log message *** 1988-04-19 12:40:43 +00:00
kaashoek
739931ecf4 *** empty log message *** 1988-04-19 11:41:16 +00:00
ceriel
53e412a812 Added minix 1988-04-19 11:10:14 +00:00
ceriel
852df266b7 Added minix 1988-04-19 11:01:39 +00:00
ceriel
c7a7dcea44 Added minix 1988-04-19 10:56:12 +00:00
ceriel
9d3dd23cb2 Initial revision 1988-04-19 10:48:34 +00:00
kaashoek
730ef8236a comments Dick 1988-04-19 10:41:05 +00:00
ceriel
0ffa06bf15 Initial revision 1988-04-19 10:38:18 +00:00
ceriel
ee213b8c11 corrected somewhat 1988-04-19 10:33:07 +00:00
ceriel
ddae7e19e7 Added define for ACK 1988-04-19 10:30:15 +00:00
ceriel
0fee5d5f16 Initial revision 1988-04-19 10:19:15 +00:00
ceriel
3f7dab848e Added cleanup 1988-04-19 10:13:41 +00:00
ceriel
12aa626302 assert macro has one parameter 1988-04-19 09:57:44 +00:00
ceriel
e794b4988c Added minixST 1988-04-19 09:40:02 +00:00
ceriel
cfc5459e63 Initial revision 1988-04-19 09:34:37 +00:00
ceriel
2720a896d5 Initial revision 1988-04-19 09:27:51 +00:00
ceriel
e3aacdf59a Added .distr 1988-04-19 09:22:48 +00:00
ceriel
e0946cb41b Initial revision 1988-04-19 09:15:48 +00:00
ceriel
594f367681 Added .distr 1988-04-19 09:13:41 +00:00
ceriel
bf199c34b3 Added descr 1988-04-19 09:10:18 +00:00
ceriel
234a04571e Added m2 as callname 1988-04-18 15:57:28 +00:00
ceriel
157abbd42c cleaned up some garbage. How did it get there? 1988-04-18 15:54:20 +00:00
ceriel
5d0f0f380d Added .distr file 1988-04-18 15:00:24 +00:00
ceriel
de76248670 Added READ_ME file 1988-04-18 14:06:00 +00:00
ceriel
5305af0e74 changed font 5 references to font CW references 1988-04-18 13:56:01 +00:00
ceriel
85d025f33f changed font 5 references to font CW references 1988-04-18 13:42:35 +00:00
ceriel
75e7e7a6ff deleted print and show 1988-04-18 13:40:54 +00:00
ceriel
f8483c3d30 changed font 5 references to font CW references 1988-04-18 13:34:29 +00:00
ceriel
1d4e739cb8 fixed a bug: did not handle %while in FIXED terms 1988-04-18 11:06:55 +00:00
ceriel
e3806fecf3 deleted LLgen from distr file 1988-04-18 10:36:07 +00:00
ceriel
6c6b956908 Initial revision 1988-04-18 10:24:30 +00:00
ceriel
8ed51b5ba7 Added id.sed 1988-04-18 10:23:45 +00:00
ceriel
1f6e839d22 Added a distr entry 1988-04-18 10:21:30 +00:00
ceriel
70b665b628 create lib directory if not present 1988-04-18 10:17:58 +00:00
ceriel
8c69e4fc51 corrected some 1988-04-18 10:13:57 +00:00
ceriel
aceac9a5ea Added make.sh 1988-04-18 09:18:18 +00:00
ceriel
91017ffa2e generate message about parameter count 1988-04-15 17:29:02 +00:00
ceriel
ceaf1f8063 check for total size of locals and parameters 1988-04-15 17:25:01 +00:00
ceriel
4e7aaa3513 fixed minor bug: report on used memory was wrong 1988-04-15 16:05:05 +00:00
ceriel
7e17aeedb7 use varargs when needed 1988-04-15 15:43:52 +00:00
ceriel
a382589deb use varargs when needed 1988-04-15 15:34:19 +00:00
ceriel
2ad8a26515 use varargs where needed 1988-04-15 15:19:27 +00:00
ceriel
23737900c9 make sure there is a varargs.h file somewhere 1988-04-15 15:18:38 +00:00
ceriel
d2ac30cbb3 Use varargs where needed 1988-04-15 15:07:51 +00:00
ceriel
57a187b9e1 deleted sgtty.h 1988-04-15 15:03:59 +00:00
ceriel
d6a2d957c8 use stty/gtty instead of ioctl 1988-04-15 15:03:32 +00:00
ceriel
14dcf5aab3 Added varargs.h 1988-04-15 14:45:04 +00:00
ceriel
3fb2794967 make to use varargs.h 1988-04-15 14:43:19 +00:00
ceriel
bd45765dc7 Added sgtty.h 1988-04-15 14:38:33 +00:00
ceriel
16c7a1948c changed address 1988-04-15 12:49:16 +00:00
ceriel
a19bb5db94 fef4 and fef8 did not quite work properly: the exponent part is an
int, not a short!
1988-04-14 18:06:47 +00:00
ceriel
95f2281570 only fclose on non-NULL streams 1988-04-14 16:09:02 +00:00
ceriel
ac7ce6b5d2 generated illegal code; fixed 1988-04-14 16:03:55 +00:00
ceriel
5bfe8b93f6 improved sbrk 1988-04-14 10:45:42 +00:00
ceriel
4114d27f17 made to fit on PDP-11 again, and some other minor mods 1988-04-13 18:37:45 +00:00
kaashoek
58235523eb comments of Ceriel and Henri 1988-04-13 14:33:11 +00:00
ceriel
3b3c87be69 some minor improvements 1988-04-13 13:05:38 +00:00
ceriel
aa6c164e6f corrected comment message 1988-04-13 12:52:40 +00:00
ceriel
ab00580d88 minor improvement 1988-04-13 12:40:48 +00:00
ceriel
1b8dceae60 make a little more robust 1988-04-12 19:34:38 +00:00
ceriel
ba25cbb925 edit modula-2 compiler Makefile on small systems 1988-04-12 15:55:26 +00:00
kaashoek
84a275be46 Initial revision 1988-04-12 14:31:05 +00:00
ceriel
f552e84c5e changed copyright notice 1988-04-12 11:30:10 +00:00
ceriel
ad523d5166 better ORD, VAL, and CAP, and some other minor mods 1988-04-12 09:19:06 +00:00
ceriel
aa89154c82 Added a mechanism to test pointers as soon as possible 1988-04-11 18:32:47 +00:00
ceriel
34118c0963 fixed typo 1988-04-11 14:46:41 +00:00
ceriel
c43fddac00 updated 1988-04-11 13:03:14 +00:00
ceriel
955ac4ee7a updated+modula-2 1988-04-11 13:02:20 +00:00
ceriel
caa6a18b0d catch possibly occurring trap with stores in the HP 1988-04-11 12:51:22 +00:00
ceriel
4c9734308f Also allow .def files; compiler will give error message 1988-04-11 12:45:45 +00:00
ceriel
368cfb641b Added xenix3 1988-04-11 12:44:36 +00:00
ceriel
ae9ff3e9e1 Added xenix3 1988-04-11 12:38:24 +00:00
ceriel
63de785b10 some minor fixes 1988-04-11 11:41:50 +00:00
ceriel
a5a7c04edb adapted to new semantics of the EHEAP error: no longer fatal 1988-04-11 11:37:54 +00:00
ceriel
081c3c2d77 adapted to new semantics of the EHEAP error: no longer fatal 1988-04-11 11:27:37 +00:00
ceriel
e63b32a936 fixed typo 1988-04-11 11:13:20 +00:00
ceriel
13a3d9cc7e adapted to new semantics of the EHEAP error: no longer fatal 1988-04-11 11:03:22 +00:00
ceriel
ba24b6e99d Added some debug print statements 1988-04-11 10:55:07 +00:00
ceriel
4730c565f2 adapted to new semantics of the EHEAP error: no longer fatal 1988-04-11 10:50:58 +00:00
ceriel
049029e4a7 corrected some text on segemt registers 1988-04-11 10:44:06 +00:00
ceriel
465d82760b Added installation for modula-2 1988-04-11 10:36:24 +00:00
ceriel
bc43cebf73 fixed problems in Storage module: caused integer overflow and bad pointers 1988-04-11 10:34:31 +00:00
ceriel
61acb445a0 minor mod 1988-04-11 10:32:22 +00:00
ceriel
5803294876 adapted to new semantics of the EHEAP error: no longer fatal 1988-04-11 10:29:59 +00:00
ceriel
d4436e05cb fix 1988-04-11 10:11:07 +00:00
ceriel
faa687e0db minor fix 1988-04-11 09:55:13 +00:00
ceriel
98e2c2c949 adapted to new semantics of the EHEAP error: no longer fatal 1988-04-11 09:52:48 +00:00
ceriel
50b4573823 Added xenix3 to the list of machine-names 1988-04-11 09:51:11 +00:00
ceriel
6d7202a1c3 also make a makecalls for code expander 1988-04-11 09:48:59 +00:00
ceriel
c348cf1dc2 split into separate include files 1988-04-11 09:47:33 +00:00
ceriel
667efd5fca Added some patterns 1988-04-11 09:38:31 +00:00
ceriel
0cf358f442 Added comments and m2_traps.h 1988-04-08 14:14:44 +00:00
ceriel
0cb59273f5 Added libm2 1988-04-08 13:39:19 +00:00
ceriel
a6485970b0 Added libm2 1988-04-08 13:12:53 +00:00
ceriel
3fe3f921ab Added m2 1988-04-08 13:10:18 +00:00
ceriel
726e68d1e2 updated for 4th distribution 1988-04-08 12:50:10 +00:00
ceriel
76ec750a25 Added u argument type, added distr entry in Makefile 1988-04-08 11:33:21 +00:00
ceriel
8627320960 two versions of the parameters file: small and large 1988-04-08 10:04:03 +00:00
ceriel
bab3ef8193 don't generate HOL's of zero size 1988-04-08 09:46:04 +00:00
ceriel
d931764506 a minor mod 1988-04-07 15:35:48 +00:00
ceriel
36b3d648cb minor mod 1988-04-07 15:30:37 +00:00
ceriel
572cf756da Added id.sed 1988-04-07 15:02:12 +00:00
ceriel
f06f365823 adapted so that interpreter traps on floating point instructions 1988-04-07 13:14:27 +00:00
ceriel
eaf349cd5f Added libfp 1988-04-07 12:39:19 +00:00
ceriel
4f21b1f09c Initial revision 1988-04-07 12:36:30 +00:00
ceriel
4efd49822e Added libfp 1988-04-07 12:31:47 +00:00
ceriel
ebdf6d34f2 Initial revision 1988-04-07 12:28:10 +00:00
ceriel
5f219d8b6b Added libfp 1988-04-07 12:26:29 +00:00
ceriel
cef247cc17 Initial revision 1988-04-07 12:23:02 +00:00
ceriel
beccba4542 Added ncg and libfp 1988-04-07 11:49:19 +00:00
ceriel
2b3393be24 Initial revision 1988-04-07 11:45:42 +00:00
ceriel
ebfc3662ad added floating point lib 1988-04-07 11:42:21 +00:00
ceriel
af23dc77f4 Added copyright notices 1988-04-07 11:40:46 +00:00
ceriel
02db8317da Initial revision 1988-04-07 10:57:49 +00:00
ceriel
7d0c65d36c fixed 1988-04-06 18:36:59 +00:00
ceriel
8bf2b6252c Added modula-2 1988-04-06 18:34:20 +00:00
ceriel
85a1d3d471 lay-out mod 1988-04-06 18:31:49 +00:00
ceriel
1d569027a2 Added floating point lib and modula-2 1988-04-06 18:31:20 +00:00
ceriel
35ead0fc75 Added modula-2 1988-04-06 18:18:55 +00:00
ceriel
6c7c9426cb some minor changes and a fix in pointer arithmetic 1988-04-06 18:14:50 +00:00
ceriel
11caeface1 Added some defines 1988-04-06 18:12:43 +00:00
ceriel
6febba372f updated 1988-04-06 18:06:23 +00:00
ceriel
dd4ca405dd Added modula-2 1988-04-06 18:04:33 +00:00
ceriel
81b14a431d Initial revision 1988-04-06 15:12:11 +00:00
ceriel
9e81d0f237 z8000 uses asld, so suffix of targets is .s 1988-04-06 15:10:56 +00:00
ceriel
99c2f4029a Initial revision 1988-04-06 14:49:41 +00:00
ceriel
3e1b55a4fc Added an 'all' entry 1988-04-06 14:46:04 +00:00
ceriel
84a9bf8832 Added .distr file, added 'all' entry in Makefile 1988-04-06 14:42:22 +00:00
ceriel
27f332943d Added .distr file 1988-04-06 14:37:14 +00:00
ceriel
785e197f4e Initial revision 1988-04-06 14:24:36 +00:00
ceriel
7170bddb69 Initial revision 1988-04-06 14:13:41 +00:00
ceriel
ea5cf5d30f Added an 'all' entry 1988-04-06 14:08:08 +00:00
ceriel
b4dc7b6b62 Initial revision 1988-04-06 14:03:28 +00:00
ceriel
1966359e2d Added an 'all' entry 1988-04-06 13:56:46 +00:00
ceriel
0db5781d9a Initial revision 1988-04-06 13:46:40 +00:00
ceriel
9f2d888010 Added an 'all' entry 1988-04-06 13:41:06 +00:00
ceriel
8042430f1a added .distr file 1988-04-06 13:38:42 +00:00
ceriel
61785264b4 z8000 uses asld 1988-04-06 13:18:10 +00:00
ceriel
6276a51ca6 Initial revision 1988-04-06 13:17:21 +00:00
ceriel
05aabd7bf7 Added .distr 1988-04-06 13:06:08 +00:00
ceriel
fc7e9f4648 Added cap.c 1988-04-05 15:27:50 +00:00
ceriel
2ff1c053d8 some fixes 1988-03-31 17:58:56 +00:00
ceriel
a72eff4370 identifiers may not contain two consecutive underscores, and a fix 1988-03-31 16:09:53 +00:00
ceriel
cc061af9a5 identifiers may not contain two consecutive underscores, and a fix 1988-03-31 16:02:20 +00:00
ceriel
ee19d09134 Added another debug statement 1988-03-31 12:50:12 +00:00
ceriel
0bd02e8771 remove some of the lint complaints 1988-03-31 11:17:47 +00:00
ceriel
9298968fb9 delinted 1988-03-31 10:38:05 +00:00
ceriel
2caf1b1df1 modified to use a different 'panic' strategy, and use
new clash-table in tables.c when possible, and some other tuning
1988-03-31 10:14:48 +00:00
ceriel
de80670032 modified to generate the clashes table in another form too 1988-03-31 10:00:07 +00:00
ceriel
3002e85ba3 Initial revision 1988-03-30 13:06:41 +00:00
ceriel
48b939a708 changed PascalIO.Get behaviour and used Allocate instead of ALLOCATE 1988-03-28 18:15:50 +00:00
ceriel
7baa9e496d Added patch for bad fseeks 1988-03-23 18:04:08 +00:00
ceriel
5a047b837b many minor mods: name changes 1988-03-23 17:55:57 +00:00
ceriel
e511419efc many minor mods 1988-03-23 17:44:25 +00:00
ceriel
3c204ee395 Added patterns for loc sbu and loc adu 1988-03-23 16:52:23 +00:00
ceriel
aadfcbd0da new translation of BLS, fix in LOF 1988-03-23 16:07:03 +00:00
ceriel
2324e65c89 made to fit on PDP-11 again 1988-03-22 17:54:01 +00:00
ceriel
f9db8f888e new version, with 2/4 handling 1988-03-21 18:22:52 +00:00
ceriel
116515b088 adapted to new naming scheme 1988-03-21 18:15:59 +00:00
ceriel
a38cf594a6 Added .distr file 1988-03-21 18:02:45 +00:00
ceriel
224fac0f4c too many changes: some cosmetic; some for 2/4; some for added options 1988-03-21 17:43:54 +00:00
ceriel
a13429db0c too many changes: some cosmetic; some for 2/4; some for added options 1988-03-21 17:22:26 +00:00
ceriel
f93981d377 too many changes: some cosmetic; some for 2/4; some for added options 1988-03-21 17:06:20 +00:00
ceriel
651205bb9a too many changes: some cosmetic; some for 2/4; some for added options 1988-03-21 16:47:51 +00:00
ceriel
fd82a3958d too many changes: some cosmetic; some for 2/4; some for added options 1988-03-21 16:36:31 +00:00
ceriel
77bb261143 Initial revision 1988-03-21 13:48:24 +00:00
ceriel
a7b1693fab Added an array bound checking procedure 1988-03-18 18:08:20 +00:00
ceriel
64432046db adapted for 2/4 code generation, and also fixed some bugs 1988-03-18 14:23:04 +00:00
ceriel
1505e9facf removed a cntrl-a character in the comments 1988-03-17 09:39:43 +00:00
ceriel
24e18a0eca fix in csb: must be able to handle 0 cases 1988-03-17 09:24:01 +00:00
ceriel
52d43d4889 fixed csb so that it also handles 0 cases 1988-03-16 19:38:14 +00:00
ceriel
7dcc2ae685 Added a trap number for cardinal underflow 1988-03-16 09:22:53 +00:00
ceriel
dcd076fd3e Added some comment 1988-03-16 09:20:36 +00:00
ceriel
f0c7016249 forgot to pop old handler 1988-03-15 17:37:19 +00:00
ceriel
3fda8b1d61 more sensible values for SIG_DFL and SIG_IGN 1988-03-15 16:58:43 +00:00
ceriel
325fcd7a0f added u opcode type 1988-03-15 14:35:45 +00:00
ceriel
049765a54a fix in writing of prompt 1988-03-15 13:48:56 +00:00
ceriel
1d2535dbb0 adapted to new ip_spec.t 1988-03-15 13:17:42 +00:00
ceriel
14b899ed54 changed location of ip_spec.t 1988-03-15 11:46:42 +00:00
ceriel
129364fc53 adapted to new ip_spec.t and changed location 1988-03-15 11:43:36 +00:00
ceriel
9f1b82f337 adapted to new ip_spec.t 1988-03-15 11:37:00 +00:00
ceriel
41355b0622 adapted to new ip_spec.t 1988-03-15 11:29:39 +00:00
ceriel
ecf33acad6 Adapted for PAREN_OPEN and PAREN_CLOSE, and better adaption for type-setter 1988-03-14 16:37:00 +00:00
ceriel
c16922b859 modified to use PAREN_OPEN and PAREN_CLOSE 1988-03-14 16:15:23 +00:00
ceriel
23fd239e9e fixed for operand separators within operands 1988-03-14 15:58:07 +00:00
ceriel
52a8de8ec0 Added the esize program 1988-03-14 14:29:31 +00:00
ceriel
6fb722d96b deleted an #endif, where-ever it came from I dont know 1988-03-14 14:12:49 +00:00
ceriel
1f7094655b CMI was translated wrongly; corrected 1988-03-14 13:56:33 +00:00
ceriel
02960e3c4e CMI was translated wrongly; corrected 1988-03-14 13:42:20 +00:00
ceriel
a8b9577abc deleted some patterns that were wrong, and apparently never used 1988-03-14 13:30:48 +00:00
ceriel
2e6f9c6707 changed definition of BITMAX 1988-03-12 13:47:11 +00:00
ceriel
45d0c5c27f fix in LXA 1988-03-11 16:34:22 +00:00
ceriel
3bf5524192 fixes from Nigel Hall 1988-03-10 16:00:58 +00:00
ceriel
413ba9455a bug fix: did not work when procedure descriptors started on block boundary 1988-03-10 13:03:53 +00:00
ceriel
1d32d436a4 fixes from Nigel Hall 1988-03-09 18:07:05 +00:00
ceriel
a447d4c685 some compilers (Multimax) did not understand the sizeof constructions used 1988-03-09 11:42:54 +00:00
ceriel
127f43df4a fixed a problem with #ifdef/#else/#endif 1988-03-08 11:42:00 +00:00
ceriel
5adc47ac3a The Get routine did not work right, fixed 1988-03-08 11:28:00 +00:00
ceriel
d1283aed97 Added dependency 1988-03-08 10:44:09 +00:00
ceriel
8be555cf80 fix typo and parameters of overflow 1988-03-08 10:35:53 +00:00
ceriel
bba4d499c2 some minor mods, mostly for better line number tracking 1988-03-08 10:18:58 +00:00
ceriel
1f8109db80 some fixes 1988-03-07 11:44:39 +00:00
ceriel
0c30f339e3 deleted cvf.s 1988-03-07 09:47:06 +00:00
ceriel
9f8fbface3 "deleted -LIB, already in proto makefile" 1988-02-19 17:15:45 +00:00
ceriel
0bb550e7c2 deleted -LIB, already in proto makefile 1988-02-19 17:05:26 +00:00
ceriel
7d12db71e3 some more fixes to fixes 1988-02-19 16:52:54 +00:00
ceriel
168c9d602f Of course: fixes to previous mods 1988-02-19 16:36:45 +00:00
ceriel
9a93a52d2e mainly new comments 1988-02-19 15:54:01 +00:00
ceriel
66a964553f new version using the Streams module 1988-02-19 13:05:03 +00:00
ceriel
a783d1ecee Added the ArraySort module 1988-02-19 12:53:15 +00:00
ceriel
e640d9f61c parsing routine does not return value! 1988-02-18 18:06:28 +00:00
ceriel
7463deb7a3 fixed 1988-02-18 11:58:10 +00:00
ceriel
7d318a3a12 fixes 1988-02-18 11:17:39 +00:00
ceriel
75699f54c4 sbu was replaced by sbu; is now replaced by sbi 1988-02-18 11:09:11 +00:00
ceriel
2f3d360901 corrected 1988-02-18 10:36:22 +00:00
ceriel
17d26f2bf7 corrected 1988-02-18 10:22:15 +00:00
ceriel
fd6b258b63 Initial revision 1988-02-18 10:22:14 +00:00
ceriel
b8bc238098 corrected 1988-02-18 10:12:10 +00:00
ceriel
151a5b3664 Initial revision 1988-02-18 10:08:42 +00:00
ceriel
adaf3abc52 corrected 1988-02-18 10:06:46 +00:00
ceriel
fc39acfceb Initial revision 1988-02-18 09:48:35 +00:00
ceriel
ae89bfcccc Added .distr file 1988-02-18 09:32:26 +00:00
ceriel
2d29a7c708 Initial revision 1988-02-18 09:20:09 +00:00
ceriel
b880781d9e fixes and other mods 1988-02-17 17:21:51 +00:00
ceriel
f10b216184 Added .distr file 1988-02-17 15:52:20 +00:00
ceriel
b6cd300d3b Initial revision 1988-02-17 15:44:54 +00:00
ceriel
f9d6053313 a minor improvement 1988-02-17 15:41:27 +00:00
ceriel
2b231f7815 Changed use of word_align: it now only indicates the alignment on
which word-operations are allowed to take place
1988-02-17 14:29:57 +00:00
ceriel
36b86a6b9a malloc now allows users to use sbrk too,
setjmp/longjmp now save/restore the signal mask on BSD 4.2 systems,
some minor mods in atof
1988-02-16 17:48:39 +00:00
ceriel
e5fd99d137 fixed: returned wrong value 1988-02-16 17:48:28 +00:00
ceriel
a74e933a03 made counting for register messages depending on a #define,
adapted makefile to make version with peephole optimizer library
1988-02-16 16:23:00 +00:00
ceriel
a3e218efa5 fixed: for some reason some back-quotes disappeared 1988-02-16 13:50:24 +00:00
ceriel
4a9ff01599 made to work 1988-02-15 18:08:46 +00:00
ceriel
6318bd3d6d make to work with new em_code interface 1988-02-15 18:04:27 +00:00
ceriel
b3962d125a made to fit on a PDP-11 again 1988-02-10 14:06:34 +00:00
ceriel
c56782ccaf New baseline for distribution 1988-02-09 11:45:30 +00:00
ceriel
accbfab6af some fixes:
- always remove imports from definition modules
- minor improvement in error messages
1988-02-09 11:41:08 +00:00
ceriel
6024a470df allow assembler to read from STDIN 1988-02-05 15:10:08 +00:00
ceriel
b7b8c9e0ef modified to use Streams module 1988-02-03 14:34:40 +00:00
kaashoek
5d15499683 ';' forgotten. 1988-02-03 12:55:36 +00:00
kaashoek
5e043366c6 CODE_EXPANDER must be defined before including <em.h>. 1988-02-03 12:48:58 +00:00
kaashoek
435219d80e create_ofiles must be executed in directory ce. 1988-02-03 11:40:29 +00:00
kaashoek
8aca7d649c Syntax error in shell command 1988-02-03 10:58:52 +00:00
kaashoek
2861839934 Previous version saw C_INSTR CONDITION as CALL ( e.g. C_asp ( $1 == 1) ). 1988-02-03 10:47:08 +00:00
kaashoek
40ca75e982 Don't generate pseudo instructions. 1988-02-03 10:20:58 +00:00
ceriel
514d5f44a3 This version fixes many problems in older versions 1988-02-02 16:27:54 +00:00
kaashoek
474c6ea913 RCS filenames should end with ,v 1988-02-02 15:59:40 +00:00
kaashoek
86496c3ab9 Error in pathnames 1988-02-02 15:53:47 +00:00
kaashoek
9b77a5ed8a Error in pathnames 1988-02-02 15:50:10 +00:00
ceriel
e2d2d8023c updated 1988-02-01 11:26:16 +00:00
ceriel
6999af5485 some corrections, added modula-2 docs 1988-02-01 10:45:43 +00:00
ceriel
cba0e9ac0a compare pointers with CMP 1988-02-01 10:17:51 +00:00
ceriel
9406886164 Added the Streams module 1988-01-29 11:35:45 +00:00
ceriel
3d103fb1d9 better error message 1988-01-28 16:54:33 +00:00
ceriel
165580e74f conversion routinew now initialize whole array, Epilogue module changed slightly 1988-01-28 16:37:55 +00:00
ceriel
60d7398037 Added some runtime trap numbers 1988-01-28 16:34:41 +00:00
ceriel
cd6247278a improved filename and linenumber generation 1988-01-28 16:15:16 +00:00
ceriel
75035f2f6e Yet another fix. ChkUnOper can also be called with a COERCION operator,
when NEW and DISPOSE are expanded
1988-01-28 14:05:34 +00:00
ceriel
40e790fd6c minor fixes 1988-01-27 15:10:16 +00:00
ceriel
da2ac721b6 bug fix in LONGINT constants 1988-01-26 13:54:24 +00:00
ceriel
80f6e0ffb3 Added the Epilogue module 1988-01-25 16:14:48 +00:00
ceriel
290210c560 fixed a bug with string-initializers 1988-01-25 16:14:01 +00:00
ceriel
ca166d25e9 Allow the checking of definition modules 1988-01-22 12:04:27 +00:00
ceriel
03e1f5dc93 Added a test that at some point failed for the new CEMCOM 1988-01-19 11:45:43 +00:00
ceriel
fd3b718980 fixed some minor problems 1988-01-15 16:55:01 +00:00
kaashoek
36a82ef539 Comments added 1988-01-15 16:09:52 +00:00
kaashoek
622a396916 Comments added 1988-01-15 15:57:35 +00:00
ceriel
6d04305886 parameterize archiver used 1988-01-14 14:10:51 +00:00
ceriel
de0db4e1a6 parameterize archiver used 1988-01-14 13:58:44 +00:00
ceriel
c8683d72d1 try to free mem as soon as possible 1988-01-14 13:53:58 +00:00
ceriel
57ba8590e2 make separate lib for code-expander 1988-01-14 13:50:43 +00:00
ceriel
47becff4bf parameterize archiver used 1988-01-14 13:44:36 +00:00
ceriel
8e2bf62ec3 Some minor corrections 1988-01-14 13:40:56 +00:00
ceriel
5389c00f28 Some corrections to make it work on small machines 1988-01-14 13:34:42 +00:00
ceriel
337bd554a3 adapted to new em_code module 1988-01-14 13:19:32 +00:00
ceriel
734e402508 better check if a block was already freed 1988-01-14 11:35:07 +00:00
ceriel
7304b54af9 adapted to use new em_code module, and a minor fix 1988-01-14 10:52:36 +00:00
ceriel
9564f8fd98 make it more K&R C 1988-01-13 11:06:06 +00:00
ceriel
629d6ff548 output of id.c was wrong 1988-01-12 15:56:42 +00:00
ceriel
2a76dc0fda Added some patterns 1988-01-12 13:27:11 +00:00
ceriel
6f41f3fcad prevent some 'bombed out of codegen' crashes 1988-01-12 11:48:38 +00:00
ceriel
a2af7987cc some fixes 1988-01-11 18:24:34 +00:00
ceriel
30c88a5dfd improved some code for floating point 1988-01-11 17:06:11 +00:00
ceriel
5c232baf2f prevent a voluntary crash and generate better code 1988-01-11 14:06:20 +00:00
ceriel
88c6fe59f9 cas instruction was encoded wrong 1988-01-11 13:25:28 +00:00
kaashoek
ef1532bae6 Comments added. 1988-01-07 16:09:30 +00:00
kaashoek
b9736aa4e9 Comments added 1988-01-07 15:52:52 +00:00
kaashoek
6e1701535b Comments added 1988-01-07 15:25:34 +00:00
kaashoek
2fec926bd1 Made consistent with the file in ../common 1988-01-07 15:15:08 +00:00
kaashoek
332b5dc036 Made consistent with file in ../common 1988-01-07 15:12:09 +00:00
kaashoek
1c065cef73 Comment added 1988-01-07 14:52:08 +00:00
kaashoek
b79fb2ec69 Made consistent with the file in directory ../common 1988-01-07 14:49:57 +00:00
kaashoek
331f5c789d Made consistent with the file in the directory ../common 1988-01-07 14:48:23 +00:00
kaashoek
2c2f0851c0 Comments added. 1988-01-07 14:40:43 +00:00
kaashoek
65a473d94c Some routines moved to 'help.c' 1987-12-18 16:23:42 +00:00
kaashoek
9022cd4e72 Initial revision 1987-12-18 16:22:16 +00:00
kaashoek
088df9c6cd File 'assem.c' is changed to 'help.c' 1987-12-18 16:17:29 +00:00
kaashoek
87cc086294 Comment added 1987-12-18 12:17:56 +00:00
kaashoek
316e0c913d Made consistent with 'arg_type.h' and 'decl.h' 1987-12-18 12:12:50 +00:00
kaashoek
2b1ff161d0 Comments added.
Made consistent with 'arg_type.h' and 'em_parser.h'
1987-12-18 12:11:58 +00:00
kaashoek
5a64cf6416 Made consistent with 'em_parser.h' and 'decl.h' 1987-12-18 12:10:50 +00:00
ceriel
cb22dd8e6a Added a test for casts 1987-12-04 12:53:18 +00:00
ceriel
913ee40148 changed typing of constants, to be more compatible with PCC
and future standard
1987-12-03 11:12:02 +00:00
ceriel
1c58cd26b9 added .distr file 1987-12-02 14:01:26 +00:00
ceriel
e0471ecadc deleted some incorrect patterns 1987-12-02 13:21:20 +00:00
ceriel
713f37ce72 fixes and squeezing 1987-12-02 10:41:38 +00:00
ceriel
76fddca0f5 Added floating point stuff 1987-12-02 09:04:32 +00:00
ceriel
67e38128bd added use checking for types and constants, improved overflow checking 1987-11-27 14:24:46 +00:00
ceriel
948d614622 version with better overflow checking 1987-11-27 14:13:11 +00:00
ceriel
541cfcd1f1 Added a flag to not give warnings 1987-11-27 11:04:07 +00:00
ceriel
1994d67d9e version with better overflow checking 1987-11-26 14:15:24 +00:00
kaashoek
22cce0c2e1 *** empty log message *** 1987-11-26 12:14:32 +00:00
kaashoek
82f6e19ade Initial revision 1987-11-26 12:14:26 +00:00
kaashoek
855cacfe1b *** empty log message *** 1987-11-26 12:00:32 +00:00
kaashoek
8c21f3ffc1 Initial revision 1987-11-26 12:00:22 +00:00
ceriel
ebed3e9baa fix to fix 1987-11-26 10:26:06 +00:00
ceriel
b4c867aa43 handle rounding of floating point constants 1987-11-25 16:58:31 +00:00
ceriel
bd3856542b fixed to also read from standard input 1987-11-25 16:55:51 +00:00
kaashoek
232defb340 Comments added 1987-11-25 14:41:10 +00:00
kaashoek
cf1b4b6bef Comments added 1987-11-25 14:22:15 +00:00
kaashoek
cb4566f9ec Initial revision 1987-11-25 14:18:23 +00:00
kaashoek
b2b721b15a *** empty log message *** 1987-11-25 14:03:48 +00:00
kaashoek
e677bca53f Comments added 1987-11-25 13:55:12 +00:00
kaashoek
4cde32970d *** empty log message *** 1987-11-25 13:54:01 +00:00
kaashoek
251a16aff5 1987-11-25 13:52:01 +00:00
kaashoek
ea6ca28e20 n 1987-11-25 13:51:25 +00:00
kaashoek
6723ee6a7d Comments added 1987-11-25 11:49:48 +00:00
kaashoek
f32d75f042 Initial revision 1987-11-25 11:19:38 +00:00
ceriel
162a73e1e2 check number of locals and parameters 1987-11-24 14:21:35 +00:00
ceriel
154417864b do not allow reals as case labels, check size of array's 1987-11-24 13:22:04 +00:00
ceriel
05fc517390 fixed a bug: a numeric label now kills condition codes 1987-11-24 11:43:51 +00:00
ceriel
b1482d9a9f fixed a bug: casts to short or char did not work right 1987-11-23 13:48:09 +00:00
ceriel
18be7f1be6 fixed: used wrong index in em_flag 1987-11-23 13:35:34 +00:00
ceriel
dd899c79a1 %[...] did not work 1987-11-20 12:57:51 +00:00
kaashoek
cc6b72fbb0 *** empty log message *** 1987-11-20 12:07:51 +00:00
kaashoek
7c6c675da8 *** empty log message *** 1987-11-20 11:24:45 +00:00
kaashoek
119777346e *** empty log message *** 1987-11-20 11:15:42 +00:00
kaashoek
2e59026f11 Initial revision 1987-11-20 11:12:07 +00:00
kaashoek
5888a92b2c Initial revision 1987-11-20 10:41:03 +00:00
ceriel
fdb12648fc improved a bit 1987-11-17 16:22:13 +00:00
ceriel
bbf3f6e1be Fixed bug: subranges of subranges did not work right 1987-11-17 14:29:14 +00:00
ceriel
b1e2f3352c replaced some move.w by move.l 1987-11-16 15:52:57 +00:00
ceriel
af448a1d94 use $(CC) instead of cc 1987-11-16 10:35:32 +00:00
ceriel
fa4a1f9f93 generate CSA for empty case statement, replaced an #ifdef that was on the wrong spot 1987-11-13 16:21:33 +00:00
ceriel
543801cbb6 generate CSA for empty case statement 1987-11-13 16:19:51 +00:00
ceriel
87f19d1496 some cosmetic changes+fix in calculator 1987-11-13 15:11:37 +00:00
ceriel
7db4a51ee1 completely new version 1987-11-12 12:26:36 +00:00
ceriel
1e1578a5c1 completely new version 1987-11-12 11:59:31 +00:00
ceriel
527a17830f fixed an obscure bug in the hash function: sometimes the globstep variable
had a value equal to size! Also, sizes of tables must be prime
1987-11-11 15:05:41 +00:00
ceriel
3e2901088f Fixed some problems:
files that use the em_code module must include the em_code.h file
improved checking of definitions after use
fixed problem with ranges in case statements
1987-11-11 13:10:08 +00:00
ceriel
dc1a92e365 Added a test that LOI does not sign-extend 1987-11-11 10:08:05 +00:00
ceriel
7bfd52e5ce Some more adaptions to new semantics of ncgg 1987-11-10 13:49:04 +00:00
ceriel
1cdde4aa31 Some more adaptions to new semantics of ncgg 1987-11-10 13:37:19 +00:00
ceriel
35b0b97d52 Some more adaptions to new semantics of ncgg 1987-11-10 13:26:40 +00:00
ceriel
44f951d4aa fixed some minor problems 1987-11-09 16:11:04 +00:00
ceriel
6d78e62f81 The 'ahead' mechanism was not right 1987-11-09 11:45:39 +00:00
ceriel
620eb02a04 changed mechanism for for-loop checking, added some trap numbers 1987-11-09 11:36:45 +00:00
ceriel
88764ecc1a Added mechanism for non-cross compiler (yet another way of squeezing it onto
a PDP-11
1987-11-09 11:29:48 +00:00
ceriel
f4c6ec0624 made to fit on a PDP-11 1987-11-09 10:17:20 +00:00
ceriel
a43db23e66 corrected con_float 1987-11-06 13:12:21 +00:00
ceriel
4cffa32536 fixed bug in reading of longs in archive header 1987-11-05 11:55:28 +00:00
ceriel
237fdb87cc corrected signal.s 1987-11-05 10:34:04 +00:00
ceriel
ae27ee29f6 print initializer expression before call to code_declaration 1987-11-04 16:30:02 +00:00
ceriel
5f6b023036 fixed a minor problem with unstacking 1987-11-04 15:55:23 +00:00
ceriel
2b9af3a032 corrected 1987-11-04 10:54:02 +00:00
ceriel
560fff00e3 improved alignments, and added libfp 1987-11-04 10:48:25 +00:00
ceriel
a7385b0e3e improved the alilgnment checking somewhat 1987-11-04 10:41:32 +00:00
ceriel
5551a2506f improved alignments, and added libfp 1987-11-04 10:28:01 +00:00
ceriel
8853bb7c88 improved the alilgnment checking somewhat 1987-11-04 10:26:41 +00:00
ceriel
fcf9708844 improved ffp.s 1987-11-04 10:07:57 +00:00
ceriel
960c58e61b included floating point code in table 1987-11-04 09:44:00 +00:00
ceriel
c7bbd5ad4b improved alignment checking 1987-11-03 16:43:24 +00:00
ceriel
2dcf6a843d improved previous improvements 1987-11-03 16:17:37 +00:00
ceriel
0cd5a18ba5 improved the checking of sections 1987-11-03 16:09:55 +00:00
ceriel
f62ac18ef5 fixed alignments, and added floating point lib 1987-11-03 16:03:18 +00:00
ceriel
c701a5bd1e Added fakfp.s 1987-11-03 15:56:44 +00:00
ceriel
b60f722b80 fixed some problems, and added floating point library 1987-11-03 15:35:43 +00:00
ceriel
3d2fa0ca30 Added floating point lib 1987-11-03 15:33:28 +00:00
ceriel
472d4a53f2 align sections on long boundaries, add floating point 1987-11-03 15:13:57 +00:00
ceriel
f6188debb6 fixed some minor problems with copying conformant arrays,
and a LB that pointed below SP in transfer
1987-11-03 15:04:21 +00:00
ceriel
390181f459 Added Xstat.c, to convert between different alignments 1987-11-03 14:50:32 +00:00
ceriel
3a61c2e5b9 Added Xstat.c 1987-11-03 14:43:40 +00:00
ceriel
9ac44925f8 fixed some minor problems 1987-11-03 12:44:09 +00:00
ceriel
1754a3d4a4 fixed some minor problems 1987-11-02 17:59:18 +00:00
ceriel
c50b6bc766 fixed some bugs 1987-11-02 14:23:38 +00:00
ceriel
8ef0733316 deleted debugging writes 1987-11-02 11:25:13 +00:00
ceriel
61157765c3 changed trap messages somewhat, corrected bug in InOut, undone changes
to confarray.c
1987-11-02 11:22:06 +00:00
ceriel
ccc8b43405 avoid *REG constructions because of bug in assembler 1987-11-02 10:52:40 +00:00
ceriel
a6d8a961d6 Added handling of cardinal overflow 1987-10-30 18:32:14 +00:00
ceriel
2d01432f96 made to work 1987-10-30 15:35:50 +00:00
ceriel
8b60044d67 corrected alignments in tbl 1987-10-30 11:30:17 +00:00
ceriel
9752ddebc1 fixed typo 1987-10-30 10:49:35 +00:00
ceriel
49db7fc60d Added fake floating point routines 1987-10-30 10:42:36 +00:00
ceriel
042d501cf5 Now detects use before declaration, f.i. in
VAR k: REAL;
REAL : INTEGER;
1987-10-30 09:19:23 +00:00
ceriel
14b1915b8c fixed some problems with 1 and 2 byte compares 1987-10-29 15:10:30 +00:00
ceriel
93466fbf69 sets now allowed for all subranges 1987-10-28 16:10:02 +00:00
ceriel
8fa3fa95bb sets now allowed for all subranges 1987-10-28 16:03:56 +00:00
ceriel
148a294a31 Fixed some problems, and improved range-checking 1987-10-28 11:10:30 +00:00
ceriel
c4ff2e34e4 CIU should not cause conversion errors! 1987-10-27 15:54:14 +00:00
ceriel
db8caeb5c7 CIU should not cause conversion errors! 1987-10-27 15:43:06 +00:00
ceriel
71469a23d4 Added new files to do range checks 1987-10-27 11:55:59 +00:00
ceriel
9f97bc2e7e do not warn about not using a type-identifier that indicates
an enumeration type and is imported, because its enumeration literals
might be used
1987-10-27 09:45:27 +00:00
ceriel
8d625f656f fixed a typo. Case errors gave wrong trap number 1987-10-26 09:30:26 +00:00
ceriel
b99ed76626 fixed for very large numbers 1987-10-22 15:26:36 +00:00
ceriel
a30185cbeb increased buffer size 1987-10-22 14:07:54 +00:00
ceriel
a3cc42780c replace 10 by 10.0, so that the conversion is not done at runtime 1987-10-22 13:58:48 +00:00
ceriel
70e30790ea increased buffer size, check for end 1987-10-22 13:35:05 +00:00
ceriel
3a9956cb5d removed some IMPORTS that were never used 1987-10-21 11:49:14 +00:00
ceriel
8ddea7afe0 Some corrections and additions to improve the mechanism for
generating warnings on unused/uninitialized variables
1987-10-21 11:29:52 +00:00
ceriel
b324cc9813 removed the relative pathnames in #include's 1987-10-20 16:21:44 +00:00
ceriel
9930de7375 fix to Lindseys changes 1987-10-20 16:09:39 +00:00
ceriel
895679e24e fix in reference counts for sets 1987-10-20 13:32:18 +00:00
ceriel
6dc819dd38 fixed some problems: ADS was generated with size > pointer_size;
some (most) backends dont implement that.
Unstacking of macros did not quite work properly, but I dont know why
1987-10-20 09:36:34 +00:00
ceriel
57319f33a8 fix: there was a problem when more than 2 alternatives started with the same token 1987-10-19 15:35:28 +00:00
ceriel
1082e61bd7 New version, with an option for strict Modula-2, and
warnings for unused or uninitialized variables
1987-10-19 11:28:37 +00:00
ceriel
a9ac8e4f0a The use of {w} in a program line of fe did not work, because ack scans
fe before it scans MACH (which is where most vars are declared).
Reversing the order of the scans caused other problems, related to
callnames. I have therefore delayed the 'scanvars' of program lines
(as is already done with args).
1987-10-19 10:24:52 +00:00
ceriel
9ac801e16c some fixes 1987-10-19 10:06:24 +00:00
ceriel
32c58c64a1 some fixes 1987-10-16 17:57:09 +00:00
ceriel
82589bcfc2 replaced calls to NEW by calls to ALLOCATE 1987-10-15 15:41:00 +00:00
ceriel
5cdd696646 Some minor adaptions 1987-10-15 12:59:03 +00:00
ceriel
4f2edffe5c Some minor adaptions 1987-10-15 12:42:55 +00:00
ceriel
40940aaa98 parameterized archiver used 1987-10-15 10:32:12 +00:00
ceriel
3f73e247e6 adapted fakfp.s 1987-10-14 13:22:57 +00:00
ceriel
c2e9e3bd15 Parameterized the archiver used 1987-10-14 12:41:38 +00:00
ceriel
498cab0c3a next version 1987-10-14 12:38:01 +00:00
ceriel
ab7d7a0185 some minor fixes 1987-10-14 12:34:47 +00:00
ceriel
d869086047 fixed a bug in a LOS test 1987-10-08 16:54:38 +00:00
ceriel
98634a5611 Initial revision 1987-10-08 11:34:19 +00:00
ceriel
1ae1202d3b Initial revision 1987-10-06 16:58:10 +00:00
ceriel
72d25b7df8 Initial revision 1987-10-06 16:39:14 +00:00
ceriel
faa22c0da8 improved previous fix 1987-10-05 16:17:51 +00:00
ceriel
34a7f6a008 new version for distr 1987-10-05 15:52:02 +00:00
ceriel
12b5b65f9e fixed a problem with procedures imported from other modules but not
declared in their definition modules
1987-10-05 15:41:30 +00:00
ceriel
3083dcb0d1 did not work with CASE statements with large difference between lower
and upper bound
1987-10-05 15:40:53 +00:00
ceriel
fee5dad579 fixed some bugs:
- switch with BIG difference between lower and upper now handled correctly
- made sure an added error production is never chosen as the default one
- don't allow AUTO as specification for a parameter
1987-10-05 10:17:44 +00:00
ceriel
d1ef376d52 Also recognize m68020 as machine name 1987-10-05 09:59:16 +00:00
ceriel
1e114ff79a Added unmount, now unmount as well as umount exist 1987-10-05 09:17:42 +00:00
ceriel
f9b922c5e0 set section alignments to 4 1987-10-05 09:01:56 +00:00
ceriel
2ae7bdbbb6 take care of GTO 1987-10-02 12:53:04 +00:00
ceriel
29224bbe09 don't optimize when ms_gto 1987-10-02 12:52:29 +00:00
ceriel
be85d7a801 Handle GTO, LOR/STR 0 also use local base 1987-10-02 12:43:54 +00:00
ceriel
e6e2e48e09 do not replace LAR/SAR by AAR LOI/STI, when the descriptor is not available 1987-10-02 10:48:38 +00:00
ceriel
c6106687c7 make variables that are assigned to alive, at least for a short while 1987-10-02 10:41:13 +00:00
ceriel
c974e9176f print identifier name when multiple declared 1987-10-02 09:55:16 +00:00
ceriel
539de05556 some fixes 1987-09-29 16:07:10 +00:00
ceriel
1d6e0cecb2 Adapted to new ncgg 1987-09-29 11:32:45 +00:00
ceriel
b941b23507 Some improvements 1987-09-29 09:03:49 +00:00
ceriel
70f9e81393 some fixes 1987-09-28 13:45:24 +00:00
ceriel
041f7838a6 ran 'make depend' again 1987-09-28 10:18:02 +00:00
ceriel
83d392eb89 new version 1987-09-24 13:42:50 +00:00
ceriel
d36f6f604f Some minor mods and a bug fix with type transfer functions 1987-09-24 13:07:31 +00:00
ceriel
dae72454e4 Initial revision 1987-09-24 13:01:27 +00:00
ceriel
69643d437b Added DO_TOSTACK 1987-09-24 10:26:39 +00:00
ceriel
38799633a3 Minor adaptions in order to reduce the size 1987-09-23 16:39:43 +00:00
ceriel
12e3ceba61 Added register decl, re-arranged some code 1987-09-23 14:22:39 +00:00
ceriel
a7061c3551 Added a register decl 1987-09-22 16:14:38 +00:00
ceriel
5773db5e96 fix in error reporting 1987-09-21 13:21:50 +00:00
ceriel
b2a4e589a0 several fixes 1987-09-17 16:57:03 +00:00
ceriel
6f52de4ac0 some more fixes 1987-09-14 12:41:08 +00:00
ceriel
7b882ce065 some more fixes 1987-09-14 11:24:12 +00:00
ceriel
ad5c37ef7a Added FORchk.c 1987-09-10 15:56:28 +00:00
ceriel
cc43fdef97 make sure argument to open is terminated by a 0-byte 1987-09-08 15:35:34 +00:00
ceriel
7033cf2586 replaced printfs by fputs where possible 1987-09-08 09:00:29 +00:00
ceriel
8dcd376cc0 disabled listing facilities 1987-09-08 08:59:03 +00:00
ceriel
92b12c0455 some fixes/improvements 1987-09-07 19:05:29 +00:00
ceriel
884c98d241 deleted some unused variables 1987-09-03 09:32:21 +00:00
ceriel
a8ae06a94d some minor fixes, and one important 2/4 one in the sbreak function 1987-09-02 18:42:21 +00:00
ceriel
f571ee5f0e brk must return pointer size 1987-09-02 14:54:32 +00:00
ceriel
539a215863 previous fix was wrong; added another 1987-09-02 12:52:44 +00:00
ceriel
04b0d45c13 yet another fix in freopen: re-opening for reading did not work properly 1987-09-02 12:43:23 +00:00
ceriel
e0a1824870 first arg to putc must be int or char, not long 1987-09-01 18:31:42 +00:00
ceriel
b1748d4cff added declaration for fopen 1987-09-01 15:58:30 +00:00
ceriel
2ca5b0f469 declared freopen; apparently it is not declared in stdio.h
on some systems
1987-09-01 15:24:15 +00:00
ceriel
9e2830bf52 time must be called with a 0-pointer, not with 0! Erikje toch! 1987-09-01 14:18:20 +00:00
ceriel
2528d0646c dont count when USE_TMP is not defined 1987-09-01 10:41:35 +00:00
ceriel2
ac2fd78191 fix for statics in nested blocks 1987-08-28 09:56:00 +00:00
ceriel
8feda2f95c Added .globl, fix in Xfit call 1987-08-26 14:45:27 +00:00
cvs2hg
ab5d79a8ce fixup commit for tag 'distr2' 1987-08-26 13:58:31 +00:00
ceriel
7c64a2f075 adapted to new semantics of STACK 1987-08-26 13:58:30 +00:00
ceriel
87126d5651 adapted table to new semantics of STACK 1987-08-26 13:54:20 +00:00
ceriel
7359fe84a0 adapted table to new semantics of STACK 1987-08-26 13:47:37 +00:00
ceriel
636f6e5c0b improved the c-flag, and corrected a bug in the produced relocation info 1987-08-26 13:22:44 +00:00
ceriel
bd5ed16009 added return.s 1987-08-26 13:06:09 +00:00
ceriel
937f4e48fe FLOAT did not work 1987-08-24 14:23:13 +00:00
ceriel
5a28a174e4 FLOAT did not work 1987-08-24 13:59:06 +00:00
ceriel
7139d3ae5e compiler could not handle using addresses of procedures declared
in imported definition modules. This is corrected
1987-08-24 11:42:37 +00:00
ceriel
6ebdb2a63c a fix: UID and GID were sign-extended 1987-08-24 09:13:31 +00:00
ceriel
13f95a76d1 Added a DO_TOSTACK command, and put set number of ALL in tables.c 1987-08-20 19:04:18 +00:00
ceriel
0def7db2ea fixed a problem with the ifdef-stack 1987-08-20 18:12:31 +00:00
ceriel
4b892ab691 fix to previous one. The previous one did not help, this one does 1987-08-20 16:00:18 +00:00
ceriel
6a18367f41 fixed bug with quotes 1987-08-20 15:44:45 +00:00
ceriel
9ef8e41d1e fixed addition, better patterns for SDL, SDE 1987-08-20 15:30:01 +00:00
ceriel
f2c28f0f96 corrected option handling 1987-08-20 13:12:43 +00:00
ceriel
7d8efdeda0 told ncg that jsr kills the scratch registers 1987-08-19 19:51:13 +00:00
ceriel
8f81d9d757 do not accept p flag 1987-08-19 18:13:19 +00:00
ceriel
2e8c8ec706 changed code for loops a bit, and fixed an error in MkCoercion 1987-08-19 18:07:41 +00:00
ceriel
5d5c36b37a disabled range-checks 1987-08-19 18:07:01 +00:00
ceriel
fe65dfcc3a minor adaption: index array with int, not long 1987-08-19 15:27:15 +00:00
ceriel
42288e4842 some minor corrections 1987-08-19 15:23:41 +00:00
ceriel
ad48701d87 fixed bugs in tzset and ttyslot, adapted malloc to allocate in bigger chunks 1987-08-19 14:44:54 +00:00
ceriel
2571458361 improved -c option 1987-08-19 14:10:39 +00:00
ceriel
92ffe487b3 bug fixes: ifval must be an arith, not an int 1987-08-19 10:36:37 +00:00
ceriel
3c8a306ed0 LLsymb was declared twice 1987-08-19 10:12:34 +00:00
ceriel
97441a2446 an attempt to improve error correction on unknown type identifiers.
Also, a minor fix to ival.g
1987-08-18 10:05:18 +00:00
ceriel
b5a0bf7fe3 fixed: resulted in memory faults in rare cases 1987-08-17 20:32:00 +00:00
ceriel
2d76756908 fix 1987-08-17 19:39:30 +00:00
ceriel
12369484b2 fixes to additions 1987-08-17 18:09:31 +00:00
ceriel
c6e608ab38 minor fix 1987-08-17 16:30:14 +00:00
ceriel
4bbd4c1bc1 some more additions 1987-08-17 16:24:56 +00:00
ceriel
5219c0f7a6 not finding an include file is fatal 1987-08-17 14:36:55 +00:00
ceriel
bbcca8587c some fixes to freopen 1987-08-17 14:23:16 +00:00
ceriel
2fd4ee7a48 fix in LDC CMS 1987-08-17 14:18:40 +00:00
ceriel
8be09b6814 fixed setbuf. count field was set wrong 1987-08-14 20:32:08 +00:00
ceriel
1f2fa05492 first free-ing and then reallocing did not work properly.
Now, free does nothing, except remembering that a block was freed.
malloc, realloc and free check for this.
1987-08-14 11:52:17 +00:00
ceriel
af1a5bbdcf fix in one of those tricky addressing modes 1987-08-14 00:15:49 +00:00
ceriel
8cf013b9ab some fixes to additions 1987-08-13 15:30:48 +00:00
ceriel
dfd554f271 signed compares were just wrong, added a few patterns 1987-08-13 11:22:59 +00:00
ceriel
a1cb8c1cdb added cmi4.s 1987-08-13 11:09:24 +00:00
ceriel
69516b8fd2 fixed a fix, which did not fix a bug after all 1987-08-13 10:18:25 +00:00
ceriel
824ce77efa corrected 1987-08-12 21:36:30 +00:00
ceriel
af2f5dff29 fixed 1987-08-12 20:51:23 +00:00
ceriel
e70ef8e192 fixed EXG instruction 1987-08-12 18:37:20 +00:00
ceriel
f8e81baabd yet another fix, this time to divu/divul/divs/divsl 1987-08-12 18:32:15 +00:00
ceriel
3e185f7404 added many patterns 1987-08-12 16:19:02 +00:00
ceriel
ef63d3a6b0 revised some patterns that could lead to NO REGS AVAILABLE 1987-08-12 15:58:54 +00:00
ceriel
b5baf3fccb some adaptions undone 1987-08-12 14:51:58 +00:00
ceriel
6217d3f6e7 stdio.h should not define BMASK 1987-08-12 09:24:57 +00:00
ceriel
56b0cb2438 fix + some more statistics 1987-08-11 15:31:09 +00:00
ceriel
70fa8cdef7 take alignments into account 1987-08-11 15:28:06 +00:00
ceriel
f5501fd149 adapted sizes somewhat, made facility to print memory statistics 1987-08-11 14:42:15 +00:00
ceriel
68b0b59cc0 Added the possibility to disable range-checks 1987-08-11 10:50:30 +00:00
ceriel
2c422b0146 yet another fix in those tricky FOR-loops 1987-08-11 08:58:20 +00:00
ceriel
1694d87acd some more fixes, and tried to make smaller 1987-08-10 21:43:47 +00:00
ceriel
824abdcc9b fix to fix 1987-08-10 14:06:37 +00:00
ceriel
d341457ccb Generated code for FOR-loops was wrong 1987-08-10 13:01:54 +00:00
ceriel
46e73612ba nestlevel count per file 1987-08-10 11:17:20 +00:00
ceriel
555e7be7db nestlevel count per file 1987-08-10 10:43:51 +00:00
ceriel
371edcd97e dynamic table sizes, commons in ranlib table 1987-08-10 10:20:52 +00:00
ceriel
b4db4084c8 some fixes 1987-08-07 19:54:45 +00:00
ceriel
c82ba656fb fixes to preprocessor part 1987-08-07 19:53:54 +00:00
ceriel
d027b768d1 ran out of another static list; made length dynamic 1987-08-07 14:35:21 +00:00
ceriel
f54333676b deleted a warning 1987-08-06 19:15:40 +00:00
ceriel
8f9f580ca4 make two versions: one for new peephole optimizer 1987-08-06 19:00:21 +00:00
ceriel
6dd9a28428 fixed manual page 1987-08-06 18:59:07 +00:00
ceriel
c103a0a3aa Added files for new peephole optimizer 1987-08-06 18:58:39 +00:00
ceriel
32ff92edc5 use newer read_em module, + checking library 1987-08-06 18:56:36 +00:00
ceriel
a9c913d6fd align sizes 1987-08-06 18:40:02 +00:00
ceriel
073ed31cbe generate commons for bss 1987-08-06 15:11:09 +00:00
ceriel
77405d7520 OUTTRACE was doubly defined 1987-08-06 14:29:16 +00:00
ceriel
22e4b3d98d fix in font-change 1987-08-06 14:26:45 +00:00
ceriel
0e022b2440 code improvement 1987-08-06 14:24:08 +00:00
ceriel
0dd8bc3e95 fixes 1987-08-06 14:21:01 +00:00
ceriel
f2ff9f7f33 minor mods 1987-08-06 14:20:11 +00:00
ceriel
1971f871ec fixed a bug with setjmp.
Fixed a bug with non-struct pointers referring to structs
1987-08-06 14:19:06 +00:00
ceriel
e25daddac3 moved the FCONST moves, so that they are found before the source moves 1987-08-06 13:08:02 +00:00
ceriel
9780bab889 use malloc instead of sbrk 1987-08-06 13:04:20 +00:00
ceriel
dd6fbf77a7 bigger define for MAXSTAB 1987-08-06 13:00:47 +00:00
ceriel
58d238c41c added end.s 1987-08-06 12:56:11 +00:00
ceriel
befd9fcb1c added missing patterns 1987-08-06 12:48:27 +00:00
ceriel
358391dd8e use our own assembler instead of /bin/as 1987-08-06 11:36:47 +00:00
ceriel
25d041e298 some nofits are actually errors 1987-08-06 11:17:30 +00:00
ceriel
f7b655eaf7 many re-arrangements 1987-08-06 10:48:14 +00:00
ceriel
4c6a363485 to .m instead of .k 1987-08-06 10:27:10 +00:00
ceriel
3985d8ddba handle returns better 1987-08-06 09:55:00 +00:00
ceriel
efe319da10 some minor improvements 1987-08-05 18:24:31 +00:00
ceriel
400d87eba2 temporary fix for commas within operands 1987-08-05 13:09:37 +00:00
ceriel
c77dc48cdc fixed a subtle bug: in some obscure cases involving conflict resolvers and
defaults, wrong code was generated
1987-08-05 12:52:15 +00:00
ceriel
8024d620cc fixed another bug with header blocks, and modified to use existing header
block when possible
1987-08-05 09:46:38 +00:00
ceriel
ae4f6afd07 use malloc, made more robust against errors in line directives 1987-08-04 19:30:14 +00:00
ceriel
46b7904bd9 fix 1987-08-04 19:29:28 +00:00
ceriel
dac756aa08 bug fixes: put header block at end of procedure 1987-08-04 14:13:24 +00:00
ceriel
bc6644fc8b resulted in 32768 instead of -32768 on a PDP-11 1987-08-04 08:59:50 +00:00
ceriel
cd8d48a0e9 fix: variable sets were handled wrong 1987-08-03 18:20:55 +00:00
ceriel
f5f47f26fc fix in check 1987-08-03 18:03:23 +00:00
ceriel
7eed6823a1 Added a break, so that an error message is only given once 1987-08-03 18:00:22 +00:00
ceriel
e945da32e5 fix blocks.c 1987-08-03 14:40:49 +00:00
ceriel
444a8701d6 fix: may no address more memory than is present blocks.c 1987-08-03 14:04:44 +00:00
ceriel
6fead7b970 check name offset 1987-08-03 13:22:30 +00:00
ceriel
17514ea0ec some cosmetic changes 1987-08-03 11:01:19 +00:00
ceriel
1130634688 updated 1987-08-03 09:47:46 +00:00
ceriel
f9545ae1b6 some cosmetic changes 1987-08-03 09:16:20 +00:00
ceriel
ead1e453d0 some fixes and cosmetic changes 1987-08-03 09:09:07 +00:00
ceriel
c158bf75de removed the limitation of the next field 1987-08-03 09:07:25 +00:00
ceriel
5e715448e3 fix in a call to record 1987-07-30 16:04:29 +00:00
ceriel
925765c6fe new version that passes current tests 1987-07-30 14:21:19 +00:00
ceriel
5d675b2543 many changes; some cosmetic; coercions now explicit in tree 1987-07-30 13:37:39 +00:00
bruce
0deacd4922 Corrected EMHOME in Makefile (yet again) 1987-07-30 09:42:39 +00:00
ceriel
a0da2d3239 do better bad-pointer testing 1987-07-30 09:20:59 +00:00
ceriel
1ae90ef670 yet another fix: outoperand must do nothing with ps_end 1987-07-30 08:59:40 +00:00
ceriel
860146a0e6 externals were not handled right 1987-07-29 19:49:15 +00:00
bruce
e455d2f82d Added removal of dead code patterns 1987-07-29 16:10:27 +00:00
ceriel
9331f4d366 did not handle HOL names right (null names) 1987-07-29 10:43:43 +00:00
ceriel
c95e430435 fix: did not handle externals with big HOL offsets right 1987-07-29 10:39:02 +00:00
ceriel
227e8dfd75 changed order in LIST, ReadString from InOut still did not work right 1987-07-28 13:46:13 +00:00
bruce
dfa4f3f011 Parser outputs some stats and fixed error is pseudo.r 1987-07-28 11:22:59 +00:00
bruce
5f0fc58f5d Updated nopt.doc for dfa encoded using row displacement 1987-07-28 10:56:44 +00:00
bruce
e309aa232a Converted dfa to use row displacement compaction 1987-07-28 09:37:09 +00:00
ceriel
5daa08c66b fixed the 'too many hits' complaint of refer 1987-07-28 09:06:53 +00:00
ceriel
9622765d8d System V has no ftime systemcall 1987-07-24 13:24:19 +00:00
ceriel
099a23c908 correction: had deleted a line by accident 1987-07-24 11:58:51 +00:00
ceriel
a03073fc67 characters were treated as unsigneds, lines with quotes in them
where not treated correctly
1987-07-24 09:21:24 +00:00
ceriel
026a3b5011 A different way of detecting conformant arrays 1987-07-22 17:02:54 +00:00
ceriel
d57b630002 some cosmetic changes 1987-07-22 16:35:09 +00:00
ceriel
25c92ead63 added docs about -Xi flag 1987-07-22 13:42:46 +00:00
ceriel
77a379be4a pass -i flag to modula-2 compiler, via -Xi 1987-07-22 13:30:06 +00:00
ceriel
8d2c1b95a6 did not export cerror, did not define _errno 1987-07-22 12:46:07 +00:00
ceriel
63a5128ddd some small fixes and additions 1987-07-22 12:42:10 +00:00
bruce
5fabb97724 Remove strings library from Makefile 1987-07-22 12:41:46 +00:00
ceriel
148a343b59 some more fixes 1987-07-22 10:59:24 +00:00
ceriel
50c5ec9124 fixed a bug: constant sets were not handled right on 4-byte machines 1987-07-22 09:21:00 +00:00
ceriel
b161be69ed fixed a typo 1987-07-22 09:12:47 +00:00
bruce
af77fd5d91 Update for single buffer rather that queues 1987-07-21 14:28:11 +00:00
ceriel
938bf33dde fixes, changes to make smaller on PDP 1987-07-21 13:54:33 +00:00
bruce
882d285f35 Major change: All queues now in same buffer 1987-07-21 13:23:09 +00:00
ceriel
7a74547ec0 deleted useless tst.b instruction 1987-07-20 14:31:46 +00:00
ceriel
f7b4b2ec6e do not generate mes 11 AND mes 3! 1987-07-17 14:30:30 +00:00
ceriel
8aae5c7bdf call .trp instead of jmp to it 1987-07-17 14:16:39 +00:00
ceriel
7553f860b1 set _buf to 0 on open 1987-07-17 14:04:14 +00:00
ceriel
d8a844f0da name changes, fix in computation of set sizes 1987-07-17 13:50:04 +00:00
ceriel
f63c19df79 include <sys/time.h> on 4.2 systems 1987-07-17 09:38:18 +00:00
ceriel
db66b7720a bug fixes, name changes 1987-07-16 19:51:40 +00:00
ceriel
1148da3047 fix: wrong free 1987-07-16 16:08:13 +00:00
ceriel
68265148d7 use new C_insertpart mechanism, other minor changes 1987-07-16 13:27:37 +00:00
ceriel
c3dc721ba5 disabled assertions, fixed bug with pack/unpk 1987-07-16 09:44:44 +00:00
ceriel
223d7cff11 fixes with error_type, make "type" struct more compact. 1987-07-16 09:34:44 +00:00
bruce
785108f332 remove a couple pieces of trivial lint 1987-07-14 09:15:10 +00:00
ceriel
7a24d9b88e Added NOFL to Makefile, to pass NOFLOAT. Also improved the clean entry 1987-07-13 16:50:57 +00:00
bruce
3d439ded6d Added optimser document 1987-07-13 15:14:13 +00:00
bruce
b76ce64cc5 dfa.c now a routine for each state rather than nested switch statement 1987-07-13 15:03:27 +00:00
ceriel
d2bb354d98 Added and corrected some comments 1987-07-13 13:34:56 +00:00
ceriel
0def262fd0 version for installation 1987-07-13 12:53:21 +00:00
ceriel
be2223b690 compute some expressions in "int" instead of "arith" 1987-07-13 12:46:46 +00:00
ceriel
483fcab70f fixes 1987-07-13 11:49:32 +00:00
ceriel
a730a046da fixes 1987-07-13 10:30:37 +00:00
bruce
a717df13b2 Remove free queue and use st_alloc/free from alloc module 1987-07-13 10:07:33 +00:00
bruce
a67b08205d New patterns, man page changes, other little fixes 1987-07-10 14:16:32 +00:00
ceriel
058ba5041b yet another bug fix: the brk systemcall destroyed d1 1987-07-10 11:57:45 +00:00
bruce
403623a693 added manual pages for library and stand alone program 1987-07-10 09:08:31 +00:00
ceriel
0612ff45fa some fixes 1987-07-10 09:06:19 +00:00
ceriel
4fbb89341f fix: sbu was wrong for 4-4 1987-07-09 17:46:31 +00:00
ceriel
a633da255c added m2_traps.h 1987-07-09 15:17:56 +00:00
ceriel
23644222aa changed random function, added CSP module 1987-07-09 15:15:22 +00:00
bruce
c0091d8046 Added lint entry to Makefile and removed some things lint complained about 1987-07-09 15:04:03 +00:00
bruce
f850de5405 Corrected clean option in Makefile 1987-07-09 09:14:43 +00:00
bruce
0c4826d286 Changed trans.c from switch statement into series of small procedures. Output files from parser now only written if changed 1987-07-09 09:02:41 +00:00
ceriel
2632711272 latest changes to PascalIO: Reset and Rewrite have their parameters switched 1987-07-08 16:37:23 +00:00
ceriel
537e64cf31 fix: sometimes the index mode was used in the wrong way 1987-07-08 16:36:45 +00:00
bruce
72eebcef0c Convert to new READ_EM data structure. Build a em_nopt. Input names now O_ and output C_. Add insert part support. 1987-07-07 16:31:16 +00:00
ceriel
bbd6ccd8cb Bug fix: ch7sel should call any2opnd 1987-07-06 18:24:46 +00:00
ceriel
0fb50b4aa7 Added -DNDEBUG to Makefile, table now kills regvars 1987-07-06 15:28:59 +00:00
ceriel
c36a54c76b added Realloc, split into separate files 1987-07-06 14:46:00 +00:00
ceriel
18adef4857 tried to make faster 1987-07-06 13:03:14 +00:00
ceriel
afffb11b6a bug fix: sometimes register variables were treated as scratch regs! 1987-07-06 10:24:51 +00:00
ceriel
7bd3d8bc7c bug fix: did not check externals right 1987-07-03 16:41:45 +00:00
ceriel
2f786d97d5 name changes 1987-07-03 16:07:18 +00:00
ceriel
bc54efada7 fix: errmod --> errmon 1987-07-03 15:50:38 +00:00
ceriel
76eb2e4476 The em_argtype sometimes was not set right 1987-07-03 10:35:55 +00:00
ceriel
0d185828b6 BASE only used when INCORE 1987-07-01 18:27:00 +00:00
ceriel
06911f8c65 Added C_insertpart mechanism 1987-07-01 17:24:10 +00:00
ceriel
5d9e3d466e pass EMHOME on to nested make 1987-07-01 13:15:52 +00:00
ceriel
ece9b256f3 Added seek.c, an interface to the lseek systemcall 1987-07-01 13:00:43 +00:00
ceriel
49ffe54807 use proper selector names 1987-07-01 09:52:17 +00:00
ceriel
c4e4caba0e again, more consistent naming 1987-06-30 18:59:51 +00:00
ceriel
3dc75ca750 updated 1987-06-30 18:44:08 +00:00
ceriel
e9bcf6b977 pass EMHOME to nested make 1987-06-30 18:30:45 +00:00
ceriel
344901d3a6 Added some register decls 1987-06-30 18:24:27 +00:00
ceriel
a56416f9c8 EM --> EMHOME 1987-06-30 18:20:25 +00:00
ceriel
0dd451935e more consistent naming 1987-06-30 17:02:45 +00:00
ceriel
5cdc2f00ab [ek]/C_failed.c removed. Now called failed.c 1987-06-30 16:11:19 +00:00
ceriel
e67875114f all external names start with C_ 1987-06-30 16:09:36 +00:00
ceriel
17a3ce53b4 all external names start with C_, output buffered 1987-06-30 16:09:18 +00:00
ceriel
2c8bc35597 putbyte --> C_putbyte 1987-06-30 15:24:02 +00:00
ceriel
79d0464bdc fix 1987-06-30 13:17:53 +00:00
ceriel
95fcc2093b minor changes, consistent naming of variables 1987-06-30 13:11:16 +00:00
ceriel
be93a9eadf new version, different interface 1987-06-30 12:55:30 +00:00
ceriel
8cbaa89f4a fix: ReadREAL did not work, because ok was'nt initialized 1987-06-29 19:33:01 +00:00
ceriel
bbcc8dec0d fix: rck must call trp, not jmp to it. Return is possible. 1987-06-29 18:13:47 +00:00
ceriel
3b88bbb499 Added the modifications that were made to the Minix code generator 1987-06-29 15:57:48 +00:00
ceriel
b588262a85 fixed a bug in a name-changing routine 1987-06-29 14:41:23 +00:00
ceriel
08216f3d5d - fixes: improved POINTER TO IDENT mechanism, prevent core dump when
definition module not found, corrected typo.
- changed mechanism for variables that have their address given.
- added option for symmetric integer ranges
1987-06-29 12:46:00 +00:00
ceriel
ab2cea7a0f fixes 1987-06-29 12:27:50 +00:00
ceriel
5badb261c6 fixes, different traps, new files 1987-06-26 15:59:52 +00:00
ceriel
7932348852 fix: ConvertInteger was wrong for MIN(INTEGER) 1987-06-23 17:38:18 +00:00
ceriel
b95ff7a37b map -Xs flag to -s for modula-2 compiler 1987-06-23 17:15:56 +00:00
ceriel
ea811cdb79 fixes, made more consistent 1987-06-23 17:12:42 +00:00
ceriel
0de7f94893 fixes, added 's' option 1987-06-23 17:12:25 +00:00
ceriel
df91b447c3 enabled range checks 1987-06-19 09:47:53 +00:00
ceriel
0dbbed1ff7 fixes 1987-06-19 09:25:08 +00:00
ceriel
3e9da65867 Added a kind of range-check for assignments between cards and ints 1987-06-18 17:42:47 +00:00
ceriel
ca742a5d0c some fixes, and changed priority of unary minus 1987-06-18 15:46:08 +00:00
ceriel
9046645590 fix: Read did not set "Done" in the "unread" case 1987-06-16 09:04:27 +00:00
ceriel
c79e062121 fixed bug 1987-06-12 19:10:12 +00:00
ceriel
112ec23e08 exg instruction translated wrong 1987-06-11 14:44:48 +00:00
ceriel
2c84d1bc14 ReadString did not skip leading spaces 1987-06-11 13:07:27 +00:00
ceriel
4ea59adb33 fix in asp -2 1987-06-11 10:47:13 +00:00
ceriel
625fae7d5b modified print to use _write 1987-06-10 14:52:39 +00:00
ceriel
d2d4f2d604 some more fixes 1987-06-10 14:06:14 +00:00
ceriel
bbd4e57723 bug fixes 1987-06-10 13:46:21 +00:00
ceriel
beb78f38ed bug fix 1987-06-10 10:33:19 +00:00
ceriel
dcf7bd7820 some fixes 1987-06-09 15:15:18 +00:00
ceriel
3e189780d4 corrected some errors 1987-06-09 11:05:09 +00:00
ceriel
96eb0e6b49 added some routines 1987-06-09 10:50:47 +00:00
ceriel
2ec9078e65 corrected syntax error 1987-06-09 10:35:22 +00:00
ceriel
5ce85dc349 many changes because of introduction of register variables si/di 1987-06-09 10:22:50 +00:00
ceriel
bdd70c0563 pass EMHOME to nested make 1987-06-09 10:19:47 +00:00
ceriel
8de8d53dd1 Added register variables: registers si and di 1987-06-09 09:47:02 +00:00
ceriel
593c62a5a1 removed printf.s 1987-06-09 09:24:05 +00:00
ceriel
f1988c94cd minor changes to many files 1987-06-03 19:05:14 +00:00
ceriel
0883e7ac0e bug fix in local extern-declarations, some other minor changes 1987-06-01 10:17:29 +00:00
ceriel
ae1840341f fixed Makefile 1987-06-01 08:59:07 +00:00
ceriel
a7e89e119c fixed Makefile 1987-06-01 08:56:50 +00:00
ceriel
208864add2 fixes, added some standard functions to handle LONGREAL, LONGINT 1987-05-27 10:16:03 +00:00
ceriel
e85d299448 Added Mathlib; MathLib0 now uses Mathlib 1987-05-27 10:05:01 +00:00
ceriel
46d881a57a fix to fix 1987-05-26 15:35:17 +00:00
ceriel
a95153f6d9 yet another fix: conditional jumps did not work when exactly 256 bytes away 1987-05-26 15:31:43 +00:00
ceriel
3eb96ecae8 lseek was not declared 1987-05-25 17:45:57 +00:00
ceriel
650feba0e8 Added some 'register' to declarations 1987-05-25 09:13:12 +00:00
ceriel
1903308851 Added .distr 1987-05-22 17:24:46 +00:00
ceriel
b2e16cc28e Added RealConversion 1987-05-22 17:15:09 +00:00
ceriel
79b7a598aa divided time costs by 10, because of overflow 1987-05-21 13:59:55 +00:00
ceriel
cf4dd08253 bug fix, and made more robust 1987-05-21 13:43:56 +00:00
ceriel
976f101776 core_alloc changed to old one 1987-05-21 10:10:27 +00:00
ceriel
b967391120 Some changes to handle more on small machines:
a section is now split into parts that fit in core
1987-05-21 10:06:14 +00:00
ceriel
f17f36e9a0 some changes to make smaller 1987-05-21 09:37:28 +00:00
ceriel
cedc3eb98e Fix in wrong assertion 1987-05-21 09:28:33 +00:00
ceriel
1fdd8b9c37 use stdio to do output 1987-05-20 17:17:42 +00:00
ceriel
db44f48cf6 Some more adaptions to new assembler 1987-05-20 17:15:59 +00:00
ceriel
cda0ec1e77 Fixed some bugs 1987-05-20 17:15:22 +00:00
ceriel
490ceb7def Added modula, -L was passed twice to peephole optimizer 1987-05-20 14:51:02 +00:00
ceriel
cfbdeac226 Added 'loc slu' pattern 1987-05-20 14:13:29 +00:00
ceriel
c20d1fa779 transfer made to work on pdp/11 EM intrpreter 1987-05-20 14:11:22 +00:00
ceriel
2a5246ae62 put mes 2 in front 1987-05-20 14:09:21 +00:00
ceriel
5bdd7244d3 Added some patterns, generate mes 8 after mes 2 1987-05-20 13:56:26 +00:00
ceriel
0878200e01 some bug fixes: filename and unintialized data descriptor 1987-05-19 15:13:57 +00:00
ceriel
f673fb2660 string compare must be on unsigned chars 1987-05-19 08:51:48 +00:00
ceriel
f8e96a3d8c Added a pattern for better *p++ operation 1987-05-19 08:50:17 +00:00
ceriel
961c5d58b4 some bug fixes with 'bisb' 1987-05-18 18:34:59 +00:00
ceriel
b0b95af274 many minor corrections 1987-05-18 15:57:33 +00:00
ceriel
537a65a978 -1 is now represented as such 1987-05-18 15:54:52 +00:00
ceriel
5351b53277 improved ROM handling 1987-05-18 15:50:42 +00:00
ceriel
63aa473f66 declare mktemp and strcpy 1987-05-18 14:27:06 +00:00
ceriel
956d937a89 botch and clear have an unsigned as second arg 1987-05-18 14:16:41 +00:00
ceriel
11754b7cfb Added lintlib 1987-05-18 13:49:59 +00:00
ceriel
69114a859b Added lintlib 1987-05-18 13:37:44 +00:00
ceriel
440019dc59 Added lintlib, minor fixes 1987-05-18 13:34:06 +00:00
ceriel
b91fe8a625 handle ROM's better 1987-05-18 13:29:32 +00:00
ceriel
b610ced88b Added lintlib, minor optim 1987-05-18 13:11:50 +00:00
ceriel
9405b118eb Added lintlib 1987-05-18 13:10:25 +00:00
ceriel
478ac21c7d Added conversion program 1987-05-18 11:37:18 +00:00
ceriel
92c5704820 Added *REG addressing mode, fixed a bug 1987-05-18 10:40:19 +00:00
ceriel
aaea94c9ed deleted FORMAT, fixed con_float 1987-05-15 16:32:14 +00:00
ceriel
96f26fa323 bug fix in jmp instruction 1987-05-15 16:31:00 +00:00
ceriel
bc31ff7ea2 bug fix in RMI 1987-05-15 15:46:50 +00:00
ceriel
dca4922141 added end.s 1987-05-15 12:55:51 +00:00
ceriel
e428eb1364 libraries can now be made on any machine 1987-05-15 09:30:47 +00:00
ceriel
ae99e55eb1 use aal 1987-05-15 09:28:57 +00:00
ceriel
6000cff48e addd .distr 1987-05-15 09:22:54 +00:00
ceriel
4c0833bf68 converted to ACK assembler format 1987-05-15 09:11:10 +00:00
ceriel
00096aeca2 converted to ACK assembler format 1987-05-14 17:45:41 +00:00
ceriel
8b1b45b1b6 document zero-initialization 1987-05-14 16:51:53 +00:00
ceriel
02c82b2765 generate code for ACK assembler, including floats 1987-05-14 14:58:21 +00:00
ceriel
f737b21e40 minor fix; generate code for ACK assembler 1987-05-14 14:41:16 +00:00
ceriel
fdb10f6623 Initial revision 1987-05-14 14:32:55 +00:00
ceriel
2908b62b26 tell modula-2 compiler about the word-size! 1987-05-14 11:33:24 +00:00
ceriel
238180edf5 fix 1987-05-13 16:38:31 +00:00
ceriel
5aa1296ffa use aal 1987-05-13 16:32:57 +00:00
ceriel
5f55d6b5f9 Bug fix: negative integers had the sign at the end 1987-05-13 16:30:06 +00:00
ceriel
6bcf1d5666 fix 1987-05-13 16:19:49 +00:00
ceriel
fc5ed95195 added modula-2 1987-05-13 16:18:17 +00:00
ceriel
9f5ce8cb2f added modula-2 1987-05-13 16:16:57 +00:00
ceriel
ec82d26168 Initial revision 1987-05-13 16:13:52 +00:00
ceriel
124c47369f Added SYSTEM.h 1987-05-13 15:31:21 +00:00
ceriel
b0f688ede7 install manual pages, standard entries 1987-05-13 15:09:11 +00:00
ceriel
c5e8281e6a minor adaptions 1987-05-13 14:55:34 +00:00
ceriel
64d9692437 added modula-2 1987-05-13 14:41:31 +00:00
ceriel
0fe3fbd296 Initial revision 1987-05-13 14:36:45 +00:00
ceriel
b767dd20a3 bug fix in getarea/freearea 1987-05-13 14:10:11 +00:00
ceriel
2fcf3facf0 bug fix in constant set computations 1987-05-13 13:04:28 +00:00
ceriel
e9b8bfeddf fixed problem with em_last file for int24 1987-05-13 10:18:42 +00:00
ceriel
4a018be8bf some bug fixes 1987-05-12 18:23:09 +00:00
ceriel
1e9b520e26 made to work with Modula-2 again 1987-05-12 18:20:10 +00:00
ceriel
3ce3a4e5b1 minor fix 1987-05-12 12:34:04 +00:00
ceriel
3b59911b9e fixed a minor bug in cstoper.c: computation of mach_long_sign was wrong 1987-05-12 11:15:55 +00:00
ceriel
67997337b2 Added a Giant size 1987-05-12 09:16:15 +00:00
ceriel
9b723f428e removed the limitation on number of include directories,
some bug fixes,
sets now have a constant and a variable part
1987-05-11 14:38:37 +00:00
ceriel
46100e2a95 removed the limitation on number of include directories 1987-05-11 14:30:12 +00:00
ceriel
351283c0c8 bug fix in cstoper.c: max_long_sign was computed wrong 1987-05-11 14:19:13 +00:00
ceriel
eb7d477357 removed the limitation on number of include directories 1987-05-11 14:08:58 +00:00
ceriel
471830d59d previous fix was wrong; corrected 1987-05-11 12:47:59 +00:00
ceriel
d963e2a54e small fix: -I flag was passed twice 1987-05-11 12:31:51 +00:00
ceriel
1613b9d9f7 Fixes to return sequence 1987-05-11 10:24:36 +00:00
ceriel
70834c1294 now generates "uninitialized data" descriptors 1987-04-29 14:54:16 +00:00
ceriel
64606dcc5c bug fix in lseek.e 1987-04-29 13:36:52 +00:00
ceriel
5ba897a2bc Added some patterns replacing divides by shifts (done by bruce) 1987-04-29 11:35:00 +00:00
ceriel
ec9929d939 make to work on sun, added copyright, etc 1987-04-29 10:22:07 +00:00
ceriel
22b9df302f Another error in the test 1987-04-28 15:09:39 +00:00
ceriel
d931863c8a removed some defines from tunable.h. They were not used. 1987-04-27 15:57:43 +00:00
ceriel
9710026def vfork was wrong 1987-04-27 13:11:17 +00:00
ceriel
f2b4c88b0e new LIST file; order was wrong 1987-04-27 12:28:28 +00:00
ceriel
d8345f808d Thos long footnote marks were ugly. improved. 1987-04-24 13:46:59 +00:00
ceriel
51f4df4c59 minor correction to sgtty.h, the 4.2 codes where wrong again 1987-04-23 16:24:39 +00:00
ceriel
9fe57a8360 minor correction to sgtty.h, the 4.2 codes where wrong 1987-04-23 16:14:13 +00:00
ceriel
55bf3bf35c sleep sometimes hangs. This is corrected 1987-04-23 15:20:41 +00:00
ceriel
5ab6963e3d Fix for small machines 1987-04-23 14:52:34 +00:00
ceriel
553ed226de Some fixes 1987-04-23 14:49:49 +00:00
ceriel
c2cec7473f Fixed wrong mlu4.s 1987-04-23 14:47:28 +00:00
ceriel
9a77142dda minor bug fix: dumped core when called with more than one arg 1987-04-23 12:53:54 +00:00
ceriel
84548ea2ec bug fix: decode did not handle quotes within strings right 1987-04-21 19:34:52 +00:00
ceriel
7d8e0a9300 Initial revision 1987-04-16 16:04:55 +00:00
ceriel
f97518b49a Initial revision 1987-04-16 15:57:16 +00:00
ceriel
29e259af54 Initial revision 1987-04-16 15:48:27 +00:00
ceriel
9ede227593 Initial revision 1987-04-16 15:28:46 +00:00
ceriel
0ed8b45e70 *** empty log message *** 1987-04-16 15:06:18 +00:00
ceriel
463791c7f5 Initial revision 1987-04-16 14:32:50 +00:00
ceriel
d437414110 usr --> proj 1987-04-16 13:57:54 +00:00
ceriel
657e078607 Initial revision 1987-04-16 13:27:42 +00:00
ceriel
a2b6851154 Added line_prefix.h 1987-04-15 09:30:37 +00:00
ceriel
f7c44ca8d7 Updated "onerror" docs to current situation 1987-04-14 16:02:37 +00:00
ceriel
e7e90e6afe I forgot 1987-04-14 11:11:03 +00:00
ceriel
78f595ce51 Initial revision 1987-04-13 17:10:33 +00:00
ceriel
cc3413a7b9 Added execle.c and ececv.c 1987-04-13 17:09:38 +00:00
ceriel
5d6b4ebb1c different "onerror" handling 1987-04-13 16:34:46 +00:00
ceriel
5ea5c50340 -only generate warnings when there are conflict resolvers but no conflicts,
-handle "onerror" differently
1987-04-13 16:11:50 +00:00
ceriel
80b4d7b3e8 Bug fix, program was not partable. it assumed same byte order as i86. 1987-04-13 15:57:33 +00:00
ceriel
23de468e43 Bug fix: did not accept loc 1 loc 4 cii 1987-04-13 12:52:38 +00:00
ceriel
b0df114710 Initial revision 1987-04-13 10:32:47 +00:00
ceriel
a0be5a118b 3rd distribution 1987-04-13 10:31:48 +00:00
ceriel
edfb785958 bug fix 1987-04-13 08:22:22 +00:00
ceriel
7c9fcc9e17 Allow for cumulative -V flags. 1987-04-10 18:03:12 +00:00
ceriel
ab62335860 variable length names 1987-04-09 14:15:25 +00:00
ceriel
3f21d93bc9 final update before distribution 3! 1987-04-09 10:08:52 +00:00
ceriel
587d8791ff Bug fixes and made faster on PDP-11 1987-04-08 17:15:30 +00:00
ceriel
40ba3857ef fix; %ld is not proper for an int 1987-04-08 15:10:26 +00:00
ceriel
d44810d686 don't use $?, it does not work properly (?) 1987-04-08 08:56:34 +00:00
ceriel
1f3727b5a7 *** empty log message *** 1987-04-07 11:00:10 +00:00
ceriel
336d2fa9d8 correction for access systemcall 1987-04-07 10:01:57 +00:00
ceriel
62aaf43375 yet another bug fix 1987-04-07 09:57:50 +00:00
ceriel
975f539560 undid a fix. Actually, the fix was wrong 1987-04-07 09:08:28 +00:00
ceriel
cefda66c70 st_blksize does only exist on 4.2 systems 1987-04-07 08:46:15 +00:00
ceriel
fd0a1da0a7 Some more bug fixes 1987-04-06 17:59:57 +00:00
ceriel
f6f3a93bc4 Ported to sun 1987-04-06 13:03:05 +00:00
ceriel
f9b9b21f46 bug fix 1987-04-06 12:33:28 +00:00
ceriel
a8aa714370 Added Pascal library 1987-04-06 07:56:49 +00:00
ceriel
3ec89028a1 minor bug fix 1987-04-03 20:13:08 +00:00
ceriel
21fd5d26c2 use LDFLAGS, not LFLAGS 1987-04-03 19:58:39 +00:00
ceriel
110d275401 Bug fix: a character was compared to op_lab, which is >= 128. 1987-04-03 16:48:53 +00:00
ceriel
b66453d5f8 2 last minute-additions (oh dear ...) 1987-04-03 16:21:24 +00:00
ceriel
aef050fa9e Seemed to prefer reg_any registers, which caused addresses of procedures
to end up in data registers on the m68020. This is temporarily fixed,
but actually, the descriptor files could be somewhat more general.
1987-04-03 15:38:52 +00:00
ceriel
d08f533252 improved somewhat 1987-04-03 15:06:25 +00:00
ceriel
a75be26c1f target optimizer must be installed before trying to install libraries! 1987-04-03 13:24:20 +00:00
ceriel
9c090b468d -K becomes -KR 1987-04-03 13:18:38 +00:00
ceriel
4f0e2ffced Added some more documentation on the global optimizer 1987-04-03 13:14:37 +00:00
ceriel
6a04003330 minor mod 1987-04-03 11:18:49 +00:00
ceriel
d062747473 minor mods 1987-04-03 11:16:46 +00:00
ceriel
828141d1f9 some more fixes 1987-04-03 10:51:37 +00:00
ceriel
feef2696b6 some more corrections 1987-04-02 16:59:27 +00:00
ceriel
c3870d72a7 correct interpreter description files on SYStem V or Sun machines 1987-04-02 14:26:58 +00:00
ceriel
91211deb01 Added declaration for malloc 1987-04-02 14:12:21 +00:00
ceriel
b2ebd79911 bug fixes 1987-04-02 14:09:21 +00:00
ceriel
86788787ab some bug fixes 1987-04-02 14:04:17 +00:00
ceriel
c216fc22e6 improved call to C_lin 1987-04-02 13:02:16 +00:00
ceriel
377045775f "word" is always a long 1987-04-02 10:26:42 +00:00
ceriel
9b1d70130b "word" is always a long 1987-04-02 10:17:06 +00:00
ceriel
6ce3a3b327 "word" now is always a long 1987-04-02 10:07:10 +00:00
ceriel
39dd0f0be3 "word" is always a "long" 1987-04-02 10:04:25 +00:00
ceriel
2de30a84a8 "word" is now always a "long" 1987-04-02 09:54:41 +00:00
ceriel
7e2b87c39b Allow "|" in "system" lines, must be in quotes 1987-04-02 09:07:05 +00:00
ceriel
419c45593b corrected for 4.2 bsd 1987-04-01 15:37:14 +00:00
ceriel
06e5ebbbfc updated for 3rd distribution 1987-04-01 13:50:18 +00:00
ceriel
06926ae97c Adapted for distribution 3 1987-04-01 13:47:09 +00:00
ceriel
e5a3e6a374 Added EMHOME 1987-04-01 08:54:00 +00:00
ceriel
3fcfdbcdaa Initial revision 1987-04-01 08:28:20 +00:00
ceriel
1bf61dbffd Changed strategy somewhat 1987-04-01 08:20:39 +00:00
ceriel
885eeb63b2 Initial revision 1987-03-31 22:17:51 +00:00
ceriel
e03211351a improved "clean" entry 1987-03-31 13:11:31 +00:00
ceriel
f0cfb9b7df minor change to manual page 1987-03-31 12:44:15 +00:00
ceriel
07eefb39aa Also install manual page 1987-03-31 12:33:23 +00:00
ceriel
5e7866f33d Initial revision 1987-03-31 12:14:08 +00:00
ceriel
4f16130684 Added Rcs Id 1987-03-31 11:09:18 +00:00
ceriel
90c3d3eb5d Added copyright notice 1987-03-31 11:06:20 +00:00
ceriel
23b11bb0ba converted to 4-4 1987-03-31 10:58:30 +00:00
ceriel
43ea927e3f Added copyright notice 1987-03-31 10:50:20 +00:00
ceriel
2a5ca6ac71 replaced copyright notice 1987-03-31 10:45:54 +00:00
ceriel
3b8fab2c0d Added Rcs Id 1987-03-31 10:45:53 +00:00
ceriel
9f84c51255 *** empty log message *** 1987-03-31 10:34:14 +00:00
ceriel
3cb1774f76 made more portable 1987-03-31 10:05:26 +00:00
ceriel
7b9da32063 Ported to other m68000 systems 1987-03-31 09:23:20 +00:00
ceriel
d32a4183aa *** empty log message *** 1987-03-31 08:42:07 +00:00
ceriel
8d52416b12 moer robust version 1987-03-31 08:16:41 +00:00
ceriel
4117fa4362 more robust version 1987-03-31 08:15:22 +00:00
ceriel
9b6a511a1d Made to work on system V and SUN 1987-03-31 08:05:50 +00:00
ceriel
be0f63cd53 *** empty log message *** 1987-03-31 08:02:40 +00:00
ceriel
8a7c77ff8c layout improvements 1987-03-31 07:56:14 +00:00
ceriel
2a62baeaa6 dispatch tables generated now, layout improvements 1987-03-31 07:54:43 +00:00
ceriel
adba3d4ddf modified to generate dispatch tables automatically 1987-03-31 07:51:34 +00:00
ceriel
4d2929d43b minor layout improvements 1987-03-31 07:45:17 +00:00
ceriel
cb48e1f63a don't use /usr/lib/ditroff 1987-03-31 07:43:56 +00:00
ceriel
556d5d2ce2 minor improvement in layout 1987-03-31 07:42:10 +00:00
ceriel
997045aa40 Some improvements 1987-03-31 07:40:45 +00:00
ceriel
a1feac2080 tail_em must be scanned twice, because tail_mon contains C-routines 1987-03-31 07:30:44 +00:00
ceriel
49aa84b2b2 *** empty log message *** 1987-03-31 07:28:06 +00:00
ceriel
663530f4ec umount, NOT unmount! 1987-03-31 07:28:05 +00:00
ceriel
02e780346b Pass preprocessor flags 1987-03-30 13:20:05 +00:00
ceriel
d7ab94fddf No line directives 1987-03-30 13:18:10 +00:00
ceriel
4d19217ab1 Don't use reghp 1987-03-30 12:40:09 +00:00
ceriel
3c35d73e91 don't use reghp 1987-03-30 12:35:46 +00:00
ceriel
55c95aba72 renamed systemcalls 1987-03-30 09:39:38 +00:00
ceriel
c594ca7b92 moved the mantra part to another place, because it now
also contains the interpreter part.
1987-03-30 09:19:00 +00:00
ceriel
164e90a3ff Added interpreter 1987-03-30 09:18:03 +00:00
ceriel
c9cdab48a2 moved interpreter to another place 1987-03-30 09:05:14 +00:00
ceriel
a8a2c9dccc Initial revision 1987-03-30 08:02:43 +00:00
ceriel
a296eda4b0 Added occam 1987-03-30 08:00:59 +00:00
ceriel
ad27b42385 use own occam library 1987-03-30 07:59:57 +00:00
ceriel
ade1b17ac8 Use own occam library 1987-03-30 07:55:12 +00:00
ceriel
3f9fb254af Added Occam 1987-03-30 07:51:20 +00:00
ceriel
35401d6ca3 Added ICRNL 1987-03-30 07:48:19 +00:00
ceriel
e09c02d73b removed ".byte" 1987-03-29 13:39:14 +00:00
ceriel
aa6c2efac3 updated 1987-03-29 13:33:37 +00:00
ceriel
06e22e2f13 modified to do more in the presence of errors 1987-03-29 13:07:44 +00:00
ceriel
dd5ca571c5 use print library 1987-03-29 13:00:40 +00:00
ceriel
e27feaa680 bug fixes 1987-03-29 12:55:25 +00:00
ceriel
a380295f68 Minor fixes 1987-03-27 16:39:57 +00:00
ceriel
07dcdf7377 *** empty log message *** 1987-03-27 15:13:05 +00:00
ceriel
993621fed8 minor adaption, to close filedescriptor immediatelym if possible 1987-03-27 15:11:06 +00:00
ceriel
b5222a5f50 changd values somewhat, added values for small machines 1987-03-27 13:56:50 +00:00
ceriel
6096f2556c bug fix 1987-03-27 13:34:46 +00:00
ceriel
d43ddf6abc .fat --> .fatal 1987-03-27 12:43:17 +00:00
ceriel
2d2b7cca7f *** empty log message *** 1987-03-27 12:27:17 +00:00
ceriel
d0757d3380 minor fix to LLlex.h 1987-03-27 10:37:58 +00:00
ceriel
92c5f4bf7b *** empty log message *** 1987-03-27 10:06:59 +00:00
ceriel
806526bfbe Franks version 1987-03-27 10:05:53 +00:00
ceriel
c5c5b0448f franks version 1987-03-27 09:58:03 +00:00
ceriel
8b51c282b2 Franks version 1987-03-27 09:55:28 +00:00
ceriel
0dad09a9ff Fraks version 1987-03-27 09:50:57 +00:00
ceriel
d34c8fed00 Initial revision 1987-03-27 09:47:16 +00:00
ceriel
de24bc7432 Frans doodemans version 1987-03-27 09:33:02 +00:00
ceriel
4f50605350 Frans Doodemans version 1987-03-27 09:28:16 +00:00
ceriel
3e3246b623 fixed 1987-03-27 09:21:14 +00:00
ceriel
d55615ab1f fixed 1987-03-27 09:06:28 +00:00
ceriel
f27126bc07 remainder now returned in d0 1987-03-27 08:57:38 +00:00
ceriel
e38304b74f remainder now is returned in d0. 1987-03-27 08:49:14 +00:00
ceriel
1761fe1524 *** empty log message *** 1987-03-26 17:54:45 +00:00
ceriel
2078b95d5f Initial revision 1987-03-26 17:36:49 +00:00
ceriel
8baf357d6e Adapted for system V 1987-03-26 17:33:23 +00:00
ceriel
089fee7ccd Initial revision 1987-03-26 17:30:29 +00:00
ceriel
7dfa108a92 another fix for an illegal initialisation struct 1987-03-26 16:16:21 +00:00
ceriel
14b56d7c55 added estack.str, minor fix 1987-03-26 15:32:26 +00:00
ceriel
bda499b26a added index 1987-03-26 15:28:08 +00:00
ceriel
39e11a33bc Another adaption for small machines 1987-03-26 12:45:16 +00:00
ceriel
83a1b0ea14 modification to make it easier to edit 1987-03-26 12:44:04 +00:00
ceriel
48fa075994 Don't use ranges in the "tr" command. They work differently on
System V
1987-03-26 11:16:28 +00:00
ceriel
7959e0ebd6 align parameters on word_size, not word_align 1987-03-26 11:05:28 +00:00
ceriel
e6aae3dc73 Use "myecho" when using -n option 1987-03-26 10:33:30 +00:00
ceriel
21e14a6f0a redesign of ival, other minor changes 1987-03-25 23:14:43 +00:00
ceriel
45fc1e006f improved the "clean" entry 1987-03-25 22:48:25 +00:00
ceriel
147376b844 updated 1987-03-25 22:43:09 +00:00
ceriel
a7d0d14405 made a bit more verbose 1987-03-25 22:26:46 +00:00
ceriel
fe41065839 updated 1987-03-25 18:52:04 +00:00
ceriel
196c3914ed minor mods 1987-03-25 17:54:24 +00:00
ceriel
026633767c install a smaller malloc 1987-03-25 17:39:18 +00:00
ceriel
c31c23a3ec Fixed a problem with SRU: no regs available 1987-03-25 16:26:58 +00:00
ceriel
ebcc44df6e made names of dynamically varying length 1987-03-25 16:24:41 +00:00
ceriel
be12d50198 BMASK was unsigned, which caused problems with some C compilers (ours) 1987-03-25 15:57:22 +00:00
ceriel
bc72d04651 Added possibility to pass -V option to compilers 1987-03-25 12:42:12 +00:00
ceriel
ed17251dec changed IDL 1987-03-25 10:53:47 +00:00
ceriel
557ffd0b8b Allow ANY to be used in a constraint 1987-03-25 08:35:01 +00:00
ceriel
8c6b9bed00 Generated illegal initialization constants. 1987-03-25 07:53:57 +00:00
ceriel
0b5e69d2bc description of asopt apparently has to be in front of the one for as. 1987-03-25 07:49:59 +00:00
ceriel
ab1b9d8b40 replaced cc by $(CC) 1987-03-24 11:10:23 +00:00
ceriel
042ca4bd39 bug fix 1987-03-24 08:41:44 +00:00
ceriel
44db53caaf more porting to pdp 11 1987-03-23 23:27:03 +00:00
ceriel
a931aafb97 more porting to vu45 1987-03-23 23:22:54 +00:00
ceriel
75979255d1 Replaced comment char '#' with '!'.
Some shells use # as a comment char.
1987-03-23 21:01:36 +00:00
ceriel
beb675c4db Adapted for new distribution 1987-03-23 21:00:02 +00:00
ceriel
37a1eaaa29 could not be handled by MINIX pre-processor 1987-03-23 14:48:56 +00:00
ceriel
a99e1c222a Bug fix in BLM 1987-03-20 19:21:23 +00:00
ceriel
3b2ddf7273 many minor fixes and modifications 1987-03-20 08:30:31 +00:00
ceriel
1fc0704187 bug fix 1987-03-19 11:21:54 +00:00
ceriel
8cc7a286e5 still does not fit. Delete bitfields 1987-03-19 10:51:40 +00:00
ceriel
52a77adfe6 deleted "unsigned chars" 1987-03-19 10:20:40 +00:00
ceriel
48893c1007 adapted for 7 character significance 1987-03-19 10:16:56 +00:00
ceriel
890b988890 made name shorter 1987-03-19 10:15:58 +00:00
ceriel
45fcc6ffce Added distr entry 1987-03-19 10:12:51 +00:00
ceriel
f9dee772d0 contained a switch on a long 1987-03-19 10:08:31 +00:00
ceriel
3e84b09b85 em?.o and C_failed.o must be at the end of the archive 1987-03-18 19:20:38 +00:00
ceriel
9c064e3384 Also install manual page 1987-03-18 19:15:56 +00:00
ceriel
45f4867a00 Added LDFLAGS 1987-03-18 09:50:46 +00:00
ceriel
98d7ba5cd0 Made the dummy ranlib more verbose 1987-03-18 09:44:56 +00:00
ceriel
ea5ccf9783 made to work on pdp-11 1987-03-18 09:35:31 +00:00
ceriel
192b07042d changed some names of field selectors 1987-03-18 09:29:56 +00:00
ceriel
9bd6dc0bff contained calls of non-functions 1987-03-17 22:54:16 +00:00
ceriel
387894c935 improved userhook handling, requiring a change in LLnext and LLskip 1987-03-17 22:50:40 +00:00
ceriel
927be24632 improved userhook handling, This required some changes in the semantics
of LLnext and LLskip.
1987-03-17 22:41:18 +00:00
ceriel
c0d7abbacd improved storage allocation 1987-03-17 22:31:43 +00:00
ceriel
bee050d0ad deleted exit.c 1987-03-17 22:28:15 +00:00
ceriel
3eb840db66 Use LDFLAGS 1987-03-17 16:37:04 +00:00
ceriel
5e3b9d40d6 use LDFLAGS 1987-03-17 16:33:55 +00:00
ceriel
27052f6309 *** empty log message *** 1987-03-17 16:24:42 +00:00
ceriel
10fb525cb7 Use LDFLAGS 1987-03-17 16:18:08 +00:00
ceriel
73e6adcbbd LDFLAGS: -i 1987-03-17 16:15:32 +00:00
ceriel
d3401a6a41 Made constants dependant on size of machine 1987-03-17 14:42:12 +00:00
ceriel
5f28020c9e Don't switch on longs! 1987-03-17 11:12:09 +00:00
ceriel
290fc621ae Don't use the -n option! 1987-03-17 11:02:37 +00:00
ceriel
b53e2e77eb bug fix 1987-03-17 10:44:16 +00:00
ceriel
ce7b1f4366 Bug fix 1987-03-17 10:39:18 +00:00
ceriel
b7c152fb65 prevent use of ranlib on pdp-11's 1987-03-17 00:33:41 +00:00
ceriel
03b1b5e683 many changes for installing 3rd distribution 1987-03-17 00:14:10 +00:00
ceriel
a885b5e2b5 *** empty log message *** 1987-03-17 00:13:03 +00:00
ceriel
783c89a9d0 Initial revision 1987-03-16 23:53:04 +00:00
ceriel
89c9e11056 Initial revision 1987-03-16 23:32:34 +00:00
ceriel
2a01958d1d Added LEXLIB 1987-03-16 22:35:21 +00:00
ceriel
aa68bf096b Added a %p (number of positions). The BSD 2.9 lex has a too small default. 1987-03-16 22:28:27 +00:00
ceriel
625d0fd4ff Default paths were computed wrong. This is corrected. 1987-03-16 22:26:03 +00:00
ceriel
e75eae4bfc Indirect function calls should be just that! 1987-03-16 15:14:52 +00:00
ceriel
75f2e6638d bug fix 1987-03-16 15:11:51 +00:00
ceriel
c29ad9ed00 Deleted reference to unused varaibles 1987-03-16 15:09:36 +00:00
ceriel
7ddf70e06d %c does not work with null-bytes on some systems (BSD 2.9) 1987-03-16 08:56:31 +00:00
ceriel
926c5b0db0 updated 1987-03-12 23:46:19 +00:00
ceriel
a1d400a3b5 The updated installation guide for distribution 3 1987-03-12 23:44:29 +00:00
ceriel
3886826ca7 Added -Dvoid=int to CFLAGS 1987-03-12 22:50:03 +00:00
ceriel
5753239a83 made just a little bit more robust 1987-03-12 22:29:25 +00:00
ceriel
1c075acf23 don't use "void"! 1987-03-12 22:24:19 +00:00
ceriel
844b170d0e don't use void! 1987-03-12 22:23:17 +00:00
ceriel
a03714dc32 Bug fixes 1987-03-12 19:18:59 +00:00
ceriel
9bc05225dd Added room for data, made room for rom smaller 1987-03-12 17:53:32 +00:00
ceriel
2809c6dcaf Bug fixed that prevented "aal x" from working properly 1987-03-12 17:16:04 +00:00
ceriel
bc924954c8 removed the "void" stuff. Some compilers just don't digest it. 1987-03-12 11:33:24 +00:00
ceriel
1e16f99e1f moved the definition of sys_filesize. It had a funny place. 1987-03-12 09:30:03 +00:00
ceriel
ddfcf12610 Replaced the comment character by a !.
The #-character caused problems.
1987-03-12 08:46:58 +00:00
ceriel
0faefc0327 replaced copyright notice 1987-03-12 08:25:15 +00:00
ceriel
2f786587b8 replaced copyright 1987-03-12 08:23:08 +00:00
ceriel
a2f3c90b17 it's --> its 1987-03-11 21:47:25 +00:00
ceriel
39a866e8e1 Added ashow 1987-03-11 17:12:38 +00:00
ceriel
6d0ea0d66b Initial revision 1987-03-11 17:12:23 +00:00
ceriel
e2eb1651ce minor mod 1987-03-11 16:15:16 +00:00
ceriel
d8e128d4a1 *** empty log message *** 1987-03-11 15:55:51 +00:00
ceriel
9d6ade6768 Updated for 3rd distribution 1987-03-11 15:51:35 +00:00
ceriel
a584362257 Adapted to current situation 1987-03-11 15:41:52 +00:00
ceriel
ccb6e5bda0 remove regnoglob.c and regglob.c before copying to them 1987-03-11 15:39:01 +00:00
ceriel
6a6c711eb7 *** empty log message *** 1987-03-11 15:16:01 +00:00
ceriel
3de6b34150 Added arch.5 1987-03-11 15:09:25 +00:00
ceriel
3000ab1a91 Initial revision 1987-03-11 15:07:29 +00:00
ceriel
f8a5ed7807 minor changes 1987-03-11 14:54:29 +00:00
ceriel
d628f00e30 Working version 1987-03-11 14:30:13 +00:00
ceriel
1d75571f8a minor change 1987-03-11 14:19:02 +00:00
ceriel
54efed6e94 minor change 1987-03-11 13:56:17 +00:00
ceriel
2650ee7ada minor change 1987-03-11 13:34:07 +00:00
ceriel
4d8385b761 *** empty log message *** 1987-03-11 13:13:49 +00:00
ceriel
a5384d29cd Initial revision 1987-03-11 13:13:36 +00:00
ceriel
7e1397e0c2 Bug fix. 1987-03-11 11:13:55 +00:00
ceriel
2cf000fbf9 *** empty log message *** 1987-03-11 11:05:32 +00:00
ceriel
81b1a38efc Added sun2 1987-03-11 09:50:23 +00:00
ceriel
bc616e7e03 Added a "distr" entry 1987-03-11 09:49:33 +00:00
ceriel
d7b0bf7e99 Bug fixed that was introduced by Kees Visser's modifications 1987-03-11 09:23:23 +00:00
ceriel
988f6e496b Fixed a bug with line-directives, added copyright notice 1987-03-10 17:51:10 +00:00
ceriel
cad95767e5 bug fix 1987-03-10 17:41:37 +00:00
ceriel
e87c2aa797 Bug fix 1987-03-10 17:38:55 +00:00
ceriel
abcd6a748e Initial revision 1987-03-10 16:49:13 +00:00
ceriel
8f2400b4cc Deleted -DUSG 1987-03-10 15:55:39 +00:00
ceriel
0cf70c39fb Added __USG 1987-03-10 15:54:32 +00:00
ceriel
8593e1b316 Deleted -DBSD4_2 1987-03-10 15:45:38 +00:00
ceriel
9ce3876cfc *** empty log message *** 1987-03-10 15:44:25 +00:00
ceriel
21b3b8a96c Removed -DBSD4_2 1987-03-10 15:41:20 +00:00
ceriel
efbd8c34f1 Added CC_ALIGN 1987-03-10 15:40:20 +00:00
ceriel
fd1484aa2e __USG and __BSD4_2 introduced, dysize added 1987-03-10 15:07:26 +00:00
ceriel
03b6a06dbb use __BSD4_2 1987-03-10 14:50:48 +00:00
ceriel
2f920d4a99 use __BSD4_2 and __USG 1987-03-10 14:49:29 +00:00
ceriel
05604dd935 Added a define for __BSD4_2 1987-03-10 14:14:38 +00:00
ceriel
bb300000f2 ino_t is a long on 4.2 systems 1987-03-10 14:10:34 +00:00
ceriel
c767f25441 Added Rcs Id 1987-03-10 11:58:22 +00:00
ceriel
5f08cc8b3b Added Rcs Id 1987-03-10 11:49:39 +00:00
ceriel
7d53a88705 *** empty log message *** 1987-03-10 10:27:24 +00:00
ceriel
6f7a979cf3 Initial revision 1987-03-10 10:23:19 +00:00
ceriel
7773b64390 Initial revision 1987-03-10 10:09:07 +00:00
ceriel
7e9733350e Added Rcs Id 1987-03-10 09:24:02 +00:00
ceriel
ba5c406d27 Added copyright notice 1987-03-10 01:42:07 +00:00
ceriel
32301e016b Added copyright notice 1987-03-10 01:26:51 +00:00
ceriel
ee48de6bae Added copyright notice 1987-03-10 00:12:40 +00:00
ceriel
555153ed3e *** empty log message *** 1987-03-09 23:50:41 +00:00
ceriel
87e960ae4b Added copyright notice 1987-03-09 23:47:46 +00:00
ceriel
c94208ed50 Added copyright notice 1987-03-09 22:11:47 +00:00
ceriel
14bc9ab8b0 Added copyright notice 1987-03-09 22:06:21 +00:00
ceriel
8d02342d5d Added copyright notice 1987-03-09 21:59:22 +00:00
ceriel
cf9a15e9d6 Added copyright notice 1987-03-09 21:33:18 +00:00
ceriel
e2b9102e16 Added copyright notice 1987-03-09 21:20:21 +00:00
ceriel
f5371e1096 Added copyright notice 1987-03-09 19:15:41 +00:00
ceriel
ea712c813a Added copyright notice 1987-03-09 16:02:32 +00:00
ceriel
0d68b63e5b Initial revision 1987-03-09 15:53:04 +00:00
ceriel
20ecbf8216 Adapted for new version 1987-03-09 15:48:43 +00:00
ceriel
6bcf7708b2 Added copyright notice 1987-03-09 15:22:58 +00:00
ceriel
ea8e8f95b4 Added copyright notice 1987-03-09 15:15:03 +00:00
ceriel
6e9cf566c6 replaced return by exit 1987-03-09 14:22:45 +00:00
ceriel
dd4f998b14 Replaced return from main by exit 1987-03-09 13:29:04 +00:00
ceriel
15cf9ffd37 replaced returns from main by exits (bloody SUN) 1987-03-09 13:25:44 +00:00
ceriel
6abd7f6495 Added exit from main 1987-03-09 13:22:45 +00:00
ceriel
a6580594ec Added exit to main program of tab.c 1987-03-09 13:19:38 +00:00
ceriel
d06c286fe0 Added an exit from main 1987-03-09 13:14:32 +00:00
ceriel
357ab5d1fd replaced returns from main by exits (bloody SUN) 1987-03-09 13:07:42 +00:00
ceriel
475b1407c6 Added exit to main 1987-03-09 13:04:58 +00:00
ceriel
4947a76711 Added an exit from main 1987-03-09 13:01:51 +00:00
ceriel
af508b28ba exit from main, instead of return (bloody SUN) 1987-03-09 12:59:18 +00:00
ceriel
c59e6903de exit from main instead of return (bloody SUN) 1987-03-09 12:55:24 +00:00
ceriel
3d4e626b29 Added an exit form main 1987-03-09 12:54:03 +00:00
ceriel
0d4295ad72 exit from main instead of return 1987-03-09 12:52:10 +00:00
ceriel
4e4e9935b7 to3dig did not give a return value 1987-03-09 12:47:23 +00:00
ceriel
669458b997 Select did not handle these HOL's 1987-03-09 12:42:42 +00:00
ceriel
498f1d30f0 exits instead of returns from main (bloody SUN) 1987-03-09 11:45:49 +00:00
ceriel
1967215f54 Added a warning for floating point constants 1987-03-09 11:25:28 +00:00
ceriel
e219a1bccf *** empty log message *** 1987-03-09 10:43:44 +00:00
ceriel
4f43dad1ab Lindseys fix to a bug with nested procedures 1987-03-09 10:15:51 +00:00
ceriel
f0e7cdcca0 remove dummy when cleaning 1987-03-06 16:40:56 +00:00
ceriel
a1f59e4678 Initial revision 1987-03-06 16:36:16 +00:00
ceriel
75f7d73acd Initial revision 1987-03-06 14:41:52 +00:00
ceriel
e83ce75a14 Initial revision 1987-03-06 09:02:15 +00:00
ceriel
86ffc4bc1d deleted idepth 1987-03-06 08:38:29 +00:00
ceriel
14e7f2f34e Now really NOFLOAT 1987-03-06 00:00:34 +00:00
ceriel
725ffafdcc Handle NOFLOAT 1987-03-05 19:55:40 +00:00
ceriel
7216addaa8 bug fix 1987-03-05 19:27:53 +00:00
ceriel
3490fe6601 *** empty log message *** 1987-03-05 19:24:35 +00:00
ceriel
568f38b7e9 procentry/procexit were not called properly 1987-03-05 19:22:33 +00:00
ceriel
c4d0c46358 could loop again 1987-03-05 17:40:48 +00:00
ceriel
87156a3bc4 ADB dumped core on the SUN, because of 0-indexes in the symbol table.
They are replaced by pointers to null-strings
1987-03-05 15:44:17 +00:00
ceriel
93a785cfaa main exits instead of returns. Bloody SUNs 1987-03-05 15:22:05 +00:00
ceriel
574c6cc3be *** empty log message *** 1987-03-05 15:04:44 +00:00
ceriel
6b31af1707 Improved installation procedure 1987-03-05 15:00:13 +00:00
ceriel
4f246d0f8f A wrong flag is no longer fatal 1987-03-05 14:57:15 +00:00
ceriel
de43ad2798 divu.l, etc where encoded wrong. 1987-03-05 11:21:34 +00:00
ceriel
5fae0734e1 Only echo the newlines in comments, no formfeeds, etc, because
you don't know what you are preprocessing.
1987-03-05 11:07:16 +00:00
ceriel
4b12f13594 Bug fix in LIM instruction 1987-03-05 11:02:05 +00:00
ceriel
bd659a8a65 *** empty log message *** 1987-03-05 10:59:57 +00:00
ceriel
f29f7d7d08 ??? 1987-03-05 10:57:33 +00:00
ceriel
6f7e5134ba *** empty log message *** 1987-03-04 16:43:03 +00:00
ceriel
e1ecc686f8 Also remove "main" when making clean 1987-03-04 15:46:02 +00:00
ceriel
ef3d710ebd Set "saveemp" before calling compute. compute might need it. 1987-03-04 10:34:57 +00:00
ceriel
15ea415ecd Set saveemp before calling "compute". "compute" might need it! 1987-03-04 10:32:22 +00:00
ceriel
e6d9a37f57 fixed typo 1987-03-04 10:14:13 +00:00
ceriel
0e24c7c6db *** empty log message *** 1987-03-04 10:01:01 +00:00
ceriel
58a41cb1de *** empty log message *** 1987-03-04 09:54:23 +00:00
ceriel
3f10da5472 Remove .c files after making "all" 1987-03-03 15:52:36 +00:00
ceriel
5a4ce3a795 Don't remove .c files 1987-03-03 15:52:09 +00:00
ceriel
00ffccce9e *** empty log message *** 1987-03-03 11:22:29 +00:00
ceriel
4737231ff0 Replaced returns from main by exits (bloody suns!) 1987-03-03 11:13:52 +00:00
ceriel
fa6f9810e8 *** empty log message *** 1987-03-03 11:11:39 +00:00
ceriel
9ea069fca3 Initial revision 1987-03-03 10:59:52 +00:00
ceriel
1c5405b71c *** empty log message *** 1987-03-03 10:49:10 +00:00
ceriel
2b5f22efe7 Initial revision 1987-03-03 10:44:56 +00:00
ceriel
93684206c2 Added Henri's article 1987-03-03 10:43:03 +00:00
ceriel
4a8a8e67ed Initial revision 1987-03-03 10:25:25 +00:00
ceriel
f195cb9aa6 Initial revision 1987-03-03 09:46:29 +00:00
ceriel
78d952f596 Initial revision 1987-03-03 09:37:26 +00:00
ceriel
f15c7bbd1d Initial revision 1987-03-03 08:48:53 +00:00
ceriel
ab9d9ae079 *** empty log message *** 1987-03-03 08:43:46 +00:00
ceriel
ac7c4dd196 clean up the mess after compiling 1987-03-02 19:30:24 +00:00
ceriel
37b43de920 Now uses BIGMACHINE from local.h 1987-03-02 17:30:37 +00:00
ceriel
71dd1f9d97 Added "BIGMACHINE" 1987-03-02 17:28:50 +00:00
ceriel
3f0f2b961f Bug foix 1987-03-02 17:18:11 +00:00
ceriel
306a4bae31 Don't pass -O to lint. 1987-03-02 16:48:46 +00:00
ceriel
37226e531d Bug fix 1987-03-02 16:43:19 +00:00
ceriel
e153caeaf0 Be a bit more tolerant about line directives. 1987-03-02 16:40:14 +00:00
ceriel
63a9b33472 Adapted for new framework. 1987-03-02 16:22:15 +00:00
ceriel
db0f5184f8 Improved userhooks 1987-03-02 16:15:07 +00:00
ceriel
9c30901811 Adapted to current situation 1987-03-02 13:30:52 +00:00
ceriel
4e1a66fe85 Adapted to current situation and format 1987-03-02 13:13:24 +00:00
ceriel
af2539cc63 Added manual pages 1987-03-02 13:08:51 +00:00
ceriel
8036b4feed Initial revision 1987-03-02 13:06:23 +00:00
ceriel
c30bc5b60a Added manaul page 1987-03-02 13:03:17 +00:00
ceriel
bd3cbb21f9 *** empty log message *** 1987-03-02 12:54:52 +00:00
ceriel
52425788e1 SHARE --> SHR 1987-03-02 12:42:38 +00:00
ceriel
f7ce7e824b fixed typo 1987-03-02 12:31:44 +00:00
ceriel
034b302b49 Initial revision 1987-03-02 11:28:52 +00:00
ceriel
d5cdd4bacc Adapted to current situation 1987-03-02 10:35:44 +00:00
ceriel
0074e9995f reordering, becaiuseuse "cmisc" utilities were needed before "modules" 1987-03-02 09:09:16 +00:00
ceriel
c42d52b38d Sun defines tmpfile in stdio.h. Renamed Tmpfile 1987-03-02 09:06:26 +00:00
ceriel
2eb21881a8 maxchunk definition made static 1987-03-02 08:55:23 +00:00
ceriel
2c886d02a7 Forced first linedirective with source filename 1987-03-02 08:50:08 +00:00
ceriel
5dedf78e24 *** empty log message *** 1987-03-02 08:48:36 +00:00
ceriel
b6ff9d49c1 Initial revision 1987-02-27 17:11:54 +00:00
ceriel
7499f73c64 Patched to work also on machines on which the shell "remembers"
where a command is. (Bloody Sun).
1987-02-27 17:10:36 +00:00
bruce
f49fdbb02b Initial revision 1987-02-27 16:04:07 +00:00
ceriel
b194c827b9 *** empty log message *** 1987-02-27 13:07:49 +00:00
ceriel
265ff45db1 *** empty log message *** 1987-02-27 12:54:03 +00:00
ceriel
f885e92571 used to dump core on empty files 1987-02-27 09:54:23 +00:00
ceriel
51d8606474 *** empty log message *** 1987-02-26 19:54:57 +00:00
ceriel
807d107db8 newer version 1987-02-26 19:49:42 +00:00
ceriel
a4548bfd03 Added Occam 1987-02-26 19:47:01 +00:00
ceriel
6e673422ad Initial revision 1987-02-26 19:46:35 +00:00
ceriel
07327bded2 *** empty log message *** 1987-02-26 19:41:49 +00:00
ceriel
b9e30db11c Ported to System V 1987-02-26 17:58:55 +00:00
ceriel
5d4b55cc5e Deleed mantra4 1987-02-26 16:31:26 +00:00
ceriel
0c20598f57 *** empty log message *** 1987-02-26 16:22:08 +00:00
ceriel
5a4b41d075 Added cv 1987-02-26 16:18:39 +00:00
ceriel
1a12486d0b Added the cv program 1987-02-26 16:05:00 +00:00
ceriel
574a98259b Updated 1987-02-26 15:44:00 +00:00
ceriel
78be476aec Added another pattern 1987-02-26 15:40:44 +00:00
ceriel
cae4064fdf Bug fix in strswap 1987-02-26 14:08:16 +00:00
ceriel
8d19d7631f Added ocm, m2, ego, opt2, . 1987-02-26 12:45:37 +00:00
ceriel
1f1b7d8ab8 Added the SUFFIX variable 1987-02-26 12:44:11 +00:00
ceriel
481d363055 Adapted to current situation 1987-02-26 10:29:12 +00:00
ceriel
a1b33eed84 Initial revision 1987-02-26 10:26:19 +00:00
ceriel
2eb61bf49f Added Occam 1987-02-26 10:24:07 +00:00
ceriel
f5e18d731a Added Occam 1987-02-26 10:06:50 +00:00
ceriel
7ae5f0b764 Initial revision 1987-02-26 09:55:46 +00:00
ceriel
9e8f561044 Added Occam 1987-02-25 19:45:49 +00:00
ceriel
1415aebba4 *** empty log message *** 1987-02-25 19:45:18 +00:00
ceriel
489f75a104 Initial revision 1987-02-25 19:45:17 +00:00
ceriel
660f68aa1e Adeded Occam 1987-02-25 19:44:22 +00:00
ceriel
91ccde7291 Added OPccam 1987-02-25 19:40:22 +00:00
ceriel
739e8b3ec9 Initial revision 1987-02-25 19:16:28 +00:00
ceriel
9e73976081 *** empty log message *** 1987-02-25 19:10:01 +00:00
ceriel
b3e7c737bb Added occam 1987-02-25 19:05:21 +00:00
ceriel
838085ac2b adapted for new C-compiler 1987-02-25 19:00:04 +00:00
ceriel
87c7762c62 *** empty log message *** 1987-02-25 18:54:14 +00:00
ceriel
da0d5fda24 Initial revision 1987-02-25 18:30:22 +00:00
ceriel
75a0c4d5f2 Initial revision 1987-02-25 17:14:10 +00:00
ceriel
f60da36c5b *** empty log message *** 1987-02-25 16:58:32 +00:00
ceriel
fec9150769 my version (CJ) 1987-02-25 16:56:31 +00:00
ceriel
4aa4410a08 *** empty log message *** 1987-02-25 16:42:41 +00:00
ceriel
022c39ec18 Initial revision 1987-02-25 16:41:54 +00:00
ceriel
ddbeb5aba5 my version (CJ) 1987-02-25 16:41:09 +00:00
ceriel
472d7ea2d5 *** empty log message *** 1987-02-25 13:47:15 +00:00
ceriel
a11db5e8cd *** empty log message *** 1987-02-25 11:04:30 +00:00
ceriel
04dbef011a *** empty log message *** 1987-02-24 18:41:53 +00:00
ceriel
ce60eeea91 Initial revision 1987-02-24 18:36:02 +00:00
ceriel
01708de3fe Initial revision 1987-02-24 17:05:53 +00:00
ceriel
a58e69e038 many new things 1987-02-24 16:41:01 +00:00
ceriel
aef7233339 Adapted to new distr3 1987-02-24 16:36:22 +00:00
ceriel
406137be12 *** empty log message *** 1987-02-24 16:07:04 +00:00
ceriel
b300e35b4c Added ncgg.6 1987-02-24 15:47:05 +00:00
ceriel
a0f21c5acd *** empty log message *** 1987-02-24 15:44:46 +00:00
ceriel
879f8666e4 renamed a parameters because a local had the same name 1987-02-24 15:41:16 +00:00
ceriel
4c068c7d5f *** empty log message *** 1987-02-24 15:36:34 +00:00
ceriel
8007fc350d vi Ma 1987-02-24 15:32:48 +00:00
ceriel
c93b184562 *** empty log message *** 1987-02-24 13:47:23 +00:00
ceriel
ad48036f17 *** empty log message *** 1987-02-24 13:10:59 +00:00
ceriel
c6a689bcbd An #endif was missing 1987-02-24 12:38:21 +00:00
ceriel
a67f2c7dc4 Initial revision 1987-02-24 11:17:50 +00:00
ceriel
388162ef56 solved some problems with include files 1987-02-24 10:54:20 +00:00
ceriel
501293d458 solved a problem with include files 1987-02-24 10:49:54 +00:00
ceriel
8ec6a1de4b still referred to BadAssertion.c instead of BadAssert.c 1987-02-24 10:45:54 +00:00
ceriel
72f780676b 4/4, new C compiler 1987-02-24 10:15:46 +00:00
ceriel
9d3d4fa61a 4/4, new C cmpiler 1987-02-24 10:00:37 +00:00
ceriel
306c0a82cd *** empty log message *** 1987-02-23 23:35:42 +00:00
ceriel
e57daaabcb *** empty log message *** 1987-02-23 23:28:06 +00:00
ceriel
2ad56b351c *** empty log message *** 1987-02-23 22:49:20 +00:00
em
77348673ef do not generate .c files when cleaninmg up 1987-02-23 22:38:45 +00:00
em
7c72adf5ec cleanup --> clean 1987-02-23 22:35:21 +00:00
ceriel
a431218b40 *** empty log message *** 1987-02-23 19:48:17 +00:00
ceriel
8490d753d8 Initial revision 1987-02-23 19:47:00 +00:00
ceriel
41c6ffff75 *** empty log message *** 1987-02-23 19:39:57 +00:00
ceriel
9b44d7d828 Initial revision 1987-02-23 19:38:14 +00:00
ceriel
8dcf088bf3 *** empty log message *** 1987-02-23 19:18:57 +00:00
ceriel
cb8731da19 updated to current situation 1987-02-23 19:15:33 +00:00
ceriel
91433ce436 Initial revision 1987-02-23 19:14:34 +00:00
ceriel
45a81b468a *** empty log message *** 1987-02-23 19:08:18 +00:00
ceriel
60b338229d Initial revision 1987-02-23 19:04:27 +00:00
ceriel
7abb75aa7e Initial revision 1987-02-23 18:58:58 +00:00
ceriel
cbd521f14f *** empty log message *** 1987-02-23 18:28:42 +00:00
ceriel
68495f54bc bug fix 1987-02-23 15:48:27 +00:00
ceriel
9e3161b2d8 *** empty log message *** 1987-02-23 14:22:16 +00:00
ceriel
57e07411f0 Initial revision 1987-02-23 14:14:35 +00:00
ceriel
ffa788536f *** empty log message *** 1987-02-23 14:06:17 +00:00
ceriel
6445b23318 bug fixes:
- assignment operators for bit fields were wrong
- some conversions for characters were wrong
- result of assignment operator sometimes had wrong size
- character constant \377 was 255, not -1
- string constant generation was clumsy
1987-02-23 13:08:54 +00:00
ceriel
a72685c2b5 Initial revision 1987-02-23 11:38:21 +00:00
ceriel
e7761cca10 Added No_Mem 1987-02-23 11:38:15 +00:00
ceriel
4c84af0a68 *** empty log message *** 1987-02-23 11:23:46 +00:00
ceriel
19edf7ae06 Added a dependency 1987-02-23 11:02:31 +00:00
ceriel
7eb42b32b5 Some minor improvements 1987-02-23 11:01:13 +00:00
ceriel
3fd2cf0a01 *** empty log message *** 1987-02-23 10:50:15 +00:00
ceriel
4e47313118 Initial revision 1987-02-23 09:22:33 +00:00
ceriel
9a664abf31 Current results 1987-02-23 09:21:29 +00:00
ceriel
7471081794 Delete temporary 1987-02-23 09:18:41 +00:00
ceriel
435edfa24e remove temporary 1987-02-22 15:56:31 +00:00
ceriel
af4bc8a874 better versions, bug fixes in compiler 1987-02-22 15:28:26 +00:00
ceriel
cbcea69fad Initial revision 1987-02-21 22:26:39 +00:00
ceriel
7c4a3f48a0 An attempt to make "erasereg" a little more efficient, as it seems
often to be called to erase the condition codes.
1987-02-21 22:20:10 +00:00
ceriel
b7e8220b5e bug fix 1987-02-20 17:35:08 +00:00
ceriel
957013759a Bug fix 1987-02-20 17:33:06 +00:00
ceriel
88da4849b4 Initial revision 1987-02-20 14:36:01 +00:00
ceriel
506d59a939 Added description of strzero 1987-02-19 11:28:14 +00:00
ceriel
5477964f63 *** empty log message *** 1987-02-18 16:41:57 +00:00
ceriel
1a88c7d883 cardinality of sets was wrong! 1987-02-18 10:47:55 +00:00
ceriel
7d6342021f *** empty log message *** 1987-02-17 15:07:15 +00:00
ceriel
cde7698e9b Added doc on %onerror, and some other minor mods 1987-02-16 21:42:18 +00:00
ceriel
593efda046 adapted to allow for user intervention before error recovery 1987-02-16 21:38:52 +00:00
ceriel
accba721dc Another adaption to allow for user intervention BEFORE error recovery 1987-02-16 21:36:05 +00:00
ceriel
e07cdb34e9 Prevented looping of the code generator on illegal zer instructions 1987-02-16 09:49:32 +00:00
ceriel
8fb5570127 minor update 1987-02-13 15:30:27 +00:00
ceriel
e3edfec6e9 Added "standard" entries, rerun mkdep 1987-02-13 15:27:35 +00:00
ceriel
4bb65ddbf3 Added a "-f" flag to the "rm" 1987-02-13 14:20:10 +00:00
ceriel
d64215e42e Adapted to search for description files in either
~em/lib/descr/<file> or ~em/lib/<file>/descr
1987-02-13 13:39:30 +00:00
ceriel
a32f5d2a29 Added some buffering for writes 1987-02-13 12:44:33 +00:00
ceriel
e40457dada Some extra patterns added. 1987-02-13 12:41:31 +00:00
ceriel
6b92209e51 Made to work with some other compilers 1987-02-13 09:40:08 +00:00
ceriel
dea3101fba forgot a continue. 1987-02-12 13:54:37 +00:00
ceriel
058899081d exporting EODDZ, etc 1987-02-12 13:36:55 +00:00
ceriel
5bf0a04c21 Initial revision 1987-02-12 10:56:16 +00:00
ceriel
3ef739b3e6 bug fix: csa descriptors contained upb instead of upb - lwb. 1987-02-11 16:05:25 +00:00
ceriel
711710211c *** empty log message *** 1987-02-11 15:41:09 +00:00
ceriel
800cfe496e other place for include files 1987-02-11 14:49:14 +00:00
ceriel
eba2613668 many bug fixes 1987-02-11 14:29:27 +00:00
ceriel
93ebbf2e71 when printing floats in "e"-format, trailing zeros are significant! 1987-02-11 12:47:45 +00:00
ceriel
3a69039b73 *** empty log message *** 1987-02-10 17:18:16 +00:00
ceriel
13ab16643c Added some code to handle -Oego,opt,asopt etc 1987-02-10 16:51:57 +00:00
ceriel
0065209b5a Added some code to handle -Oego,opt,asopt and the like.
By default, optimizers can be excluded by giving them a negative
priority in the description files. This is currently done for
the global optimizer
1987-02-10 16:50:32 +00:00
ceriel
04b514bdef removed some %0's 1987-02-10 12:49:08 +00:00
ceriel
20d5f79967 removed some %0 stuff 1987-02-10 09:49:50 +00:00
ceriel
3e36418ced Removed some more "%...D"s 1987-02-10 09:39:40 +00:00
ceriel
9d48a6cff8 *** empty log message *** 1987-02-10 09:34:45 +00:00
ceriel
9b899c2889 Initial revision 1987-02-10 09:27:44 +00:00
ceriel
f7690cec10 many changes: fixes and efficiency-oriented 1987-02-09 23:19:42 +00:00
ceriel
01fa23d1da replaced some more %D's 1987-02-09 22:48:14 +00:00
bruce
ebbc75d772 Added local optimization of lin to lni. 1987-02-09 17:55:46 +00:00
ceriel
4b6cb7d86c removed some %0 stuff 1987-02-09 17:41:25 +00:00
ceriel
d611ec64ed replaced a %D 1987-02-09 17:31:25 +00:00
ceriel
3aefa51e63 replaced some %D's 1987-02-09 17:28:22 +00:00
ceriel
e4cdbe9387 replaced a %04x 1987-02-09 17:10:29 +00:00
ceriel
e8c7db81ad replaced some %D's by %ld 1987-02-09 17:06:20 +00:00
ceriel
571a8d051c made to work on system V 1987-02-09 17:00:23 +00:00
ceriel
ebb69da279 make to work on System V 1987-02-09 16:57:40 +00:00
ceriel
f256688bac Adapted to new assembler 1987-02-09 16:49:13 +00:00
ceriel
3a83eeb52d removed %0 stuff 1987-02-09 16:47:04 +00:00
ceriel
425570290b *** empty log message *** 1987-02-09 16:39:05 +00:00
ceriel
2051a4ff62 %03x --> %x_, because the former does not work on System V 1987-02-09 16:35:24 +00:00
ceriel
1a2c8dd860 removed something that would not work on System V 1987-02-09 16:33:49 +00:00
ceriel
6822088413 changed directory: nas --> as 1987-02-09 16:29:15 +00:00
ceriel
56e99309d7 Removed a %03x, which does not work on USG systems 1987-02-09 16:26:56 +00:00
ceriel
9ff348b675 Initial revision 1987-02-09 15:26:16 +00:00
ceriel
8950c32d5e changed so that it prints a separate line for each dependancy 1987-02-09 15:06:09 +00:00
ceriel
e2136f386c Initial revision 1987-02-09 14:55:59 +00:00
ceriel
398a70cf77 *** empty log message *** 1987-02-09 14:54:29 +00:00
ceriel
520644440a belonging to new version of pascal compiler 1987-02-09 10:46:18 +00:00
ceriel
0621a865c9 The added ',' separator in token declarations did not work
(reported by Kees Bot, Edwin Scheffer). This is corrected (I hope).
1987-02-07 03:56:34 +00:00
ceriel
5e4afca163 Added cpp to the "clean" entry 1987-02-07 02:58:47 +00:00
ceriel
6896b5cb7e Added "opt2" to the clean entry 1987-02-07 02:57:09 +00:00
ceriel
b5dc37b50a Changed an assertion that was no longer valid 1987-02-07 01:50:48 +00:00
ceriel
921b3ed5f1 target optimizer directory name is "top", not "opt" 1987-02-07 00:56:42 +00:00
ceriel
16c989588c Remove .m files before recreating them. The existing ones might
have another owner, so that you cannot write them
1987-02-07 00:52:30 +00:00
ceriel
ca3b97ff34 Added some patterns, and avoided a bug in the VAX assembler 1987-02-07 00:45:06 +00:00
ceriel
b4217fcc84 *** empty log message *** 1987-02-07 00:35:16 +00:00
ceriel
18649b3ef5 changed hash function 1987-02-07 00:14:51 +00:00
ceriel
c22605844a Changed hash function, added "registers" 1987-02-07 00:13:56 +00:00
ceriel
f9a9655012 Added some "registers" 1987-02-07 00:04:05 +00:00
ceriel
180407bce1 Another one. 1987-02-06 23:40:25 +00:00
ceriel
53aa98ed09 Bug fix (INPUT, not STDIN !!!) 1987-02-06 23:38:35 +00:00
ceriel
abb48b7aa8 bug fix 1987-02-06 14:50:57 +00:00
ceriel
7135529c97 did not work with bloody vax assemblerr 1987-02-06 14:44:56 +00:00
bruce
737d65cfe0 Changed name from .c to .r and now in format required by awk. 1987-02-06 14:21:04 +00:00
bruce
6c606a1b23 Initial revision 1987-02-06 14:15:49 +00:00
bruce
b248ec9c8f Use awk program to generate distinct C_xxx routines in separate files. 1987-02-06 14:13:22 +00:00
ceriel
2e571491b9 bug fix 1987-02-06 13:28:01 +00:00
ceriel
48f0eb8a06 bug fix 1987-02-06 11:09:26 +00:00
ceriel
3c05aa66c1 bug fix 1987-02-06 10:37:09 +00:00
ceriel
6bcbcc62c2 bug fix 1987-02-06 10:27:57 +00:00
ceriel
ed80d2dea9 bug fix 1987-02-06 10:03:18 +00:00
ceriel
70a44a040d bug fixes 1987-02-05 21:36:42 +00:00
ceriel
ce3981e051 typo 1987-02-05 21:07:09 +00:00
ceriel
273eb0e2d1 *** empty log message *** 1987-02-05 21:04:40 +00:00
ceriel
566ff7b6cf output buffer is now called _sobuf 1987-02-05 20:56:06 +00:00
ceriel
1f26e86834 buffer names: _sibuf and _sobuf 1987-02-05 20:54:27 +00:00
ceriel
64506faad2 array bound check added 1987-02-05 20:47:30 +00:00
ceriel
4616cd6ef0 Bug fix 1987-02-05 20:39:11 +00:00
ceriel
1c5bb57ecf Added code to kill regvar(...) 1987-02-05 19:20:54 +00:00
ceriel
f52816824c Adapted some constants 1987-02-05 19:19:01 +00:00
ceriel
3df309f110 just for fun: do not call empty rules. 1987-02-05 19:14:55 +00:00
ceriel
cd44ff2074 another bug fix 1987-02-05 18:37:12 +00:00
ceriel
b0bf0e7e35 bug fix 1987-02-05 18:33:44 +00:00
ceriel
d71e9a7356 *** empty log message *** 1987-02-05 17:02:16 +00:00
ceriel
ca98335025 new dependencies 1987-02-05 17:01:12 +00:00
ceriel
d652231c6b Added another structure for improved recursion detection 1987-02-05 17:00:14 +00:00
ceriel
aef695245f bug fix 1987-02-05 16:39:39 +00:00
ceriel
d859083131 bug fix 1987-02-05 16:22:42 +00:00
ceriel
663e5e493b Added line_prefix.h 1987-02-05 14:58:24 +00:00
ceriel
edc821065d Initial revision 1987-02-05 14:47:47 +00:00
ceriel
199c6a9041 Adapted to the use of "convert.c" 1987-02-05 14:47:22 +00:00
ceriel
c925f19739 *** empty log message *** 1987-02-05 14:47:04 +00:00
ceriel
ae00be7592 *** empty log message *** 1987-02-05 14:11:46 +00:00
ceriel
89b5f5c8c4 Added manual page 1987-02-05 13:20:03 +00:00
ceriel
0985c42fdd *** empty log message *** 1987-02-05 13:17:00 +00:00
ceriel
f79c3a0067 *** empty log message *** 1987-02-04 17:43:20 +00:00
ceriel
5c0d0f6cc2 Added a few "nocoercions :" 1987-02-04 17:22:08 +00:00
ceriel
2d964549c9 Initial revision 1987-02-04 16:44:15 +00:00
ceriel
5de07ddceb *** empty log message *** 1987-02-04 16:21:03 +00:00
ceriel
bdd4403868 fixed error in call of C_con_scon 1987-02-04 16:03:54 +00:00
ceriel
33bd214f17 Added asopt 1987-02-04 15:55:32 +00:00
ceriel
bcb8e8b19f Added libsys, top 1987-02-04 15:51:35 +00:00
ceriel
6cf214a0f4 archive name change 1987-02-04 15:47:57 +00:00
ceriel
6532d40ba0 Added definition for ASAR 1987-02-04 15:41:00 +00:00
ceriel
fe66ff871a Name change of archive 1987-02-04 15:39:00 +00:00
ceriel
345fa61777 *** empty log message *** 1987-02-04 15:31:50 +00:00
ceriel
c43aa963d8 Added some neccessary NC's 1987-02-04 15:11:51 +00:00
ceriel
b2a28142bd adapted to new assembler syntax 1987-02-04 15:09:31 +00:00
ceriel
c81beeed68 Initial revision 1987-02-04 13:10:17 +00:00
ceriel
f231711f77 *** empty log message *** 1987-02-04 13:09:02 +00:00
ceriel
f76c69335c removed the lflag, added check for '/' in filenames 1987-02-04 13:04:51 +00:00
ceriel
ecaf4711a6 Added "pr" and "opr" entries 1987-02-04 12:54:03 +00:00
ceriel
38746e18a4 Added "cmp" entry 1987-02-04 12:51:31 +00:00
ceriel
f335d09875 Initial revision 1987-02-04 12:45:43 +00:00
ceriel
dbbcc69edb Initial revision 1987-02-04 10:40:32 +00:00
ceriel
6c483b837b *** empty log message *** 1987-02-04 10:39:27 +00:00
ceriel
348e831816 Initial revision 1987-02-04 10:35:30 +00:00
ceriel
703b6cf608 Strings and character constants now stop at end-of-line, unless escaped
by a backslash
1987-02-03 23:28:09 +00:00
ceriel
d6cb339c6c Initial revision 1987-02-03 14:59:54 +00:00
ceriel
5655616903 *** empty log message *** 1987-02-03 14:57:24 +00:00
ceriel
549ecc492b new include directories 1987-02-03 14:55:15 +00:00
ceriel
9a2534840b *** empty log message *** 1987-02-03 14:50:30 +00:00
ceriel
5281bed8e4 Added pascal lib 1987-02-03 14:47:45 +00:00
ceriel
032200ac65 *** empty log message *** 1987-02-03 14:36:29 +00:00
ceriel
7877b641fa adapted to new assembler syntax 1987-02-03 13:32:24 +00:00
ceriel
8932b2b60e adapted to new assembler syntax 1987-02-03 13:23:38 +00:00
ceriel
596c36ac43 lock ??? 1987-02-03 13:09:27 +00:00
ceriel
b65f42aa7a int --> int22 1987-02-03 09:57:57 +00:00
ceriel
076d1f315e int --> int44 1987-02-03 09:55:47 +00:00
ceriel
e3f9f5c9a6 int22 --> int44 1987-02-03 09:55:06 +00:00
ceriel
33c8c84b35 int22 --> int24 1987-02-03 09:53:20 +00:00
ceriel
ecb94a711e int --> int24 1987-02-03 09:52:40 +00:00
ceriel
f487367875 *** empty log message *** 1987-02-03 09:50:31 +00:00
ceriel
3b818e9dec ??? 1987-02-02 21:49:57 +00:00
ceriel
9ff6538f47 pdp instead of pdp11 1987-02-02 21:01:10 +00:00
ceriel
34d0a602d9 obeyed a warning 1987-02-02 20:54:56 +00:00
ceriel
620b935f96 ASP with negative argument wasn't accepted 1987-02-02 20:48:02 +00:00
ceriel
aaa80e81cb backend must accept .g files 1987-02-02 20:40:59 +00:00
ceriel
bbc14378b5 back-end must accept .g files 1987-02-02 20:40:04 +00:00
ceriel
04e6b14aa7 added asopt 1987-02-02 20:36:15 +00:00
ceriel
19512a1250 *** empty log message *** 1987-02-02 20:31:55 +00:00
ceriel
2c7909536b Added target optimizer 1987-02-02 20:23:42 +00:00
ceriel
e0dd6a4bb7 Initial revision 1987-02-02 20:14:16 +00:00
ceriel
ef35fd03d8 Initial revision 1987-02-02 19:18:49 +00:00
ceriel
714ecbafe3 *** empty log message *** 1987-02-02 17:40:30 +00:00
ceriel
b31ed5f293 Added pc 1987-02-02 17:37:18 +00:00
ceriel
84441b2dab Initial revision 1987-02-02 16:57:13 +00:00
ceriel
1f93881100 new definition of ISALNUM 1987-02-02 16:37:59 +00:00
ceriel
1832c960de *** empty log message *** 1987-02-02 16:27:36 +00:00
ceriel
bbd3a805a2 *** empty log message *** 1987-02-02 16:21:59 +00:00
ceriel
9fef2e8fce Name change in library 1987-02-02 16:19:04 +00:00
ceriel
37beb265f1 Initial revision 1987-02-02 16:12:55 +00:00
ceriel
6deb381f32 Initial revision 1987-02-02 16:06:51 +00:00
ceriel
0b48126a5a *** empty log message *** 1987-02-02 16:04:52 +00:00
ceriel
19b345f5e0 library name change 1987-02-02 16:04:16 +00:00
ceriel
4064e3e43f bug fix 1987-02-02 15:28:31 +00:00
ceriel
149ed55bfe Initial revision 1987-02-02 13:36:33 +00:00
ceriel
ceb0f75afa new version for .o 1987-02-02 13:30:20 +00:00
ceriel
aa963110a4 Initial revision 1987-02-02 13:11:35 +00:00
ceriel
0840746aca Added clean-entry, tail_mon --> tail_sys 1987-02-02 13:09:17 +00:00
ceriel
6c91577427 generating .o files 1987-02-02 13:07:28 +00:00
ceriel
32adfddac6 version for new assembler 1987-02-02 12:44:39 +00:00
ceriel
a5fa96945f *** empty log message *** 1987-02-02 11:22:47 +00:00
ceriel
17b73dc786 *** empty log message *** 1987-02-02 11:15:48 +00:00
ceriel
d09a89cd80 *** empty log message *** 1987-02-02 11:07:21 +00:00
ceriel
4e3b0dbc41 New version with new assembler, link editor 1987-02-02 10:55:41 +00:00
em
53da6f9e82 *** empty log message *** 1987-02-02 10:52:23 +00:00
ceriel
12df231ada new version for new assembler and new c library 1987-02-02 10:50:09 +00:00
ceriel
cccf23cc9c Initial revision 1987-02-02 10:45:26 +00:00
ceriel
a96f04b6fe Initial revision 1987-02-02 10:25:38 +00:00
ceriel
9566a0aeab Made floating point stuff depend on a #define: FPPSIM 1987-02-02 10:16:40 +00:00
ceriel
f2b1cc0744 Made floating point stuff depend on a #define: FPPSIM 1987-02-02 09:59:02 +00:00
ceriel
71a74f8864 *** empty log message *** 1987-02-01 22:32:23 +00:00
ceriel
675ca71cc7 Adapted to current situation 1987-02-01 22:13:26 +00:00
ceriel
ccffd75a01 Initial revision 1987-02-01 21:53:24 +00:00
ceriel
c1178591ac *** empty log message *** 1987-02-01 21:27:52 +00:00
ceriel
e70f81cd44 Initial revision 1987-02-01 21:04:49 +00:00
ceriel
bb9d6b4330 *** empty log message *** 1987-01-30 20:50:31 +00:00
ceriel
9a9cdb33f7 New version 1987-01-30 20:48:31 +00:00
ceriel
85096c0c17 *** empty log message *** 1987-01-30 20:39:45 +00:00
ceriel
8d7c0ed090 *** empty log message *** 1987-01-30 20:27:28 +00:00
ceriel
cafba47390 machine name change: l68k2 --> m68k2 1987-01-30 20:24:35 +00:00
ceriel
6f5ff0c73b name change of lib 1987-01-30 20:23:09 +00:00
ceriel
ba65fda5fb Name change of lib, added head_em 1987-01-30 20:22:52 +00:00
ceriel
25aa5bf01c 1987-01-30 20:06:04 +00:00
ceriel
d5f5cd09aa *** empty log message *** 1987-01-30 19:58:55 +00:00
ceriel
ab6941e0a6 *** empty log message *** 1987-01-30 19:31:26 +00:00
ceriel
656e2ba6fe Adapted to new assembler syntax 1987-01-30 19:20:31 +00:00
ceriel
d2441d274c new assembler syntax 1987-01-30 18:41:42 +00:00
ceriel
288958c81b Made more like other Makefiles 1987-01-30 18:24:42 +00:00
ceriel
28ffa6115c *** empty log message *** 1987-01-30 18:15:22 +00:00
ceriel
8d61293220 error exit when compilation fails 1987-01-30 18:12:57 +00:00
ceriel
1630b7c0fd Error exit when compilation failes 1987-01-30 18:11:08 +00:00
ceriel
312739e522 Initial revision 1987-01-30 17:10:51 +00:00
ceriel
b097247c2d changed #define m68020 to TBL68020.
Could otherwize cause problems when translated with ack
1987-01-30 10:57:17 +00:00
ceriel
de84a4d04b Initial revision 1987-01-30 10:49:21 +00:00
ceriel
838dbf7246 *** empty log message *** 1987-01-30 10:18:40 +00:00
ceriel
8f3c2c8c33 bug fix 1987-01-30 09:45:41 +00:00
ceriel
32ec75b27c *** empty log message *** 1987-01-29 23:30:46 +00:00
ceriel
477eee337f Initial revision 1987-01-29 23:25:01 +00:00
ceriel
5381da9185 Initial revision 1987-01-29 22:45:44 +00:00
ceriel
dd82e72cd1 Initial revision 1987-01-29 22:36:35 +00:00
ceriel
04fe54d270 Initial revision 1987-01-29 22:10:18 +00:00
ceriel
50348a8e95 Initial revision 1987-01-29 20:15:14 +00:00
ceriel
6130e43d51 Initial revision 1987-01-29 20:03:43 +00:00
ceriel
8ada47c042 deleted NOFLOAT 1987-01-29 19:58:10 +00:00
ceriel
ff600bfe98 Deleted NOFLOAT 1987-01-29 19:56:16 +00:00
ceriel
28c54cb73f no F_DUM in dummy float 1987-01-29 19:49:35 +00:00
ceriel
4b05a76ed1 Initial revision 1987-01-29 19:42:53 +00:00
ceriel
3ac219e8ae Initial revision 1987-01-29 19:37:49 +00:00
ceriel
c3acbabd05 Added a check for unresolved references 1987-01-29 17:13:37 +00:00
ceriel
b803dc42b9 Changed to handle new ack object format 1987-01-29 15:54:46 +00:00
ceriel
84e3dc04cd typo fix 1987-01-29 14:54:26 +00:00
ceriel
5049da0a21 Initial revision 1987-01-29 14:17:23 +00:00
ceriel
5aa1b9a809 Adapted to current situation 1987-01-29 13:20:23 +00:00
ceriel
cc5353d505 don't use a sgttyb struct 1987-01-29 13:01:28 +00:00
ceriel
b9d428f3bb name change of lib, moved head_em.s to libsys 1987-01-29 11:03:30 +00:00
ceriel
ba92464f52 Name change of lib 1987-01-29 11:01:27 +00:00
ceriel
3d50528818 Name change of lib, added head_em 1987-01-29 10:47:27 +00:00
ceriel
2076ecc2bf Name change. 1987-01-29 10:46:53 +00:00
ceriel
1a553e6f2d PC/IX is system 3, not V7 1987-01-29 10:33:53 +00:00
ceriel
7c67bf5c93 Corrected syntax error 1987-01-29 09:43:40 +00:00
ceriel
0230c5802d Added IOR, AND, XOR, COM without parameters, because the
Pascal runtime system needs at least one of them.
Also deleted some old bug circumvention
1987-01-28 23:22:07 +00:00
ceriel
abd0235f2f more corrections 1987-01-28 22:54:52 +00:00
ceriel
52b0781eee generate .o files 1987-01-28 22:26:27 +00:00
ceriel
16af17229a syntax error correction 1987-01-28 22:23:14 +00:00
ceriel
29cd9e7692 generate .o files 1987-01-28 22:17:36 +00:00
ceriel
12b6ae2d44 generating .o files 1987-01-28 22:14:40 +00:00
ceriel
f1ecbcd37d For generating .o files, aal archives 1987-01-28 22:14:12 +00:00
ceriel
596f2c86a0 .byte --> .data1 1987-01-28 19:02:25 +00:00
ceriel
bd517961c3 adapted to new assembler 1987-01-28 18:57:04 +00:00
ceriel
101d53394c Initial revision 1987-01-28 18:52:12 +00:00
ceriel
5cf0d8b280 endbss - begbss is no longer computable by the assembler 1987-01-28 18:49:59 +00:00
ceriel
f35404581b Improvement of conversions 1987-01-28 17:36:21 +00:00
ceriel
c555ab4b4e return exit status 1 when compilation failes 1987-01-28 17:26:52 +00:00
ceriel
915e8e6521 Bug fix: the STR instruction caused a translation with syntax errors 1987-01-28 17:22:25 +00:00
ceriel
db6bfc5f8a correction of syntax error 1987-01-28 17:05:02 +00:00
ceriel
2ff11c4166 declaration of gmtime added 1987-01-28 17:02:56 +00:00
ceriel
e7e899c528 Bug fix: %f did not work, if no width was specified 1987-01-28 16:52:16 +00:00
ceriel
eaf4aeb78f Avoid bug in VAX assembler. But i don't know what is happening. 1987-01-28 16:22:30 +00:00
bruce
ba648025fd Corrected clean option to remove libopt.a 1987-01-28 15:39:10 +00:00
ceriel
868475b04f Initial revision 1987-01-28 15:29:13 +00:00
ceriel
81d22e5f3b Adapted to new assembler producing .o files 1987-01-28 15:27:59 +00:00
ceriel
8e8161302d archive name change: tail --> libem_s.a 1987-01-28 15:23:22 +00:00
ceriel
f7b2ba3785 Bug fix 1987-01-28 15:15:28 +00:00
ceriel
c5a338c870 Initial revision 1987-01-28 15:06:28 +00:00
ceriel
9016f7a641 Adapted for new assembler syntax 1987-01-28 15:06:01 +00:00
ceriel
e8b268a0af adapted to new assembler syntax 1987-01-28 15:03:39 +00:00
ceriel
2840140786 bug fix 1987-01-28 14:38:38 +00:00
ceriel
f6885af31f _doprint -->_doprnt 1987-01-28 14:28:45 +00:00
ceriel
057e137ede made stdin, stdout, and stderr into compile time constants 1987-01-28 14:21:56 +00:00
ceriel
70b121b175 Fixed introduced bug 1987-01-28 13:00:33 +00:00
ceriel
a8f827cab3 cc --> $(CC), added -O flag to CFLAGS 1987-01-28 12:49:42 +00:00
ceriel
7511caa3da floating point constants are no longer fatal 1987-01-28 00:11:28 +00:00
ceriel
864d902112 Added action for pc runtime library 1987-01-27 23:38:02 +00:00
ceriel
1ece522010 errno was'nt exported 1987-01-27 22:58:33 +00:00
ceriel
99723bbacb new version for assembler producing .o files 1987-01-27 20:37:46 +00:00
ceriel
608901719e By default only install tail_cc.1s and tail_cc.2g 1987-01-27 20:09:55 +00:00
ceriel
a5d66b1478 Added some system V things 1987-01-27 16:51:19 +00:00
ceriel
adfc562def Initial revision 1987-01-27 16:44:28 +00:00
ceriel
ba16147be4 Initial revision 1987-01-27 16:33:21 +00:00
ceriel
ddc02a78a0 Initial revision 1987-01-27 16:21:02 +00:00
ceriel
e49bbfbe1f Initial revision 1987-01-27 15:57:55 +00:00
bruce
ee89196671 Ported code to Mantra and general clean up. 1987-01-27 14:15:23 +00:00
bruce
b04aa79797 Changed to reflect location of EMHOME and conform to standard syntax. 1987-01-27 11:42:08 +00:00
ceriel
55e2a3d018 Improved "clean" entry" 1987-01-27 10:52:09 +00:00
ceriel
88025345b9 correction of syntax errors 1987-01-27 10:50:43 +00:00
ceriel
86898515ce Contained syntax errors 1987-01-27 10:45:01 +00:00
ceriel
7965aef382 Better "clean" entry" 1987-01-27 10:41:19 +00:00
ceriel
c461435cfe Adaption to new assembler generating .o files 1987-01-26 22:35:41 +00:00
ceriel
38fc690dad Initial revision 1987-01-26 22:33:58 +00:00
ceriel
bde4823eb5 system call numbers are longwords 1987-01-26 22:15:21 +00:00
ceriel
16ba1edbae Initial revision 1987-01-26 21:51:58 +00:00
ceriel
e8dc0bcbd4 Added stty, gtty 1987-01-26 21:47:59 +00:00
ceriel
124b2e1be9 Initial revision 1987-01-26 21:43:12 +00:00
ceriel
b3d7af2422 adapted to new assembler syntax 1987-01-26 21:22:23 +00:00
ceriel
8fb04b5829 Removed all those ../../.. references 1987-01-26 16:35:04 +00:00
ceriel
7bd562f625 Improved "element size" handling. 1987-01-26 16:16:12 +00:00
ceriel
f83997d9f9 Added a check that a tokenset in a stackpattern contains tokens
that all have the same size.
1987-01-26 16:14:39 +00:00
ceriel
0df4055709 new dependency 1987-01-26 15:01:25 +00:00
ceriel
bbb7022067 bug fix for EM_MESARG 1987-01-26 14:04:33 +00:00
ceriel
80e4016778 bug fixes in RMI and EXG 1987-01-26 13:36:40 +00:00
ceriel
a5d7753a8d now uses alloc module, bug fixes, -N option under USE_TMP, to not do so 1987-01-24 00:25:56 +00:00
ceriel
66f891dff7 added EM_wordsize, EM_pointersize 1987-01-23 16:15:57 +00:00
ceriel
688754df16 corrected typo 1987-01-23 16:04:20 +00:00
ceriel
b2379b8cf4 Bug fix: EM_MESARG gives em_arg, not em_args! 1987-01-23 16:00:37 +00:00
bruce
808332ba2b Fixed up indentation of trans.c output. 1987-01-22 14:27:02 +00:00
bruce
8aa2167a38 Don't put out "return" in outputtrans if action is not tested
otherwise compiling trans.c give warning about statment not reached.
1987-01-21 15:36:18 +00:00
ceriel
d429be1be1 adapted to new assembler syntax 1987-01-21 15:21:49 +00:00
bruce
22def1157d Version that implements a C_XXX to O_XXX library interface. 1987-01-21 14:27:04 +00:00
ceriel
a46973cfa7 new assembler producing .o files 1987-01-20 14:53:11 +00:00
ceriel
1c38ed3dcf Bug fix (?) 1987-01-20 14:47:49 +00:00
ceriel
cd907fe60b new assembler producing .o files 1987-01-20 14:20:33 +00:00
ceriel
345a7f5d06 assembler now produces .o format 1987-01-20 14:14:19 +00:00
ceriel
950bd14ca0 Changed /lib/cpp to ../../../lib/cpp 1987-01-20 13:09:56 +00:00
ceriel
308da946ff Adapted to new assembler syntax 1987-01-20 10:04:32 +00:00
ceriel
572c33c822 Bug fix
Under the '-x' option, the archive was opened in "APPEND" mode.
1987-01-20 09:53:32 +00:00
ceriel
1b0eeb47a1 Bug fix in translation of "cms" 1987-01-20 09:31:31 +00:00
ceriel
07867a1f88 end.s separate from libem_s.a 1987-01-19 15:20:49 +00:00
ceriel
7f8c25ea9d *** empty log message *** 1987-01-19 10:53:45 +00:00
ceriel
d608ec850d Added exit in case of compilation failure 1987-01-19 10:52:25 +00:00
ceriel
8ec3f86289 new version for new assembler syntax 1987-01-19 10:51:50 +00:00
ceriel
0ee423540c bug fix 1987-01-19 10:42:34 +00:00
ceriel
c0dac924b4 ASAR=aal 1987-01-19 10:37:38 +00:00
ceriel
9987795946 exit on compilation error 1987-01-19 10:36:27 +00:00
ceriel
74f3ee9206 exit when compilation fails 1987-01-19 10:33:24 +00:00
ceriel
c082f5dbe5 Initial revision 1987-01-19 10:32:32 +00:00
ceriel
0ea3ebf826 Initial revision 1987-01-19 10:26:43 +00:00
ceriel
4f5efe3a3e Improved "make clean" 1987-01-19 10:19:56 +00:00
ceriel
b1d52e29ec Improved the "make clean" 1987-01-19 10:17:58 +00:00
ceriel
9dedb98dcb Added c-flag 1987-01-19 09:41:49 +00:00
ceriel
5b3aa0f2d7 Added 'c'-flag 1987-01-19 09:36:35 +00:00
ceriel
f04dca514b New version 1987-01-16 19:25:44 +00:00
ceriel
9653a59787 minor bug fix 1987-01-16 19:20:58 +00:00
ceriel
0a1c65dd81 conversion to new assembler syntax 1987-01-16 17:17:12 +00:00
ceriel
85fea44d82 new archive name. 1987-01-16 17:04:03 +00:00
ceriel
08af3f1781 conversion to new assembler syntax 1987-01-16 16:59:41 +00:00
ceriel
17858ba48e new name for archive 1987-01-16 16:51:14 +00:00
ceriel
16c4a06788 new version for generating .o files 1987-01-16 16:50:50 +00:00
ceriel
a0fe90d2e9 conversion to new assembler format 1987-01-16 16:49:46 +00:00
ceriel
51d9fcea12 Initial revision 1987-01-16 16:49:12 +00:00
ceriel
cf3bc8b3d2 conversion to new assembler format 1987-01-16 16:34:45 +00:00
ceriel
3b4f13672d Bug fix with WorkingDir 1987-01-16 16:14:22 +00:00
ceriel
979b18cbbd version generating .o files 1987-01-16 15:40:01 +00:00
ceriel
aeb821c332 as --> nas 1987-01-16 15:21:51 +00:00
ceriel
9b8d7d1231 Bug fix. 1987-01-16 13:59:02 +00:00
ceriel
a071ceb425 Bug fixes 1987-01-16 13:51:45 +00:00
ceriel
810eb7b0d6 Some bug fixes and minor extensions 1987-01-16 13:51:42 +00:00
ceriel
30820da804 Using object library 1987-01-15 22:06:16 +00:00
bruce
31726d68d9 Initial revision 1987-01-15 18:12:26 +00:00
ceriel
5c02ff34c2 Some bug fixes 1987-01-15 17:36:26 +00:00
ceriel
ccbac369e0 Replaced an occurrence of EOI by EOF. 1987-01-14 21:37:22 +00:00
ceriel
16b6135c10 Fixed a minor problem with off_fmt, when it did not produce
a '-' sign when neccesary
1987-01-14 17:49:19 +00:00
ceriel
49e08c285b Fixed a minor problem with off_fmt, when this format would not
produce the '-' sign.
1987-01-14 17:47:31 +00:00
ceriel
b559db4ed4 added EX_SIDEEFFECTS, options['p'] --> ! options['L'], fixed some bugs 1987-01-14 09:58:51 +00:00
ceriel
9fd7fe29a2 Added rd_fd and wr_fd. 1987-01-13 15:10:23 +00:00
ceriel
fdb292a182 *** empty log message *** 1987-01-13 13:13:50 +00:00
ceriel
3f5e970e09 Initial revision 1987-01-13 11:31:24 +00:00
ceriel
2b8d085b46 Initial revision 1987-01-13 11:01:26 +00:00
ceriel
baca84f98f Initial revision 1987-01-13 10:53:33 +00:00
ceriel
4a201891d2 Added standard entries 1987-01-13 10:43:12 +00:00
ceriel
50150ff96e Added standard entries 1987-01-13 10:30:06 +00:00
ceriel
264b01aa43 Added "standard" entries 1987-01-13 10:08:47 +00:00
ceriel
cc8b9e32bd Added a "clean" entry. 1987-01-13 10:07:25 +00:00
ceriel
6062643c14 Initial revision 1987-01-13 10:01:07 +00:00
ceriel
25fd718557 Added "standard" entries install, cmp, opr 1987-01-13 09:56:17 +00:00
ceriel
928ca277c2 Initial revision 1987-01-13 09:24:13 +00:00
ceriel
abd81f8076 Initial revision 1987-01-12 17:21:59 +00:00
ceriel
55bf9759da Added documentation on EM_wordsize and EM_pointersize. 1987-01-12 15:54:16 +00:00
ceriel
6f2d67cd2f Also export EM_wordsize and EM_pointersize. 1987-01-12 15:42:38 +00:00
ceriel
7363c1cd09 Added TABLEFLAGS and CGGFLAGS. 1987-01-12 15:10:49 +00:00
ceriel
38a7a6e104 Preprocess table. 1987-01-12 14:50:25 +00:00
ceriel
d5987d64d3 Allow reading from standard input 1987-01-12 14:38:45 +00:00
ceriel
fda21b626c force first line directive 1987-01-12 14:21:14 +00:00
ceriel
46ce3ce464 This one works. 1987-01-12 14:06:47 +00:00
ceriel
4b916d7c48 New Makefile, also generating opt2 (t.i. peephole optimizer after global ..) 1987-01-12 14:01:26 +00:00
ceriel
25ecc31433 Corrected the "install" entry. 1987-01-12 12:30:16 +00:00
ceriel
0ec2e20641 In some cases, the number after a HOL was'nt accurate. 1987-01-09 15:16:22 +00:00
ceriel
2aa7a6977b Bug fix. 1987-01-09 14:11:59 +00:00
ceriel
d050d88f89 %c did not work on systems that have their bytes or their words reversed. 1987-01-08 17:40:25 +00:00
ceriel
4c7e878c6c Bug fix: order in archive longs is PDP-11 order! 1987-01-08 17:39:37 +00:00
ceriel
c15f8492de added doc for C_init 1987-01-08 16:35:00 +00:00
ceriel
35422761e4 Added C_init 1987-01-08 16:20:59 +00:00
ceriel
b9e516837f Added C_init. 1987-01-08 16:19:16 +00:00
ceriel
31ae1f0d95 arhdr --> ar_hdr.
updated docs on rd_arhdr.
1987-01-08 16:05:52 +00:00
ceriel
e334c5ebfc rd_arhdr now returns 1 if it succeeds, and 0 at end-of-file. 1987-01-08 16:04:20 +00:00
ceriel
6e706da0f4 made error in macro parameter count into a warning 1987-01-08 14:57:18 +00:00
ceriel
8c67176f3d Added exclusive or operator 1987-01-08 14:27:07 +00:00
ceriel
11a429eb99 Added bitwise operators 1987-01-08 14:22:32 +00:00
ceriel
cf083c56a3 Added xor-oprator 1987-01-08 14:21:56 +00:00
ceriel
5b65b239f1 Added bitwise and and or operators 1987-01-08 14:11:23 +00:00
ceriel
826157760d fix to prevent loop resulting in stack overflow 1987-01-08 14:10:02 +00:00
ceriel
08ced09518 small adaption to "awayreg". 1987-01-08 14:09:14 +00:00
ceriel
30a46b2e5f Added bitwise EX_OR and EX_AND. 1987-01-08 14:03:43 +00:00
ceriel
af59e1769c Generate line directives that are similar to the ones generated
by the Reiser preprocessor.
1987-01-08 12:42:44 +00:00
ceriel
3338484831 wrong number of parameters no longer is an error. 1987-01-08 12:38:05 +00:00
ceriel
82aa07e7b7 New description file, using LED. 1987-01-08 11:22:44 +00:00
ceriel
9bc436271f adapted to get .o files 1987-01-08 11:09:06 +00:00
ceriel
93ae60e5d6 "l86" --> "i86". 1987-01-08 11:04:25 +00:00
ceriel
68e60eb8a4 Initial revision 1987-01-08 10:41:08 +00:00
ceriel
b5a04df6cd Adapted to get .o files. 1987-01-08 10:29:45 +00:00
ceriel
6cc04d5e39 use "compare" shell script 1987-01-08 10:28:26 +00:00
ceriel
0f2eadb5e2 Initial revision 1987-01-08 10:21:35 +00:00
ceriel
ee9b44c041 changed name back: libem_s.a --> tail_em.a 1987-01-08 10:19:47 +00:00
ceriel
7dbdc7763d adapted to new assembler syntax 1987-01-08 10:13:48 +00:00
ceriel
bfc664479f Initial revision 1987-01-08 10:07:43 +00:00
ceriel
85a6fd789d I don't know! but it was changed. 1987-01-08 09:56:17 +00:00
ceriel
36b275be34 Adapted to new assembler syntax. 1987-01-08 09:39:54 +00:00
ceriel
fcc880c8f7 Initial revision 1987-01-07 17:13:41 +00:00
ceriel
ebe9f3f466 *** empty log message *** 1987-01-07 11:10:33 +00:00
ceriel
e4a2f55de6 3 --> 3ACK 1987-01-06 18:54:48 +00:00
ceriel
c34565adef Removed a bug that led to infinite looping in obscure cases. 1987-01-06 18:49:00 +00:00
ceriel
db18fcf83e Initial revision 1987-01-06 18:45:35 +00:00
ceriel
ca9f784e67 Initial revision 1987-01-06 18:31:02 +00:00
ceriel
846e79a2b0 Initial revision 1987-01-06 15:16:53 +00:00
ceriel
17598fae79 Initial revision 1987-01-06 14:04:26 +00:00
ceriel
6942ec9a85 removed the Xmalloc entry 1987-01-06 13:46:48 +00:00
ceriel
37e693b91a Initial revision 1987-01-06 13:42:33 +00:00
ceriel
3c96495687 Added a "pr" and an "opr" entry. 1987-01-06 12:59:16 +00:00
ceriel
785fd2f8ac Added a "pr" and an "opr" entry. 1987-01-06 12:42:31 +00:00
ceriel
d0a3ad8704 Initial revision 1987-01-06 11:41:50 +00:00
ceriel
12869eaa07 Initial revision 1987-01-06 11:25:09 +00:00
ceriel
2730da52c6 Initial revision 1987-01-06 11:05:35 +00:00
ceriel
dc536d3e4a Initial revision 1987-01-05 17:37:37 +00:00
ceriel
76d4ac5194 Initial revision 1987-01-05 17:31:38 +00:00
ceriel
ad0cab046a Initial revision 1987-01-05 17:20:13 +00:00
ceriel
6390b1669e Initial revision 1987-01-05 14:56:11 +00:00
ceriel
2aaea46322 Initial revision 1987-01-05 14:44:25 +00:00
ceriel
68d498ce30 Initial revision 1987-01-05 13:26:29 +00:00
ceriel
be8f6b7452 Initial revision 1987-01-05 12:59:41 +00:00
ceriel
8cbbe6659d Extended for new read_em module. 1987-01-05 12:51:37 +00:00
ceriel
eab4c1e0b9 added cleanup.c 1987-01-05 11:12:55 +00:00
ceriel
898222c41c Initial revision 1987-01-05 11:08:47 +00:00
ceriel
5dacfb665d Initial revision 1987-01-05 10:58:34 +00:00
ceriel
bb0969ede6 D_BUSY added, to check recursive deps in def modules 1986-12-16 15:22:33 +00:00
ceriel
40a554bc9b bug fix in LLlex.c, "string_token" 1986-12-16 14:30:33 +00:00
ceriel
947f62f278 Introduced EMHOME. 1986-12-16 13:50:54 +00:00
ceriel
3cc63b8c02 Added exit.c stty.c gtty.c 1986-12-16 10:25:44 +00:00
ceriel
9f1d5f8c5a Initial revision 1986-12-16 10:23:21 +00:00
dick
62e81f1292 some small changes, asm() yields error message 1986-12-13 20:57:40 +00:00
ceriel
013f816c6c No longer use the "system-independant" tail_mon. 1986-12-12 17:56:05 +00:00
ceriel
ddc2469aa3 head_em now resides in system dependant library. 1986-12-12 17:54:21 +00:00
ceriel
373dc42696 Removed almost the whole file, as we now use assembly routines to
interface the systemcalls.
1986-12-12 17:51:03 +00:00
ceriel
4a0f9dbe8e Initial revision 1986-12-12 16:12:19 +00:00
ceriel
4ebfccb17f Bloody assembler does not recognize ',' in .globl 1986-12-12 14:45:20 +00:00
ceriel
a02f330f2f .globl does not accept comma's 1986-12-12 14:40:25 +00:00
ceriel
1145e16e15 Initial revision 1986-12-12 13:43:06 +00:00
ceriel
3536ae7170 Initial revision 1986-12-12 12:49:50 +00:00
ceriel
4e92b0777c Improved testing for 0-strings in the routine "mycat". 1986-12-11 17:04:40 +00:00
ceriel
17a2481bb3 Corrected a typo. 1986-12-11 17:03:11 +00:00
ceriel
f5cc9fcd9f Entry for "top", different entry for "LLgen". 1986-12-10 16:53:24 +00:00
ceriel
a2516baa2f Added EMHOME. 1986-12-10 15:30:42 +00:00
ceriel
96b2cf8298 Adapted to typesetter and added a reference for LLgen. 1986-12-10 15:28:30 +00:00
ceriel
9ac0709648 Added a reference for LLgen. 1986-12-10 15:28:06 +00:00
ceriel
cad1a202b1 Adapted to possible use of troff 1986-12-10 15:27:36 +00:00
ceriel
1412249c41 Documented LLmessage(-1). 1986-12-10 15:26:10 +00:00
ceriel
11f6238126 added nmclash.c, mods to Makefile/Resolve 1986-12-10 15:13:04 +00:00
ceriel
55afae9ad0 simplified 0-padding, minor cosmetic changes 1986-12-10 12:00:55 +00:00
ceriel
e5a90d3bd8 Initial revision 1986-12-10 11:40:00 +00:00
ceriel
4d1f2e4f35 minor mods. 1986-12-10 11:31:35 +00:00
ceriel
3f59bd779b Initial revision 1986-12-10 10:38:42 +00:00
ceriel
b6ab6a5eb0 removed the -n flag, but not its effect. The generated parser will
call LLmessage(-1) when saying "garbage at end of input".
1986-12-10 09:32:57 +00:00
ceriel
4de92e9ab6 minor fixes 1986-12-09 17:41:06 +00:00
ceriel
36ec50a706 Adapted to new assembler 1986-12-09 11:13:14 +00:00
erikb
8591d58284 added: file_info.h 1986-12-09 08:19:55 +00:00
ceriel
e1d7671027 Only call "newrelo" when needed. 1986-12-08 10:39:13 +00:00
ceriel
0dd7ecb830 *** empty log message *** 1986-12-08 09:24:58 +00:00
erikb
b9823c8daa corrected basename() 1986-12-08 08:58:21 +00:00
ceriel
bdfa65a962 *** empty log message *** 1986-12-05 17:18:54 +00:00
ceriel
d9fa4a7e85 Working version. 1986-12-05 17:17:03 +00:00
ceriel
e4bf2b5799 *** empty log message *** 1986-12-05 17:12:24 +00:00
ceriel
e8f6a27f1e Initial revision 1986-12-05 17:10:12 +00:00
ceriel
83ef4238fa initial version 1986-12-05 17:09:41 +00:00
ceriel
cb64c98e9c *** empty log message *** 1986-12-05 16:59:51 +00:00
ceriel
c411730b6b Initial revision 1986-12-05 16:58:29 +00:00
ceriel
237bf7d966 ??? 1986-12-05 16:36:40 +00:00
ceriel
84f6c45869 Removed DUK 1986-12-04 16:35:04 +00:00
ceriel
bd0740dc42 version using input module and detecting preprocessor loops 1986-12-04 16:29:44 +00:00
ceriel
fabb83eddc Improved relocation reading code for the !incore strategy. 1986-12-03 13:09:15 +00:00
ceriel
e12b25522c Improved compactification code. It was much to persistent, and
also too greedy. This causes long LONG linking times.
The current version is less greedy, but also gives up more
easily. Linking times are acceptable now.
1986-12-03 13:06:48 +00:00
ceriel
abfed9b1f5 Added definitions for "alloc", "hard_alloc". 1986-12-03 13:02:37 +00:00
ceriel
af341d2dde made to work on small machines. 1986-12-02 16:16:08 +00:00
ceriel
aa75909130 bug fix: size 0 error messages also appeared for labels 1986-12-02 11:39:34 +00:00
ceriel
0bd78213b6 Added -i to LDFLAGS. 1986-12-02 11:25:51 +00:00
ceriel
fc0149621e Version that uses libobject.a 1986-12-01 15:41:29 +00:00
ceriel
a93111d3d1 Version that uses libobject.a. 1986-12-01 15:35:28 +00:00
ceriel
1864229bae some minor bug fixes 1986-12-01 10:06:53 +00:00
ceriel
5617c657b6 handle void properly, avoid 0-alignments, handle #if defined(..) 1986-12-01 10:00:23 +00:00
ceriel
5296d5f9e7 Removed some signal handling stuff. The Ack-program should do that. 1986-12-01 09:43:00 +00:00
sater
5ea0c06402 added support for modhead 1986-11-28 13:47:44 +00:00
sater
f55a90224e debugging stuff happened to end up on stdout instead of stderr. 1986-11-28 13:41:09 +00:00
ceriel
43f4599a42 many bug fixes, and added flexibility in alignments 1986-11-28 11:59:08 +00:00
ceriel
3bc8215b69 newer version 1986-11-26 16:40:45 +00:00
ceriel
3476883ee1 Initial revision 1986-11-24 21:52:09 +00:00
ceriel
db589c5d02 Initial revision 1986-11-24 21:45:03 +00:00
ceriel
bef7369dc5 Handled gen.c wrong. This is corrected. 1986-11-24 21:30:57 +00:00
ceriel
aa15676594 make to work with newer version of LLgen. 1986-11-24 21:24:42 +00:00
ceriel
66156680b6 Added -DNDEBUG 1986-11-24 21:01:42 +00:00
ceriel
0e38359528 Initial revision 1986-11-24 20:58:35 +00:00
ceriel
374d4aac17 Initial revision 1986-11-24 20:42:13 +00:00
ceriel
7b14da0eb1 Bug fix in "inc loc adi" patterns and the like. 1986-11-24 10:42:29 +00:00
ceriel
d9c7ccc6e5 Check more, when an error occurred 1986-11-17 13:08:18 +00:00
ceriel
ad86f01119 Trying to check more of an expression, giving some more sophisticated error messages,and be less wasteful with space for subranges 1986-11-17 11:41:28 +00:00
erikb
6f6380329d adapted default IDEPTH value 1986-11-14 08:16:38 +00:00
ceriel
3ffbb31b34 changed sizes of labstr and argstr to accomodate longer identifiers. 1986-11-12 21:14:05 +00:00
ceriel
52e8a88abb Changed sizes of "argstr" and "labstr", to accomodate longer
identifiers.
1986-11-12 21:04:38 +00:00
erikb
1754d94047 removed the debug message for encountering STRING-type Values 1986-11-12 09:55:28 +00:00
erikb
830cebff5a updated the manual pages 1986-11-12 09:53:18 +00:00
erikb
c6a5bb46ed merged the vax and mantra versions 1986-11-11 13:47:58 +00:00
ceriel
8adf908bc6 Initial revision 1986-11-11 13:44:58 +00:00
ceriel
93f7e9f4de Adapted to use of GCIPM. 1986-11-11 13:44:13 +00:00
ceriel
19c074d2b4 Adapted to use General C Identifier processing Module (GCIPM).
Also changed so that output for "cid" or "cpp" is in alphabetical order.
1986-11-11 13:42:42 +00:00
ceriel
6059f82461 Adapted to new versions of programs 1986-11-11 13:42:16 +00:00
ceriel
ea7fcdfc89 Initial revision 1986-11-11 13:34:20 +00:00
erikb
00a884b745 corrected the treatment of static functions declared on non-global level 1986-11-10 09:16:27 +00:00
erikb
5346f46c31 use programs and modules from ACK instead of local versions 1986-11-10 09:14:29 +00:00
ceriel
8f511e95b9 Avoid a bug in the C-optimizer of 4.1 BSD. 1986-11-07 17:54:30 +00:00
ceriel
40fe162a04 Constants changed to more sensible values. 1986-11-07 16:20:33 +00:00
ceriel
f136bb04d6 Added "register" to a declaration. 1986-11-07 16:01:45 +00:00
ceriel
20b488059b *** empty log message *** 1986-11-05 21:31:23 +00:00
ceriel
c92a7f411d Several bug fixes 1986-11-05 14:33:00 +00:00
ceriel
eb91f2c19d Added some code to skip to EOF with LL_NEWMESS. 1986-11-03 14:09:28 +00:00
ceriel
1672072921 That was: LL_NEWMESS, not LL_NEWMESSAGE! 1986-11-03 10:28:21 +00:00
sater
e364c641d0 Output was wrong with maxmembers<2 1986-11-03 09:13:32 +00:00
ceriel
4abeef8300 Removed the integer overflow check, as it is'nt checked by
"cg".
1986-10-30 15:44:25 +00:00
ceriel
60e95ef346 forgot to restore return address in case ".trp" is called. 1986-10-30 15:01:16 +00:00
ceriel
8503344eea Added code that calls LLmessage(-1) when needed, and when LL_NEWMESS is
defined.
1986-10-29 11:30:50 +00:00
ceriel
96e1ce1b52 Added "nflag". 1986-10-29 11:29:47 +00:00
ceriel
07626ee7b3 Added nflag, that allows the LLmessage(-1) call, to indicate garbage
at end of program.
1986-10-29 11:27:47 +00:00
ceriel
d02d0632c0 Bug fix. Error recovery did not always work as expected. The generated
parser sometimes assumed that a token would not be deleted, and inserted
tokens in front of it, and then deleted the token after all. It should
at each error, first delete, and then insert.
1986-10-29 11:16:55 +00:00
ceriel
04f1820b22 Some name changes in ../../modules/lib. 1986-10-28 17:04:40 +00:00
ceriel
c3e6f3aef6 Made the trap message more readable. 1986-10-27 10:17:36 +00:00
ceriel
bca7ff59fb Did not work properly, printed wrong trap number. Does not work
properly now, because it does no save the registers.
1986-10-27 09:57:42 +00:00
sater
13dfcedcef Typo corrected 1986-10-24 16:58:46 +00:00
ceriel
e52cd587fb newer version with some bug fixes 1986-10-22 15:38:24 +00:00
ceriel
935a12a56e Error messages are printed differently now. A '%' in an error message
used to cause difficulties.
1986-10-22 15:30:46 +00:00
ceriel
55dd98fd3c Bug fix involving '\\'. 1986-10-22 13:36:22 +00:00
ceriel
06ea1f505e minor simplification. 1986-10-22 13:36:04 +00:00
ceriel
1bf54a839e minor fix to LLlex.c 1986-10-21 14:45:43 +00:00
ceriel
c601bbacd5 newer version 1986-10-20 17:40:41 +00:00
ceriel
ad706c95d5 Added an entry for the util/cmisc directory. 1986-10-20 15:00:14 +00:00
ceriel
c598ed56ae Improved the "clean"-entry 1986-10-20 14:58:25 +00:00
ceriel
1a553fda1b Initial revision 1986-10-20 14:56:37 +00:00
ceriel
472f51257a *** empty log message *** 1986-10-20 14:42:41 +00:00
ceriel
2dedd7c2a4 Added "Modules" 1986-10-20 14:09:09 +00:00
ceriel
d03ecb5b77 Adapted to the use of ../../modules/lib/libstr.a 1986-10-20 13:59:14 +00:00
ceriel
95a615f3bc Use our own string-routines "strindex" and "strrindex". At least we
know their name!
1986-10-20 13:52:16 +00:00
ceriel
dcfe651252 Use our own string routines strindex and strrindex. At least we know
their name!
1986-10-20 13:48:26 +00:00
ceriel
b147860910 Fixed a bug: ack could not see the difference between ".mod" and ".m".
This is corrected.
1986-10-20 13:47:26 +00:00
ceriel
bcc72bb315 Caused a core dump on 68000-based machines (read: non-VAX) when called
at a certain (high) level of verbosity, -v5 for instance.
Cause: a null-reference. This is fixed.
1986-10-20 13:28:59 +00:00
ceriel
db2859a235 Replaced a few "bss 2" by "bss EM_WSIZE". 1986-10-20 11:28:29 +00:00
ceriel
6365a82a06 A new version, that no longer tries to move all null parts to the end
of a segment. It also uses the "object" library to read and write ACK-
object files and libraries.
1986-10-20 10:17:57 +00:00
ceriel
a660985529 I don't really know why, but the file was changed. 1986-10-20 09:35:51 +00:00
ceriel
275a42de8b Deleted the #ifdef JOHAN stuff, and
added a #define MAXSECT.
1986-10-16 16:36:00 +00:00
ceriel
ed66c5a3e2 Removed some ridiculous code. 1986-10-15 13:58:51 +00:00
ceriel
de4de74d33 Removed part of test 127. It tried a LFR after doing a LOC and an ASS.
This is of course not allowed.
1986-10-13 14:45:18 +00:00
ceriel
0e9a59ad6c Added a NOFLOAT define. (Taken from Koen Langendoen) 1986-10-13 14:42:31 +00:00
ceriel
b9bc494291 Apparently, ex_ap disappeared. Put it in again. 1986-10-10 15:21:35 +00:00
ceriel
78d0c0ec3d Oops, forgot to remove the id_first definition. 1986-10-10 15:09:34 +00:00
ceriel
680f7f4fb5 Added a "fmt_id" define, to prevent that no '_' is placed in front
of an identifier longer than 8 characters.
1986-10-10 15:05:10 +00:00
sater
cb0741ad6d empty string was returned when it was not so good. 1986-10-09 16:15:00 +00:00
sater
09afb442c4 nullpointer and empty string were confused.
Long live the PDP and VAX
1986-10-09 16:12:24 +00:00
ceriel
ab19fa71d6 Added RANLIB 1986-10-09 13:21:33 +00:00
ceriel
9eeb2ec6fa Removed the "wordsize" variable. it was'nt needed, as we also have
EM_WSIZE.
1986-10-09 11:44:28 +00:00
ceriel
b42a39df90 Addition of some changes by Kees Visser.
In packed structures, subrange types now occupy 1 byte if they fit in
1 byte, they occupy 2 bytes if they fit in 2, etc.
1986-10-09 11:09:27 +00:00
ceriel
15c2d7c8b2 Changed a test that was word_size and alignment dependant. 1986-10-09 10:37:56 +00:00
ceriel
f066c3691d newer version 1986-10-06 20:36:30 +00:00
ceriel
6cc0c7f461 There was an error in test 026. It used local variables but declared none.
This is corrected.
1986-09-30 11:13:44 +00:00
erikb
974f71ab6e modified the treatment of op=, ++ and -- operators 1986-09-29 14:01:34 +00:00
erikb
803315bb42 modified the treatment of op=, ++ and -- operators 1986-09-29 13:16:11 +00:00
dick
b1f511e187 some very minor changes 1986-09-28 20:33:15 +00:00
ceriel
624c5a83c5 many bug fixes 1986-09-25 19:39:06 +00:00
erikb
b1eed62b5c put heavily used pointer variables in registers 1986-09-24 13:53:16 +00:00
ceriel
6df30b45d7 Added a pattern for "ldc ads". 1986-09-24 12:17:25 +00:00
ceriel
ccb47897ea Initial revision 1986-09-24 11:24:37 +00:00
ceriel
a05325ba7f Addition of new patterns. 1986-09-23 09:41:47 +00:00
sater
b8aa8a2217 changed ad2str function not to add +0 at labels 1986-09-22 13:15:15 +00:00
sater
9bc53f63a9 made debiug output better 1986-09-22 13:14:54 +00:00
erikb
2e7633971a if NOPP: made #line directives treated correctly 1986-09-22 13:04:04 +00:00
erikb
1384666eb9 some minor fixes 1986-09-17 12:31:45 +00:00
erikb
7dfa6a955a changed some large static data structures into STATIC 1986-09-15 08:47:53 +00:00
erikb
d89580fd22 added one byte to ibuf 1986-09-12 12:58:22 +00:00
erikb
f27be37970 built in the compile time flag NOFLOAT to get rid of the float stuff 1986-09-12 09:16:07 +00:00
ceriel
106c9e2293 Bug fix: The "cmp.l" instruction was sometimes used in an illegal way. 1986-09-10 16:03:11 +00:00
erikb
7bc71298be corrected the treatment of the <<= and >>= operators 1986-09-10 10:23:26 +00:00
erikb
c489f7f608 simplified the return expression in loadbuf() 1986-09-09 13:49:46 +00:00
em
af1c3f29a8 set limit on optimization passes to prevent loop
in optimizer in case of bad table.
1986-09-09 13:10:15 +00:00
erikb
1939e147a4 corrected the compile-time evaluation of ~<unsigned value> 1986-09-09 09:47:43 +00:00
ceriel
004a1d5414 An improvement to prevent calls to the .cuu routine. 1986-09-05 16:35:12 +00:00
erikb
c2a10ef9bc various null-dereference problems fixed 1986-09-02 15:22:54 +00:00
erikb
b18ced777e added some LINT facilities 1986-09-02 15:00:50 +00:00
sater
2c23adf973 Error fixed where w==2 was assumed 1986-08-28 10:28:42 +00:00
erikb
01171cbc52 first operand to intexpr is arith typed 1986-08-26 14:59:36 +00:00
ceriel
aacc4053db newer version with bug fixes 1986-08-26 14:33:24 +00:00
erikb
a601e0a542 unknown-sized locals retain their type 1986-08-26 10:30:39 +00:00
erikb
196cc676d9 generate a con instruction for each character in a string constant 1986-08-25 08:47:07 +00:00
erikb
c3ef25a7a9 some minor bugs 1986-08-22 09:20:13 +00:00
erikb
de1efda513 made less environ and machine dependent 1986-08-22 09:10:12 +00:00
erikb
736a5ff99b revised the treatment of "e op= f" expression 1986-08-13 10:05:39 +00:00
erikb
1b7821a87e added some #ifdef USE_TMP lines 1986-07-29 12:49:38 +00:00
erikb
1d5a5e0a6d added -T<path> option: create temporary file(s) in directory <path> 1986-07-29 11:46:00 +00:00
ceriel
9f2c3e6186 Added a test for BLS with a blockmove of wordsize bytes. 1986-07-25 16:08:56 +00:00
ceriel
6faf0887c3 Bug fix: the BLS instruction did'nt work with block moves of one word. 1986-07-25 15:57:03 +00:00
ceriel
8c8fb9a5b7 inn and set must be word-orientated, not byte-orientated. 1986-07-25 15:01:15 +00:00
ceriel
3e5c4dbe94 Bug fix 1986-07-25 14:17:23 +00:00
ceriel
686c0aee93 Bug fix 1986-07-25 13:19:51 +00:00
ceriel
829243f8b1 Made tail_mon dependant on tail_mon.a 1986-07-23 11:06:29 +00:00
ceriel
41de09df24 Added a ".sect .text". The text "landed" in the bss segment. 1986-07-23 11:04:40 +00:00
ceriel
9d4acc9c3a Bug fix. It just did'nt work. 1986-07-22 15:11:09 +00:00
ceriel
10fa57ef52 *** empty log message *** 1986-07-22 14:49:46 +00:00
ceriel
b72b2e98f1 Adapted to the use of the new assembler. 1986-07-22 13:42:21 +00:00
ceriel
4310641b88 Adapted to new assembler and made re-entrant. 1986-07-22 13:37:16 +00:00
ceriel
6cd49ed46c Adapted to use of new assembler. 1986-07-22 13:23:14 +00:00
ceriel
3a13b60c06 Initial revision 1986-07-22 11:07:48 +00:00
ceriel
064ea695d5 replaced all occurrences of "cc" by "$(CC)". 1986-07-22 11:01:54 +00:00
ceriel
7e94756b30 Adapted so that anybody can do "make install". 1986-07-22 10:47:51 +00:00
ceriel
36a255a5cf Changed default machine to "vax4". 1986-07-22 10:36:04 +00:00
ceriel
6bff676201 Added code to use different integer constants when compiled with
word_size >= 4.
1986-07-21 12:26:38 +00:00
ceriel
f2d12c347f Added -Vi... flag to Pascal compiler options. 1986-07-21 09:58:19 +00:00
ceriel
e706b3cdba Some changes needed for the new 4-4 Pascal compiler. 1986-07-21 09:53:44 +00:00
ceriel
3d0bf5c9a4 Added instructions to make pem44.m 1986-07-21 09:40:20 +00:00
ceriel
1475b0fce3 This is the result of the merging of 2.5 with 2.4.1.1, with some
minor fixes.
1986-07-21 09:30:11 +00:00
ceriel
de31476ed6 Temporary variables are no longer overlapping. The operlapping caused
problems with register variables.
Also, code is added to prevent the generation of static exchanges.
only included if the preprocessor-constant
NO_EXC is defined.
1986-07-21 09:23:39 +00:00
dick
21669f85ed some leaks plugged (as detected by the leak detector) 1986-07-18 22:23:23 +00:00
dick
fa9f4ab0ab some leaks plugged (as detected by the leak detector) 1986-07-18 21:10:42 +00:00
dick
7f5bcdf116 option NORCSID for lint in Makefile is nonsense 1986-07-17 22:17:59 +00:00
ceriel
ca77c2b86b Some bug fixes 1986-07-14 15:00:08 +00:00
ceriel
ee32bf5126 better compatibility between CARDINAL and ADDRESS 1986-07-10 16:27:26 +00:00
ceriel
250729d441 newer version 1986-07-08 14:59:02 +00:00
ceriel
d46c6d1cae newer version 1986-06-26 09:39:36 +00:00
ceriel
07297eeb2a newer version 1986-06-20 14:36:49 +00:00
ceriel
f0d88d3de3 newer version 1986-06-17 12:04:05 +00:00
sater
60a5906456 removed sanity checking on result from sprintf
System IIIish systems seem to have their own idea.
1986-06-17 09:13:11 +00:00
sater
a018269724 Conversions from 1 byte integers were wrong.
Only discovered after new C-frontend.
1986-06-16 11:35:12 +00:00
ceriel
2df2dde564 newer version 1986-06-10 13:18:52 +00:00
ceriel
933448ad6e There was a bug in the printing of the trap number.
This is corrected.
1986-06-06 23:35:42 +00:00
ceriel
ddba03d53b newer version 1986-06-06 09:35:11 +00:00
ceriel
702c0bd19a newer version 1986-06-06 02:22:09 +00:00
ceriel
49287324b3 Increased the size of the expression node table. 1986-06-05 13:56:31 +00:00
ceriel
72a234b9bd Rediscovered a bug in the VAX 4.1 UNIX assembler. It handles $0f0.0 wrong!
The changes is the table insure that $0f0.0 is never generated.
1986-06-05 12:43:56 +00:00
ceriel
c479ca0058 first, almost complete, version 1986-06-04 09:01:48 +00:00
ceriel
1fcd61aa36 newer version 1986-05-30 18:48:00 +00:00
ceriel
cb9213bf8c newer version 1986-05-28 18:36:51 +00:00
erikb
a504ee7e09 revised the type checking of expr in "switch (expr)" 1986-05-28 08:40:06 +00:00
ceriel
e08808d5bc newer version 1986-05-23 19:25:21 +00:00
ceriel
deb9ab0461 newer version 1986-05-23 09:46:31 +00:00
ceriel
8aaaa48840 newer version 1986-05-21 18:32:20 +00:00
sater
0d93c572bc Non existing token fields in the format string caused memfaults
because fields were checked beyond the end of the tokeninfo. Fixed.
1986-05-21 15:08:57 +00:00
ceriel
72fac35781 newer version 1986-05-16 17:15:36 +00:00
ceriel
f57a484906 newer version 1986-05-14 09:03:51 +00:00
ceriel
07e226dac3 newer version 1986-05-01 19:06:53 +00:00
ceriel
8b07933e3d newer version 1986-04-28 18:06:58 +00:00
erikb
5b9a3d373e various small layout corrections 1986-04-28 09:56:33 +00:00
ceriel
f445033fab newer version 1986-04-25 10:14:08 +00:00
ceriel
c11efeb1fe newer version 1986-04-23 22:12:22 +00:00
ceriel
e8977ebb57 newer version 1986-04-22 23:22:19 +00:00
ceriel
a46f20bff7 newer version 1986-04-22 22:36:16 +00:00
keie
4a2d866fb0 Added EODDZ to the exported externals.
It should have been there from the start.
1986-04-22 10:40:29 +00:00
ceriel
23532d6fb4 newer version 1986-04-21 17:27:06 +00:00
ceriel
ea9dcf01ec newer version 1986-04-18 17:53:47 +00:00
erikb
8b438fbca3 various small corrections 1986-04-17 14:42:54 +00:00
ceriel
f5334707b5 newer version 1986-04-17 09:28:09 +00:00
ceriel
5cb0474789 newer version 1986-04-15 17:51:53 +00:00
ceriel
892b48787b newer version 1986-04-12 02:21:24 +00:00
ceriel
01eb8d8637 newer version 1986-04-11 11:57:19 +00:00
ceriel
bf43df896b newer version 1986-04-10 01:08:49 +00:00
ceriel
6ca5eb658d safety commit 1986-04-09 18:14:49 +00:00
ceriel
6ef38e3483 newer version 1986-04-08 23:51:11 +00:00
ceriel
88370d5433 newer version 1986-04-08 23:34:10 +00:00
ceriel
1b014ed75a newer version 1986-04-08 18:15:46 +00:00
ceriel
41b9a340d8 newer version 1986-04-07 22:15:08 +00:00
ceriel
e6978400f5 newer version 1986-04-07 17:40:38 +00:00
ceriel
95f9e56d53 newer version, partial parse trees 1986-04-06 17:42:56 +00:00
ceriel
eadfa9ae0a A newer version 1986-04-04 13:47:04 +00:00
erikb
80b9feb37f corrected the treatment of PREDEF-ed macros 1986-04-04 11:31:03 +00:00
erikb
b69b512875 revised the treatment of strings in initialisations 1986-04-04 09:54:50 +00:00
ceriel
5cdb2f787e newer version, safety commit 1986-04-03 17:41:26 +00:00
erikb
2118a5eea0 adapted to print(3L) module 1986-04-03 14:32:56 +00:00
erikb
22f6299fdb revised check_ival() (among some other small changes) 1986-04-03 11:33:32 +00:00
ceriel
a4e3f3b499 Newer version, safety commit 1986-04-03 00:44:39 +00:00
ceriel
5bf6f42cd7 newer version, safety commit 1986-04-02 17:34:21 +00:00
erikb
53af3f399a revised the administration of Value expressions 1986-04-02 08:37:17 +00:00
ceriel
d2d9a3c817 Newer version, safety commit 1986-03-29 01:04:49 +00:00
dick
1581b2ecd8 expression nodes now can have a flag EX_ERROR 1986-03-27 18:17:48 +00:00
ceriel
0968b74220 safety commit, newer version 1986-03-27 17:37:41 +00:00
sater
2a200d7211 repaired inreg() pseudofunction, it delivered total nonsense 1986-03-27 15:49:16 +00:00
erikb
9476cc2899 modified the string-constant printing routines; bts2str() is invoked 1986-03-27 11:01:12 +00:00
ceriel
5c1fa6db8c safety commit, newer version 1986-03-26 22:46:48 +00:00
ceriel
bee901746d newer version, safety commit 1986-03-26 17:53:13 +00:00
erikb
7c5b41eec7 introduced the string(3L) module 1986-03-26 16:58:43 +00:00
ceriel
dc106691e0 A newer version, safety commit 1986-03-26 15:11:02 +00:00
dick
a5ba27fd3b identifier pfd_type renamed to fdtpp 1986-03-26 14:01:10 +00:00
erikb
2511f931d9 introduced the em_code(3L) and em_mes(3L) modules 1986-03-25 16:40:43 +00:00
erikb
80b36104ef adapted to the system(3L) interface 1986-03-25 10:39:23 +00:00
ceriel
2ab00b6e06 some improvements 1986-03-24 17:29:57 +00:00
erikb
3fc938f8c5 fixed a garbage collection problem 1986-03-21 13:26:28 +00:00
ceriel
33604d2115 Initial version 1986-03-20 14:52:03 +00:00
erikb
691a1db69a fixed a bug in check_*_expr() 1986-03-20 13:09:47 +00:00
sater
5b9b6fa61e Relaxed input syntax for from STACK coercions
No gen clause is necessary anymore.
1986-03-19 16:14:12 +00:00
erikb
2586439ca4 improved lay-out 1986-03-19 16:07:32 +00:00
erikb
d89ee4fa72 Added C_init(), an empty-bodied routine 1986-03-19 12:36:02 +00:00
erikb
43fe55f634 Recovered from some inconsistencies. 1986-03-19 12:31:05 +00:00
erikb
40e0784b59 last modifications in order to introduce the EM library mechanism 1986-03-18 09:01:59 +00:00
dick
56fef70c43 some long lines split 1986-03-17 17:47:04 +00:00
dick
96963fede1 more calls of expr_error() for better error reporting 1986-03-15 18:16:30 +00:00
dick
acfe96c32c improved error reporting for initialization expressions
miscellaneous changes
1986-03-14 16:15:16 +00:00
erikb
19dec45819 simplified the EM con/rom functions (86/03/13) 1986-03-13 13:27:44 +00:00
erikb
e0cf6e95ef renamed some EM code functions according to the 86/03/11 EMCODE definition 1986-03-11 15:21:30 +00:00
erikb
52bf78e1fc added the possibility to prepend your own libc.a before the default 1986-03-11 14:46:46 +00:00
erikb
4a90cfec86 removed a reference to declarator.str 1986-03-10 15:59:43 +00:00
erikb
1378e479b5 Introduced the ALLOCDEF mechanism 1986-03-10 15:20:30 +00:00
erikb
0ea6776657 Introduction of ALLOCDEF 1986-03-10 15:18:00 +00:00
erikb
d1e46d4424 introduced the ALLOCDEF mechanism 1986-03-10 15:16:33 +00:00
erikb
271ffc9371 renamed declarator.h as declar.h 1986-03-10 15:10:56 +00:00
erikb
7e05deae32 *** empty log message *** 1986-03-10 13:15:40 +00:00
erikb
65c1ca3fd9 *** empty log message *** 1986-03-10 13:07:55 +00:00
em
d566eb8d63 updated 1986-03-05 17:12:39 +00:00
dick
edd633437c generated itables no longer in RCS; avoid overflow in app.codes.pr 1986-03-05 16:58:40 +00:00
em
9b393e474f Added the possibility of a third field in the pseudo-instruction
description.
This change is upwards compatible with the previous version, t.i., it still
works the same with the previous version of "em_table".
1986-03-05 14:27:08 +00:00
em
cf157a157a Added a third field to the pseudos indicating the type(s) of argument(s).
New types are:
	t	cst	{0,1}
	a	par
	v	val
	e	dlb
Also added : ?, * and +, having the usual regular expression meaning.
1986-03-05 13:45:38 +00:00
dick
8fc95eda5f adapting to phototypesetter 1986-03-04 15:30:45 +00:00
ceriel
d4ee0dbf15 Bug fix: The "calls" instruction could be called with
first argument > 255. This is corrected.
1986-03-04 11:39:22 +00:00
dick
c4936bbd48 adapting to phototypesetter 1986-02-28 18:02:00 +00:00
dick
2d7b3443bc small adjustments 1986-02-28 17:46:09 +00:00
dick
c727e9b502 entry clean added 1986-02-27 14:57:35 +00:00
keie
d764fef596 Adapted to our ack environment. 1986-02-11 11:22:43 +00:00
keie
5113e35bb9 Added a warning message. 1986-02-11 11:18:57 +00:00
keie
9c262a3266 Ack is using good old cpp again. 1986-02-11 11:15:19 +00:00
keie
dcfc21ba60 *** empty log message *** 1986-02-11 11:14:11 +00:00
keie
17ef693ad4 Too long ago. 1986-02-11 11:13:41 +00:00
bal
233c959d2f increased STACK_DEPTH from 50 to 250 1986-02-10 11:04:33 +00:00
ceriel
b0609d40fc Added some new patterns involving multiplies with 0, 1 etc. 1986-02-10 10:14:41 +00:00
ceriel
8002aeb6cc A minor improvement. 1986-02-10 10:08:27 +00:00
dick
80fd35f736 updated for photo-typesetter 1986-02-04 17:37:41 +00:00
em
d72f604a96 fixed bug in number() -- hex letters mistreated 1986-02-03 14:30:19 +00:00
sater
2e33b81ce6 Hex numbers didn't work. Corrected bug in myatoi(). 1986-01-24 16:08:34 +00:00
dick
7e47b13e67 adapted to phototypesetter 1986-01-20 20:39:09 +00:00
sater
e218ae5baf Some old changes by keie, plus added tbl to ncg.doc 1985-12-04 16:08:21 +00:00
sater
5ac7451566 Changed to be printed on laserprinter.
Removed paragraph about bug, since bug is now solved
1985-12-04 15:52:51 +00:00
sater
8c0e3a58f6 Corrected error in otime of initialisation of booleans 1985-12-02 13:55:06 +00:00
ceriel
69caad4b6c A minor change in the LL.output format. 1985-11-26 13:27:51 +00:00
ceriel
994eccc0eb Remove targets before installing new ones 1985-11-25 16:26:59 +00:00
ceriel
d74f1ba9df New manual page for a completely new version of LLgen. 1985-11-25 16:00:18 +00:00
ceriel
58588da699 Changed dependancies 1985-11-25 15:57:43 +00:00
ceriel
6bcb797733 New version of LLgen, new version of this Makefile ... 1985-11-25 15:52:56 +00:00
ceriel
0d8959325e New version, with a much faster parser. 1985-11-25 15:50:51 +00:00
ceriel
31a4215cab New version, much faster 1985-11-25 15:50:19 +00:00
ceriel
d901827448 Completely new version, generating a much faster parser 1985-11-25 15:48:42 +00:00
ceriel
8abda5fb1d Completely new version, generating a much faster parser. 1985-11-25 15:47:51 +00:00
bal
4050d5e7e3 Yet another bug reported by sater. 1985-11-18 16:55:53 +00:00
keie
130885344b The extra BSD4.2 code caused two branches to be out of range. 1985-10-15 15:53:48 +00:00
keie
d9f72cc2dc BSD4.3 size returns an error when it cannot find one of
its arguments.
1985-10-15 15:47:12 +00:00
bal
d70f277ee6 Several optimization patterns for DAS (Delftse Ada Subset) frontend added. 1985-10-14 09:27:24 +00:00
ceriel
2f02820a56 Initial revision 1985-10-03 18:31:47 +00:00
ceriel
da5f8e5a14 different interface. 1985-10-03 17:19:14 +00:00
bal
6003a5f2e9 0 / -1 confusion for properties (bug reported by sater). 1985-10-03 14:47:28 +00:00
bal
ede607455b 0 / -1 confusion for properties (2 bugs reported by sater). 1985-10-03 14:45:53 +00:00
bal
f00b73148f 0 / -1 confusion for properties (bug reported by sater). 1985-10-03 14:41:44 +00:00
ceriel
c1d4bb2597 More safety, also after terms and nonterminals. 1985-10-03 12:38:55 +00:00
ceriel
5be4b432dc *** empty log message *** 1985-10-03 10:36:07 +00:00
ceriel
b601e61e52 Initial revision 1985-10-03 10:35:55 +00:00
ceriel
e04eb7db0d *** empty log message *** 1985-10-03 10:25:40 +00:00
ceriel
15b635c021 Initial revision 1985-10-03 10:25:23 +00:00
ceriel
eb87fd5c0a A more precise safety after a term. 1985-10-02 22:49:16 +00:00
ceriel
cc731d51e2 Initial revision 1985-10-02 22:20:04 +00:00
ceriel
d32be9ac07 Name change : tail_em.vend -> end_em.s 1985-09-19 14:03:13 +00:00
bal
8903bc749a bug fixed: same problem as in r1.3, now with csb.
Solution: only do block fusion if first block end on bra.
1985-09-19 11:14:55 +00:00
bal
a9a88f29a0 bug fixed: last instruction of first block in block fusion optimization
can be a conditional branch. (bug detected by Ceriel).
1985-09-18 16:27:29 +00:00
bal
b048814b68 sprintf does not return pointer to string so the assert(s==string) does
not make any sense.
1985-09-06 11:39:06 +00:00
bal
401fadafec exit(0) added (trouble with make) 1985-09-06 11:38:00 +00:00
bal
047312216f MAXSTAB set to 2500 (problem with argument list of ROM for new C front-end). 1985-09-06 11:06:32 +00:00
bal
4dd4bcef57 bug fixed: null-pointer dereference. 1985-08-13 14:03:23 +00:00
em
a4c5892c11 Added str0 and str 1. 1985-07-26 17:38:22 +00:00
em
65a20f33f1 The identifier ns occurs in C programs. 1985-07-26 17:15:15 +00:00
em
325f2c4c1a Annita's versie 1985-07-26 17:14:13 +00:00
em
bb797e2241 This one works correctly for programs failing to translate. 1985-07-26 17:04:31 +00:00
em
25dd9ad631 removed a superfluous line. 1985-07-26 15:37:11 +00:00
em
e6dd02f9dd Initial revision 1985-07-26 12:52:13 +00:00
em
36594308d3 *** empty log message *** 1985-07-26 12:51:45 +00:00
em
901520e90a Initial revision 1985-07-26 11:56:24 +00:00
em
b5338379c1 Not using libmon. 1985-07-26 11:47:54 +00:00
em
a94fcddcf3 Added RCSID 1985-07-26 11:45:49 +00:00
em
b77d3d3f28 Initial revision 1985-07-26 11:38:59 +00:00
em
e33e92caac *** empty log message *** 1985-07-26 11:29:08 +00:00
em
4617b59056 Initial revision 1985-07-26 11:05:30 +00:00
ceriel
07606c3af3 There was a bug in the "str $1==0" instruction. It said:
str $1==0	| source4 |
			remove(ALL) "jsb\t.strlb"	|	| |
It should of course have been
str $1==0	| STACK |	jsb\t.strlb"	|	| |
1985-07-21 11:34:33 +00:00
bal
bcce387bb6 bugs for ngf 8 and fif 4 fixed (asp 16 --> asp 8). 1985-07-19 18:02:25 +00:00
bal
85a027feeb patterns for "loc loc cii/cui/ciu/cuu $1==$2" added. 1985-07-19 17:58:34 +00:00
bal
34ef18311c .sect .text added 1985-07-19 13:43:03 +00:00
bal
6fa0c54586 .sect .text added 1985-07-18 14:52:56 +00:00
keie
c765b06883 %D => %ld 1985-06-21 12:55:17 +00:00
keie
505abd69c5 *** empty log message *** 1985-06-19 13:42:49 +00:00
keie
8e9fee915b Now using AALMAG instead of ARMAG for led libraries. 1985-06-12 10:31:28 +00:00
keie
7edec0e321 *** empty log message *** 1985-06-10 16:57:01 +00:00
keie
91ff69f4e5 *** empty log message *** 1985-06-10 16:05:04 +00:00
keie
6491a49d46 *** empty log message *** 1985-06-10 15:32:18 +00:00
keie
74c3cfca9b *** empty log message *** 1985-06-10 14:52:43 +00:00
keie
91234b2e4f *** empty log message *** 1985-06-10 13:55:48 +00:00
keie
fccdec5cdb *** empty log message *** 1985-06-10 13:50:36 +00:00
keie
967fe97690 Using new magic number for 'aal' archives. 1985-06-10 12:41:51 +00:00
keie
2d43d88d60 Added AALMAG, for making distiction between 'led' archives
with SYMDEF and archives made/altered with 'arch'.
1985-06-10 11:28:06 +00:00
keie
ec849d3257 Removed debugging printout. 1985-06-10 11:23:22 +00:00
keie
4242c54c88 Adapted by Sjoerd to amoeba. 1985-06-10 10:53:15 +00:00
keie
ee7dc02965 Changed to get led working under amoeba.
Author: K.S. Mullender.
1985-06-10 10:48:49 +00:00
keie
617010fa56 Using new assembler & linker. 1985-06-04 11:43:01 +00:00
keie
dc41f07f89 Adapated to use of new linker & assembler. 1985-06-04 11:30:54 +00:00
keie
8fb74f3199 *** empty log message *** 1985-06-04 11:18:43 +00:00
keie
850c53b4a8 Adapted to use of the new assembler & linker 1985-06-04 11:18:09 +00:00
keie
7aea0d76f7 Adapted to use of new assembler & linker 1985-06-04 10:57:42 +00:00
keie
4f58008ca3 Adapted to use of new linker & assembler. 1985-06-04 10:44:10 +00:00
keie
409bbbe31b Adapted to using the new assembler & linker. 1985-06-04 10:40:50 +00:00
keie
eae06603f3 Added a module for fake floating point. 1985-06-04 10:39:45 +00:00
keie
10d7e48296 Now prevents inclusion of failed compilations into libraries. 1985-06-04 10:32:27 +00:00
keie
cc7a302746 Adapted to use of new assmbler and linker. 1985-06-04 10:32:07 +00:00
keie
398bce6ecb More adapted to use by march. 1985-06-04 10:30:18 +00:00
keie
a106011442 Adapted to use of the new assembler and linker. 1985-06-04 10:29:56 +00:00
keie
f42366dd91 A version that tells march to not try to include objects
of modules that failed to translate in the library.
1985-06-04 10:26:06 +00:00
keie
cd8fc63f58 Adapted tu use new assembler & linker. 1985-06-04 10:25:30 +00:00
keie
43b079111c 1 - Changed %D into %ld.
2 - Adapted to the new linker.
1985-06-04 10:21:15 +00:00
em
339358a174 Adapted to using the new linker. 1985-06-04 09:48:00 +00:00
em
f3e4341a27 Added one remark intended for bug circumvention. 1985-05-28 15:57:52 +00:00
em
bf133215a6 *** empty log message *** 1985-05-23 13:56:24 +00:00
keie
30c4ef1be9 *** empty log message *** 1985-05-13 11:19:24 +00:00
keie
2a6784012f Adapted to installation in the EM tree. 1985-05-13 11:09:53 +00:00
keie
9a3a07734e *** empty log message *** 1985-05-13 11:06:30 +00:00
bal
4028e98820 Bug fixed: cg generated instructions like "and.l #2,a4", which are
not allowed on the 68000.
The condition "inreg($...) < 2" is added to every EM-pattern that
accesses local non-register variables. So the ordering of the
patterns for regvar/non-regvar is no longer important.
1985-05-01 12:53:33 +00:00
keie
7c28e6c98a Added a message to the effect that 'local commons' can not be handled. 1985-04-29 11:55:30 +00:00
keie
aeb2d50790 Changed trap number into bit shifted by number for ignore mask.
The whole example is, at leat, unclear.
The trap for EFOVL never occurs!
1985-04-25 13:37:59 +00:00
keie
eb92039acd Add hoc solution of .align problem. 1985-04-23 12:55:01 +00:00
em
733ac47e22 The reading of the input is now machine independent. 1985-04-22 15:13:24 +00:00
em
8ab4d76d42 *** empty log message *** 1985-04-22 14:12:26 +00:00
keie
cd93fdaeb0 Added assignment for debuuging info. 1985-04-19 13:28:56 +00:00
keie
08d8ed86d7 Now using out.h from ../../h 1985-04-18 15:22:22 +00:00
keie
7d5733c9d2 Now using arch.h, out.h and ranlib.h from ../../h 1985-04-18 15:21:16 +00:00
bal
f45af8c7f4 Initial revision 1985-04-18 15:14:37 +00:00
bal
288206f080 Bug fixed: incorrect return value
New version adapted from m68k4 version.
1985-04-18 15:12:29 +00:00
bal
f1bf649e1d Extra systems calls added 1985-04-18 15:12:06 +00:00
ceriel
2aa3a9a5c5 Er zat een bug in het patroon
lol adp stl met $1 < 0.
Ten onrechte werd in de gegenereerde code het AP register gebruikt.
Dit moest natuurlijk FP zijn.
1985-04-17 13:38:36 +00:00
keie
37c5e5344e Added provision to print (possibly in mach.h defined) modhead
on the output assmble file as the very first text.
1985-04-16 16:14:55 +00:00
bal
01b1ecb467 Bug fixed for pattern 'sti $1 > 4' (ADDREG -> ADDSCR)
Bug was present since version 1.1
1985-04-16 15:24:23 +00:00
em
0f4da3a208 Initial revision 1985-04-15 00:05:45 +00:00
em
0397541084 Initial revision 1985-04-14 23:26:24 +00:00
keie
437c1ab7ae Removed RANLIB . 1985-04-14 14:27:04 +00:00
keie
9defdc6cd5 Added m68k4, pmds4
Removed one superfluous line.
1985-04-14 13:59:14 +00:00
em
c703a0de99 Added libraries needed after installation of cg. 1985-04-14 13:57:31 +00:00
em
0ad6018ae2 8080->i80. 1985-04-14 13:54:33 +00:00
em
ad3376760e Removed a superfluous line. 1985-04-14 13:46:54 +00:00
em
2e93a9bc0f Added pmds4. 1985-04-14 13:22:26 +00:00
em
a6f79a48b9 To prevent a (incorrrect) error message from distr/mktree. 1985-04-12 20:32:06 +00:00
keie
1757d18196 *** empty log message *** 1985-04-12 20:07:13 +00:00
keie
1a50e66b18 The library name was incorrect. 1985-04-12 17:21:52 +00:00
keie
6d36423c18 Initial revision 1985-04-12 17:08:56 +00:00
keie
8ab980695b *** empty log message *** 1985-04-12 17:06:38 +00:00
keie
96656e273d *** empty log message *** 1985-04-12 16:56:43 +00:00
keie
a60aeb08c3 Deletion of a few coercions caused a translation failure
for setjmp.e.
The coercions have been grabbed from an old version by FvH.
1985-04-12 16:43:40 +00:00
keie
8a1e9678ef Initial revision 1985-04-12 16:40:22 +00:00
bal
07968d0824 floating point stuff added 1985-04-12 15:47:30 +00:00
keie
7e8eecc0ab *** empty log message *** 1985-04-12 15:06:05 +00:00
keie
94816937d7 *** empty log message *** 1985-04-12 14:59:45 +00:00
keie
b594a52399 Initial revision 1985-04-12 14:55:00 +00:00
em
554027e555 *** empty log message *** 1985-04-12 14:33:09 +00:00
em
7523a05b3e Added flp.s, contains subroutines for all EM fp instructions.
They trap.
1985-04-12 14:29:07 +00:00
em
ce2d302bd6 1- Floating point routines now call routines instead of calling trp. 1985-04-12 14:25:59 +00:00
em
52f6ecab8b *** empty log message *** 1985-04-12 14:01:20 +00:00
keie
85fbadef2e Putting some dots on some i's. 1985-04-12 11:32:41 +00:00
keie
2eded550d1 *** empty log message *** 1985-04-12 11:25:21 +00:00
keie
2a722ab19a Just newer. 1985-04-12 11:20:15 +00:00
keie
f40c8db270 *** empty log message *** 1985-04-09 13:48:55 +00:00
keie
46437a3264 Added 1)libsys 2)end_em.
Changed handling of -i flag.
1985-04-02 11:21:33 +00:00
keie
a17f8ebe1c Error code 0 was returned when the installation failed! 1985-04-02 10:55:02 +00:00
keie
e599e706a7 Copy of ../libbc/compmodule. 1985-04-02 10:50:53 +00:00
keie
168b5c8f1a Removed -DCPM. 1985-04-02 10:46:43 +00:00
em
e2c548f26e *** empty log message *** 1985-04-01 17:02:55 +00:00
keie
cee4fb8a1a *** empty log message *** 1985-04-01 14:44:26 +00:00
keie
247b3227a4 Adapted after installation of backend. 1985-04-01 14:02:58 +00:00
keie
8733ea801c *** empty log message *** 1985-04-01 14:00:00 +00:00
keie
571853e8e0 Some minor cleaning up. 1985-04-01 13:20:42 +00:00
em
c5315f2466 *** empty log message *** 1985-03-29 21:44:50 +00:00
em
375c3a77db *** empty log message *** 1985-03-29 21:10:43 +00:00
keie
fa5991704c Corrected parameter name usage from i to d. 1985-03-26 17:03:30 +00:00
keie
97de94d925 Removed pascal library. 1985-03-26 16:27:23 +00:00
keie
a84888ad30 *** empty log message *** 1985-03-26 16:23:21 +00:00
keie
f2bcd752e7 The dl programs is replaced by a more general cv. 1985-03-26 16:20:11 +00:00
keie
53888a65c3 Installed backend and libraries. 1985-03-26 16:18:24 +00:00
keie
fa482fe079 Or's are not allowed on a-registers, add's are. 1985-03-26 16:09:07 +00:00
keie
bd1fc9c1db Adapted to Unisoft signal handling. 1985-03-26 16:08:09 +00:00
keie
6fc93be747 *** empty log message *** 1985-03-26 15:04:46 +00:00
keie
355b80901b Added head_em. 1985-03-26 15:04:02 +00:00
keie
294cce62f9 Added head_em to libsys. 1985-03-26 15:00:09 +00:00
keie
d7e614a9d4 Fetch head_em from pmds4.
Short size is 2 not 4!
1985-03-26 14:58:54 +00:00
keie
b45c0a9a51 Moved head_em to libsys. 1985-03-26 14:53:00 +00:00
keie
f3ab8eec76 *** empty log message *** 1985-03-26 14:48:32 +00:00
keie
1385836a70 Added some more system calls.
Moved errno to a separate file.
1985-03-21 14:13:55 +00:00
keie
2230b1807e errno is moved to a sfile of its own. 1985-03-21 14:05:03 +00:00
keie
389408ba5d *** empty log message *** 1985-03-21 14:04:45 +00:00
em
85ef95352b *** empty log message *** 1985-03-18 17:27:42 +00:00
em
f7e3409da6 Initial revision 1985-03-18 17:24:31 +00:00
em
ae0701f11b *** empty log message *** 1985-03-18 15:52:00 +00:00
em
fe9cc5ace6 Changed 8080 into i80. 1985-03-18 14:44:15 +00:00
em
5704ddf635 *** empty log message *** 1985-03-18 14:39:26 +00:00
em
4e60db95c0 *** empty log message *** 1985-03-18 14:32:46 +00:00
em
641e2108f2 *** empty log message *** 1985-03-18 13:46:31 +00:00
em
f76cb12bc3 Initial revision 1985-03-18 13:15:00 +00:00
em
cafbdc1c12 *** empty log message *** 1985-03-18 13:12:07 +00:00
garde
f6d2972ede Added RCS id. 1985-03-18 12:55:07 +00:00
em
208b2c72b0 *** empty log message *** 1985-03-18 12:46:51 +00:00
em
5c74de5f71 *** empty log message *** 1985-03-18 11:11:44 +00:00
garde
070dd05dc8 Some less important changes 1985-03-18 10:00:30 +00:00
keie
bcda6910a7 The universal assembler has a bug that precludes use of .align
in text segments, except as the very last command.
1985-03-15 11:03:41 +00:00
keie
ee735a8af5 The universal assembler has a bug that precludes use of .align
in text segments, except as the very last command.
1985-03-15 10:50:35 +00:00
em
7fe44400cc The assembler proved to contain yet another bug.
.align in text segments will not work for values that are
not a divisor of the gcd of the instruction sizes.
1985-03-14 17:33:28 +00:00
em
6f3926e28a Expressions are now always calculated in long.
Some backends needed that.
1985-03-12 10:41:29 +00:00
em
9d0e938afe Expression are always evaluated in longs.
Some 2-4 backends needed long expressions.
1985-03-12 10:39:24 +00:00
em
d81fd1df9a Use of the Pascal library will not occur.
/.
1985-03-12 10:24:51 +00:00
keie
502c8a8d6f Now also testing for availability of /tmp and /usr/tmp. 1985-03-11 13:10:52 +00:00
bal
5bfe565b5b Argument is 4 bytes (pointer), not 2 bytes. 1985-03-05 12:33:29 +00:00
keie
99dc06e355 Initial revision 1985-03-05 00:17:40 +00:00
keie
3f05bf4817 *** empty log message *** 1985-03-05 00:15:40 +00:00
keie
bfc7134f1c Adapted to 4-4. 1985-03-04 17:26:31 +00:00
keie
c85d17a035 Bleasdale only. 1985-03-04 16:47:56 +00:00
keie
05feaf25f5 Initial revision 1985-03-04 16:44:32 +00:00
keie
d59de7f334 *** empty log message *** 1985-03-04 16:35:40 +00:00
keie
b28a04cc59 Now using 4-byte integers and clearing D1 for double size
instruction pointers.
1985-03-04 16:12:10 +00:00
keie
455a1db5cc Now returns correct values. 1985-03-04 16:11:56 +00:00
keie
88d3bd4b1d Added execv and execle. 1985-03-04 16:11:41 +00:00
keie
0a53d230b0 Now using .reghp. 1985-03-04 16:11:26 +00:00
keie
7a73c89384 Removed superfluous instruction. 1985-03-04 16:10:47 +00:00
keie
7ea02588f4 *** empty log message *** 1985-03-04 16:08:41 +00:00
keie
21ab7908fd *** empty log message *** 1985-03-04 15:55:28 +00:00
keie
76dadd9eb5 To force the first part of a circular ring of modules in from
tail_em.
/.
1985-03-04 15:37:38 +00:00
keie
5dca515f0b The previous version still assumed two-byte integers. 1985-03-04 15:33:28 +00:00
keie
189283e0dd Incorrect alignment caused odd _end, which caused
failures of malloc().
1985-03-04 15:30:44 +00:00
keie
30497e9d48 Now also prints stack height. 1985-03-04 15:29:36 +00:00
keie
7d70010c91 Alignment now also works when the alignment ended on odd boundaries. 1985-03-04 15:28:02 +00:00
keie
6442923c1f Initial revision 1985-03-04 15:27:09 +00:00
keie
4eed0b3d8f Always returned non-zero value. 1985-03-04 15:25:33 +00:00
keie
04f5e3afc4 *** empty log message *** 1985-03-04 15:14:01 +00:00
garde
676e91ac7c Many things improved and extended 1985-03-04 13:42:38 +00:00
keie
5962932698 Adapted to single cv for all machines. 1985-03-01 22:11:46 +00:00
keie
494245ebe6 Adapted to a single cv for all machines. 1985-03-01 22:10:44 +00:00
keie
39374aec4c Corrected a horrible typing mistake. 1985-03-01 20:08:45 +00:00
keie
aaad277322 1 - At RREMOVE also check the stack set aside for coercions.
2 - When coercions unexpectedly need stack of part of the
stakpattern, discontinue this option.
1985-03-01 16:25:21 +00:00
keie
cb3acfeeb3 The top of the stack, which is set aside for certain
coercions is now saved with special routines.
This allows RREMOVE to check for registers.
1985-03-01 16:20:13 +00:00
keie
42c0b3d866 Also clear D1 (for static link). 1985-03-01 16:00:23 +00:00
keie
0d538b0387 Added RCS ID. 1985-03-01 10:34:00 +00:00
keie
fab5c531be *** empty log message *** 1985-03-01 10:30:23 +00:00
bal
e25c8f5549 bug fixed in kill_much():
for ( .. ; i != (Lindex) i; ..  ) should be
for ( .. ; i != (Lindex) 0; ..  ).
1985-02-28 10:35:57 +00:00
keie
358b1b8695 cg tried to stack register parameters of moves, when
these registers were killed.
1985-02-26 16:31:38 +00:00
keie
5e9159dbad 1 - Removed PMDS from selection list.
2 - Joined two line, that should have been one.
1985-02-26 11:56:57 +00:00
bal
8b0c7d7458 Bug fixed: co_lfirst received wrong value for multiply-optimization. 1985-02-25 14:03:09 +00:00
bal
81bcea8550 Calls of which the actual and formal parameters do not match
are no longer substituted inline.
1985-02-20 15:01:02 +00:00
keie
4fca72b865 Removed nascom/z80a from the distribution. 1985-02-19 13:59:17 +00:00
keie
98761203cb The stacking pattern for ldc C and 4 with highw(c)==0 was incorrect.
The effect was that rand() from libcc/gen always returned
a 0.
1985-02-19 13:41:30 +00:00
bal
9a02e2ede3 p_use->u_ext field deleted from showptable() 1985-02-19 11:16:11 +00:00
bal
7c9dea8bed Dependencies for .m files added. 1985-02-19 11:13:13 +00:00
keie
3a8da23666 Added a default in the ANY case for system type. 1985-02-19 10:31:20 +00:00
keie
5cc658b535 Removed nascom from linked list. 1985-02-18 23:06:13 +00:00
keie
8ecb1b5664 Added link to 6805. 1985-02-18 23:01:05 +00:00
bal
ead7e668ff bug fixed: lifetime of an item was too short; it should also cover
any live/dead message prior to its initial live-message.
1985-02-18 15:14:22 +00:00
keie
eaf62079df The PDP 11 needs -i, Vax'en ignore it. 1985-02-18 12:45:31 +00:00
keie
941ef832f3 Added some comment. 1985-02-18 01:06:58 +00:00
keie
c967f9be34 Made use of apc and acc where assuming results
can be run on own system explicit.
1985-02-18 01:03:51 +00:00
keie
07717c1cb2 Changed "name of system" into "type of system". 1985-02-18 00:12:12 +00:00
keie
54c7ef703d Basic also needs libc.a. 1985-02-17 22:47:40 +00:00
keie
992e62127c Moved retar from ret.s to trp.s.
trp.s needed it and is behind ret.s in the library.
When ret.s is loaded, it calls (via unknown) trp.s so
inclusion in trp.s should work.
1985-02-17 22:31:10 +00:00
keie
36f75c8404 Added a line for
loc loc cuu $1==$1, because write.e contained the line
loc 2
loc 2
ciu
and the cg failed to translate.
1985-02-17 22:03:44 +00:00
keie
1f6fe9a81b Further refinement. 1985-02-17 22:01:03 +00:00
em
8d38f1f8d7 Added .align 2. Prevents end of bss to be odd.
Especially important for malloc, it distinguishes between
odd and even word pointers.
1985-02-17 01:12:36 +00:00
cvs2hg
5e3c3102a6 fixup commit for tag 'dist2' 1985-02-17 00:57:20 +00:00
keie
1ae42c6b70 Added .align 2.
Especially important for malloc.
1985-02-17 00:57:19 +00:00
keie
83f63333d4 *** empty log message *** 1985-02-16 22:09:05 +00:00
keie
51240e1bad *** empty log message *** 1985-02-16 16:48:18 +00:00
em
efb96fa147 Now chooses between Vax and Pdp conversion. 1985-02-16 15:58:34 +00:00
keie
dce1ed2998 The assembler is used for both 2/4 and 4/4. 1985-02-16 15:49:03 +00:00
em
a6bee49d9c *** empty log message *** 1985-02-15 23:13:04 +00:00
em
229e26fa2e 1985-02-15 23:12:16 +00:00
em
5734f92170 Adapted to -DNOFLOAT. 1985-02-15 23:11:30 +00:00
em
83a75598d5 Adapted to NOFLOAT. 1985-02-15 23:10:04 +00:00
em
fc97434c5b *** empty log message *** 1985-02-15 23:00:46 +00:00
em
683c2eecbe *** empty log message *** 1985-02-15 22:53:13 +00:00
em
b1e1945488 Removed one error. 1985-02-15 14:37:35 +00:00
em
cef800df41 Program was adapted with NOFLOAT flag. 1985-02-15 14:23:34 +00:00
em
a28e676920 Added RCS id.
Adapted to use the NOFLOAT cpp flag.
1985-02-15 14:20:04 +00:00
bal
ea3b34d308 Compare group (cmp,cmi,cmu,cms,cmf) added as cheap operators. 1985-02-15 13:18:57 +00:00
em
28b5951129 The cho worked incorrectly, thereby causing the whole test to fail. 1985-02-13 00:41:16 +00:00
em
74736c0bbe Removed the use of float from the test.
Using int's in sqrt gives the same result.
1985-02-12 23:27:23 +00:00
em
2aa95bf38c 1985-02-12 23:07:22 +00:00
em
c05291bb1f A slightly different message. 1985-02-12 23:07:05 +00:00
keie
c8eece7f03 Adfded RCS id. 1985-02-12 14:37:52 +00:00
keie
b7bed39420 As left by Hans v. Staveren. 1985-02-12 14:32:20 +00:00
keie
91f91a4efe *** empty log message *** 1985-02-12 14:20:30 +00:00
keie
a9acfd3fe7 Now using the same em.c as in m68k2/int.
The interpreters are moved from pdp/pdp_int (or some such)
to lib/int22.
1985-02-12 13:11:27 +00:00
keie
aaf560f95a Initial revision 1985-02-12 12:54:44 +00:00
keie
a6b16f9fa1 Initial revision 1985-02-12 12:28:49 +00:00
keie
f9a3465c6f Adapted to run on 4/4 machines. 1985-02-11 14:33:04 +00:00
keie
a55067a1c9 Placed a few dot on e few i's. 1985-02-11 14:32:02 +00:00
keie
8dfed719a0 The default for any machine is without, double length
integer arithmetic and without floating point.
1985-02-11 11:17:35 +00:00
bal
d2031cc751 restructured. 1985-02-11 10:52:49 +00:00
bal
d38149be31 The binaries of the phases of ego are now put in a single directory. 1985-02-11 10:07:47 +00:00
bal
fcd565c4b6 Macros newcflpx and oldcflpx added. 1985-02-11 09:52:11 +00:00
bal
e74811b2bf Include files and declaration of em_flag added. 1985-02-11 09:51:02 +00:00
bal
b318d406e9 Memory allocation/deallocation for extends changed. 1985-02-11 09:48:32 +00:00
keie
a284db06f5 Removed a few typos. 1985-02-08 16:54:34 +00:00
keie
e0e10b71f7 Deleted a line with a statement unknown to this compiler. 1985-02-08 15:41:19 +00:00
keie
5d49bc78d4 Looks more reasonanle now. 1985-02-08 13:21:23 +00:00
keie
c6893215f4 Now calling trace with the current line number as parameter. 1985-02-08 13:18:26 +00:00
keie
ddc05160f2 Improved. 1985-02-08 13:12:51 +00:00
keie
6bd4717ad9 *** empty log message *** 1985-02-07 22:59:50 +00:00
keie
73585dd0ea A list without double entries, for the moment supposing
that trp,etc always gets loaded, so will be there when .dvu needs it.
1985-02-07 22:51:12 +00:00
keie
2c1a71db26 d2 contains the remainder of dvu i.s.o. d3. 1985-02-07 22:26:11 +00:00
keie
b64fbd2430 *** empty log message *** 1985-02-07 22:06:32 +00:00
keie
7415686b36 Initial revision 1985-02-07 17:43:43 +00:00
keie
3526169494 Initial revision 1985-02-07 17:18:06 +00:00
keie
d9098b1255 *** empty log message *** 1985-02-07 15:58:40 +00:00
keie
ce47c6dc76 *** empty log message *** 1985-02-07 15:33:13 +00:00
em
cfbef80934 Added a line about the presence of out.std 1985-02-06 21:31:51 +00:00
em
3de69fcd73 Initial revision 1985-02-06 21:25:27 +00:00
keie
3c95327443 Initial revision 1985-02-06 21:06:03 +00:00
garde
8648657e4b monitor calls open, close and ioctl removed. 1985-02-06 16:56:41 +00:00
garde
e9c60b6bb3 Initial revision 1985-02-06 16:50:52 +00:00
em
6ec08108d7 *** empty log message *** 1985-02-05 14:52:52 +00:00
em
9ed23f00fc Copied from vax2, takes its info on which files
to use in which order from LIST.
1985-02-05 14:52:02 +00:00
em
605bd795e7 This one is made with lorder|tsort. 1985-02-05 14:51:17 +00:00
em
2ba83ebb08 The first one, Duk's order. 1985-02-05 14:50:24 +00:00
em
0161857789 Now fetching sedf from this directory instead of
from the cg source directory.
1985-02-05 11:44:40 +00:00
keie
c833359d74 Placed the include files in {EM_HOME}/h/bc_..... 1985-02-04 22:18:16 +00:00
keie
bf33a4f4ce *** empty log message *** 1985-02-04 14:31:17 +00:00
keie
78cc662c29 *** empty log message *** 1985-02-04 14:26:13 +00:00
keie
569c6fedec Prevent the existence of pem2[24].p to frustate the ln and thus
the whole exercise.
1985-02-04 02:53:18 +00:00
keie
eed6257417 Added an entry "distr" to make tables1.c and tables1.h. 1985-02-03 23:50:51 +00:00
keie
01b13b9130 The creation of the library is now done by the process of creating
the distribution directory.
1985-02-03 23:23:50 +00:00
keie
6a40c131ac Tail_em.s.a is now extracted from the RCS directory by the
distribution making process in em/distr2.
1985-02-03 23:21:24 +00:00
keie
b137cdca9b The effect of the .distr entry is now done by the
mktree process from /usr/em/distr2.
1985-02-03 23:18:06 +00:00
em
785145278b Added libmon to libraries to be translated. 1985-02-02 18:06:37 +00:00
em
6d5181540c *** empty log message *** 1985-02-01 22:12:31 +00:00
garde
d521693526 Many, many improvements made, ususually small ones.
For example: many em-patterns have got alternative code-rules.
1985-02-01 12:51:56 +00:00
keie
c5eaa963e8 Now using ../../proto/libg/Makefile. 1985-02-01 12:38:08 +00:00
keie
86e08fc0b7 To avoid conflict while compiling with acc itself the word
size of the target machine is now defined as TEM_WSIZE.
1985-02-01 12:32:46 +00:00
keie
d0a48dc8e1 Added an entry to create a doc.pr suitable for printing
on a straightforward line printer.
1985-01-31 22:38:00 +00:00
keie
4ec23aa1dc Added a reference to MES 11 in 11.1.4.4 at the non-local goto. 1985-01-31 15:15:20 +00:00
keie
a6c5fba558 1- Zero is deleted as a possible argument to LOI and STI.
Allowing that was an oversight.
2- Message number 10 is reserved for global optimizer output.
3- Message number 11 must be used by GTO destinations.
1985-01-31 15:10:16 +00:00
keie
5dce582bc5 Added a few sentences about the capability of ack to
preprocess Pascal programs and one restriction that imposes
on programs using it.
1985-01-31 14:50:15 +00:00
keie
5024af87a6 Zero is deleted as a possible argument to LOI and STI.
Allowing that was an oversight.
1985-01-31 14:03:56 +00:00
keie
5e33c06a66 Zero is deleted as a possible argument to LOI and STI.
Allowing that was an oversight.
1985-01-31 13:58:09 +00:00
keie
12ab509fe7 1 - Changed incorrect execution line for callc/modc
2 - Added several sources to 'pr' entry, for printing.
1985-01-31 10:53:59 +00:00
bal
60ae999a07 Bugs fixed for the following patterns:
lol loc 255 and 2  (byte order was wrong)
loc x beq , 0 < x < 128  (was 0 < x < 256)
loc x bne (idem).
These bugs were introduced in version 2.2.
1985-01-30 16:34:14 +00:00
bal
4f624f015a register save costs changed: they are now linearly dependent on
the number of registers to be saved (for time).
1985-01-30 15:43:02 +00:00
bal
3bc2ec8825 Entry for LOI changed from CLASS1 to CLASS12. 1985-01-30 14:49:03 +00:00
bal
a3ed92a887 CLASS12 added for the LOI instruction. A "LOI n", n < wordsize,
loads wordsize bytes, not n bytes.
1985-01-30 14:47:49 +00:00
ceriel
149e9e498d Added -DCPM to the flags. 1985-01-30 12:37:10 +00:00
bal
bd01b5a24f Debugging procedure print_allocs now writes to stderr. 1985-01-30 10:52:33 +00:00
bal
cada8b5bb3 bug fixed: assemble_allocs() did generate whole_procedure allocations.
These allocations were initialized with a very low profit. Consequently
account_regsave rejected these allocations.
Solution: repl_allocs() updates the al_profits field of the
whole_procedure allocation.
1985-01-30 10:47:47 +00:00
bal
9eaaede038 bug fixed: oldmap(lmap,llength) was sometimes called when no new map
had to be allocated for the current (data-) unit.
1985-01-28 11:38:06 +00:00
em
cd85c6f2bc Also remove all *.e and *.d files when cleaning up. 1985-01-25 16:19:13 +00:00
keie
e4998f5ad8 Strings in rom are initialized with usage count 9999.
decstr does not touch these at all.
1985-01-25 14:40:51 +00:00
keie
4d93f6d900 Strings in rom are initialized with usage count 9999 i.s.o. 1.
String with that usage count are not touched any way at all.
1985-01-25 14:34:50 +00:00
bal
7284e9d210 Number of address registers decreased from 5 to 4. 1985-01-25 13:24:12 +00:00
keie
690546a7d6 Added an entry called distr.
This make the formatted install.pr to be put on the distribution tape.
1985-01-25 11:28:55 +00:00
keie
fbf86e8a78 The program name is used to set the name
of the file were the contents of data statements are written.
The filename is extracted from the path and the suffix (if present)
is replaced by .d.
1985-01-25 11:04:18 +00:00
keie
0aa95f6015 The parametrs passed to the call to opnchn when initializing are now
correct string descriptors.
Programs with data statements used to crash with TRAP TYPE 11.
1985-01-25 09:57:04 +00:00
keie
a1c05ca061 The non-flag arguments are now passed by position.
The order is :  (bem) input output program-name.
1985-01-25 09:55:28 +00:00
em
e1ba4e407f Removed test18 because it is in essence a busy loop. 1985-01-24 22:34:31 +00:00
em
a6b90c6a7a Added executable files to list of those to cleanup. 1985-01-24 21:27:32 +00:00
em
8f3826e67b Added entry "clean" for cleanup. 1985-01-24 21:25:57 +00:00
keie
9f2092d184 *** empty log message *** 1985-01-24 17:39:54 +00:00
keie
9c9f63e4ca Added ranlib commends. 1985-01-24 16:16:32 +00:00
keie
cddf156153 Some minor changes. 1985-01-24 15:34:23 +00:00
em
80cb295064 Changed the line numbered 19 into a line numbered 190.
This seemed the correct thing to do.
1985-01-24 11:34:12 +00:00
em
a1c27b46db *** empty log message *** 1985-01-24 11:27:36 +00:00
bal
7657fb8d45 bug fixed: the "incr" parameter of sbrk() is a 2-byte integer,
not a 4-byte integer.
1985-01-23 16:31:51 +00:00
bal
8597f736da parameter of fscanf changed from "%d" to "%hd" to read a short. 1985-01-23 16:28:58 +00:00
bal
086642a17e core allocation macros added. 1985-01-23 16:27:47 +00:00
bal
858a1f55e0 ovfl_harmful and arrbound_harmful turned into ints 1985-01-23 16:25:29 +00:00
bal
a8f778fb34 Interface of tmplocal() changed: second parameter is a long now 1985-01-23 16:23:15 +00:00
bal
e7bf924ff7 interface with tmplocal() changed: second parameter is a long now. 1985-01-23 16:18:33 +00:00
bal
81355e7a10 bug fixed in get_instrs(): instr should be an int rather than a Celem_t. 1985-01-23 16:16:49 +00:00
bal
2568996690 bug fixed in last_mnem(): test on nil-pointer.
bug fixed in try_tail(): add line "if(l1==0||l2==0) return FALSE".
1985-01-23 16:13:57 +00:00
bal
fa3e83fbd8 bug fixed in last_line() : assert(l!=0) should be assert(lines!=0). 1985-01-23 16:12:21 +00:00
bal
c64b43ae7e bug fixed in routine get_ca_lines(): test on nil-pointer. 1985-01-23 16:10:43 +00:00
bal
a358b4cf96 init_regcnt renamed initregcnt to avoid name conflict.
bug fixed in routine fits_in(): test on nil-pointer.
routine choose_location(): interface with tmplocal() changed, second
parameter now is a long, so a cast is added.
1985-01-23 16:07:09 +00:00
bal
579935b64e rules for itemtab.h and makeitems added. 1985-01-23 15:50:17 +00:00
bal
ee1a4305f4 clean_items renamed cleanitems to avoid name conflict.
clean_timeset renamed cleantimeset to avoid name conflict.
bugs fixed: calls to fscanf() with a pointer-to-short as argument
should provide a "%hd" instead of "%d".
1985-01-23 15:45:58 +00:00
garde
7b01e4ee6f src1 and src2 extended.
Errors in 'pat loc cmi teq' and 'pat loc cmi tne' recovered.
Second stack-pattern for 'pat zlt' and 'pat zge' added.
Patterns for 'lil loc adi sil', 'lil inc sil', 'lil dec sil'
and 'sil lil' added.
1985-01-22 19:55:11 +00:00
em
d224507a75 User defined trap handling routine is called with calls instruction.
A message is printed if there is no routine at all.
1985-01-22 15:20:19 +00:00
em
c6d9ab97ec Added `movl r3,ap' to restore the argument pointer before returning
vi jmp (r0).
1985-01-22 13:10:35 +00:00
em
1555d8948e Now using opder recommanded by 'lorder'. 1985-01-22 02:17:13 +00:00
keie
2c3c7efe8c Printf does not return a truth value for failure.
These -incorrect- tests were replaced by calls to ferror.
1985-01-21 23:58:07 +00:00
keie
c4daab57eb Added declaration of _newstr. 1985-01-21 23:57:44 +00:00
keie
7f22afeb89 Added correct declaration of salloc, thereby preventing incorrect conversions.
Removed now unnecessary casts from salloc to (char *).
Added a cast to (char *) for the argument of sfree in the second call.
1985-01-21 23:56:10 +00:00
keie
2823430d65 1 - Changed argument from int to unsigned.
2 - The test for a failed malloc is changed from comparison to -1
    to comparison to 0.
1985-01-21 23:54:46 +00:00
keie
1668923508 Tests for EOF returned by stdio routines need the full int width. 1985-01-21 23:53:41 +00:00
keie
3f3a9ed279 Removed casts made superfluous by adding newstr to string.h 1985-01-21 23:53:01 +00:00
keie
092c81b39c Test for EOF returned by stdio routines have to use the full int width. 1985-01-21 23:52:19 +00:00
keie
3b1e068b5d Removed cast made superfluous by added newstr to string.h 1985-01-21 23:51:33 +00:00
keie
14e1e3c768 Added test for outcome of request for more core.
If no more core is available a fatal error message is produced.
1985-01-21 23:48:06 +00:00
em
f4f7d5676a Changed #define's of newlbss of cst_fmt. 1985-01-21 16:40:02 +00:00
em
7b3a4577cc Bug fix: redefined a Local local causing an INTERNAL ERROR from as. 1985-01-21 15:49:22 +00:00
keie
512e225b73 Due to an 8 character identifier length limitation the identifier
"strcompare" is changed into "strcomp".
1985-01-21 14:52:34 +00:00
keie
52249bfb5d Due to an 8 character identifiers limitation calls in EM
the identifier "randomize" was changed into "randomi".
1985-01-21 14:51:29 +00:00
keie
0aded9a4da Due to an 8 character identifiers limitation on EM calls to
"setchannel" were changed into "setchan" and the identifier
"seektable" is replaced by "seektab".
1985-01-21 14:50:12 +00:00
keie
c3df7e864a Changed calls to "setrandom" into calls to "setrand" and
calls to "randomize" inro calls to "randomi" to avoid
problems with routines compiled by C.
1985-01-21 14:48:16 +00:00
keie
c04e2decaf Added a few /*NOSTRICT*/ comments to indicate awareness of lint complaints. 1985-01-21 14:30:55 +00:00
keie
5bdc21e6c7 1 - Changed the defintion of a local 's' into 'Sym' to avoid naming conflict.
2 - Added .integer, .Sptr and .cptr at appropiate places to uses of yylval.
3 - Removed unnecessary casts.
4 - Added a few /*NOSTRICT*/ comments to indicate awareness of lint
    complaints.
1985-01-21 14:26:29 +00:00
keie
858bd446fd 1 - Added comment to indicate awareness of lint complaints.
2 - Added/Removed some casts used with core allocation/deallocation.
1985-01-21 14:23:49 +00:00
keie
9ef0eefc55 Changed the argument of salloc from an int into an unsigned.
Just to shut up lint.
1985-01-21 14:22:07 +00:00
keie
9ced1efe34 Added a declaration of gosublabel. 1985-01-21 14:21:52 +00:00
keie
ac043a42de Added a few comments to indicate awareness of lint complaints. 1985-01-21 14:20:11 +00:00
keie
8d7dbdd802 1 - Removed definition of POINTERSIZE.
2 - Defined void as int, some compilers don't know void.
3 - Added declarations of the routines proclabel, salloc, strcpy, strcat, malloc.
1985-01-21 14:18:47 +00:00
garde
05dbcb9956 case 8 and case 6 deleted in switch of function 'prolog' 1985-01-21 14:17:11 +00:00
keie
d3a42778d0 Now using a union for YYSTYPE and typed (non-)terminals.
Changed values $n(intvalue) to ival in definition of filelist.
Changed one asp,$n(midparms) into several asp,...SIZE in the definition
that uses MIDSYM.
1985-01-21 14:15:06 +00:00
keie
7aa0ac7b9b 1 added lint entry.
2 changed calls to cc into $(CC)
1985-01-21 14:14:22 +00:00
em
dd7341586c To have a file preprocessed, it must start with a # in column o1.
The RCSid is replaced to accomplish this.
1985-01-21 12:56:09 +00:00
em
35b13a69eb Now using correct RCS identification 1985-01-21 12:47:04 +00:00
em
72a885e8a5 Renaming due to 8 character C compiler limit. 1985-01-21 12:37:26 +00:00
em
22d8081884 Used a correct definition of malloc. 1985-01-21 12:35:53 +00:00
em
fd84b38268 Replaced RCSid so that file starts with # in column 0 so it gets preprocessed. 1985-01-21 12:28:59 +00:00
em
7a0d345ca2 Corrected type; forgot closing ". 1985-01-21 12:14:59 +00:00
em
6e192ca1a5 Removed #define IDFIRST because fmt_id() replaces it. 1985-01-21 12:09:44 +00:00
em
24f8685ceb Initial revision 1985-01-18 16:06:21 +00:00
em
8170b48dba Routines are now called with calls instead of jsb. We use ap as argument
pointer register. EM_BSIZE is required to be a constant.
1985-01-18 15:39:07 +00:00
em
ce159743de Changed label generators and added fmt_id(). 1985-01-18 15:36:51 +00:00
em
6143ed2504 Routines are called with calls instead of jsb. EM_BSIZE is required to
be a constant.
1985-01-18 15:33:44 +00:00
duk
1e38cfaf5a Initial revision 1985-01-18 14:30:03 +00:00
bal
ab3a49f087 Initial revision 1985-01-18 09:59:09 +00:00
garde
ecdace453e Initial revision 1985-01-17 14:31:34 +00:00
duk
4aa42e3c2b Initial revision 1985-01-17 14:20:52 +00:00
em
48edb88fe6 Checking in Martin's changes. 1985-01-17 14:10:27 +00:00
keie
f4fe5f16e9 Added some documentation for the interface between C and Pascal.
This was necessary because the format of Pascal and C procedure
pointers differ from now on.
1985-01-17 13:22:49 +00:00
keie
755173396c Added the test program for the C<=>Pascal interface. 1985-01-17 12:43:51 +00:00
keie
2beb7f0ab9 *** empty log message *** 1985-01-17 12:43:04 +00:00
bal
44d3516be2 The EM runtime routines are reentrant now, so the remark about
reentrancy is removed from this file.
1985-01-17 10:39:33 +00:00
bal
ab8f584c8c Bug fixed: a0 is changed by call to _brk, so it should be saved & restored. 1985-01-17 10:33:23 +00:00
keie
d32a6c818d Added RCS id. 1985-01-11 17:03:53 +00:00
keie
589a92b3eb Allows optional second argument.
This is the name of the destination file. The destination directory
is determined by compare.
1985-01-11 16:46:02 +00:00
keie
bf3cd69641 1 - Allows 2 arguments, 1 - name of source in current directory.
2 - name of destination file(!path), default arg 1.
2 - Make the necessary dirctory.
3 - runs ranlib if "ar t ... | grep SYMDEF succeeds.
1985-01-11 16:43:56 +00:00
keie
25e6cb1de9 Added RCS id. 1985-01-11 16:28:30 +00:00
keie
20fc06c5dc The previous fix produced an array in which the values were one off.
This has been fixed.
1985-01-11 13:42:51 +00:00
keie
832ec1a9a7 *** empty log message *** 1985-01-11 13:20:36 +00:00
keie
78bd26211d The recursive call of setp1 initialized elements 0...ASIZE.
This is out of bounds and now altered into 0..ASIZE-1.
1985-01-11 13:17:26 +00:00
keie
b20e6856b6 *** empty log message *** 1985-01-11 13:13:56 +00:00
sater
ff89603e82 RREMOVE section updated. 1985-01-11 09:44:34 +00:00
sater
266e0429ef extra define added to aid in generation of DO_RREMOVE 1985-01-11 09:42:17 +00:00
sater
b29271a7d1 code was added to generate DO_RREMOVE 1985-01-11 09:41:47 +00:00
sater
10188dfba9 code was added to cause generation of DO_RREMOVE in some cases 1985-01-11 09:41:13 +00:00
sater
684e24132a diffs were applied to make default register property at stacking rule
-1 instead of 0.
1985-01-11 09:40:40 +00:00
sater
14ff4bda29 Optional register property in stacking rules must be -1 when absent.
Fixed this.
1985-01-10 16:30:09 +00:00
duk
2118ece784 Maybe some minor changes. 1985-01-10 13:35:39 +00:00
duk
d1870dd6cf Added call to trap signals. 1985-01-10 13:24:36 +00:00
duk
c0f8361e8c Header and section table now allocated statically. 1985-01-10 13:22:04 +00:00
duk
a885e7f981 Inline expansion of index_adjust() and compute_origins().
Section table now allocated statically.
1985-01-10 13:19:47 +00:00
duk
cc778299af Added routine to check signals. 1985-01-10 13:17:22 +00:00
sater
8246648f18 *** empty log message *** 1985-01-08 15:34:54 +00:00
sater
e204e2e7cf Initial revision 1985-01-08 15:28:26 +00:00
keie
f8fc7e5ab4 *** empty log message *** 1985-01-08 13:52:58 +00:00
duk
cef3df332e Added provisions for copying everything after the string area into the
resulting object file. Because this is most likely symbolic debugging
information, these are parametrized by #ifdef SYMDBUG.
1985-01-08 11:54:57 +00:00
keie
ef9e36ad74 *** empty log message *** 1985-01-08 11:48:43 +00:00
sater
b9804696fe *** empty log message *** 1985-01-08 09:59:28 +00:00
keie
78b124fd57 *** empty log message *** 1985-01-07 15:54:38 +00:00
keie
db9b60ff8c *** empty log message *** 1985-01-07 15:43:50 +00:00
keie
fa5eb3feba *** empty log message *** 1985-01-07 14:39:27 +00:00
keie
556a2d039a *** empty log message *** 1985-01-07 14:26:46 +00:00
keie
bfab17b353 *** empty log message *** 1985-01-07 14:15:47 +00:00
keie
9dcce61d84 *** empty log message *** 1985-01-07 13:57:25 +00:00
keie
a52e067a38 15-5-83 EGK
The coercion from rm1 to register contained
                allocate(%[1],GENREG).
                The %[1] here is incorrect and has been removed.
16-5-83         EGK
                The word before the movb was cleared by a xor.
                Now we clear the upper byte after the movb.
                This allows the %[1] to be added to the allocate.
1985-01-07 13:51:36 +00:00
keie
62ae0a54c3 *** empty log message *** 1985-01-07 13:49:31 +00:00
keie
23d1cba365 *** empty log message *** 1985-01-07 13:37:12 +00:00
keie
98df00c0dd *** empty log message *** 1985-01-07 13:08:48 +00:00
sater
c5267505f9 Initial revision 1985-01-04 14:05:25 +00:00
sater
4b109aa39c added entries for cg,ncg and cgg 1985-01-04 14:04:10 +00:00
sater
43e3f84da0 added entry for ncg.doc 1985-01-04 13:57:11 +00:00
sater
2e20f60554 Initial revision 1985-01-04 13:55:07 +00:00
keie
9c626542fc *** empty log message *** 1985-01-01 22:33:43 +00:00
keie
265ed0a7f7 *** empty log message *** 1985-01-01 22:27:02 +00:00
keie
154dfcc797 *** empty log message *** 1985-01-01 22:19:09 +00:00
keie
a097d3ae3c Take precautions against an already existing march. 1985-01-01 21:32:02 +00:00
keie
8ce02c938f *** empty log message *** 1985-01-01 19:56:08 +00:00
keie
4a085a558a *** empty log message *** 1985-01-01 19:42:53 +00:00
keie
adee1f13b0 Initial revision 1985-01-01 19:30:24 +00:00
keie
d68cf0c108 1 - Added void.
2 - Data and function pointers have the same size.
1985-01-01 19:24:34 +00:00
keie
a536e69ff8 Added RCS identification. 1985-01-01 18:35:40 +00:00
keie
aa81915541 *** empty log message *** 1985-01-01 18:34:12 +00:00
bal
5043de261e lay-out enhanced; flags (CFLAGS etc.) inherited from central Makefile;
entry for compiling this phase with ack -O created.
1984-12-21 14:41:47 +00:00
keie
d9ab5ba46a Adapted to new tree structure. 1984-12-21 14:23:10 +00:00
sater
2a0a27f00a Routine was wrong, leaving things on the stack in the one bit case,
the inclusion of slu in this routine was bogus.
It is never called anyway, so slu is taken out.
1984-12-20 15:17:05 +00:00
keie
751f4365a9 1 - Added RCS id.
2 - Used two argument [feature] of install.
1984-12-20 14:26:14 +00:00
keie
12202ff391 See the logfile of mach/m68k2/libem/Makefile. 1984-12-20 14:21:35 +00:00
keie
6c1b88998e The definition if the symbols, end, endbss etc, is moved
from a library to a file. This to avoid 2 libraries in this
directory.
1984-12-20 14:13:48 +00:00
keie
85239ebef6 Added line for m68k interpreters manual. 1984-12-18 17:26:42 +00:00
keie
06fa66f6ff *** empty log message *** 1984-12-18 17:22:29 +00:00
keie
f042bef513 1 - signal did not clear the stack properly.
2 - lseek did not return correct.
1984-12-18 17:12:12 +00:00
keie
ce14d6ad9d Traps now work as documented. 1984-12-18 17:11:35 +00:00
keie
5bf34a7ad2 1 - Human readable profile and count.
2 - Length of last table is now 64.
1984-12-18 17:09:36 +00:00
keie
98b1d72aa4 Profile, count, flow in non-local goto corrected. 1984-12-18 17:08:54 +00:00
keie
1821f0e587 1 - Improved line number updating when returning from library routines.
2 - Line 234, 0xD must be #0x1C, crashed at error handling for
    incorrect return size.
1984-12-18 17:07:23 +00:00
keie
d1a5b58d03 Replaced clr by the faster mov #0, (for d registers). 1984-12-18 17:06:36 +00:00
keie
da191d33c2 1 - Indexed addressing mode gave unwanted sign extends.
They are replaced by additions.
2 - Added pointer checks.
3 - Completed parametrization of addresses of locals.

1984-12-18 17:04:24 +00:00
keie
6100288a2f Finishing profile tables. 1984-12-18 16:59:51 +00:00
keie
8264bfc23f 1 - length of last table
2 - human readable profile and count output.
1984-12-18 16:58:30 +00:00
keie
843cb007e5 Added pointer checks. 1984-12-18 16:58:11 +00:00
keie
c1fcf34d6a Altered 1980 in 1984. 1984-12-18 16:57:56 +00:00
keie
219b6b5b54 Added machines to be sent with the second distribution to the LNTABLES. 1984-12-18 15:28:19 +00:00
keie
7784bcf1a4 The first version, copied from 6800. 1984-12-18 15:13:56 +00:00
keie
6c0814bde7 The first version, copied from 6809. 1984-12-18 15:13:55 +00:00
keie
dfea415aa3 Don't rely on cpp to be in the $PATH, call it from em/lib. 1984-12-18 13:12:30 +00:00
keie
95da5226fb Added Ack distribution Makefile names. 1984-12-18 13:12:03 +00:00
keie
af8ab471e7 Removed the need for as in lib/m68k4.
The as in lib/m68k2 is now used directly.
1984-12-17 17:20:57 +00:00
keie
2dd487db73 *** empty log message *** 1984-12-17 15:52:04 +00:00
keie
db3342e865 Run $RANLIB if the shell variable is set. 1984-12-17 15:50:02 +00:00
sater
3394ae40b3 *** empty log message *** 1984-12-17 15:13:39 +00:00
sater
5b88923783 Changed descr to use recently developed 8080/cg. 1984-12-17 14:36:16 +00:00
keie
7091fd6cbc Added 6500 documentation. 1984-12-17 11:38:36 +00:00
keie
94e17b8685 *** empty log message *** 1984-12-17 11:35:39 +00:00
keie
3935dae9c2 Adapted to new library. 1984-12-17 11:21:11 +00:00
keie
e8c1cfc107 *** empty log message *** 1984-12-17 11:11:37 +00:00
keie
fee4bc3993 Now using LIST. 1984-12-17 11:06:48 +00:00
keie
7b551501a2 *** empty log message *** 1984-12-17 11:03:13 +00:00
keie
827ce2a2ce Added F_DUM(Author of change-- Henry Bal). 1984-12-17 10:45:27 +00:00
keie
f31d74d66d *** empty log message *** 1984-12-17 10:44:08 +00:00
bal
c3e475af74 Initial revision 1984-12-14 15:57:39 +00:00
bal
ed3f76dea7 Initial revision 1984-12-14 15:52:15 +00:00
bal
f946a2d503 Initial revision 1984-12-14 15:41:14 +00:00
keie
b86ce9ae9a Removed entries for pmds. 1984-12-14 13:45:42 +00:00
keie
76715e219a Added Basic library and Revision number. 1984-12-10 15:14:00 +00:00
keie
184f22e538 Added revision number. 1984-12-10 14:57:51 +00:00
keie
957de399cd 1 - Added Basic library.
2 - Added revision number.
1984-12-10 14:41:49 +00:00
keie
fa2714690d Initial revision 1984-12-10 14:41:30 +00:00
keie
ca456f8868 Added Basic library. 1984-12-10 14:29:51 +00:00
keie
fbec4a1d1d Initial revision 1984-12-10 14:28:41 +00:00
bal
af434517be Initial revision 1984-12-10 13:36:12 +00:00
keie
732ec6f76e Removed the definition of the NEEDS variable. 1984-12-10 12:49:56 +00:00
keie
8e05cacf31 *** empty log message *** 1984-12-08 00:50:27 +00:00
keie
4ba9e23bc7 This makefile was copied from ../../m68k2/dl.
The now irrelevant entries are removed.
1984-12-08 00:45:55 +00:00
keie
88d8a9cb71 Comparing shouldn't stop when one compare fails. 1984-12-08 00:40:04 +00:00
keie
972a6a41b8 Added entries for pr and opr. 1984-12-08 00:28:16 +00:00
keie
47fefae471 Adapted to new install + compare, added anties for cmp, clean, opr and pr. 1984-12-08 00:17:39 +00:00
keie
9c2e7adbd6 *** empty log message *** 1984-12-07 17:32:33 +00:00
keie
1ee974b3ec Improved "make pr". 1984-12-07 17:14:43 +00:00
keie
6eadfb8d13 An efficiency change only. 1984-12-07 16:52:09 +00:00
keie
8de2f14ce9 Added cmp entry. 1984-12-07 16:45:26 +00:00
keie
5aa9f95636 This one works, the previous one didn't. 1984-12-07 16:42:59 +00:00
keie
e0e7310024 install now allows a source and destination name. 1984-12-07 16:38:13 +00:00
keie
e5e467b257 Now use prototype makefile from ../../proto. 1984-12-07 15:22:22 +00:00
ceriel
55fa86d7be Removed a reference to a non existing Makefile ( in the lib directory). 1984-12-07 15:21:25 +00:00
bal
a9465eeffc Bug fixed in optimizing two adjacent basic blocks. 1984-12-07 14:19:53 +00:00
keie
0797b57bd0 Changed access path of em h directory. 1984-12-07 14:01:33 +00:00
keie
cb2393abcf Changed access path of en h directory. 1984-12-07 14:01:11 +00:00
keie
4db6d65b08 Initial revision 1984-12-07 13:41:58 +00:00
keie
3879880554 Initial revision 1984-12-07 10:42:27 +00:00
keie
edfc9943ef The path lib/ack is changed into lib/descr.
The name ack, used as a file name was a bit overloaded.
1984-12-06 11:08:40 +00:00
ceriel
6692cbb192 Changed so that the installation process will continue if LLgen
is not present yet.
Also added Makefile to the "make pr" entry.
1984-12-06 10:39:28 +00:00
keie
62f5a16cdf Repaired a few minor bugs. 1984-12-04 21:57:22 +00:00
keie
3b28b7bd26 I hope this version is correct. 1984-12-04 21:48:14 +00:00
keie
1b9d89a7e6 Initial revision 1984-12-04 21:38:13 +00:00
sater
c7404cc041 Initial revision 1984-12-04 15:33:28 +00:00
bal
a4c588562c Initial revision 1984-12-04 15:04:44 +00:00
bal
3e88c1ef02 WORDLENGTH now defined in automatically generated file wordlen.h
Generate this file from makewlen.c
1984-12-04 15:04:01 +00:00
bal
3374980bbc WORDLENGTH now defined in automatically generated file worlen.h 1984-12-04 15:03:22 +00:00
bal
3ba6a9a47a Bug fixed: fill_item() should initialize item->it_desirable to TRUE. 1984-12-04 14:41:20 +00:00
keie
193d318e2f Added tail_m and tail_ln. 1984-12-04 13:31:03 +00:00
bal
dfd575d062 regsave_cost() return void instead of short. 1984-12-04 13:04:27 +00:00
bal
f6e0636553 regsave_cost() returns void instead of short. 1984-12-04 13:03:49 +00:00
keie
a4a757bbad Initial revision 1984-12-03 23:20:13 +00:00
keie
baf63af68c Adapted to use the files in the library directory dedicated to the pmds. 1984-12-03 22:55:26 +00:00
keie
9180900d52 Initial revision 1984-12-03 22:02:45 +00:00
bal
f3aa113380 Comment closer ("*/") added to description of getlines(). 1984-12-03 12:12:37 +00:00
ceriel
e8d88ed790 Increased MAXPATLEN to 8000. 1984-11-30 11:14:18 +00:00
bal
2d40a4fa61 Macros for B_DIST, B_USECNT and B_MARK removed, as these fields are
no longer used.
Declarations of nrinstrs and instrmap marked "extern" to satisfy ack compiler.
1984-11-30 10:52:05 +00:00
bal
0f77c7fb9f Declaration of items[] made static to avoid name conflict with ra_items.c
Core allocation macros added.
1984-11-30 10:50:27 +00:00
bal
83c3f45a29 Declaration of items[] made static to avoid name conflict with ra.c 1984-11-30 10:49:09 +00:00
bal
f84e129361 routines getcall(), get_text() and getcc() move from get.c to this file
routines putactuals(), putcall(), and putcc() move from put.c to this file
get.h, put.h, stdio.h, em_mnem.h and em_pseu.h included
1984-11-30 10:30:22 +00:00
bal
bf86a0f8ef several data structures added (moved from types.h).
core allocation macros added.
1984-11-30 10:28:35 +00:00
bal
e7cbb5780b Declarations for iv and code_info added (moved from types.h).
core allocation macros added.
1984-11-30 10:27:05 +00:00
bal
4a4b1ae156 core allocation macros added 1984-11-30 10:25:21 +00:00
bal
63e97ee535 declaration for sym,num and prc added (moved from types.h) 1984-11-30 10:24:21 +00:00
bal
b8817780f3 ic.h included before ic_lookup.h 1984-11-30 10:23:34 +00:00
bal
530c4d4c63 Lots of procedures removed (turned into macro in alloc.h or
moved to one specific phase).
1984-11-30 10:15:24 +00:00
bal
6a1b482c86 Lots of data structures removed and made local to one specific phase. 1984-11-30 10:14:30 +00:00
bal
d530ba1126 Lots of procedure newxxx() and oldxxx() turned into macros.
Lots of such procedures removed and made local to one specific phase.
1984-11-30 10:12:37 +00:00
bal
bcaecff14d As getbblocks() was moved to cf.c, em_flag.h need no longer
be included.; also, the declaration for em_flag[] was removed.
1984-11-30 10:10:41 +00:00
em
d568a6aca5 The routine salloc crashed on a 2/4 system.
Malloc was nor declared as "char *", but by default as int.
1984-11-30 00:16:29 +00:00
em
77fda75841 I removed the unused integer deftype.
Its name collided with an array in symbols.c.
1984-11-29 17:27:00 +00:00
em
92587276da The definitions of lastline, currline and firstline are made
extern in graph.h. The space reserving declaration is made in
graph.c.
1984-11-29 17:26:44 +00:00
bal
b2dfaa494e -O flag removed 1984-11-29 16:25:08 +00:00
bal
b231200eb7 macros newlvbx and oldlvbx added. 1984-11-29 15:10:11 +00:00
em
4c1ac6ad54 The first line should contain the distribution library name. 1984-11-29 15:03:41 +00:00
bal
d345f87d53 macros newlocal() and oldlocal() moved to alloc.h 1984-11-29 14:40:31 +00:00
em
3ef854719d *** empty log message *** 1984-11-29 14:22:02 +00:00
bal
17cd5516a1 -O flag removed from CFLAGS 1984-11-29 13:33:33 +00:00
bal
a117b57ec9 -O removed from CFLAGS 1984-11-29 13:31:22 +00:00
bal
925f0be202 il_aux.h included (which now contains getcall(),putcall() etc.
routines that were peviously in get.c and put.c).
1984-11-29 11:08:15 +00:00
bal
9ffcf24477 stdio.h included (required by new interface to get.h). 1984-11-29 11:06:23 +00:00
bal
bef1b25962 routines getcall(), get_text() and getcc() move from get.c to this file
routines putactuals(), putcall(), and putcc() move from put.c to this file
get.h, put.h, stdio.h, em_mnem.h and em_pseu.h included
1984-11-29 11:03:19 +00:00
bal
05de05abe7 routine getbblocks (plus its auxiliary routines) moved from get.c
to this file; core allocation macros newcfbx() and oldcfbx() added.
1984-11-29 10:51:16 +00:00
bal
54e3b3db4f newnametable() move from alloc.c to this file,
get_ca_lines moved from get.c to this file,
em_pseu.h and em_mes.h included (needed by get_ca_lines).
1984-11-29 10:31:44 +00:00
bal
21c2208de6 stdio.h included (required by new get.h interface),
macros's newlocal() and oldlocal() added, replacing routines in
alloc.c with same name.
1984-11-29 10:25:21 +00:00
bal
41cd4c15fd getbblocks(), getcall(), getcc() and get_text() removed,
get_ca_lines() removed,
curinp,lastbid,lastlabid exported
getbyte(),getshort(),getoff(),read_line and getlines() exported.
1984-11-29 10:18:53 +00:00
bal
714b50f54b getbblocks() removed (now local to CF phase),
getcall(),getcc() and get_text removed (now local to IL),
get_ca_lines() removed (now local to CA),
current input file "f" renamed "curinp" and exported,
getbyte (macro), getshort() and getoff() exported
read_line() and getlines() exported,
lastbid and lastlabid exported.
1984-11-29 10:15:23 +00:00
bal
2ac28f401c putcall an putcc removed,
curoutp, outbyte,outshort and outoff exported.
1984-11-29 10:11:37 +00:00
bal
ba5ae63e87 putcall and putcc removed (make local to IL phase)
current output file renamed "curoutp" and exported
outbyte, outshort and outoff exported.
1984-11-29 10:09:15 +00:00
bal
2e1928a4eb cleaned up 1984-11-28 09:26:44 +00:00
em
9a02327a2d Installed basic compiler in ACK tree. 1984-11-27 23:59:28 +00:00
em
8c0394eea8 1 - Added RCS identification.
2 - Changed the file name parseparams.c into parsepar.c, the original
    name was too long for RCS under BSD4.1
3 - Adapted to ACK standard Makefile format(cmp,install,...)
4 - Included more dependencies.
1984-11-27 23:53:31 +00:00
em
085069e600 Added basic.doc. 1984-11-27 23:51:07 +00:00
em
e30901a8c4 Added RCS identification. 1984-11-27 23:48:38 +00:00
em
5d2434ce92 *** empty log message *** 1984-11-27 23:46:32 +00:00
em
398a848925 Removed conflict between rcs_id in basic.yacc and lex.c. 1984-11-27 23:41:46 +00:00
em
dee952edfa Now using ACK default tmp directory from em_path.h. 1984-11-27 23:21:41 +00:00
em
1ada89da2a Added RCS identification. 1984-11-27 23:13:28 +00:00
em
02d10bc877 The version of basic copied from Martin Kerstens directory. 1984-11-27 22:23:55 +00:00
em
1046fc1eea The version of basic copied from Martin Kerstens directory. 1984-11-27 22:11:59 +00:00
bal
b5e86c2482 Initial revision 1984-11-27 16:16:36 +00:00
bal
2ab7549af6 cleaned up 1984-11-27 15:52:23 +00:00
bal
85435303c8 stack_change was renamed stack_chg 1984-11-27 15:43:14 +00:00
bal
51eccf208f Initial revision 1984-11-27 15:40:13 +00:00
bal
b27463bccd "ivars" was renamed "ivvars" to avoid name conflict with sr_expr.c 1984-11-27 15:30:34 +00:00
bal
1d613c24af cleaned up 1984-11-27 15:04:04 +00:00
bal
cc22bb4175 cleaned up; dependecies added. 1984-11-27 14:53:00 +00:00
bal
6a084edba7 cleaned up. 1984-11-27 14:25:02 +00:00
bal
e9b3f54f7c cleaned up. use CC. 1984-11-27 14:23:20 +00:00
bal
ee4b1850bb getoff() moved to front (was called before being defined)
declaration char *pseudo[] changed to char *pseudo[5] to suppress warining
1984-11-27 14:21:55 +00:00
bal
49a0e9c414 "cc" replaced by $(CC) 1984-11-27 12:59:18 +00:00
keie
56ba46b2bc Treatment of -R flag is altered.
1 - if recognized by mapflag and not by Ack internally no
    complaint is given.
2 - If recognized by both mapflag and internally:
       -R....-.... : effectuate only mapflag command
       otherwise   : effectuate both.
3 - If not recognized at all, give a warning message and
    pass the flag to the linker.
1984-11-26 17:14:17 +00:00
keie
cf20acf289 This manual page was not included in the first distribution.
This version is hacked from the VU-Pascal distribution.
1984-11-26 15:56:57 +00:00
bal
64ff1da3e4 Initial revision 1984-11-26 15:15:07 +00:00
bal
8e4156532d Initial revision 1984-11-26 15:04:22 +00:00
bal
6e32042c52 Initial revision 1984-11-26 14:51:59 +00:00
bal
e551fa234e Initial revision 1984-11-26 14:35:32 +00:00
bal
15aec67505 Initial revision 1984-11-26 14:14:55 +00:00
bal
03409fb772 Initial revision 1984-11-26 14:07:17 +00:00
bal
7fab127af3 Initial revision 1984-11-26 13:58:05 +00:00
bal
b4b66ce74f Initial revision 1984-11-26 13:43:22 +00:00
sater
fff0d30a9a added documentation for the fmt_id and fmt_ilb macros 1984-11-26 11:09:11 +00:00
sater
2c0619a13a Added support for the fmt_id and fmt_ilb macros 1984-11-26 10:50:46 +00:00
sater
2601187207 In the RREMOVE section of this file, the field e_con of the
expression union was used in stead of e_reg.
Fixed. Checked all other occurrances, are correct.
1984-11-20 16:56:26 +00:00
sater
8d7aa4baad The constant 512 slipped in instead of BUFSIZ.
Changed.
1984-11-20 10:22:12 +00:00
keie
6eaf938a14 Added a check for non-ascii characters in the description files. 1984-11-15 14:24:35 +00:00
ceriel
6d42bab835 Forgotten to close a file. This is corrected. 1984-11-12 18:05:20 +00:00
keie
2cd5f2033e Added rcs identification. 1984-11-08 12:08:31 +00:00
keie
068dee8a06 Added a P for a specification of lal on line 51.
This missing letter caused lal -1 to be mapped on the opcode
for lal 0.
1984-11-08 11:11:31 +00:00
keie
85b1c8b043 Added a check. Minis & shorties need an N or P argument. 1984-11-08 11:09:56 +00:00
bal
a955307239 The routine con_float now generates a dummy floating point constant
and gives a warning, instead of generating a fatal error + abort.
1984-11-06 12:50:21 +00:00
bal
dea117397b Patterns for floating point instruction and for LFR 8 and RET 8 added.
Each such instruction now results in a call to a library routine.
At present, all these routines generate an Illegal EM Instruction trap,
but anyone wishing to implement floating point for the 6502 can
do so without changing the back end table.
1984-11-06 12:47:26 +00:00
em
ac8dee35d0 The line with the user message for failure missed the call to echo. 1984-11-06 10:02:25 +00:00
bal
46a5c99978 make install also make a tail_mon now. 1984-11-05 15:58:11 +00:00
bal
77d2cc5222 arguments for asld changed. several libraries added. 1984-11-05 15:29:48 +00:00
bal
c4dee9c081 program for be is {LIB}/cg instead of {LIB}/be 1984-11-05 15:13:20 +00:00
keie
4a2029781a *** empty log message *** 1984-11-05 15:11:19 +00:00
bal
6cde876c44 em_head renamed head_em; em_tail renamed tail_em
installs tail_em rather than comparing it
1984-11-05 15:06:49 +00:00
em
9adb899d09 Added an example with segment prefixes. 1984-11-05 15:02:32 +00:00
em
8c2dd5a6b5 Adapted to new tree shape for libraries and binaries. 1984-11-05 14:42:17 +00:00
em
73af9ae6cf *** empty log message *** 1984-11-05 12:05:46 +00:00
em
783f95590f *** empty log message *** 1984-11-05 11:55:15 +00:00
keie
d5399de251 The flag -LIB was missing in the call to the shell-procedure
compmodule. Thus the generated libraries could not be effectively
used by our assembler/linker.
1984-11-05 11:37:23 +00:00
bal
b94907a1fa Negation of negative operand with inc/dec added in certain cases.
Don't know effect for sure, author has left.
Added rcsid.
1984-11-02 11:09:46 +00:00
bal
40fcf103bd Initial revision 1984-11-02 10:13:29 +00:00
sater
7f230788d0 Name of error file was wrong, it was the runtime error file instead
of the compile time error file.
1984-11-01 09:30:36 +00:00
ceriel
f0445587cf The input routine used to skip space. This "feature" has been removed
because it is also used to read strings, in which space is significant.
1984-10-31 15:26:09 +00:00
keie
a089216ae7 Adapted to make use of ../../compare and ../../install. 1984-10-26 12:58:15 +00:00
keie
150d744512 Initial revision 1984-10-26 12:54:35 +00:00
keie
e25887d5ca Adapted to make use of ../../compare and ../../install. 1984-10-26 11:48:51 +00:00
keie
c0e66dc8d3 Initial revision 1984-10-26 11:48:13 +00:00
keie
61ab763c07 *** empty log message *** 1984-10-26 11:47:56 +00:00
keie
86f29918c8 Adapted to make use of ../../compare and ../../install. 1984-10-26 11:04:10 +00:00
keie
af335c7be5 *** empty log message *** 1984-10-26 11:01:40 +00:00
keie
2d11c4b2fe Initial revision 1984-10-26 11:00:08 +00:00
ceriel
6fd15f62dc Running makedepend again gave a difference. 1984-10-26 10:31:22 +00:00
ceriel
ca787ba372 removed the "depend" emtry, added a "distr" entry, which should be used
before a distribution is made.
Also added the -DNORCSID flag to the lint-options.
1984-10-26 10:25:55 +00:00
keie
aa65dc9fbd Adapted to use ../../install and ../../compare and hide knowledge
about final destination of libraries.
1984-10-26 10:25:32 +00:00
ceriel
ff47f2ee43 Added a "distr" entry, which will be propagated to the src directory. 1984-10-26 10:24:48 +00:00
keie
5be59d3ade Adapted to make use of ../../compare. 1984-10-26 10:21:18 +00:00
keie
aa74e86069 Adapted to make use of ../../install and ../../compare. 1984-10-26 10:20:29 +00:00
keie
a915561735 Initial revision 1984-10-26 10:20:28 +00:00
keie
9f1edee15f *** empty log message *** 1984-10-26 10:19:56 +00:00
keie
a17a987cb8 *** empty log message *** 1984-10-26 10:12:57 +00:00
keie
db9268bb08 Adapted to use install in ../.. 1984-10-25 14:28:56 +00:00
keie
f064ac567e Now using the compare script in ../.. 1984-10-25 14:28:19 +00:00
keie
17504bb39a Initial revision 1984-10-25 14:28:18 +00:00
keie
ad77d9eb14 *** empty log message *** 1984-10-25 14:24:43 +00:00
keie
558e2166ba Altered the installation procedure.
The libraries etc. are now installed in lib/m68k2 using install in ../..
1984-10-25 14:22:53 +00:00
keie
c71656ab19 Altered to make use of ../../install and ../../compare. 1984-10-25 14:19:58 +00:00
keie
23cf9b8443 Initial revision 1984-10-25 14:19:57 +00:00
keie
44b78ad38d *** empty log message *** 1984-10-25 14:15:27 +00:00
keie
386c0d6e1a Now making use of ../../install and ../../compare. 1984-10-25 14:10:00 +00:00
keie
046ee8050f Adapted to make use of compare in ../.. 1984-10-25 11:40:16 +00:00
keie
1154d87f41 Adapted to make use of install and compare in ../.. 1984-10-25 11:39:39 +00:00
keie
0c16a79a37 *** empty log message *** 1984-10-25 11:39:38 +00:00
keie
f177d69279 Adapted to make use of install and compare in ../.. 1984-10-25 11:27:08 +00:00
keie
a4368ea2d1 *** empty log message *** 1984-10-25 11:25:22 +00:00
keie
675d30712d Removed the definition of LIBDIR, it is superfluous. 1984-10-25 11:16:31 +00:00
keie
209801cac1 Adapted to make use of install and compare in ../.. 1984-10-25 11:16:30 +00:00
keie
9c57272ef9 Initial revision 1984-10-25 11:15:20 +00:00
keie
01f22b3870 Moved the include directory from mach/ibm/include to lib/ibm/include. 1984-10-25 11:00:06 +00:00
keie
6ade85f76e Adapted to use compare in ../.. 1984-10-25 10:46:32 +00:00
keie
0349b620cd Adapted to compare in ../.. 1984-10-25 10:45:22 +00:00
keie
6001a4462e Initial revision 1984-10-25 10:45:21 +00:00
keie
0d853f8c4b *** empty log message *** 1984-10-23 15:29:53 +00:00
keie
e5277be072 Initial revision 1984-10-23 15:29:30 +00:00
keie
cc246efa46 We have only one copy of the script for compare and install now
they are present in ../..
1984-10-23 15:14:17 +00:00
sater
2fe95a276d changed EM_WSIZE to TEM_WSIZE 1984-10-23 15:10:15 +00:00
456 changed files with 339 additions and 84938 deletions

View File

@@ -1,17 +0,0 @@
/*
* (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
*
*/

View File

@@ -1,35 +0,0 @@
cmp: # compile everything and compare
(cd etc ; make cmp )
(cd util ; make cmp )
(cd lang ; make cmp )
(cd mach ; make cmp )
install: # compile everything to machine code
(cd etc ; make install )
(cd util ; make install )
(cd lang/cem ; make install )
(cd mach ; make install )
(cd lang/pc ; make install )
clean: # remove all non-sources, except boot-files
(cd doc ; make clean )
(cd man ; make clean )
(cd h ; make clean )
(cd etc ; make clean )
(cd util ; make clean )
(cd lang ; make clean )
(cd mach ; make clean )
opr: # print all sources
make pr | opr
pr: # print all sources
@( pr Makefile ; \
(cd doc ; make pr ) ; \
(cd man ; make pr ) ; \
(cd h ; make pr ) ; \
(cd etc ; make pr ) ; \
(cd lang ; make pr ) ; \
(cd util ; make pr ) ; \
(cd mach ; make pr ) \
)

View File

@@ -1,44 +0,0 @@
# $Header$
SUF=pr
PRINT=cat
RESFILES=cref.$(SUF) pcref.$(SUF) val.$(SUF) v7bugs.$(SUF) install.$(SUF)\
ack.$(SUF) cg.$(SUF) regadd.$(SUF) peep.$(SUF) toolkit.$(SUF) LLgen.$(SUF)
NROFF=nroff
MS=-ms
cref.$(SUF): cref.doc
tbl $? | $(NROFF) >$@
v7bugs.$(SUF): v7bugs.doc
$(NROFF) $(MS) $? >$@
ack.$(SUF): ack.doc
$(NROFF) $(MS) $? >$@
cg.$(SUF): cg.doc
$(NROFF) $(MS) $? >$@
regadd.$(SUF): regadd.doc
$(NROFF) $(MS) $? >$@
install.$(SUF): install.doc
$(NROFF) $(MS) $? >$@
pcref.$(SUF): pcref.doc
$(NROFF) $? >$@
peep.$(SUF): peep.doc
$(NROFF) $(MS) $? >$@
val.$(SUF): val.doc
$(NROFF) $? >$@
toolkit.$(SUF): toolkit.doc
$(NROFF) $(MS) $? >$@
LLgen.$(SUF): LLgen.doc
eqn $? | $(NROFF) $(MS) >$@
install cmp:
pr:
@make "SUF="$SUF "NROFF="$NROFF "PRINT="$PRINT $(RESFILES) \
>make.pr.out 2>&1
@$(PRINT) $(RESFILES)
opr:
make pr | opr
clean:
-rm -f *.old $(RESFILES) *.t

View File

@@ -1,420 +0,0 @@
.\" $Header$
.nr LL 7.5i
.tr ~
.nr PD 1v
.TL
Ack Description File
.br
Reference Manual
.AU
Ed Keizer
.AI
Wiskundig Seminarium
Vrije Universiteit
Amsterdam
.NH
Introduction
.PP
The program \fIack\fP(I) internally maintains a table of
possible transformations and a table of string variables.
The transformation table contains one entry for each possible
transformation of a file.
Which transformations are used depends on the suffix of the
source file.
Each transformation table entry tells which input suffixes are
allowed and what suffix/name the output file has.
When the output file does not already satisfy the request of the
user, with the flag \fB-c.suffix\fP, the table is scanned
starting with the next transformation in the table for another
transformation that has as input suffix the output suffix of
the previous transformation.
A few special transformations are recognized, among them is the
combiner.
A program combining several files into one.
When no stop suffix was specified (flag \fB-c.suffix\fP) \fIack\fP
stops after executing the combiner with as arguments the -
possibly transformed - input files and libraries.
\fIAck\fP will only perform the transformations in the order in
which they are presented in the table.
.LP
The string variables are used while creating the argument list
and program call name for
a particular transformation.
.NH
Which descriptions are used
.PP
\fIAck\fP always uses two description files: one to define the
front-end transformations and one for the machine dependent
back-end transformations.
Each description has a name.
First the way of determining
the name of the descriptions needed is described.
.PP
When the shell environment variable ACKFE is set \fIack\fP uses
that to determine the front-end table name, otherwise it uses
\fBfe\fP.
.PP
The way the backend table name is determined is more
convoluted.
.br
First, when the last filename in the program call name is not
one of \fIack\fP, \fIcc\fP, \fIacc\fP, \fIpc\fP or \fIapc\fP,
this filename is used as the backend description name.
Second, when the \fB-m\fP is present the \fB-m\fP is chopped of this
flag and the rest is used as the backend description name.
Third, when both failed the shell environment variable ACKM is
used.
Last, when also ACKM was not present the default backend is
used, determined by the definition of ACKM in h/local.h.
The presence and value of the definition of ACKM is
determined at compile time of \fIack\fP.
.PP
Now, we have the names, but that is only the first step.
\fIAck\fP stores a few descriptions at compile time.
This descriptions are simply files read in at compile time.
At the moment of writing this document, the descriptions
included are: pdp, fe, i86, m68k2, vax2 and int.
The name of a description is first searched for internally,
then in the directory lib/ack and finally in the current
directory of the user.
.NH
Using the description file
.PP
Before starting on a narrative of the description file,
the introduction of a few terms is necessary.
All these terms are used to describe the scanning of zero
terminated strings, thereby producing another string or
sequence of strings.
.IP Backslashing 5
.br
All characters preceded by \e are modified to prevent
recognition at further scanning.
This modification is undone before a string is passed to the
outside world as argument or message.
When reading the description files the
sequences \e\e, \e# and \e<newline> have a special meaning.
\e\e translates to a single \e, \e# translates to a single #
that is not
recognized as the start of comment, but can be used in
recognition and finally, \e<newline> translates to nothing at
all, thereby allowing continuation lines.
.nr PD 0
.IP "Variable replacement"
.br
The scan recognizes the sequences {{, {NAME} and {NAME?text}
Where NAME can be any combination if characters excluding ? and
} and text may be anything excluding }.
(~\e} is allowed of course~)
The first sequence produces an unescaped single {.
The second produces the contents of the NAME, definitions are
done by \fIack\fP and in description files.
When the NAME is not defined an error message is produced on
the diagnostic output.
The last sequence produces the contents of NAME if it is
defined and text otherwise.
.PP
.IP "Expression replacement"
.br
Syntax: (\fIsuffix sequence\fP:\fIsuffix sequence\fP=\fItext\fP)
.br
Example: (.c.p.e:.e=tail_em)
.br
If the two suffix sequences have a common member -~\&.e in this
case~- the text is produced.
When no common member is present the empty string is produced.
Thus the example given is a constant expression.
Normally, one of the suffix sequences is produced by variable
replacement.
\fIAck\fP sets three variables while performing the diverse
transformations: HEAD, TAIL and RTS.
All three variables depend on the properties \fIrts\fP and
\fIneed\fP from the transformations used.
Whenever a transformation is used for the first time,
the text following the \fIneed\fP is appended to both the HEAD and
TAIL variable.
The value of the variable RTS is determined by the first
transformation used with a \fIrts\fP property.
.LP
Two runtime flags have effect on the value of one or more of
these variables.
The flag \fB-.suffix\fP has the same effect on these three variables
as if a file with that \fBsuffix\fP was included in the argument list
and had to be translated.
The flag \fB-r.suffix\fP only has that effect on the TAIL
variable.
The program call names \fIacc\fP and \fIcc\fP have the effect
of an automatic \fB-.c\fB flag.
\fIApc\fP and \fIpc\fP have the effect of an automatic \fB-.p\fP flag.
.IP "Line splitting"
.br
The string is transformed into a sequence of strings by replacing
the blank space by string separators (nulls).
.IP "IO replacement"
.br
The > in the string is replaced by the output file name.
The < in the string is replaced by the input file name.
When multiple input files are present the string is duplicated
for each input file name.
.nr PD 1v
.LP
Each description is a sequence of variable definitions followed
by a sequence of transformation definitions.
Variable definitions use a line each, transformations
definitions consist of a sequence of lines.
Empty lines are discarded, as are lines with nothing but
comment.
Comment is started by a # character, and continues to the end
of the line.
Three special two-characters sequences exist: \e#, \e\e and
\e<newline>.
Their effect is described under 'backslashing' above.
Each - nonempty - line starts with a keyword, possibly
preceded by blank space.
The keyword can be followed by a further specification.
The two are separated by blank space.
.PP
Variable definitions use the keyword \fIvar\fP and look like this:
.DS X
var NAME=text
.DE
The name can be any identifier, the text may contain any
character.
Blank space before the equal sign is not part of the NAME.
Blank space after the equal is considered as part of the text.
The text is scanned for variable replacement before it is
associated with the variable name.
.br
.sp 2
The start of a transformation definition is indicated by the
keyword \fIname\fP.
The last line of such a definition contains the keyword
\fIend\fP.
The lines in between associate properties to a transformation
and may be presented in any order.
The identifier after the \fIname\fP keyword determines the name
of the transformation.
This name is used for debugging and by the \fB-R\fP flag.
The keywords are used to specify which input suffices are
recognized by that transformation,
the program to run, the arguments to be handed to that program
and the name or suffix of the resulting output file.
Two keywords are used to indicate which run-time startoffs and
libraries are needed.
The possible keywords are:
.IP \fIfrom\fP
.br
followed by a sequence of suffices.
Each file with one of these suffices is allowed as input file.
Preprocessor transformations, those with the \fBP\fP property
after the \fIprop\fP keyword, do not need the \fIfrom\fP
keyword. All other transformations do.
.nr PD 0
.IP \fIto\fP
.br
followed by the suffix of the output file name or in the case of a
linker -~indicated by C option after the \fIprop\fP keyword~-
the output file name.
.IP \fIprogram\fP
.br
followed by name of the load file of the program, a pathname most likely
starts with either a / or {EM}.
This keyword must be
present, the remainder of the line
is subject to backslashing and variable replacement.
.IP \fImapflag\fP
.br
The mapflags are used to grab flags given to \fIack\fP and
pass them on to a specific transformation.
This feature uses a few simple pattern matching and replacement
facilities.
Multiple occurences of this keyword are allowed.
This text following the keyword is
subjected to backslashing.
The keyword is followed by a match expression and a variable
assignment separated by blank space.
As soon as both description files are read, \fIack\fP looks
at all transformations in these files to find a match for the
flags given to \fIack\fP.
The flags \fB-m\fP, \fB-o\fP,
\fI-O\fP, \fB-r\fP, \fB-v\fP, \fB-g\fP, -\fB-c\fP, \fB-t\fP,
\fB-k\fP, \fB-R\fP and -\f-.\fP are specific to \fIack\fP and
not handed down to any transformation.
The matching is performed in the order in which the entries
appear in the definition.
The scanning stops after first match is found.
When a match is found, the variable assignment is executed.
A * in the match expression matches any sequence of characters,
a * in the right hand part of the assignment is
replaced by the characters matched by
the * in the expression.
The right hand part is also subject to variable replacement.
The variable will probably be used in the program arguments.
The \fB-l\fP flags are special,
the order in which they are presented to \fIack\fP must be
preserved.
The identifier LNAME is used in conjunction with the scanning of
\fB-l\fP flags.
The value assigned to LNAME is used to replace the flag.
The example further on shows the use all this.
.IP \fIargs\fP
.br
The keyword is followed by the program call arguments.
It is subject to backslashing, variable replacement, expression
replacement, line splitting and IO replacement.
The variables assigned to by \fImapflags\P will probably be
used here.
The flags not recognized by \fIack\fP or any of the transformations
are passed to the linker and inserted before all other arguments.
.IP \fIprop\fB
.br
This -~optional~- keyword is followed by a sequence of options,
each option is indicated by one character
signifying a special property of the transformation.
The possible options are:
.DS X
< the input file will be read from standard input
> the output file will be written on standard output
p the input files must be preprocessed
m the input files must be preprocessed when starting with #
O this transformation is an optimizer and may be skipped
P this transformation is the preprocessor
C this transformation is the linker
.DE
.IP \fIrts\fP
.br
This -~optional~- keyword indicates that the rest of the line must be
used to set the variable RTS, if it was not already set.
Thus the variable RTS is set by the first transformation
executed which such a property or as a result from \fIack\fP's program
call name (acc, cc, apc or pc) or by the \fB-.suffix\fP flag.
.IP \fIneed\fP
.br
This -~optional~- keyword indicates that the rest of the line must be
concatenated to the NEEDS variable.
This is done once for every transformation used or indicated
by one of the program call names mentioned above or indicated
by the \fB-.suffix\fP flag.
.br
.nr PD 1v
.NH
Conventions used in description files
.PP
\fIAck\fP reads two description files.
A few of the variables defined in the machine specific file
are used by the descriptions of the front-ends.
Other variables, set by \fack\fB, are of use to all
transformations.
.PP
\fIAck\fP sets the variable EM to the home directory of the
Amsterdam Compiler Kit.
The variable SOURCE is set to the name of the argument that is currently
being massaged, this is usefull for debugging.
.br
The variable M indicates the
directory in mach/{M}/lib/tail_..... and NAME is the string to
be defined by the preprocessor with -D{NAME}.
The definitions of {w}, {s}, {l}, {d}, {f} and {p} indicate
EM_WSIZE, EM_SSIZE, EM_LSIZE, EM_DSIZE, EM_FSIZE and EM_PSIZE
respectively.
.br
The variable INCLUDES is used as the last argument to \fIcpp\fP,
it is currently used to add the directory {EM}/include to
the list of directories containing #include files.
{EM}/include contains a few files used by the library routines
for part III from the
.UX
manual.
These routines are included in the kit.
.PP
The variables HEAD, TAIL and RTS are set by \fIack\fP and used
to compose the arguments for the linker.
.NH
Example
.sp 1
description for front-end
.DS X
name cpp # the C-preprocessor
# no from, it's governed by the P property
to .i # result files have suffix i
program {EM}/lib/cpp # pathname of loadfile
mapflag -I* CPP_F={CPP_F?} -I* # grab -I.. -U.. and
mapflag -U* CPP_F={CPP_F?} -U* # -D.. to use as arguments
mapflag -D* CPP_F={CPP_F?} -D* # in the variable CPP_F
args {CPP_F?} {INCLUDES?} -D{NAME} -DEM_WSIZE={w} -DEM_PSIZE={p} \
-DEM_SSIZE={s} -DEM_LSIZE={l} -DEM_FSIZE={f} -DEM_DSIZE={d} <
# The arguments are: first the -[IUD]...
# then the include dir's for this machine
# then the NAME and size valeus finally
# followed by the input file name
prop >P # Output on stdout, is preprocessor
end
name cem # the C-compiler proper
from .c # used for files with suffix .c
to .k # produces compact code files
program {EM}/lib/em_cem # pathname of loadfile
mapflag -p CEM_F={CEM_F?} -Xp # pass -p as -Xp to cem
mapflag -L CEM_F={CEM_F?} -l # pass -L as -l to cem
args -Vw{w}i{w}p{p}f{f}s{s}l{l}d{d} {CEM_F?}
# the arguments are the object sizes in
# the -V... flag and possibly -l and -Xp
prop <>p # input on stdin, output on stdout, use cpp
rts .c # use the C run-time system
need .c # use the C libraries
end
name decode # make human readable files from compact code
from .k.m # accept files with suffix .k or .m
to .e # produce .e files
program {EM}/lib/em_decode # pathname of loadfile
args < # the input file name is the only argument
prop > # the output comes on stdout
end
.DE
.DS X
Example of a backend, in this case the EM assembler/loader.
var w=2 # wordsize 2
var p=2 # pointersize 2
var s=2 # short size 2
var l=4 # long size 4
var f=4 # float size 4
var d=8 # double size 8
var M=int # Unused in this example
var NAME=int22 # for cpp (NAME=int results in #define int 1)
var LIB=mach/int/lib/tail_ # part of file name for libraries
var RT=mach/int/lib/head_ # part of file name for run-time startoff
var SIZE_FLAG=-sm # default internal table size flag
var INCLUDES=-I{EM}/include # use {EM}/include for #include files
name asld # Assembler/loader
from .k.m.a # accepts compact code and archives
to e.out # output file name
program {EM}/lib/em_ass # load file pathname
mapflag -l* LNAME={EM}/{LIB}* # e.g. -ly becomes
# {EM}/mach/int/lib/tail_y
mapflag -+* ASS_F={ASS_F?} -+* # recognize -+ and --
mapflag --* ASS_F={ASS_F?} --*
mapflag -s* SIZE_FLAG=-s* # overwrite old value of SIZE_FLAG
args {SIZE_FLAG} \
({RTS}:.c={EM}/{RT}cc) ({RTS}:.p={EM}/{RT}pc) -o > < \
(.p:{TAIL}={EM}/{LIB}pc) \
(.c:{TAIL}={EM}/{LIB}cc.1s {EM}/{LIB}cc.2g) \
(.c.p:{TAIL}={EM}/{LIB}mon)
# -s[sml] must be first argument
# the next line contains the choice for head_cc or head_pc
# and the specification of in- and output.
# the last three args lines choose libraries
prop C # This is the final stage
end
.DE
The command "ack -mint -v -v -I../h -L -ly prog.c"
would result in the following
calls (with exec(II)):
.DS X
1) /lib/cpp -I../h -I/usr/em/include -Dint22 -DEM_WSIZE=2 -DEM_PSIZE=2
-DEM_SSIZE=2 -DEM_LSIZE=4 -DEM_FSIZE=4 -DEM_DSIZE=8 prog.c
2) /usr/em/lib/em_cem -Vw2i2p2f4s2l4d8 -l
3) /usr/em/lib/em_ass -sm /usr/em/mach/int/lib/head_cc -o e.out prog.k
/usr/em/mach/int/lib/tail_y /usr/em/mach/int/lib/tail_cc.1s
/usr/em/mach/int/lib/tail_cc.2g /usr/em/mach/int/lib/tail_mon
.DE

1838
doc/cg.doc

File diff suppressed because it is too large Load Diff

View File

@@ -1,318 +0,0 @@
.\" $Header$
.ll 72
.nr ID 4
.de hd
'sp 2
'tl ''-%-''
'sp 3
..
.de fo
'bp
..
.tr ~
. TITLE
.de TL
.sp 15
.ce
\\fB\\$1\\fR
..
. AUTHOR
.de AU
.sp 15
.ce
by
.sp 2
.ce
\\$1
..
. DATE
.de DA
.sp 3
.ce
( Dated \\$1 )
..
. INSTITUTE
.de VU
.sp 3
.ce 4
Wiskundig Seminarium
Vrije Universteit
De Boelelaan 1081
Amsterdam
..
. PARAGRAPH
.de PP
.sp
.ti +\n(ID
..
.nr CH 0 1
. CHAPTER
.de CH
.nr SH 0 1
.bp
.in 0
\\fB\\n+(CH.~\\$1\\fR
.PP
..
. SUBCHAPTER
.de SH
.sp 3
.in 0
\\fB\\n(CH.\\n+(SH.~\\$1\\fR
.PP
..
. INDENT START
.de IS
.sp
.in +\n(ID
..
. INDENT END
.de IE
.in -\n(ID
.sp
..
.de PT
.ti -\n(ID
.ta \n(ID
.fc " @
"\\$1@"\c
.fc
..
. DOUBLE INDENT START
.de DS
.sp
.in +\n(ID
.ll -\n(ID
..
. DOUBLE INDENT END
.de DE
.ll +\n(ID
.in -\n(ID
.sp
..
. EQUATION START
.de EQ
.sp
.nf
..
. EQUATION END
.de EN
.fi
.sp
..
. ITEM
.de IT
.sp
.in 0
\\fB~\\$1\\fR
.ti +5
..
.de CS
.br
~-~\\
..
.br
.fi
.TL "Ack-C reference manual"
.AU "Ed Keizer"
.DA "September 12, 1983"
.VU
.wh 0 hd
.wh 60 fo
.CH "Introduction"
The C frontend included in the Amsterdam Compiler Kit
translates UNIX-V7 C into compact EM code [1].
The language accepted is described in [2] and [3].
This document describes which implementation dependent choices were
made in the Ack-C frontend and
some restrictions and additions.
.CH "The language"
.PP
Under the same heading as used in [2] we describe the
properties of the Ack-C frontend.
.IT "2.2 Identifiers"
External identifiers are unique up to 7 characters and allow
both upper and lower case.
.IT "2.4.3 Character constants"
The ASCII-mapping is used when a character is converted to an
integer.
.IT "2.4.4 Floating constants"
To prevent loss of precision the compiler does not perform
floating point constant folding.
.IT "2.6 Hardware characteristics"
The size of objects of the several arithmetic types and the two
pointer types depend on the EM-implementation used.
The ranges of the arithmetic types depend on the size used,
the C-frontend assumes two's complement representation for the
integral types. All sizes are multiples of bytes.
The calling program \fIack\fP[4] passes information about the
size of the types to the compiler proper.
.br
However, a few general remarks must be made:
.sp 1
.IS
.PT (a)
Two different pointer types exist: pointers to data and
pointers to functions.
The latter type is twice as large as the former.
Pointers to functions use the same format as Pascal procedure
parameters, thereby allowing C to use Pascal procedure
parameters and vice-versa.
The extra information passed indicates the scope level of the
procedure.
.PT (b)
The size of pointers to data is a multiple of
(or equal to) the size of an \fIint\fP.
.PT (c)
The following relations exist for the sizes of the types
mentioned:
.br
.ti +5
\fIchar<=short<=int<=long\fP
.PT (d)
Objects of type \fIchar\fP use one 8-bit byte of storage,
although several bytes are allocated sometimes.
.PT (e)
All sizes are in multiples of bytes.
.PT (f)
Most EM implementations use 4 bytes for floats and 8 bytes
for doubles, but exceptions to this rule occur.
.IE
.IT "6.1 Characters and integers"
Objects of type \fIchar\fP are unsigned and do not cause
sign-extension when converted to \fIint\fP.
The range of characters values is from 0 to 255.
.IT "6.3 Floating and integral"
Floating point numbers are truncated towards zero when
converted to the integral types.
.IT "6.4 Pointers and integers"
When a \fIlong\fP is added to or subtracted from a pointer and
longs are larger then data pointers the \fIlong\fP is converted to an
\fIint\fP before the operation is performed.
.IT "8.5 Structure and union declarations"
The only type allowed for fields is \fIint\fP.
Fields with exactly the size of \fIint\fP are signed,
all other fields are unsigned.
.br
The size of any single structure must be less then 4096 bytes.
.IT "8.6 Initialization"
Initialization of structures containing bit fields is not
allowed.
There is one restriction when using an 'address expression' to initialize
an integral variable.
The integral variable must have the size of a data pointer.
Conversions altering the size of the address expression are not allowed.
.IT "10.1 External function definitions"
The total amount for storage used for parameters
in any function must be less then 4096 bytes.
The same holds for the total amount of storage occupied by the
automatic variables declared inside any function.
.sp
Using formal parameters whose size is smaller the the size of an int
is less efficient on several machines.
At procedure entry these parameters are converted from integer to the
declared type, because the compiler doesn't know where the least
significant bytes are stored in the int.
.IT "11.2 Scope of externals"
Most C compilers are rather lax in enforcing the restriction
that only one external definition without the keyword
\fIextern\fP is allowed in a program.
The Ack-C frontend is very strict in this.
The only exception is that declarations of arrays with a
missing first array bounds expression are regarded to have an
explicit keyword \fIextern\fP.
.IT "14.4 Explicit pointer conversions"
Pointers may be larger the ints, thus assigning a pointer to an
int and back will not always result in the same pointer.
The process mentioned above works with integrals
of the same size or larger as pointers in all EM implementations
having such integrals.
Note that pointers to functions have
twice the size of pointers to data.
When converting data pointers to an integral type or vice-versa,
the pointers is seen as an unsigned with the same size a data-pointer.
When converting function pointers to anything else the static link part
of the pointer is discarded,
the resulting value is treated as if it were a data pointer.
When converting a data pointer or object of integral type to a function pointer
a static link with the value 0 is added to complete the function pointer.
.br
EM guarantees that any object can be placed at a word boundary,
this allows the C-programs to use \fIint\fP pointers
as pointers to objects of any type not smaller than an \fIint\fP.
.CH "Frontend options"
The C-frontend has a few options, these are controlled
by flags:
.IS
.PT -V
This flag is followed by a sequence of letters each followed by
positive integers. Each letter indicates a
certain type, the integer following it specifies the size of
objects of that type. One letter indicates the wordsize used.
.IS
.sp 1
.TS
center tab(:);
l l16 l l.
letter:type:letter:type
w:wordsize:i:int
s:short:l:long
f:float:d:double
p:pointer::
.TE
.sp 1
All existing implementations use an integer size equal to the
wordsize.
.IE
The calling program \fIack\fP[4] provides the frontend with
this flag, with values depending on the machine used.
.sp 1
.PT -l
The frontend normally generates code to keep track of the line
number and source file name at runtime for debugging purposes.
Currently a pointer to a
string containing the filename is stored at a fixed place in
memory at each function
entry and the line number at the start of every expression.
At the return from a function these memory locations are not reset to
the values they had before the call.
Most library routines do not use this feature and thus do not
ruin the current line number and filename when called.
However, you are really unlucky when your program crashes due
to a bug in such a library function, because the line number
and filename do not indicate that something went wrong inside
the library function.
.br
Providing the flag -l to the frontend tells it not to generate
the code updating line number and file name.
This is, for example, used when translating the stdio library.
.br
When the \fIack\fP[4] is called with the -L flag it provides
the frontend with this flag.
.sp 1
.PT -Xp
When this flag is present the frontend generates a call to
the function \fBprocentry\fP at each function entry and a
call to \fBprocexit\fP at each function exit.
Both functions are provided with one parameter,
a pointer to a string containing the function name.
.br
When \fIack\fP is called with the -p flag it provides the
frontend with this flag.
.IE
.CH References
.IS
.PT [1]
A.S. Tanenbaum, Hans van Staveren, Ed Keizer and Johan
Stevenson \fIDescription of a machine architecture for use with
block structured languages\fP Informatica report IR-81.
.sp 1
.PT [2]
B.W. Kernighan and D.M. Ritchie, \fIThe C Programming
language\fP, Prentice-Hall, 1978
.PT [3]
D.M. Ritchie, \fIC Reference Manual\fP
.sp
.PT [4]
UNIX manual ack(I).

View File

@@ -1,28 +0,0 @@
head: doc.pr
NROFF=nroff
FILES = macr.nr title.nr intro.nr mem.nr ispace.nr dspace.nr mapping.nr types.nr descr.nr iotrap.nr mach.nr assem.nr app.nr
IOP=../../util/ass/ip_spec.t
doc.pr: $(FILES) itables em.i
tbl $(FILES) | $(NROFF) >doc.pr
opr: doc.pr
make pr | opr
pr:
@make "NROFF="$NROFF doc.pr >makepr.out 2>&1
@cat doc.pr
app.t: itables em.i
em.i: int/em.p
@echo Sorry, this copy was edited by hand from int/em.p
itables: $(IOP)
awk -f ip.awk $(IOP) | tbl >itables
.SUFFIXES : .pr .nr
.nr.pr: ; tbl macr.nr $*.nr | $(NROFF) >$@
cont.t intro.t mem.t ispace.t dspace.t mapping.t succ.t descr.t iotrap.t mach.t assem.t kern.t app.t: macr.nr

View File

@@ -1 +0,0 @@
Sorry, the kun macro package is not ours to distribute.

File diff suppressed because it is too large Load Diff

View File

@@ -1,488 +0,0 @@
.BP
.AP "EM INTERPRETER"
.nf
.ta 8 16 24 32 40 48 56 64 72 80
.so em.i
.fi
.BP
.AP "EM CODE TABLES"
The following table is used by the assembler for EM machine
language.
It specifies the opcodes used for each instruction and
how arguments are mapped to machine language arguments.
The table is presented in three columns,
each line in each column contains three or four fields.
Each line describes a range of interpreter opcodes by
specifying for which instruction the range is used, the type of the
opcodes (mini, shortie, etc..) and range for the instruction
argument.
.A
The first field on each line gives the EM instruction mnemonic,
the second field gives some flags.
If the opcodes are minis or shorties the third field specifies
how many minis/shorties are used.
The last field gives the number of the (first) interpreter
opcode.
.N 1
Flags :
.IS 3
.N 1
Opcode type, only one of the following may be specified.
.PS - 5 " "
.PT -
opcode without argument
.PT m
mini
.PT s
shortie
.PT 2
opcode with 2-byte signed argument
.PT 4
opcode with 4-byte signed argument
.PT 8
opcode with 8-byte signed argument
.PE
Secondary (escaped) opcodes.
.PS - 5 " "
.PT e
The opcode thus marked is in the secondary opcode group instead
of the primary
.PE
restrictions on arguments
.PS - 5 " "
.PT N
Negative arguments only
.PT P
Positive and zero arguments only
.PE
mapping of arguments
.PS - 5 " "
.PT w
argument must be divisible by the wordsize and is divided by the
wordsize before use as opcode argument.
.PT o
argument ( possibly after division ) must be >= 1 and is
decremented before use as opcode argument
.PE
.IE
If the opcode type is 2,4 or 8 the resulting argument is used as
opcode argument (least significant byte first).
.N
If the opcode type is mini, the argument is added
to the first opcode - if in range - .
If the argument is negative, the absolute value minus one is
used in the algorithm above.
.N
For shorties with positive arguments the first opcode is used
for arguments in the range 0..255, the second for the range
256..511, etc..
For shorties with negative arguments the first opcode is used
for arguments in the range -1..-256, the second for the range
-257..-512, etc..
The byte following the opcode contains the least significant
byte of the argument.
First some examples of these specifications.
.PS - 5
.PT "aar mwPo 1 34"
Indicates that opcode 34 is used as a mini for Positive
instruction arguments only.
The w and o indicate division and decrementing of the
instruction argument.
Because the resulting argument must be zero ( only opcode 34 may be used
), this mini can only be used for instruction argument 2.
Conclusion: opcode 34 is for "AAR 2".
.PT "adp sP 1 41"
Opcode 41 is used as shortie for ADP with arguments in the range
0..255.
.PT "bra sN 2 60"
Opcode 60 is used as shortie for BRA with arguments -1..-256,
61 is used for arguments -257..-512.
.PT "zer e- 145"
Escaped opcode 145 is used for ZER.
.PE
The interpreter opcode table:
.N 1
.IS 3
.DS B
.so itables
.DE 0
.IE
.P
The table above results in the following dispatch tables.
Dispatch tables are used by interpreters to jump to the
routines implementing the EM instructions, indexed by the next opcode.
Each line of the dispatch tables gives the routine names
of eight consecutive opcodes, preceded by the first opcode number
on that line.
Routine names consist of an EM mnemonic followed by a suffix.
The suffices show the encoding used for each opcode.
.N
The following suffices exist:
.N 1
.VS 1 0
.IS 4
.PS - 11
.PT .z
no arguments
.PT .l
16-bit argument
.PT .lw
16-bit argument divided by the wordsize
.PT .p
positive 16-bit argument
.PT .pw
positive 16-bit argument divided by the wordsize
.PT .n
negative 16-bit argument
.PT .nw
negative 16-bit argument divided by the wordsize
.PT .s<num>
shortie with <num> as high order argument byte
.PT .sw<num>
shortie with argument divided by the wordsize
.PT .<num>
mini with <num> as argument
.PT .<num>W
mini with <num>*wordsize as argument
.PE 3
<num> is a possibly negative integer.
.VS 1 1
.IE
The dispatch table for the 256 primary opcodes:
.DS B
0 loc.0 loc.1 loc.2 loc.3 loc.4 loc.5 loc.6 loc.7
8 loc.8 loc.9 loc.10 loc.11 loc.12 loc.13 loc.14 loc.15
16 loc.16 loc.17 loc.18 loc.19 loc.20 loc.21 loc.22 loc.23
24 loc.24 loc.25 loc.26 loc.27 loc.28 loc.29 loc.30 loc.31
32 loc.32 loc.33 aar.1W adf.s0 adi.1W adi.2W adp.l adp.1
40 adp.2 adp.s0 adp.s-1 ads.1W and.1W asp.1W asp.2W asp.3W
48 asp.4W asp.5W asp.w0 beq.l beq.s0 bge.s0 bgt.s0 ble.s0
56 blm.s0 blt.s0 bne.s0 bra.l bra.s-1 bra.s-2 bra.s0 bra.s1
64 cal.1 cal.2 cal.3 cal.4 cal.5 cal.6 cal.7 cal.8
72 cal.9 cal.10 cal.11 cal.12 cal.13 cal.14 cal.15 cal.16
80 cal.17 cal.18 cal.19 cal.20 cal.21 cal.22 cal.23 cal.24
88 cal.25 cal.26 cal.27 cal.28 cal.s0 cff.z cif.z cii.z
96 cmf.s0 cmi.1W cmi.2W cmp.z cms.s0 csa.1W csb.1W dec.z
104 dee.w0 del.w-1 dup.1W dvf.s0 dvi.1W fil.l inc.z ine.lw
112 ine.w0 inl.-1W inl.-2W inl.-3W inl.w-1 inn.s0 ior.1W ior.s0
120 lae.l lae.w0 lae.w1 lae.w2 lae.w3 lae.w4 lae.w5 lae.w6
128 lal.p lal.n lal.0 lal.-1 lal.w0 lal.w-1 lal.w-2 lar.W
136 ldc.0 lde.lw lde.w0 ldl.0 ldl.w-1 lfr.1W lfr.2W lfr.s0
144 lil.w-1 lil.w0 lil.0 lil.1W lin.l lin.s0 lni.z loc.l
152 loc.-1 loc.s0 loc.s-1 loe.lw loe.w0 loe.w1 loe.w2 loe.w3
160 loe.w4 lof.l lof.1W lof.2W lof.3W lof.4W lof.s0 loi.l
168 loi.1 loi.1W loi.2W loi.3W loi.4W loi.s0 lol.pw lol.nw
176 lol.0 lol.1W lol.2W lol.3W lol.-1W lol.-2W lol.-3W lol.-4W
184 lol.-5W lol.-6W lol.-7W lol.-8W lol.w0 lol.w-1 lxa.1 lxl.1
192 lxl.2 mlf.s0 mli.1W mli.2W rck.1W ret.0 ret.1W ret.s0
200 rmi.1W sar.1W sbf.s0 sbi.1W sbi.2W sdl.w-1 set.s0 sil.w-1
208 sil.w0 sli.1W ste.lw ste.w0 ste.w1 ste.w2 stf.l stf.W
216 stf.2W stf.s0 sti.1 sti.1W sti.2W sti.3W sti.4W sti.s0
224 stl.pw stl.nw stl.0 stl.1W stl.-1W stl.-2W stl.-3W stl.-4W
232 stl.-5W stl.w-1 teq.z tgt.z tlt.z tne.z zeq.l zeq.s0
240 zeq.s1 zer.s0 zge.s0 zgt.s0 zle.s0 zlt.s0 zne.s0 zne.s-1
248 zre.lw zre.w0 zrl.-1W zrl.-2W zrl.w-1 zrl.nw escape1 escape2
.DE 2
The list of secondary opcodes (escape1):
.N 1
.DS B
0 aar.l aar.z adf.l adf.z adi.l adi.z ads.l ads.z
8 adu.l adu.z and.l and.z asp.lw ass.l ass.z bge.l
16 bgt.l ble.l blm.l bls.l bls.z blt.l bne.l cai.z
24 cal.l cfi.z cfu.z ciu.z cmf.l cmf.z cmi.l cmi.z
32 cms.l cms.z cmu.l cmu.z com.l com.z csa.l csa.z
40 csb.l csb.z cuf.z cui.z cuu.z dee.lw del.pw del.nw
48 dup.l dus.l dus.z dvf.l dvf.z dvi.l dvi.z dvu.l
56 dvu.z fef.l fef.z fif.l fif.z inl.pw inl.nw inn.l
64 inn.z ior.l ior.z lar.l lar.z ldc.l ldf.l ldl.pw
72 ldl.nw lfr.l lil.pw lil.nw lim.z los.l los.z lor.s0
80 lpi.l lxa.l lxl.l mlf.l mlf.z mli.l mli.z mlu.l
88 mlu.z mon.z ngf.l ngf.z ngi.l ngi.z nop.z rck.l
96 rck.z ret.l rmi.l rmi.z rmu.l rmu.z rol.l rol.z
104 ror.l ror.z rtt.z sar.l sar.z sbf.l sbf.z sbi.l
112 sbi.z sbs.l sbs.z sbu.l sbu.z sde.l sdf.l sdl.pw
120 sdl.nw set.l set.z sig.z sil.pw sil.nw sim.z sli.l
128 sli.z slu.l slu.z sri.l sri.z sru.l sru.z sti.l
136 sts.l sts.z str.s0 tge.z tle.z trp.z xor.l xor.z
144 zer.l zer.z zge.l zgt.l zle.l zlt.l zne.l zrf.l
152 zrf.z zrl.pw dch.z exg.s0 exg.l exg.z lpb.z gto.l
.DE 2
Finally, the list of opcodes with four byte arguments (escape2).
.DS
0 loc
.DE 0
.BP
.AP "AN EXAMPLE PROGRAM"
.DS B
1 program example(output);
2 {This program just demonstrates typical EM code.}
3 type rec = record r1: integer; r2:real; r3: boolean end;
4 var mi: integer; mx:real; r:rec;
5
6 function sum(a,b:integer):integer;
7 begin
8 sum := a + b
9 end;
10
11 procedure test(var r: rec);
12 label 1;
13 var i,j: integer;
14 x,y: real;
15 b: boolean;
16 c: char;
17 a: array[1..100] of integer;
18
19 begin
20 j := 1;
21 i := 3 * j + 6;
22 x := 4.8;
23 y := x/0.5;
24 b := true;
25 c := 'z';
26 for i:= 1 to 100 do a[i] := i * i;
27 r.r1 := j+27;
28 r.r3 := b;
29 r.r2 := x+y;
30 i := sum(r.r1, a[j]);
31 while i > 0 do begin j := j + r.r1; i := i - 1 end;
32 with r do begin r3 := b; r2 := x+y; r1 := 0 end;
33 goto 1;
34 1: writeln(j, i:6, x:9:3, b)
35 end; {test}
36 begin {main program}
37 mx := 15.96;
38 mi := 99;
39 test(r)
40 end.
.DE 0
.BP
The EM code as produced by the Pascal-VU compiler is given below. Comments
have been added manually. Note that this code has already been optimized.
.DS B
mes 2,2,2 ; wordsize 2, pointersize 2
.1
rom 't.p\e000' ; the name of the source file
hol 552,-32768,0 ; externals and buf occupy 552 bytes
exp $sum ; sum can be called from other modules
pro $sum,2 ; procedure sum; 2 bytes local storage
lin 8 ; code from source line 8
ldl 0 ; load two locals ( a and b )
adi 2 ; add them
ret 2 ; return the result
end 2 ; end of procedure ( still two bytes local storage )
.2
rom 1,99,2 ; descriptor of array a[]
exp $test ; the compiler exports all level 0 procedures
pro $test,226 ; procedure test, 226 bytes local storage
.3
rom 4.8F8 ; assemble Floating point 4.8 (8 bytes) in
.4 ; global storage
rom 0.5F8 ; same for 0.5
mes 3,-226,2,2 ; compiler temporary not referenced by address
mes 3,-24,2,0 ; the same is true for i, j, b and c in test
mes 3,-22,2,0
mes 3,-4,2,0
mes 3,-2,2,0
mes 3,-20,8,0 ; and for x and y
mes 3,-12,8,0
lin 20 ; maintain source line number
loc 1
stl -4 ; j := 1
lni ; lin 21 prior to optimization
lol -4
loc 3
mli 2
loc 6
adi 2
stl -2 ; i := 3 * j + 6
lni ; lin 22 prior to optimization
lae .3
loi 8
lal -12
sti 8 ; x := 4.8
lni ; lin 23 prior to optimization
lal -12
loi 8
lae .4
loi 8
dvf 8
lal -20
sti 8 ; y := x / 0.5
lni ; lin 24 prior to optimization
loc 1
stl -22 ; b := true
lni ; lin 25 prior to optimization
loc 122
stl -24 ; c := 'z'
lni ; lin 26 prior to optimization
loc 1
stl -2 ; for i:= 1
2
lol -2
dup 2
mli 2 ; i*i
lal -224
lol -2
lae .2
sar 2 ; a[i] :=
lol -2
loc 100
beq *3 ; to 100 do
inl -2 ; increment i and loop
bra *2
3
lin 27
lol -4
loc 27
adi 2 ; j + 27
sil 0 ; r.r1 :=
lni ; lin 28 prior to optimization
lol -22 ; b
lol 0
stf 10 ; r.r3 :=
lni ; lin 29 prior to optimization
lal -20
loi 16
adf 8 ; x + y
lol 0
adp 2
sti 8 ; r.r2 :=
lni ; lin 23 prior to optimization
lal -224
lol -4
lae .2
lar 2 ; a[j]
lil 0 ; r.r1
cal $sum ; call now
asp 4 ; remove parameters from stack
lfr 2 ; get function result
stl -2 ; i :=
4
lin 31
lol -2
zle *5 ; while i > 0 do
lol -4
lil 0
adi 2
stl -4 ; j := j + r.r1
del -2 ; i := i - 1
bra *4 ; loop
5
lin 32
lol 0
stl -226 ; make copy of address of r
lol -22
lol -226
stf 10 ; r3 := b
lal -20
loi 16
adf 8
lol -226
adp 2
sti 8 ; r2 := x + y
loc 0
sil -226 ; r1 := 0
lin 34 ; note the abscence of the unnecesary jump
lae 22 ; address of output structure
lol -4
cal $_wri ; write integer with default width
asp 4 ; pop parameters
lae 22
lol -2
loc 6
cal $_wsi ; write integer width 6
asp 6
lae 22
lal -12
loi 8
loc 9
loc 3
cal $_wrf ; write fixed format real, width 9, precision 3
asp 14
lae 22
lol -22
cal $_wrb ; write boolean, default width
asp 4
lae 22
cal $_wln ; writeln
asp 2
ret 0 ; return, no result
end 226
exp $_main
pro $_main,0 ; main program
.6
con 2,-1,22 ; description of external files
.5
rom 15.96F8
fil .1 ; maintain source file name
lae .6 ; description of external files
lae 0 ; base of hol area to relocate buffer addresses
cal $_ini ; initialize files, etc...
asp 4
lin 37
lae .5
loi 8
lae 2
sti 8 ; mx := 15.96
lni ; lin 38 prior to optimization
loc 99
ste 0 ; mi := 99
lni ; lin 39 prior to optimization
lae 10 ; address of r
cal $test
asp 2
loc 0 ; normal exit
cal $_hlt ; cleanup and finish
asp 2
end 0
mes 5 ; reals were used
.DE 0
The compact code corresponding to the above program is listed below.
Read it horizontally, line by line, not column by column.
Each number represents a byte of compact code, printed in decimal.
The first two bytes form the magic word.
.N 1
.IS 3
.DS B
173 0 159 122 122 122 255 242 1 161 250 124 116 46 112 0
255 156 245 40 2 245 0 128 120 155 249 123 115 117 109 160
249 123 115 117 109 122 67 128 63 120 3 122 88 122 152 122
242 2 161 121 219 122 255 155 249 124 116 101 115 116 160 249
124 116 101 115 116 245 226 0 242 3 161 253 128 123 52 46
56 255 242 4 161 253 128 123 48 46 53 255 159 123 245 30
255 122 122 255 159 123 96 122 120 255 159 123 98 122 120 255
159 123 116 122 120 255 159 123 118 122 120 255 159 123 100 128
120 255 159 123 108 128 120 255 67 140 69 121 113 116 68 73
116 69 123 81 122 69 126 3 122 113 118 68 57 242 3 72
128 58 108 112 128 68 58 108 72 128 57 242 4 72 128 44
128 58 100 112 128 68 69 121 113 98 68 69 245 122 0 113
96 68 69 121 113 118 182 73 118 42 122 81 122 58 245 32
255 73 118 57 242 2 94 122 73 118 69 220 10 123 54 118
18 122 183 67 147 73 116 69 147 3 122 104 120 68 73 98
73 120 111 130 68 58 100 72 136 2 128 73 120 4 122 112
128 68 58 245 32 255 73 116 57 242 2 59 122 65 120 20
249 123 115 117 109 8 124 64 122 113 118 184 67 151 73 118
128 125 73 116 65 120 3 122 113 116 41 118 18 124 185 67
152 73 120 113 245 30 255 73 98 73 245 30 255 111 130 58
100 72 136 2 128 73 245 30 255 4 122 112 128 69 120 104
245 30 255 67 154 57 142 73 116 20 249 124 95 119 114 105
8 124 57 142 73 118 69 126 20 249 124 95 119 115 105 8
126 57 142 58 108 72 128 69 129 69 123 20 249 124 95 119
114 102 8 134 57 142 73 98 20 249 124 95 119 114 98 8
124 57 142 20 249 124 95 119 108 110 8 122 88 120 152 245
226 0 155 249 125 95 109 97 105 110 160 249 125 95 109 97
105 110 120 242 6 151 122 119 142 255 242 5 161 253 128 125
49 53 46 57 54 255 50 242 1 57 242 6 57 120 20 249
124 95 105 110 105 8 124 67 157 57 242 5 72 128 57 122
112 128 68 69 219 110 120 68 57 130 20 249 124 116 101 115
116 8 122 69 120 20 249 124 95 104 108 116 8 122 152 120
159 124 160 255 159 125 255
.DE 0
.IE
.MS T A 0
.ME
.BP
.MS B A 0
.ME
.CT

View File

@@ -1,762 +0,0 @@
.BP
.SN 11
.S1 "EM ASSEMBLY LANGUAGE"
We use two representations for assembly language programs,
one is in ASCII and the other is the compact assembly language.
The latter needs less space than the first for the same program
and therefore allows faster processing.
Our only program accepting ASCII assembly
language converts it to the compact form.
All other programs expect compact assembly input.
The first part of the chapter describes the ASCII assembly
language and its semantics.
The second part describes the syntax of the compact assembly
language.
The last part lists the EM instructions with the type of
arguments allowed and an indication of the function.
Appendix A gives a detailed description of the effect of all
instructions in the form of a Pascal program.
.S2 "ASCII assembly language"
An assembly language program consists of a series of lines, each
line may be blank, contain one (pseudo)instruction or contain one
label.
Input to the assembler is in lower case.
Upper case is used in this
document merely to distinguish keywords from the surrounding prose.
Comment is allowed at the end of each line and starts with a semicolon ";".
This kind of comment does not exist in the compact form.
.A
Labels must be placed all by themselves on a line and start in
column 1.
There are two kinds of labels, instruction and data labels.
Instruction labels are unsigned positive integers.
The scope of an instruction label is its procedure.
.A
The pseudoinstructions CON, ROM and BSS may be preceded by a
line containing a
1-8 character data label, the first character of which is a
letter, period or underscore.
The period may only be followed by
digits, the others may be followed by letters, digits and underscores.
The use of the character "." followed by a constant,
which must be in the range 1 to 32767 (e.g. ".40") is recommended
for compiler
generated programs.
These labels are considered as a special case and handled
more efficiently in compact assembly language (see below).
Note that a data label on its own or two consecutive labels are not
allowed.
.P
Each statement may contain an instruction mnemonic or pseudoinstruction.
These must begin in column 2 or later (not column 1) and must be followed
by a space, tab, semicolon or LF.
Everything on the line following a semicolon is
taken as a comment.
.P
Each input file contains one module.
A module may contain many procedures,
which may be nested.
A procedure consists of
a PRO statement, a (possibly empty)
collection of instructions and pseudoinstructions and finally an END
statement.
Pseudoinstructions are also allowed between procedures.
They do not belong to a specific procedure.
.P
All constants in EM are interpreted in the decimal base.
The ASCII assembly language accepts constant expressions
wherever constants are allowed.
The operators recognized are: +, -, *, % and / with the usual
precedence order.
Use of the parentheses ( and ) to alter the precedence order is allowed.
.S3 "Instruction arguments"
Unlike many other assembly languages, the EM assembly
language requires all arguments of normal and pseudoinstructions
to be either a constant or an identifier, but not a combination
of these two.
There is one exception to this rule: when a data label is used
for initialization or as an instruction argument,
expressions of the form 'label+constant' and 'label-constant'
are allowed.
This makes it possible to address, for example, the
third word of a ten word BSS block
directly.
Thus LOE LABEL+4 is permitted and so is CON LABEL+3.
The resulting address is must be in the same fragment as the label.
It is not allowed to add or subtract from instruction labels or procedure
identifiers,
which certainly is not a severe restriction and greatly aids
optimization.
.P
Instruction arguments can be constants,
data labels, data labels offsetted by a constant, instruction
labels and procedure identifiers.
The range of integers allowed depends on the instruction.
Most instructions allow only integers
(signed or unsigned)
that fit in a word.
Arguments used as offsets to pointers should fit in a
pointer-sized integer.
Finally, arguments to LDC should fit in a double-word integer.
.P
Several instructions have two possible forms:
with an explicit argument and with an implicit argument on top of the stack.
The size of the implicit argument is the wordsize.
The implicit argument is always popped before all other operands.
For example: 'CMI 4' specifies that two four-byte signed
integers on top of the stack are to be compared.
\&'CMI' without an argument expects a wordsized integer
on top of the stack that specifies the size of the integers to
be compared.
Thus the following two sequences are equivalent:
.N 2
.TS
center, tab(:) ;
l r 30 l r.
LDL:-10:LDL:-10
LDL:-14:LDL:-14
::LOC:4
CMI:4:CMI:
ZEQ:*1:ZEQ:*1
.TE 2
Section 11.1.6 shows the arguments allowed for each instruction.
.S3 "Pseudoinstruction arguments"
Pseudoinstruction arguments can be divided in two classes:
Initializers and others.
The following initializers are allowed: signed integer constants,
unsigned integer constants, floating-point constants, strings,
data labels, data labels offsetted by a constant, instruction
labels and procedure identifiers.
.P
Constant initializers in BSS, HOL, CON and ROM pseudoinstructions
can be followed by a letter I, U or F.
This indicator
specifies the type of the initializer: Integer, Unsigned or Float.
If no indicator is present I is assumed.
The size of the initializer is the wordsize unless
the indicator is followed by an integer specifying the
initializer's size.
This integer is governed by the same restrictions as for
transfer of objects to/from memory.
As in instruction arguments, initializers include expressions of the form:
\&"LABEL+offset" and "LABEL-offset".
The offset must be an unsigned decimal constant.
The 'IUF' indicators cannot be used in the offsets.
.P
Data labels are referred to by their name.
.P
Strings are surrounded by double quotes (").
Semicolon's in string do not indicate the start of comment.
In the ASCII representation the escape character \e (backslash)
alters the meaning of subsequent character(s).
This feature allows inclusion of zeroes, graphic characters and
the double quote in the string.
The following escape sequences exist:
.DS
.TS
center, tab(:);
l l l.
newline:NL\|(LF):\en
horizontal tab:HT:\et
backspace:BS:\eb
carriage return:CR:\er
form feed:FF:\ef
backslash:\e:\e\e
double quote:":\e"
bit pattern:\fBddd\fP:\e\fBddd\fP
.TE
.DE
The escape \fBddd\fP consists of the backslash followed by 1,
2, or 3 octal digits specifing the value of
the desired character.
If the character following a backslash is not one of those
specified,
the backslash is ignored.
Example: CON "hello\e012\e0".
Each string element initializes a single byte.
The ASCII character set is used to map characters onto values.
.P
Instruction labels are referred to as *1, *2, etc. in both branch
instructions and as initializers.
.P
The notation $procname means the identifier for the procedure
with the specified name.
This identifier has the size of a pointer.
.S3 Notation
First, the notation used for the arguments, classes of
instructions and pseudoinstructions.
.IS 2
.TS
tab(:);
l l l.
<cst>:\&=:integer constant (current range -2**31..2**31-1)
<dlb>:\&=:data label
<arg>:\&=:<cst> or <dlb> or <dlb>+<cst> or <dlb>-<cst>
<con>:\&=:integer constant, unsigned constant, floating-point constant
<str>:\&=:string constant (surrounded by double quotes),
<ilb>:\&=:instruction label
::'*' followed by an integer in the range 0..32767.
<pro>:\&=:procedure number ('$' followed by a procedure name)
<val>:\&=:<arg>, <con>, <pro> or <ilb>.
<par>:\&=:<val> or <str>
<...>*:\&=:zero or more of <...>
<...>+:\&=:one or more of <...>
[...]:\&=:optional ...
.TE
.IE
.S3 "Pseudoinstructions"
.S4 Storage declaration
Initialized global data is allocated by the pseudoinstruction CON,
which needs at least one argument.
Each argument is used to allocate and initialize a number of
consequtive bytes in data memory.
The number of bytes to be allocated and the alignment depend on the type
of the argument.
For each argument, an integral number of words,
determined by the argument type, is allocated and initialized.
.P
The pseudoinstruction ROM is the same as CON,
except that it guarantees that the initialized words
will not change during the execution of the program.
This information allows optimizers to do
certain calculations such as array indexing and
subrange checking at compile time instead
of at run time.
.P
The pseudoinstruction BSS allocates
uninitialized global data or large blocks of data initialized
by the same value.
The first argument to this pseudo is the number
of bytes required, which must be a multiple of the wordsize.
The other arguments specify the value used for initialization and
whether the initialization is only for convenience or a strict necessity.
The pseudoinstruction HOL is similar to BSS in that it requests an
(un)initialized global data block.
Addressing of a HOL block, however, is quasi absolute.
The first byte is addressed by 0,
the second byte by 1 etc. in assembly language.
The assembler/loader adds the base address of
the HOL block to these numbers to obtain the
absolute address in the machine language.
.P
The scope of a HOL block starts at the HOL pseudo and
ends at the next HOL pseudo or at the end of a module
whatever comes first.
Each instruction falls in the scope of at most one
HOL block, the current HOL block.
It is not allowed to have more than one HOL block per procedure.
.P
The alignment restrictions are enforced by the
pseudoinstructions.
All initializers are aligned on a multiple of their size or the wordsize
whichever is smaller.
Strings form an exception, they are to be seen as a sequence of initializers
each for one byte, i.e. strings are not padded with zero bytes.
Switching to another type of fragment or placing a label forces
word-alignment.
There are three types of fragments in global data space: CON, ROM and
BSS/HOL.
.N 2
.IS 2
.PS - 4
.PT "BSS <cst1>,<val>,<cst2>"
Reserve <cst1> bytes.
<val> is the value used to initialize the area.
<cst1> must be a multiple of the size of <val>.
<cst2> is 0 if the initialization is not strictly necessary,
1 if it is.
.PT "HOL <cst1>,<val>,<cst2>"
Idem, but all following absolute global data references will
refer to this block.
Only one HOL is allowed per procedure,
it has to be placed before the first instruction.
.PT "CON <val>+"
Assemble global data words initialized with the <val> constants.
.PT "ROM <val>+"
Idem, but the initialized data will never be changed by the program.
.PE
.IE
.S4 Partitioning
Two pseudoinstructions partition the input into procedures:
.IS 2
.PS - 4
.PT "PRO <pro>[,<cst>]"
Start of procedure.
<pro> is the procedure name.
<cst> is the number of bytes for locals.
The number of bytes for locals must be specified in the PRO or
END pseudoinstruction.
When specified in both, they must be identical.
.PT "END [<cst>]"
End of Procedure.
<cst> is the number of bytes for locals.
The number of bytes for locals must be specified in either the PRO or
END pseudoinstruction or both.
.PE
.IE
.S4 Visibility
Names of data and procedures in an EM module can either be
internal or external.
External names are known outside the module and are used to link
several pieces of a program.
Internal names are not known outside the modules they are used in.
Other modules will not 'see' an internal name.
.A
To reduce the number of passes needed,
it must be known at the first occurrence whether
a name is internal or external.
If the first occurrence of a name is in a definition,
the name is considered to be internal.
If the first occurrence of a name is a reference,
the name is considered to be external.
If the first occurrence is in one of the following pseudoinstructions,
the effect of the pseudo has precedence.
.IS 2
.PS - 4
.PT "EXA <dlb>"
External name.
<dlb> is known, possibly defined, outside this module.
Note that <dlb> may be defined in the same module.
.PT "EXP <pro>"
External procedure identifier.
Note that <pro> may be defined in the same module.
.PT "INA <dlb>"
Internal name.
<dlb> is internal to this module and must be defined in this module.
.PT "INP <pro>"
Internal procedure.
<pro> is internal to this module and must be defined in this module.
.PE
.IE
.S4 Miscellaneous
Two other pseudoinstructions provide miscellaneous features:
.IS 2
.PS - 4
.PT "EXC <cst1>,<cst2>"
Two blocks of instructions preceding this one are
interchanged before being processed.
<cst1> gives the number of lines of the first block.
<cst2> gives the number of lines of the second one.
Blank and pure comment lines do not count.
.PT "MES <cst>[,<par>]*"
A special type of comment.
Used by compilers to communicate with the
optimizer, assembler, etc. as follows:
.VS 1 0
.PS - 4
.PT "MES 0"
An error has occurred, stop further processing.
.PT "MES 1"
Suppress optimization.
.PT "MES 2,<cst1>,<cst2>"
Use wordsize <cst1> and pointer size <cst2>.
.PT "MES 3,<cst1>,<cst2>,<cst3>,<cst4>"
Indicates that a local variable is never referenced indirectly.
Used to indicate that a register may be used for a specific
variable.
<cst1> is offset in bytes from AB if positive
and offset from LB if negative.
<cst2> gives the size of the variable.
<cst3> indicates the class of the variable.
The following values are currently recognized:
.PS
.PT 0
The variable can be used for anything.
.PT 1
The variable is used as a loopindex.
.PT 2
The variable is used as a pointer.
.PT 3
The variable is used as a floating point number.
.PE 0
<cst4> gives the priority of the variable,
higher numbers indicate better candidates.
.PT "MES 4,<cst>,<str>"
Number of source lines in file <str> (for profiler).
.PT "MES 5"
Floating point used.
.PT "MES 6,<val>*"
Comment. Used to provide comments in compact assembly language.
.PT "MES 7,....."
Reserved.
.PT "MES 8,<pro>[,<dlb>]..."
Library module. Indicates that the module may only be loaded
if it is useful, that is, if it can satisfy any unresolved
references during the loading process.
May not be preceded by any other pseudo, except MES's.
.PT "MES 9,<cst>"
Guarantees that no more than <cst> bytes of parameters are
accessed, either directly or indirectly.
.PE 1
.VS 1 1
Each backend is free to skip irrelevant MES pseudos.
.PE
.IE
.S2 "The Compact Assembly Language"
The assembler accepts input in a highly encoded form.
This
form is intended to reduce the amount of file transport between the
front ends, optimizers
and back ends, and also reduces the amount of storage required for storing
libraries.
Libraries are stored as archived compact assembly language, not machine
language.
.P
When beginning to read the input, the assembler is in neutral state, and
expects either a label or an instruction (including the pseudoinstructions).
The meaning of the next byte(s) when in neutral state is as follows, where
b1, b2
etc. represent the succeeding bytes.
.N 1
.DS
.TS
tab(:) ;
rw17 4 l.
0:Reserved for future use
1-129:Machine instructions, see Appendix A, alphabetical list
130-149:Reserved for future use
150-161:BSS,CON,END,EXA,EXC,EXP,HOL,INA,INP,MES,PRO,ROM
162-179:Reserved for future pseudoinstructions
180-239:Instruction labels 0 - 59 (180 is local label 0 etc.)
240-244:See the Common Table below
245-255:Not used
.TE 1
.DE 0
After a label, the assembler is back in neutral state; it can immediately
accept another label or an instruction in the next byte.
No linefeeds are used to separate lines.
.P
If an opcode expects no arguments,
the assembler is back in neutral state after
reading the one byte containing the instruction number.
If it has one or
more arguments (only pseudos have more than 1), the arguments follow directly,
encoded as follows:
.N 1
.IS 2
.TS
tab(:);
r l.
0-239:Offsets from -120 to 119
240-255:See the Common Table below
.TE 1
Absence of an optional argument is indicated by a special
byte.
.IE 2
.CS
Common Table for Neutral State and Arguments
.CE
.TS
tab(:);
c c s c
l8 l l8 l.
class:bytes:description
<ilb>:240:b1:Instruction label b1 (Not used for branches)
<ilb>:241:b1 b2:16 bit instruction label (256*b2 + b1)
<dlb>:242:b1:Global label .0-.255, with b1 being the label
<dlb>:243:b1 b2:Global label .0-.32767
:::with 256*b2+b1 being the label
<dlb>:244:<string>:Global symbol not of the form .nnn
<cst>:245:b1 b2:16 bit constant
<cst>:246:b1 b2 b3 b4:32 bit constant
<cst>:247:b1 .. b8:64 bit constant
<arg>:248:<dlb><cst>:Global label + (possibly negative) constant
<pro>:249:<string>:Procedure name (not including $)
<str>:250:<string>:String used in CON or ROM (no quotes-no escapes)
<con>:251:<cst><string>:Integer constant, size <cst> bytes
<con>:252:<cst><string>:Unsigned constant, size <cst> bytes
<con>:253:<cst><string>:Floating constant, size <cst> bytes
:254::unused
<end>:255::Delimiter for argument lists or
:::indicates absence of optional argument
.TE 1
.P
The bytes specifying the value of a 16, 32 or 64 bit constant
are presented in two's complement notation, with the least
significant byte first. For example: the value of a 32 bit
constant is ((s4*256+b3)*256+b2)*256+b1, where s4 is b4-256 if
b4 is greater than 128 else s4 takes the value of b4.
A <string> consists of a <cst> inmediatly followed by
a sequence of bytes with length <cst>.
.P
.ne 8
The pseudoinstructions fall into several categories, depending on their
arguments:
.N 1
.DS
Group 1 -- EXC, BSS, HOL have a known number of arguments
Group 2 -- EXA, EXP, INA, INP have a string as argument
Group 3 -- CON, MES, ROM have a variable number of various things
Group 4 -- END, PRO have a trailing optional argument.
.DE 1
Groups 1 and 2
use the encoding described above.
Group 3 also uses the encoding listed above, with an <end> byte after the
last argument to indicate the end of the list.
Group 4 uses
an <end> byte if the trailing argument is not present.
.N 2
.IS 2
.TS
tab(|);
l s l
l s s
l 2 lw(46) l.
Example ASCII|Example compact
(LOC = 69, BRA = 18 here):
2||182
1||181
LOC|10|69 130
LOC|-10|69 110
LOC|300|69 245 44 1
BRA|*19|18 139
300||241 44 1
.3||242 3
CON|4,9,*2,$foo|151 124 129 240 2 249 123 102 111 111 255
CON|.35|151 242 35 255
.TE 0
.IE 0
.BP
.S2 "Assembly language instruction list"
.P
For each instruction in the list the range of argument values
in the assembly language is given.
The column headed \fIassem\fP contains the mnemonics defined
in 11.1.3.
The following column specifies restrictions of the argument
value.
Addresses have to obey the restrictions mentioned in chapter 2.
The classes of arguments
are indicated by letters:
.ds b \fBb\fP
.ds c \fBc\fP
.ds d \fBd\fP
.ds g \fBg\fP
.ds f \fBf\fP
.ds l \fBl\fP
.ds n \fBn\fP
.ds w \fBw\fP
.ds p \fBp\fP
.ds r \fBr\fP
.ds s \fBs\fP
.ds z \fBz\fP
.ds o \fBo\fP
.ds - \fB-\fP
.N 1
.TS
tab(:);
c s l l
l l 15 l l.
\fIassem\fP:constraints:rationale
\&\*c:cst:fits word:constant
\&\*d:cst:fits double word:constant
\&\*l:cst::local offset
\&\*g:arg:>= 0:global offset
\&\*f:cst::fragment offset
\&\*n:cst:>= 0:counter
\&\*s:cst:>0 , word multiple:object size
\&\*z:cst:>= 0 , zero or word multiple:object size
\&\*o:cst:>= 0 , word multiple or fraction:object size
\&\*w:cst:> 0 , word multiple:object size *
\&\*p:pro::pro identifier
\&\*b:ilb:>= 0:label number
\&\*r:cst:0,1,2:register number
\&\*-:::no argument
.TE 1
.P
The * at the rationale for \*w indicates that the argument
can either be given as argument or on top of the stack.
If the argument is omitted, the argument is fetched from the
stack;
it is assumed to be a wordsized unsigned integer.
Instructions that check for undefined integer or floating-point
values and underflow or overflow
are indicated below by (*).
.N 1
.DS B
GROUP 1 - LOAD
LOC \*c : Load constant (i.e. push one word onto the stack)
LDC \*d : Load double constant ( push two words )
LOL \*l : Load word at \*l-th local (\*l<0) or parameter (\*l>=0)
LOE \*g : Load external word \*g
LIL \*l : Load word pointed to by \*l-th local or parameter
LOF \*f : Load offsetted (top of stack + \*f yield address)
LAL \*l : Load address of local or parameter
LAE \*g : Load address of external
LXL \*n : Load lexical (address of LB \*n static levels back)
LXA \*n : Load lexical (address of AB \*n static levels back)
LOI \*o : Load indirect \*o bytes (address is popped from the stack)
LOS \*w : Load indirect, \*w-byte integer on top of stack gives object size
LDL \*l : Load double local or parameter (two consecutive words are stacked)
LDE \*g : Load double external (two consecutive externals are stacked)
LDF \*f : Load double offsetted (top of stack + \*f yield address)
LPI \*p : Load procedure identifier
GROUP 2 - STORE
STL \*l : Store local or parameter
STE \*g : Store external
SIL \*l : Store into word pointed to by \*l-th local or parameter
STF \*f : Store offsetted
STI \*o : Store indirect \*o bytes (pop address, then data)
STS \*w : Store indirect, \*w-byte integer on top of stack gives object size
SDL \*l : Store double local or parameter
SDE \*g : Store double external
SDF \*f : Store double offsetted
GROUP 3 - INTEGER ARITHMETIC
ADI \*w : Addition (*)
SBI \*w : Subtraction (*)
MLI \*w : Multiplication (*)
DVI \*w : Division (*)
RMI \*w : Remainder (*)
NGI \*w : Negate (two's complement) (*)
SLI \*w : Shift left (*)
SRI \*w : Shift right (*)
GROUP 4 - UNSIGNED ARITHMETIC
ADU \*w : Addition
SBU \*w : Subtraction
MLU \*w : Multiplication
DVU \*w : Division
RMU \*w : Remainder
SLU \*w : Shift left
SRU \*w : Shift right
GROUP 5 - FLOATING POINT ARITHMETIC
ADF \*w : Floating add (*)
SBF \*w : Floating subtract (*)
MLF \*w : Floating multiply (*)
DVF \*w : Floating divide (*)
NGF \*w : Floating negate (*)
FIF \*w : Floating multiply and split integer and fraction part (*)
FEF \*w : Split floating number in exponent and fraction part (*)
GROUP 6 - POINTER ARITHMETIC
ADP \*f : Add \*f to pointer on top of stack
ADS \*w : Add \*w-byte value and pointer
SBS \*w : Subtract pointers in same fragment and push diff as size \*w integer
GROUP 7 - INCREMENT/DECREMENT/ZERO
INC \*- : Increment word on top of stack by 1 (*)
INL \*l : Increment local or parameter (*)
INE \*g : Increment external (*)
DEC \*- : Decrement word on top of stack by 1 (*)
DEL \*l : Decrement local or parameter (*)
DEE \*g : Decrement external (*)
ZRL \*l : Zero local or parameter
ZRE \*g : Zero external
ZRF \*w : Load a floating zero of size \*w
ZER \*w : Load \*w zero bytes
GROUP 8 - CONVERT (stack: source, source size, dest. size (top))
CII \*- : Convert integer to integer (*)
CUI \*- : Convert unsigned to integer (*)
CFI \*- : Convert floating to integer (*)
CIF \*- : Convert integer to floating (*)
CUF \*- : Convert unsigned to floating (*)
CFF \*- : Convert floating to floating (*)
CIU \*- : Convert integer to unsigned
CUU \*- : Convert unsigned to unsigned
CFU \*- : Convert floating to unsigned
GROUP 9 - LOGICAL
AND \*w : Boolean and on two groups of \*w bytes
IOR \*w : Boolean inclusive or on two groups of \*w bytes
XOR \*w : Boolean exclusive or on two groups of \*w bytes
COM \*w : Complement (one's complement of top \*w bytes)
ROL \*w : Rotate left a group of \*w bytes
ROR \*w : Rotate right a group of \*w bytes
GROUP 10 - SETS
INN \*w : Bit test on \*w byte set (bit number on top of stack)
SET \*w : Create singleton \*w byte set with bit n on (n is top of stack)
GROUP 11 - ARRAY
LAR \*w : Load array element, descriptor contains integers of size \*w
SAR \*w : Store array element
AAR \*w : Load address of array element
GROUP 12 - COMPARE
CMI \*w : Compare \*w byte integers, Push negative, zero, positive for <, = or >
CMF \*w : Compare \*w byte reals
CMU \*w : Compare \*w byte unsigneds
CMS \*w : Compare \*w byte values, can only be used for bit for bit equality test
CMP \*- : Compare pointers
TLT \*- : True if less, i.e. iff top of stack < 0
TLE \*- : True if less or equal, i.e. iff top of stack <= 0
TEQ \*- : True if equal, i.e. iff top of stack = 0
TNE \*- : True if not equal, i.e. iff top of stack non zero
TGE \*- : True if greater or equal, i.e. iff top of stack >= 0
TGT \*- : True if greater, i.e. iff top of stack > 0
GROUP 13 - BRANCH
BRA \*b : Branch unconditionally to label \*b
BLT \*b : Branch less (pop 2 words, branch if top > second)
BLE \*b : Branch less or equal
BEQ \*b : Branch equal
BNE \*b : Branch not equal
BGE \*b : Branch greater or equal
BGT \*b : Branch greater
ZLT \*b : Branch less than zero (pop 1 word, branch negative)
ZLE \*b : Branch less or equal to zero
ZEQ \*b : Branch equal zero
ZNE \*b : Branch not zero
ZGE \*b : Branch greater or equal zero
ZGT \*b : Branch greater than zero
GROUP 14 - PROCEDURE CALL
CAI \*- : Call procedure (procedure identifier on stack)
CAL \*p : Call procedure (with identifier \*p)
LFR \*s : Load function result
RET \*z : Return (function result consists of top \*z bytes)
GROUP 15 - MISCELLANEOUS
ASP \*f : Adjust the stack pointer by \*f
ASS \*w : Adjust the stack pointer by \*w-byte integer
BLM \*z : Block move \*z bytes; first pop destination addr, then source addr
BLS \*w : Block move, size is in \*w-byte integer on top of stack
CSA \*w : Case jump; address of jump table at top of stack
CSB \*w : Table lookup jump; address of jump table at top of stack
DCH \*- : Follow dynamic chain, convert LB to LB of caller
DUP \*s : Duplicate top \*s bytes
DUS \*w : Duplicate top \*w bytes
EXG \*w : Exchange top \*w bytes
FIL \*g : File name (external 4 := \*g)
GTO \*g : Non-local goto, descriptor at \*g
LIM \*- : Load 16 bit ignore mask
LIN \*n : Line number (external 0 := \*n)
LNI \*- : Line number increment
LOR \*r : Load register (0=LB, 1=SP, 2=HP)
LPB \*- : Convert local base to argument base
MON \*- : Monitor call
NOP \*- : No operation
RCK \*w : Range check; trap on error
RTT \*- : Return from trap
SIG \*- : Trap errors to proc identifier on top of stack, -2 resets default
SIM \*- : Store 16 bit ignore mask
STR \*r : Store register (0=LB, 1=SP, 2=HP)
TRP \*- : Cause trap to occur (Error number on stack)
.DE 0

View File

@@ -1,163 +0,0 @@
.SN 7
.BP
.S1 "DESCRIPTORS"
Several instructions use descriptors, notably the range check instruction,
the array instructions, the goto instruction and the case jump instructions.
Descriptors reside in data space.
They may be constructed at run time, but
more often they are fixed and allocated in ROM data.
.P
All instructions using descriptors, except GTO, have as argument
the size of the integers in the descriptor.
All implementations have to allow integers of the size of a
word in descriptors.
All integers popped from the stack and used for indexing or comparing
must have the same size as the integers in the descriptor.
.S2 "Range check descriptors"
Range check descriptors consist of two integers:
.IS 2
.PS 1 4 "" .
.PT
lower bound~~~~~~~signed
.PT
upper bound~~~~~~~signed
.PE
.IE
The range check instruction checks an integer on the stack against
these bounds and causes a trap if the value is outside the interval.
The value itself is neither changed nor removed from the stack.
.S2 "Array descriptors"
Each array descriptor describes a single dimension.
For multi-dimensional arrays, several array instructions are
needed to access a single element.
Array descriptors contain the following three integers:
.IS 2
.PS 1 4 "" .
.PT
lower bound~~~~~~~~~~~~~~~~~~~~~signed
.PT
upper bound - lower bound~~~~~~~unsigned
.PT
number of bytes per element~~~~~unsigned
.PE
.IE
The array instructions LAR, SAR and AAR have the pointer to the start
of the descriptor as operand on the stack.
.sp
The element A[I] is fetched as follows:
.IS 2
.PS 1 4 "" .
.PT
Stack the address of A (e.g., using LAE or LAL)
.PT
Stack the value of I (n-byte integer)
.PT
Stack the pointer to the descriptor (e.g., using LAE)
.PT
LAR n (n is the size of the integers in the descriptor and I)
.PE
.IE
All array instructions first pop the address of the descriptor
and the index.
If the index is not within the bounds specified, a trap occurs.
If ok, (I~-~lower bound) is multiplied
by the number of bytes per element (the third word). The result is added
to the address of A and replaces A on the stack.
.A
At this point LAR, SAR and AAR diverge.
AAR is finished. LAR pops the address and fetches the data
item,
the size being specified by the descriptor.
The usual restrictions for memory access must be obeyed.
SAR pops the address and stores the
data item now exposed.
.S2 "Non-local goto descriptors"
The GTO instruction provides a way of returning directly to any
active procedure invocation.
The argument of the instruction is the address of a descriptor
containing three pointers:
.IS 2
.PS 1 4 "" .
.PT
value of PC after the jump
.PT
value of SP after the jump
.PT
value of LB after the jump
.PE
.IE
GTO replaces the loads PC, SP and LB from the descriptor,
thereby jumping to a procedure
and removing zeor or more frames from the stack.
The LB, SP and PC in the descriptor must belong to a
dynamically enclosing procedure,
because some EM implementations will need to backtrack through
the dynamic chain and use the implementation dependent data
in frames to restore registers etc.
.S2 "Case descriptors"
The case jump instructions CSA and CSB both
provide multiway branches selected by a case index.
Both fetch two operands from the stack:
first a pointer to the low address of the case descriptor
and then the case index.
CSA uses the case index as index in the descriptor table, but CSB searches
the table for an occurrence of the case index.
Therefore, the descriptors for CSA and CSB,
as shown in figure 4, are different.
All pointers in the table must be addresses of instructions in the
procedure executing the case instruction.
.P
CSA selects the new PC by indexing.
If the index, a signed integer, is greater than or equal to
the lower bound and less than or equal to the upper bound,
then fetch the new PC from the list of instruction pointers by indexing with
index-lower.
The table does not contain the value of the upper bound,
but the value of upper-lower as an unsigned integer.
The default instruction pointer is used when the index is out of bounds.
If the resulting PC is 0, then trap.
.P
CSB selects the new PC by searching.
The table is searched for an entry with index value equal to the case index.
That entry or, if none is found, the default entry contains the
new PC.
When the resulting PC is 0, a trap is performed.
.P
The choice of which case instruction to use for
each source language case statement
is up to the front end.
If the range of the index value is dense, i.e
.DS
(highest value - lowest value) / number of cases
.DE 1
is less than some threshold, then CSA is the obvious choice.
If the range is sparse, CSB is better.
.N 2
.DS
|--------------------| |--------------------| high address
| pointer for upb | | pointer n-1 |
|--------------------| |- - - - - - - |
| . | | index n-1 |
| . | |--------------------|
| . | | . |
| . | | . |
| . | | . |
| . | |--------------------|
| . | | pointer 1 |
|--------------------| |- - - - - - - |
| pointer for lwb+1 | | index 1 |
|--------------------| |--------------------|
| pointer for lwb | | pointer 0 |
|--------------------| |- - - - - - - |
| upper - lower | | index 0 |
|--------------------| |--------------------|
| lower bound | | number of entries |
|--------------------| |--------------------|
| default pointer | | default pointer | low address
|--------------------| |--------------------|
CSA descriptor CSB descriptor
Figure 4. Descriptor layout for CSA and CSB
.DE

View File

@@ -1,377 +0,0 @@
.BP
.SN 4
.S1 "DATA ADDRESS SPACE"
The data address space is divided into three parts, called 'areas',
each with its own addressing method:
global data area,
local data area (including the stack),
and heap data area.
These data areas must be part of the same
address space because all data is accessed by
the same type of pointers.
.P
Space for global data is reserved using several pseudoinstructions in the
assembly language, as described in
the next paragraph and chapter 11.
The size of the global data area is fixed per program.
.A
Global data is addressed absolutely in the machine language.
Many instructions are available to address global data.
They all have an absolute address as argument.
Examples are LOE, LAE and STE.
.P
Part of the global data area is initialized by the
compiler, the
rest is not initialized at all or is initialized
with a value, typically -32768 or 0.
Part of the initialized global data may be made read-only
if the implementation supports protection.
.P
The local data area is used as a stack,
which grows from high to low addresses
and contains some data for each active procedure
invocation, called a 'frame'.
The size of the local data area varies dynamically during
execution.
Below the current procedure frame resides the operand stack.
The stack pointer SP always points to the bottom of
the local data area.
Local data is addressed by offsetting from the local base pointer LB.
LB always points to the frame of the current procedure.
Only the words of the current frame and the parameters
can be addressed directly.
Variables in other active procedures are addressed by following
the chain of statically enclosing procedures using the LXL or LXA instruction.
The variables in dynamically enclosing procedures can be
addressed with the use of the DCH instruction.
.A
Many instructions have offsets to LB as argument,
for instance LOL, LAL and STL.
The arguments of these instructions range from -1 to some
(negative) minimum
for the access of local storage and from 0 to some (positive)
maximum for parameter access.
.P
The procedure call instructions CAL and CAI each create a new frame
on the stack.
Each procedure has an assembly-time parameter specifying
the number of bytes needed for local storage.
This storage is allocated each time the procedure is called and
must be a multiple of the wordsize.
Each procedure, therefore, starts with a stack with the local variables
already allocated.
The return instructions RET and RTT remove a frame.
The actual parameters must be removed by the calling procedure.
.P
RET may copy some words from the stack of
the returning procedure to an unnamed 'function return area'.
This area is available for 'READ-ONCE' access using the LFR instruction.
The result of a LFR is only defined if the size used to fetch
is identical to the size used in the last return.
The instruction ASP, used to remove the parameters from the
stack, the branch instruction BRA and the non-local goto
instrucion GTO are the only ones that leave the contents of
the 'function return area' intact.
All other instructions are allowed to destroy the function
return area.
Thus parameters can be popped before fetching the function result.
The maximum size of all function return areas is
implementation dependent,
but should allow procedure instance identifiers and all
implemented objects of type integer, unsigned, float
and pointer to be returned.
In most implementations
the maximum size of the function return
area is twice the pointer size,
because we want to be able to handle 'procedure instance
identifiers' which consist of a procedure identifier and the LB
of a frame belonging to that procedure.
.P
The heap data area grows upwards, to higher numbered
addresses.
It is initially empty.
The initial value of the heap pointer HP
marks the low end.
The heap pointer may be manipulated
by the LOR and STR instructions.
The heap can only be addressed indirectly,
by pointers derived from previous values of HP.
.S2 "Global data area"
The initial size of the global data area is determined at assembly time.
Global data is allocated by several
pseudoinstructions in the EM assembly
language.
Each pseudoinstruction allocates one or more bytes.
The bytes allocated for a single pseudo form
a 'block'.
A block differs from a fragment, because,
under certain conditions, several blocks are allocated
in a single fragment.
This guarantees that the bytes of these blocks
are consecutive.
.P
Global data is addressed absolutely in binary
machine language.
Most compilers, however,
cannot assign absolute addresses to their global variables,
especially not if the language
allows programs to be composed of several separately compiled modules.
The assembly language therefore allows the compiler to name
the first address of a global data block with an alphanumeric label.
Moreover, the only way to address such a named global data block
in the assembly language is by using its name.
It is the task of the assembler/loader to
translate these labels into absolute addresses.
These labels may also be used
in CON and ROM pseudoinstructions to initialize pointers.
.P
The pseudoinstruction CON allocates initialized data.
ROM acts like CON but indicates that the initialized data will
not change during execution of the program.
The pseudoinstruction BSS allocates a block of uninitialized
or identically initialized
data.
The pseudoinstruction HOL is similar to BSS,
but it alters the meaning of subsequent absolute addressing in
the assembly language.
.P
Another type of global data is a small block,
called the ABS block, with an implementation defined size.
Storage in this type of block can only be addressed
absolutely in assembly language.
The first word has address 0 and is used to maintain the
source line number.
Special instructions LIN and LNI are provided to
update this counter.
A pointer at location 4 points to a string containing the
current source file name.
The instruction FIL can be used to update the pointer.
.P
All numeric arguments of the instructions that address
the global data area refer to locations in the
ABS block unless
they are preceded by at least one HOL pseudo in the same
module,
in which case they refer to the storage area allocated by the
last HOL pseudoinstruction.
Thus LOE 0 loads the zeroth word of the most recent HOL, unless no HOL has
appeared in the current file so
far, in which case it loads the zeroth word of the
ABS fragment.
.P
The global data area is highly fragmented.
The ABS block and each HOL and BSS block are separate fragments.
The way fragments are formed from CON and ROM blocks is more complex.
The assemblers group several blocks into a single fragment.
A fragment only contains blocks of the same type: CON or ROM.
It is guaranteed that the bytes allocated for two consecutive CON pseudos are
allocated consecutively in a single fragment, unless
these CON pseudos are separated in the assembly language program
by a data label definition or one or more of the following pseudos:
.DS
ROM, BSS, HOL and END
.DE
An analogous rule holds for ROM pseudos.
.S2 "Local data area"
The local data area consists of a sequence of frames, one for
each active procedure.
Below the frame of the current procedure resides the
expression stack.
Frames are generated by procedure calls and are
removed by procedure returns.
A procedure frame consists of six 'zones':
.DS
1. The return status block
2. The local variables and compiler temporaries
3. The register save block
4. The dynamic local generators
5. The operand stack.
6. The parameters of a procedure one level deeper
.DE
A sample frame is shown in Figure 1.
.P
Before a procedure call is performed the actual
parameters are pushed onto the stack of the calling procedure.
The exact details are compiler dependent.
EM allows procedures to be called with a variable number of
parameters.
The implementation of the C-language almost forces its runtime
system to push the parameters in reverse order, that is,
the first positional parameter last.
Most compilers use the C calling convention to be compatible.
The parameters of a procedure belong to the frame of the
calling procedure.
Note that the evaluation of the actual parameters may imply
the calling of procedures.
The parameters can be accessed with certain instructions using
offsets of 0 and greater.
The first byte of the last parameter pushed has offset 0.
Note that the parameter at offset 0 has a special use in the
instructions following the static chain (LXL and LXA).
These instructions assume that this parameter contains the LB of
the statically enclosing procedure.
Procedures that do not have a dynamically enclosing procedure
do not need a static link at offset 0.
.P
Two instructions are available to perform procedure calls, CAL
and CAI.
Several tasks are performed by these call instructions.
.A
First, a part of the status of the calling procedure is
saved on the stack in the return status block.
This block should contain the return address of the calling
procedure, its LB and other implementation dependent data.
The size of this block is fixed for any given implementation
because the lexical instructions LPB, LXL and LXA must be able to
obtain the base addresses of the procedure parameters \fBand\fP local
variables.
An alternative solution can be used on machines with a highly
segmented address space.
The stack frames need not be contiguous then and the first
status save area can contain the parameter base AB,
which has the value of SP just after the last parameter has
been pushed.
.A
Second, the LB is changed to point to the
first word above the local variables.
The new LB is a copy of the SP after the return status
block has been pushed.
.A
Third, the amount of local storage needed by the procedure is
reserved.
The parameters and local storage are accessed by the same instructions.
Negative offsets are used for access to local variables.
The highest byte, that is the byte nearest
to LB, has to be accessed with offset -1.
The pseudoinstruction specifying the entry point of a
procedure, has an argument that specifies the amount of local
storage needed.
The local variables allocated by the CAI or CAL instructions
are the only ones that can be accessed with a fixed negative offset.
The initial value of the allocated words is
not defined, but implementations that check for undefined
values will probably initialize them with a
special 'undefined' pattern, typically -32768.
.A
Fourth, any EM implementation is allowed to reserve a variable size
block beneath the local variables.
This block could, for example, be used to save a variable number
of registers.
.A
Finally, the address of the entry point of the called procedure
is loaded into the Program Counter.
.P
The ASP instruction can be used to allocate further (dynamic)
local storage.
The base address of such storage must be obtained with a LOR~SP
instruction.
This same instruction ASP may also be used
to remove some words from the stack.
.P
There is a version of ASP, called ASS, which fetches the number
of bytes to allocate from the stack.
It can be used to allocate space for local
objects whose size is unknown at compile time,
so called 'dynamic local generators'.
.P
Control is returned to the calling procedure with a RET instruction.
Any return value is then copied to the 'function return area'.
The frame created by the call is deallocated and the status of
the calling procedure is restored.
The value of SP just after the return value has been popped must
be the same as the
value of SP just before executing the first instruction of this
invocation.
This means that when a RET is executed the operand stack can
only contain the return value and all dynamically generated locals must be
deallocated.
Violating this restriction might result in hard to detect
errors.
The calling procedure has to remove the parameters from the stack.
This can be done with the aforementioned ASP instruction.
.P
Each procedure frame is a separate fragment.
Because any fragment may be placed anywhere in memory,
procedure frames need not be contiguous.
.DS
|===============================|
| actual parameter n-1 |
|-------------------------------|
| . |
| . |
| . |
|-------------------------------|
| actual parameter 0 | ( <- AB )
|===============================|
|===============================|
|///////////////////////////////|
|///// return status block /////|
|///////////////////////////////| <- LB
|===============================|
| |
| local variables |
| |
|-------------------------------|
| |
| compiler temporaries |
| |
|===============================|
|///////////////////////////////|
|///// register save block /////|
|///////////////////////////////|
|===============================|
| |
| dynamic local generators |
| |
|===============================|
| operand |
|-------------------------------|
| operand |
|===============================|
| parameter m-1 |
|-------------------------------|
| . |
| . |
| . |
|-------------------------------|
| parameter 0 | <- SP
|===============================|
Figure 1. A sample procedure frame and parameters.
.DE
.S2 "Heap data area"
The heap area starts empty, with HP
pointing to the low end of it.
HP always contains a word address.
A copy of HP can always be obtained with the LOR instruction.
A new value may be stored in the heap pointer using the STR instruction.
If the new value is greater than the old one,
then the heap grows.
If it is smaller, then the heap shrinks.
HP may never point below its original value.
All words between the current HP and the original HP
are allocated to the heap.
The heap may not grow into a part of memory that is already allocated
for the stack.
When this is attempted, the STR instruction will cause a trap to occur.
.P
The only way to address the heap is indirectly.
Whenever an object is allocated by increasing HP,
then the old HP value must be saved and can be used later to address
the allocated object.
If, in the meantime, HP is decreased so that the object
is no longer part of the heap, then an attempt to access
the object is not allowed.
Furthermore, if the heap pointer is increased again to above
the object address, then access to the old object gives undefined results.
.P
The heap is a single fragment.
All bytes have consecutive addresses.
No limits are imposed on the size of the heap as long as it fits
in the available data address space.

File diff suppressed because it is too large Load Diff

View File

@@ -1,9 +0,0 @@
main() {
register int l,j ;
for ( j=0 ; (l=getchar()) != -1 ; j++ ) {
if ( j%16 == 15 ) printf("%3d\n",l&0377 ) ;
else printf("%3d ",l&0377 ) ;
}
printf("\n") ;
}

View File

@@ -1,178 +0,0 @@
mes 2,2,2 ; wordsize 2, pointersize 2
.1
rom 't.p\000' ; the name of the source file
hol 552,-32768,0 ; externals and buf occupy 552 bytes
exp $sum ; sum can be called from other modules
pro $sum,2 ; procedure sum; 2 bytes local storage
lin 8 ; code from source line 8
ldl 0 ; load two locals ( a and b )
adi 2 ; add them
ret 2 ; return the result
end 2 ; end of procedure ( still two bytes local storage )
.2
rom 1,99,2 ; descriptor of array a[]
exp $test ; the compiler exports all level 0 procedures
pro $test,226 ; procedure test, 226 bytes local storage
.3
rom 4.8F8 ; assemble Floating point 4.8 (8 bytes) in
.4 ; global storage
rom 0.5F8 ; same for 0.5
mes 3,-226,2,2 ; compiler temporary not referenced indirect
mes 3,-24,2,0 ; the same is true for i, j, b and c in test
mes 3,-22,2,0
mes 3,-4,2,0
mes 3,-2,2,0
mes 3,-20,8,0 ; and for x and y
mes 3,-12,8,0
lin 20 ; maintain source line number
loc 1
stl -4 ; j := 1
lni ; was lin 21 prior to optimization
lol -4
loc 3
mli 2
loc 6
adi 2
stl -2 ; i := 3 * j + 6
lni ; was lin 22 prior to optimization
lae .3
loi 8
lal -12
sti 8 ; x := 4.8
lni ; was lin 23 prior to optimization
lal -12
loi 8
lae .4
loi 8
dvf 8
lal -20
sti 8 ; y := x / 0.5
lni ; was lin 24 prior to optimization
loc 1
stl -22 ; b := true
lni ; was lin 25 prior to optimization
loc 122
stl -24 ; c := 'z'
lni ; was lin 26 prior to optimization
loc 1
stl -2 ; for i:= 1
2
lol -2
dup 2
mli 2 ; i*i
lal -224
lol -2
lae .2
sar 2 ; a[i] :=
lol -2
loc 100
beq *3 ; to 100 do
inl -2 ; increment i and loop
bra *2
3
lin 27
lol -4
loc 27
adi 2 ; j + 27
sil 0 ; r.r1 :=
lni ; was lin 28 prior to optimization
lol -22 ; b
lol 0
stf 10 ; r.r3 :=
lni ; was lin 29 prior to optimization
lal -20
loi 16
adf 8 ; x + y
lol 0
adp 2
sti 8 ; r.r2 :=
lni ; was lin 23 prior to optimization
lal -224
lol -4
lae .2
lar 2 ; a[j]
lil 0 ; r.r1
cal $sum ; call now
asp 4 ; remove parameters from stack
lfr 2 ; get function result
stl -2 ; i :=
4
lin 31
lol -2
zle *5 ; while i > 0 do
lol -4
lil 0
adi 2
stl -4 ; j := j + r.r1
del -2 ; i := i - 1
bra *4 ; loop
5
lin 32
lol 0
stl -226 ; make copy of address of r
lol -22
lol -226
stf 10 ; r3 := b
lal -20
loi 16
adf 8
lol -226
adp 2
sti 8 ; r2 := x + y
loc 0
sil -226 ; r1 := 0
lin 34 ; note the abscence of the unnecesary jump
lae 22 ; address of output structure
lol -4
cal $_wri ; write integer with default width
asp 4 ; pop parameters
lae 22
lol -2
loc 6
cal $_wsi ; write integer width 6
asp 6
lae 22
lal -12
loi 8
loc 9
loc 3
cal $_wrf ; write fixed format real, width 9, precision 3
asp 14
lae 22
lol -22
cal $_wrb ; write boolean, default width
asp 4
lae 22
cal $_wln ; writeln
asp 2
ret 0 ; return, no result
end 226
exp $_main
pro $_main,0 ; main program
.6
con 2,-1,22 ; description of external files
.5
rom 15.96F8
fil .1 ; maintain source file name
lae .6 ; description of external files
lae 0 ; base of hol area to relocate buffer addresses
cal $_ini ; initialize files, etc...
asp 4
lin 37
lae .5
loi 8
lae 2
sti 8 ; x := 15.9
lni ; was lin 38 prior to optimization
loc 99
ste 0 ; mi := 99
lni ; was lin 39 prior to optimization
lae 10 ; address of r
cal $test
asp 2
loc 0 ; normal exit
cal $_hlt ; cleanup and finish
asp 2
end 0
mes 4,40 ; length of source file is 40 lines
mes 5 ; reals were used

View File

@@ -1,40 +0,0 @@
program example(output);
{This program just demonstrates typical EM code.}
type rec = record r1: integer; r2:real; r3: boolean end;
var mi: integer; mx:real; r:rec;
function sum(a,b:integer):integer;
begin
sum := a + b
end;
procedure test(var r: rec);
label 1;
var i,j: integer;
x,y: real;
b: boolean;
c: char;
a: array[1..100] of integer;
begin
j := 1;
i := 3 * j + 6;
x := 4.8;
y := x/0.5;
b := true;
c := 'z';
for i:= 1 to 100 do a[i] := i * i;
r.r1 := j+27;
r.r3 := b;
r.r2 := x+y;
i := sum(r.r1, a[j]);
while i > 0 do begin j := j + r.r1; i := i - 1 end;
with r do begin r3 := b; r2 := x+y; r1 := 0 end;
goto 1;
1: writeln(j, i:6, x:9:3, b)
end; {test}
begin {main program}
mx := 15.96;
mi := 99;
test(r)
end.

View File

@@ -1,32 +0,0 @@
CFLAGS=-O
HOME=../../..
install \
all: em emdmp tables
tables: mktables $(HOME)/util/ass/ip_spec.t
mktables $(HOME)/util/ass/ip_spec.t tables
mktables: mktables.c $(HOME)/h/em_spec.h $(HOME)/h/em_flag.h \
$(HOME)/util/data/em_data.a $(HOME)/util/ass/ip_spec.h
cc -O -o mktables mktables.c $(HOME)/util/data/em_data.a
em.out: em.p
apc -mint -O em.p >emerrs ; mv e.out em.out
em: em.p
apc -O -i em.p >emerrs ; mv a.out em
nem.p: em.p
sed -e '/maxadr = t16/s//maxadr =t15/' -e '/maxdata = 8191; /s//maxdata = 14335;/' -e '/ adr=.*long/s// adr= 0..maxadr/' <em.p >nem.p
nem: nem.p
apc -O -i nem.p >emerrs ; mv a.out nem
emdmp: emdmp.c
cc -o emdmp -O emdmp.c
cmp:
pr:
@pr em.p mktables.c emdmp.c

View File

@@ -1,5 +0,0 @@
This interpreter is meant for inclusion in the EM manual.
Although slow, it showed decent behaviour on several tests.
The only monitor calls implemented are exit, read(untested),
write and ioctl - just reurns the correct code for telling it's
a terminal -

File diff suppressed because it is too large Load Diff

View File

@@ -1,210 +0,0 @@
/*
* (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 */
/* Print a readable version of the data in the post mortem dump */
/* dmpc [-s] [-dn,m] [file] */
#include "/usr/em/h/local.h"
#include <stdio.h>
#include <ctype.h>
int dflag = 0 ;
long l_low,l_high;
int sflag;
int wsize,asize;
long tsize,dsize;
long ignmask,uerrorproc,cause;
long pc,sp,lb,hp,pd,pb;
char *cstr[] = {
"Array bound error",
"Range bound error",
"Set error",
"Integer overflow",
"Float overflow",
"Float underflow",
"Divide by 0",
"Divide by 0.0",
"Integer undefined",
"Float undefined",
"Conversion error",
"User error 11",
"User error 12",
"User error 13",
"User error 14",
"User error 15",
"Stack overflow",
"Heap overflow",
"Illegal instruction",
"Illegal size parameter",
"Case error",
"Memory fault",
"Illegal pointer",
"Illegal pc",
"Bad argument of LAE",
"Bad monitor call",
"Bad line number",
"GTO descriptor error"
};
FILE *fcore;
char *core = "core" ;
int nbyte=0;
char *pname;
int readbyte();
int read2();
long readaddr();
long readword();
unsigned getbyte();
long getword();
long getaddr();
main(argc,argv) char **argv;
{
register i ;
long line,fileaddr;
char tok ;
scanargs(argc,argv); fcore=fopen(core,"r") ;
if ( fcore==NULL ) fatal("Can't open %s",core) ;
if ( read2()!=010255 ) fatal("not a post mortem dump");
if ( read2()!=VERSION ) fatal("wrong version dump file");
wsize=read2(); asize=read2();
if ( wsize>4 ) fatal("cannot handle word size %d",wsize) ;
if ( asize>4 ) fatal("cannot handle pointer size %d",asize) ;
tsize=readaddr(); dsize=readaddr();
ignmask=readaddr(); uerrorproc=readaddr(); cause=readaddr();
pc=readaddr(); sp=readaddr(); lb=readaddr(); hp=readaddr();
pd=readaddr(); pb=readaddr();
if ( sflag==0 ) {
line=getword(0L);
fileaddr=getaddr(4L);
if ( fileaddr ) {
for ( i=0 ; i<40 ; i++ ) {
tok=getbyte(fileaddr++) ;
if ( !isprint(tok) ) break ;
putc(tok,stdout);
}
printf(" ");
}
if ( line ) {
printf("line %D",line) ;
}
if ( fileaddr || line ) printf(", ");
fseek(fcore,512L,0);
if ( cause>27 ) {
printn("cause",cause) ;
} else {
prints("cause",cstr[(int)cause]);
}
printn("pc",pc);printn("sp",sp);printn("lb",lb);
printn("hp",hp);
if ( pd ) printn("pd",pd) ;
if ( pb ) printn("pb",pb) ;
printn("errproc",uerrorproc) ;
printn("ignmask",ignmask) ;
if ( tsize ) printn("Text size",tsize) ;
if ( dsize ) printn("Data size",dsize) ;
}
if ( dflag==0 ) return 0;
fatal("d-flag not implemeted (yet)");
return 1 ;
}
scanargs(argc,argv) char **argv ; {
pname=argv[0];
while ( argv++, argc-- > 1 ) {
switch( argv[0][0] ) {
case '-': switch( argv[0][1] ) {
case 's': sflag++ ; break ;
case 'l': dflag++ ; break ;
default : fatal(": [-s] [-ln.m] [file]") ;
} ;
break ;
default :core=argv[0] ;
}
}
}
prints(s1,s2) char *s1,*s2; {
printf("%-15s %s\n",s1,s2);
}
printn(s1,d) char *s1; long d; {
printf("%-15s %15ld\n",s1,d);
}
/* VARARGS1 */
fatal(s1,p1,p2,p3,p4,p5) char *s1 ; {
fprintf(stderr,"%s: ",pname);
fprintf(stderr,s1,p1,p2,p3,p4,p5) ;
fprintf(stderr,"\n") ;
exit(1) ;
}
int getb() {
int i ;
i=getc(fcore) ;
if ( i==EOF ) fatal("Premature EOF");
return i&0377 ;
}
int read2() {
int i ;
i=getb() ; return getb()*256 + i ;
}
long readaddr() {
long res ;
register int i ;
res=0 ;
for (i=0 ; i<asize ; i++ ) res |= getb()<<(8*i) ;
return res ;
}
long readword() {
long res ;
register int i ;
res=0 ;
for (i=0 ; i<wsize ; i++ ) res |= getb()<<(8*i) ;
return res ;
}
unsigned getbyte(a) long a ; {
fseek(fcore,a+512,0) ;
return getb() ;
}
long getword(a) long a ; {
fseek(fcore,a+512,0) ;
return readword() ;
}
long getaddr(a) long a ; {
fseek(fcore,a+512,0) ;
return readaddr() ;
}

View File

@@ -1,244 +0,0 @@
/*
* (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 */
#include <stdio.h>
#include "/usr/em/util/ass/ip_spec.h"
#include "/usr/em/h/em_spec.h"
#include "/usr/em/h/em_flag.h"
/* This program reads the human readable interpreter specification
and produces a efficient machine representation that can be
translated by a C-compiler.
*/
#define ESCAP 256
int nerror = 0 ;
int atend = 0 ;
int line = 1 ;
int maxinsl= 0 ;
extern char em_mnem[][4] ;
char esca[] = "escape" ;
#define ename(no) ((no)==ESCAP?esca:em_mnem[(no)])
extern char em_flag[] ;
main(argc,argv) char **argv ; {
if ( argc>1 ) {
if ( freopen(argv[1],"r",stdin)==NULL) {
fatal("Cannot open %s",argv[1]) ;
}
}
if ( argc>2 ) {
if ( freopen(argv[2],"w",stdout)==NULL) {
fatal("Cannot create %s",argv[2]) ;
}
}
if ( argc>3 ) {
fatal("%s [ file [ file ] ]",argv[0]) ;
}
atend=0 ;
readin();
atend=1 ;
return nerror ;
}
readin() {
char *ident();
char *firstid ;
int opcode,flags;
int c;
while ( !feof(stdin) ) {
firstid=ident() ;
if ( *firstid=='\n' || feof(stdin) ) continue ;
opcode = getmnem(firstid) ;
printf("%d ",opcode+1) ;
flags = decflag(ident(),opcode) ;
switch(em_flag[opcode]&EM_PAR) {
case PAR_D: case PAR_F: case PAR_B: case PAR_L: case PAR_C:
putchar('S') ;
}
putchar(' ');
while ( (c=readchar())!='\n' && c!=EOF ) putchar(c) ;
putchar('\n') ;
}
}
char *ident() {
/* skip spaces and tabs, anything up to space,tab or eof is
a identifier.
Anything from # to end-of-line is an end-of-line.
End-of-line is an identifier all by itself.
*/
static char array[200] ;
register int c ;
register char *cc ;
do {
c=readchar() ;
} while ( c==' ' || c=='\t' ) ;
for ( cc=array ; cc<&array[(sizeof array) - 1] ; cc++ ) {
if ( c=='#' ) {
do {
c=readchar();
} while ( c!='\n' && c!=EOF ) ;
}
*cc = c ;
if ( c=='\n' && cc==array ) break ;
c=readchar() ;
if ( c=='\n' ) {
pushback(c) ;
break ;
}
if ( c==' ' || c=='\t' || c==EOF ) break ;
}
*++cc=0 ;
return array ;
}
int getmnem(str) char *str ; {
char (*ptr)[4] ;
for ( ptr = em_mnem ; *ptr<= &em_mnem[sp_lmnem][0] ; ptr++ ) {
if ( strcmp(*ptr,str)==0 ) return (ptr-em_mnem) ;
}
error("Illegal mnemonic") ;
return 0 ;
}
error(str,a1,a2,a3,a4,a5,a6) /* VARARGS1 */ char *str ; {
if ( !atend ) fprintf(stderr,"line %d: ",line) ;
fprintf(stderr,str,a1,a2,a3,a4,a5,a6) ;
fprintf(stderr,"\n");
nerror++ ;
}
mess(str,a1,a2,a3,a4,a5,a6) /* VARARGS1 */ char *str ; {
if ( !atend ) fprintf(stderr,"line %d: ",line) ;
fprintf(stderr,str,a1,a2,a3,a4,a5,a6) ;
fprintf(stderr,"\n");
}
fatal(str,a1,a2,a3,a4,a5,a6) /* VARARGS1 */ char *str ; {
error(str,a1,a2,a3,a4,a5,a6) ;
exit(1) ;
}
#define ILLGL -1
check(val) int val ; {
if ( val!=ILLGL ) error("Illegal flag combination") ;
}
int decflag(str,opc) char *str ; {
int type ;
int escape ;
int range ;
int wordm ;
int notzero ;
char c;
type=escape=range=wordm=notzero= ILLGL ;
while ( c= *str++ ) {
switch ( c ) {
case 'm' :
check(type) ; type=OPMINI ; break ;
case 's' :
check(type) ; type=OPSHORT ; break ;
case '-' :
check(type) ; type=OPNO ;
if ( (em_flag[opc]&EM_PAR)==PAR_W ) c='i' ;
break ;
case '1' :
check(type) ; type=OP8 ; break ;
case '2' :
check(type) ; type=OP16 ; break ;
case '4' :
check(type) ; type=OP32 ; break ;
case '8' :
check(type) ; type=OP64 ; break ;
case 'e' :
check(escape) ; escape=0 ; break ;
case 'N' :
check(range) ; range= 2 ; break ;
case 'P' :
check(range) ; range= 1 ; break ;
case 'w' :
check(wordm) ; wordm=0 ; break ;
case 'o' :
check(notzero) ; notzero=0 ; break ;
default :
error("Unknown flag") ;
}
putchar(c);
}
if ( type==ILLGL ) error("Type must be specified") ;
switch ( type ) {
case OP64 :
case OP32 :
if ( escape!=ILLGL ) error("Conflicting escapes") ;
escape=ILLGL ;
case OP16 :
case OP8 :
case OPSHORT :
case OPNO :
if ( notzero!=ILLGL ) mess("Improbable OPNZ") ;
if ( type==OPNO && range!=ILLGL ) {
mess("No operand in range") ;
}
}
if ( escape!=ILLGL ) type|=OPESC ;
if ( wordm!=ILLGL ) type|=OPWORD ;
switch ( range) {
case ILLGL : type|=OP_BOTH ; break ;
case 1 : type|=OP_POS ; break ;
case 2 : type|=OP_NEG ; break ;
}
if ( notzero!=ILLGL ) type|=OPNZ ;
return type ;
}
static int pushchar ;
static int pushf ;
int readchar() {
int c ;
if ( pushf ) {
pushf=0 ;
c = pushchar ;
} else {
if ( feof(stdin) ) return EOF ;
c=getc(stdin) ;
}
if ( c=='\n' ) line++ ;
return c ;
}
pushback(c) {
if ( pushf ) {
fatal("Double pushback") ;
}
pushf++ ;
pushchar=c ;
if ( c=='\n' ) line-- ;
}

View File

@@ -1,180 +0,0 @@
.BP
.S1 "INTRODUCTION"
EM is a family of intermediate languages designed for producing
portable compilers.
The general strategy is for a program called
.B front end
to translate the source program to EM.
Another program,
.B back
.BW end
translates EM to target assembly language.
Alternatively, the EM code can be assembled to a binary form
and interpreted.
These considerations led to the following goals:
.IS 2 10
.PS 1 4
.PT
The design should allow translation to,
or interpretation on, a wide range of existing machines.
Design decisions should be delayed as far as possible
and the implications of these decisions should
be localized as much as possible.
.N
The current microcomputer technology offers 8, 16 and 32 bit machines
with various sizes of address space.
EM should be flexible enough to be useful on most of these
machines.
The differences between the members of the EM family should only
concern the wordsize and address space size.
.PT
The architecture should ease the task of code generation for
high level languages such as Pascal, C, Ada, Algol 68, BCPL.
.PT
The instruction set used by the interpreter should be compact,
to reduce the amount of memory needed
for program storage, and to reduce the time needed to transmit
programs over communication lines.
.PT
It should be designed with microprogrammed implementations in
mind; in particular, the use of many short fields within
instruction opcodes should be avoided, because their extraction by the
microprogram or conversion to other instruction formats is inefficient.
.PE
.IE
.A
The basic architecture is based on the concept of a stack. The stack
is used for procedure return addresses, actual parameters, local variables,
and arithmetic operations.
There are several built-in object types,
for example, signed and unsigned integers,
floating point numbers, pointers and sets of bits.
There are instructions to push and pop objects
to and from the stack.
The push and pop instructions are not typed.
They only care about the size of the objects.
For each built-in type there are
reverse Polish type instructions that pop one or more
objects from the top of
the stack, perform an operation, and push the result back onto the
stack.
For all types except pointers,
these instructions have the object size
as argument.
.P
There are no visible general registers used for arithmetic operands
etc. This is in contrast to most third generation computers, which usually
have 8 or 16 general registers. The decision not to have a group of
general registers was fully intentional, and follows W.L. Van der
Poel's dictum that a machine should have 0, 1, or an infinite
number of any feature. General registers have two primary uses: to hold
intermediate results of complicated expressions, e.g.
.IS 5 0 1
((a*b + c*d)/e + f*g/h) * i
.IE 1
and to hold local variables.
.P
Various studies
have shown that the average expression has fewer than two operands,
making the former use of registers of doubtful value. The present trend
toward structured programs consisting of many small
procedures greatly reduces the value of registers to hold local variables
because the large number of procedure calls implies a large overhead in
saving and restoring the registers at every call.
.BP
.P
Although there are no general purpose registers, there are a
few internal registers with specific functions as follows:
.IS 2
.N 1
.TS
tab(:);
l 1 l l.
PC:-:Program Counter:Pointer to next instruction
LB:-:Local Base:Points to base of the local variables \
in the current procedure.
SP:-:Stack Pointer:Points to the highest occupied word on the stack.
HP:-:Heap Pointer:Points to the top of the heap area.
.TE 1
.IE
.A
Furthermore, reverse Polish code is much easier to generate than
multi-register machine code, especially if highly efficient code is
desired.
When translating to assembly language the back end can make
good use of the target machine's registers.
An EM machine can
achieve high performance by keeping part of the stack
in high speed storage (a cache or microprogram scratchpad memory) rather
than in primary memory.
.P
Again according to van der Poel's dictum,
all EM instructions have zero or one argument.
We believe that instructions needing two arguments
can be split into two simpler ones.
The simpler ones can probably be used in other
circumstances as well.
Moreover, these two instructions together often
have a shorter encoding than the single
instruction before.
.P
This document describes EM at three different levels:
the abstract level, the assembly language level and
the machine language level.
.A
The most important level is that of the abstract EM architecture.
This level deals with the basic design issues.
Only the functional capabilities of instructions are relevant, not their
format or encoding.
Most chapters of this document refer to the abstract level
and it is explicitly stated whenever
another level is described.
.A
The assembly language is intended for the compiler writer.
It presents a more or less orthogonal instruction
set and provides symbolic names for data.
Moreover, it facilitates the linking of
separately compiled 'modules' into a single program
by providing several pseudoinstructions.
.A
The machine language is designed for interpretation with a compact
program text and easy decoding.
The binary representation of the machine language instruction set is
far from orthogonal.
Frequent instructions have a short opcode.
The encoding is fully byte oriented.
These bytes do not contain small bit fields, because
bit fields would slow down decoding considerably.
.P
A common use for EM is for producing portable (cross) compilers.
When used this way, the compilers produce
EM assembly language as their output.
To run the compiled program on the target machine,
the back end, translates the EM assembly language to
the target machine's assembly language.
When this approach is used, the format of the EM
machine language instructions is irrelevant.
On the other hand, when writing an interpreter for EM machine language
programs, the interpreter must deal with the machine language
and not with the symbolic assembly language.
.P
As mentioned above, the
current microcomputer technology offers 8, 16 and 32 bit
machines with address spaces ranging from 2\v'-0.5m'16\v'0.5m'
to 2\v'-0.5m'32\v'0.5m' bytes.
Having one size of pointers and integers restricts
the usefulness of the language.
We decided to have a different language for each combination of
word and pointer size.
All languages offer the same instruction set and differ only in
memory alignment restrictions and the implicit size assumed in
several instructions.
The languages
differ slightly for the
different size combinations.
For example: the
size of any object on the stack and alignment restrictions.
The wordsize is restricted to powers of 2 and
the pointer size must be a multiple of the wordsize.
Almost all programs handling EM will be parametrized with word
and pointer size.

View File

@@ -1,376 +0,0 @@
.SN 8
.VS 1 0
.BP
.S1 "ENVIRONMENT INTERACTIONS"
EM programs can interact with their environment in three ways.
Two, starting/stopping and monitor calls, are dealt with in this chapter.
The remaining way to interact, interrupts, will be treated
together with traps in chapter 9.
.S2 "Program starting and stopping"
EM user programs start with a call to a procedure called
m_a_i_n.
The assembler and backends look for the definition of a procedure
with this name in their input.
The call passes three parameters to the procedure.
The parameters are similar to the parameters supplied by the
UNIX
.FS
UNIX is a Trademark of Bell Laboratories.
.FE
operating system to C programs.
These parameters are often called
.BW argc ,
.B argv
and
.BW envp .
Argc is the parameter nearest to LB and is a wordsized integer.
The other two are pointers to the first element of an array of
string pointers.
.N
The
.B argv
array contains
.B argc
strings, the first of which contains the program call name.
The other strings in the
.B argv
array are the program parameters.
.P
The
.B envp
array contains strings in the form "name=string", where 'name'
is the name of an environment variable and string its value.
The
.B envp
is terminated by a zero pointer.
.P
An EM user program stops if the program returns from the first
invocation of m_a_i_n.
The contents of the function return area are used to procure a
wordsized program return code.
EM programs also stop when traps and interrupts occur that are
not caught and when the exit monitor call is executed.
.S2 "Input/Output and other monitor calls"
EM differs from most conventional machines in that it has high level i/o
instructions.
Typical instructions are OPEN FILE and READ FROM FILE instead
of low level instructions such as setting and clearing
bits in device registers.
By providing such high level i/o primitives, the task of implementing
EM on various non EM machines is made considerably easier.
.P
I/O is initiated by the MON instruction, which expects an iocode on top
of the stack.
Often there are also parameters which are pushed on the
stack in reverse order, that is: last
parameter first.
Some i/o functions also provide results, which are returned on the stack.
In the list of monitor calls we use several types of parameters and results,
these types consist of integers and unsigneds of varying sizes, but never
smaller than the wordsize, and the two pointer types.
.N 1
The names of the types used are:
.IS 4
.PS - 10
.PT int
an integer of wordsize
.PT int2
an integer whose size is the maximum of the wordsize and 2
bytes
.PT int4
an integer whose size is the maximum of the wordsize and 4
bytes
.PT intp
an integer with the size of a pointer
.PT uns2
an unsigned integer whose size is the maximum of the wordsize and 2
.PT unsp
an unsigned integer with the size of a pointer
.PT ptr
a pointer into data space
.PE 1
.IE 0
The table below lists the i/o codes with their results and
parameters.
This list is similar to the system calls of the UNIX Version 7
operating system.
.BP
.A
To execute a monitor call, proceed as follows:
.IS 2
.N 1
.PS a 4 "" )
.PT
Stack the parameters, in reverse order, last parameter first.
.PT
Push the monitor call number (iocode) onto the stack.
.PT
Execute the MON instruction.
.PE 1
.IE
An error code is present on the top of the stack after
execution of most monitor calls.
If this error code is zero, the call performed the action
requested and the results are available on top of the stack.
Non-zero error codes indicate a failure, in this case no
results are available and the error code has been pushed twice.
This construction enables programs to test for failure with a
single instruction (~TEQ or TNE~) and still find out the cause of
the failure.
The result name 'e' is reserved for the error code.
.N 1
List of monitor calls.
.DS B
number name parameters results function
1 Exit status:int Terminate this process
2 Fork e,flag,pid:int Spawn new process
3 Read fildes:int;buf:ptr;nbytes:unsp
e:int;rbytes:unsp Read from file
4 Write fildes:int;buf:ptr;nbytes:unsp
e:int;wbytes:unsp Write on a file
5 Open string:ptr;flag:int
e,fildes:int Open file for read and/or write
6 Close fildes:int e:int Close a file
7 Wait e:int;status,pid:int2
Wait for child
8 Creat string:ptr;mode:int
e,fildes:int Create a new file
9 Link string1,string2:ptr
e:int Link to a file
10 Unlink string:ptr e:int Remove directory entry
12 Chdir string:ptr e:int Change default directory
14 Mknod string:ptr;mode,addr:int2
e:int Make a special file
15 Chmod string:ptr;mode:int2
e:int Change mode of file
16 Chown string:ptr;owner,group:int2
e:int Change owner/group of a file
18 Stat string,statbuf:ptr
e:int Get file status
19 Lseek fildes:int;off:int4;whence:int
e:int;oldoff:int4 Move read/write pointer
20 Getpid pid:int2 Get process identification
21 Mount special,string:ptr;rwflag:int
e:int Mount file system
22 Umount special:ptr e:int Unmount file system
23 Setuid userid:int2 e:int Set user ID
24 Getuid e_uid,r_uid:int2 Get user ID
25 Stime time:int4 e:int Set time and date
26 Ptrace request:int;pid:int2;addr:ptr;data:int
e,value:int Process trace
27 Alarm seconds:uns2 previous:uns2 Schedule signal
28 Fstat fildes:int;statbuf:ptr
e:int Get file status
29 Pause Stop until signal
30 Utime string,timep:ptr
e:int Set file times
33 Access string,mode:int e:int Determine file accessibility
34 Nice incr:int Set program priority
35 Ftime bufp:ptr e:int Get date and time
36 Sync Update filesystem
37 Kill pid:int2;sig:int
e:int Send signal to a process
41 Dup fildes,newfildes:int
e,fildes:int Duplicate a file descriptor
42 Pipe e,w_des,r_des:int Create a pipe
43 Times buffer:ptr Get process times
44 Profil buff:ptr;bufsiz,offset,scale:intp Execution time profile
46 Setgid gid:int2 e:int Set group ID
47 Getgid e_gid,r_gid:int Get group ID
48 Sigtrp trapno,signo:int
e,prevtrap:int See below
51 Acct file:ptr e:int Turn accounting on or off
53 Lock flag:int e:int Lock a process
54 Ioctl fildes,request:int;argp:ptr
e:int Control device
56 Mpxcall cmd:int;vec:ptr e:int Multiplexed file handling
59 Exece name,argv,envp:ptr
e:int Execute a file
60 Umask complmode:int2 oldmask:int2 Set file creation mode mask
61 Chroot string:ptr e:int Change root directory
.DE 1
Codes 0, 11, 13, 17, 31, 32, 38, 39, 40, 45, 49, 50, 52,
55, 57, 58, 62, and 63 are
not used.
.P
All monitor calls, except fork and sigtrp
are the same as the UNIX version 7 system calls.
.P
The sigtrp entry maps UNIX signals onto EM interrupts.
Normally, trapno is in the range 0 to 252.
In that case it requests that signal signo
will cause trap trapno to occur.
When given trap number -2, default signal handling is reset, and when given
trap number -3, the signal is ignored.
.P
The flag returned by fork is 1 in the child process and 0 in
the parent.
The pid returned is the process-id of the other process.
.BP
.S1 "TRAPS AND INTERRUPTS"
EM provides a means for the user program to catch all traps
generated by the program itself, the hardware, or external conditions.
This mechanism uses five instructions: LIM, SIM, SIG, TRP and RTT.
This section of the manual may be omitted on the first reading since it
presupposes knowledge of the EM instruction set.
.P
The action taken when a trap occures is determined by the value
of an internal EM trap register.
This register contains a pointer to a procedure.
Initially the pointer used is zero and all traps halt the
program with, hopefully, a useful message to the outside world.
The SIG instruction can be used to alter the trap register,
it pops a procedure pointer from the
stack into the trap register.
When a trap occurs after storing a nonzero value in the trap
register, the procedure pointed to by the trap register
is called with the trap number
as the only parameter (see below).
SIG returns the previous value of the trap register on the
stack.
Two consecutive SIGs are a no-op.
When a trap occurs, the trap register is reset to its initial
condition, to prevent recursive traps from hanging the machine up,
e.g. stack overflow in the stack overflow handling procedure.
.P
The runtime systems for some languages need to ignore some EM
traps.
EM offers a feature called the ignore mask.
It contains one bit for each of the lowest 16 trap numbers.
The bits are numbered 0 to 15, with the least significant bit
having number 0.
If a certain bit is 1 the corresponding trap never
occurs and processing simply continues.
The actions performed by the offending instruction are
described by the Pascal program in appendix A.
.N
If the bit is 0, traps are not ignored.
The instructions LIM and SIM allow copying and replacement of
the ignore mask.~
.P
The TRP instruction generates a trap, the trap number being found on the
stack.
This is, among other things,
useful for library procedures and runtime systems.
It can also be used by a low level trap procedure to pass the trap to a
higher level one (see example below).
.P
The RTT instruction returns from the trap procedure and continues after the
trap.
In the list below all traps marked with an asterisk ('*') are
considered to be fatal and it is explicitly undefined what happens if
you try to restart after the trap.
.P
The way a trap procedure is called is completely compatible
with normal calling conventions. The only way a trap procedure
differs from normal procedures is the return. It has to use RTT instead
of RET. This is necessary because the complete runtime status is saved on the
stack before calling the procedure and all this status has to be reloaded.
Error numbers are in the range 0 to 252.
The trap numbers are divided into three categories:
.IS 4
.N 1
.PS - 10
.PT ~~0-~63
EM machine errors, e.g. illegal instruction.
.PS - 8
.PT ~0-15
maskable
.PT 16-63
not maskable
.PE
.PT ~64-127
Reserved for use by compilers, run time systems, etc.
.PT 128-252
Available for user programs.
.PE 1
.IE
EM machine errors are numbered as follows:
.DS I 5
.TS
tab(@);
n l l.
0@EARRAY@Array bound error
1@ERANGE@Range bound error
2@ESET@Set bound error
3@EIOVFL@Integer overflow
4@EFOVFL@Floating overflow
5@EFUNFL@Floating underflow
6@EIDIVZ@Divide by 0
7@EFDIVZ@Divide by 0.0
8@EIUND@Undefined integer
9@EFUND@Undefined float
10@ECONV@Conversion error
16*@ESTACK@Stack overflow
17*@EHEAP@Heap overflow
18*@EILLINS@Illegal instruction
19*@EODDZ@Illegal size argument
20*@ECASE@Case error
21*@EMEMFLT@Addressing non existent memory
22*@EBADPTR@Bad pointer used
23*@EBADPC@Program counter out of range
24@EBADLAE@Bad argument of LAE
25@EBADMON@Bad monitor call
26@EBADLIN@Argument of LIN too high
27@EBADGTO@GTO descriptor error
.TE
.DE 0
.P
As an example,
suppose a subprocedure has to be written to do a numeric
calculation.
When an overflow occurs the computation has to be stopped and
the higher level procedure must be resumed.
This can be programmed as follows using the mechanism described above:
.DS B
mes 2,2,2 ; set sizes
ersave
bss 2,0,0 ; Room to save previous value of trap procedure
msave
bss 2,0,0 ; Room to save previous value of trap mask
pro calcule,0 ; entry point
lxl 0 ; fill in non-local goto descriptor with LB
ste jmpbuf+4
lor 1 ; and SP
ste jmpbuf+2
lim ; get current ignore mask
ste msave ; save it
lim
loc 4 ; bit for EFOVFL
ior 2 ; set in mask
sim ; ignore EFOVFL from now on
lpi $catch ; load procedure identifier
sig ; catch wil get all traps now
ste ersave ; save previous trap procedure identifier
; perform calculation now, possibly generating overflow
1 ; label jumped to by catch procedure
loe ersave ; get old trap procedure
sig ; refer all following trap to old procedure
asp 2 ; remove result of sig
loe msave ; restore previous mask
sim ; done now
; load result of calculation
ret 2 ; return result
jmpbuf
con *1,0,0
end
.DE 0
.VS 1 1
.DS
Example of catch procedure
pro catch,0 ; Local procedure that must catch the overflow trap
lol 2 ; Load trap number
loc 4 ; check for overflow
bne *1 ; if other trap, call higher trap procedure
gto jmpbuf ; return to procedure calcule
1 ; other trap has occurred
loe ersave ; previous trap procedure
sig ; other procedure will get the traps now
asp 2 ; remove the result of sig
lol 2 ; stack trap number
trp ; call other trap procedure
rtt ; if other procedure returns, do the same
end
.DE

View File

@@ -1,6 +0,0 @@
BEGIN { printf ".TS\nlw(6) lw(8) rw(3) rw(6) 14 lw(6) lw(8) rw(3) rw(6) 14 lw(6) lw(8) rw(3) rw(6).\n" }
NF == 4 { printf "%s\t%s\t%d\t%d",$1,$2,$3,$4 }
NF == 3 { printf "%s\t%s\t\t%d",$1,$2,$3 }
{ if ( NR%3 == 0 ) printf("\n") ; else printf("\t"); }
END { if ( NR%3 != 0 ) printf("\n")
printf ".TE\n" }

View File

@@ -1,61 +0,0 @@
.SN 3
.BP
.S1 "INSTRUCTION ADDRESS SPACE"
The instruction space of the EM machine contains
the code for procedures.
Tables necessary for the execution of this code, for example, procedure
descriptor tables, may also be present.
The instruction space does not change during
the execution of a program, so that it may be
protected.
No further restrictions to the instruction address space are
necessary for the abstract and assembly language level.
.P
Each procedure has a single entry point: the first instruction.
A special type of pointer identifies a procedure.
Pointers into the instruction
address space have the same size as pointers into data space and
can, for example, contain the address of the first instruction
or an index in a procedure descriptor table.
.A
There is a single EM program counter, PC, pointing
to the next instruction to be executed.
The procedure pointed to by PC is
called the 'current' procedure.
A procedure may call another procedure using the CAL or CAI
instruction.
The calling procedure remains 'active' and is resumed whenever the called
procedure returns.
Note that a procedure has several 'active' invocations when
called recursively.
.P
Each procedure must return properly.
It is not allowed to fall through to the
code of the next procedure.
There are several ways to exit from a procedure:
.IS 3
.PS
.PT
the RET instruction, which returns to the
calling procedure.
.PT
the RTT instruction, which exits a trap handling routine and resumes
the trapping instruction (see next chapter).
.PT
the GTO instruction, which is used for non-local goto's.
It can remove several frames from the stack and transfer
control to an active procedure.
.PE
.IE
.P
All branch instructions can transfer control
to any label within the same procedure.
Branch instructions can never jump out of a procedure.
.P
Several language implementations use a so called procedure
instance identifier, a combination of a procedure identifier and
the LB of a stack frame, also called static link.
.P
The program text for each procedure, as well as any tables,
are fragments and can be allocated anywhere
in the instruction address space.

File diff suppressed because it is too large Load Diff

View File

@@ -1,390 +0,0 @@
.BP
.SN 10
.S1 "EM MACHINE LANGUAGE"
The EM machine language is designed to make program text compact
and to make decoding easy.
Compact program text has many advantages: programs execute faster,
programs occupy less primary and secondary storage and loading
programs into satellite processors is faster.
The decoding of EM machine language is so simple,
that it is feasible to use interpreters as long as EM hardware
machines are not available.
This chapter is irrelevant when back ends are used to
produce executable target machine code.
.S2 "Instruction encoding"
A design goal of EM is to make the
program text as compact as possible.
Decoding must be easy, however.
The encoding is fully byte oriented, without any small bit fields.
There are 256 primary opcodes, two of which are an escape to
two groups of 256 secondary opcodes each.
.A
EM instructions without arguments have a single opcode assigned,
possibly escaped:
.DS
|--------------|
| opcode |
|--------------|
or
|--------------|--------------|
| escape | opcode |
|--------------|--------------|
.DE
The encoding for instructions with an argument is more complex.
Several instructions have an address from the global data area
as argument.
Other instructions have different opcodes for positive
and negative arguments.
.N 1
There is always an opcode that takes the next two bytes as argument,
high byte first:
.DS
|--------------|--------------|--------------|
| opcode | hibyte | lobyte |
|--------------|--------------|--------------|
or
|--------------|--------------|--------------|--------------|
| escape | opcode | hibyte | lobyte |
|--------------|--------------|--------------|--------------|
.DE
.DS
An extra escape is provided for instructions with four or eight byte arguments.
|--------------|--------------|--------------| |--------------|
| ESCAPE | opcode | hibyte |...| lobyte |
|--------------|--------------|--------------| |--------------|
.DE
For most instructions some argument values predominate.
The most frequent combinations of instruction and argument
will be encoded in a single byte, called a mini:
.DS
|---------------|
|opcode+argument| (mini)
|---------------|
.DE
The number of minis is restricted, because only
254 primary opcodes are available.
Many instructions have the bulk of their arguments
fall in the range 0 to 255.
Instructions that address global data have their arguments
distributed over a wider range,
but small values of the high byte are common.
For all these cases there is another encoding
that combines the instruction and the high byte of the argument
into a single opcode.
These opcodes are called shorties.
Shorties may be escaped.
.DS
|--------------|--------------|
| opcode+high | lobyte | (shortie)
|--------------|--------------|
or
|--------------|--------------|--------------|
| escape | opcode+high | lobyte |
|--------------|--------------|--------------|
.DE
Escaped shorties are useless if the normal encoding has a primary opcode.
Note that for some instruction-argument combinations
several different encodings are available.
It is the task of the assembler to select the shortest of these.
The savings by these mini and shortie
opcodes are considerable, about 55%.
.P
Further improvements are possible:
the arguments of
many instructions are a multiple of the wordsize.
Some do also not allow zero as an argument.
If these arguments are divided by the wordsize and,
when zero is not allowed, then decremented by 1, more of them can
be encoded as shortie or mini.
The arguments of some other instructions
rarely or never assume the value 0, but start at 1.
The value 1 is then encoded as 0,
2 as 1 and so on.
.P
Assigning opcodes to instructions by the assembler is completely
table driven.
For details see appendix B.
.S2 "Procedure descriptors"
The procedure identifiers used in the interpreter are indices
into a table of procedure descriptors.
Each descriptor contains:
.IS 6
.PS - 4
.PT 1.
the number of bytes to be reserved for locals at each
invocation.
.N
This is a pointer-szied integer.
.PT 2.
the start address of the procedure
.PE
.IE
.S2 "Load format"
The EM machine language load format defines the interface between
the EM assembler/loader and the EM machine itself.
A load file consists of a header, the program text to be executed,
a description of the global data area and the procedure descriptor table,
in this order.
All integers in the load file are presented with the
least significant byte first.
.P
The header has two parts: the first half (eight 16-bit integers)
aids in selecting
the correct EM machine or interpreter.
Some EM machines, for instance, may have hardware floating point
instructions.
.N
The header entries are as follows (bit 0 is rightmost):
.IS 2
.VS 1 0
.PS 1 4 "" :
.PT
magic number (07255)
.PT
flag bits with the following meaning:
.PS - 7 "" :
.PT bit 0
TEST; test for integer overflow etc.
.PT bit 1
PROFILE; for each source line: count the number of memory
cycles executed.
.PT bit 2
FLOW; for each source line: set a bit in a bit map table if
instructions on that line are executed.
.PT bit 3
COUNT; for each source line: increment a counter if that line
is entered.
.PT bit 4
REALS; set if a program uses floating point instructions.
.PT bit 5
EXTRA; more tests during compiler debugging.
.PE
.PT
number of unresolved references.
.PT
version number; used to detect obsolete EM load files.
.PT
wordsize ; the number of bytes in each machine word.
.PT
pointer size ; the number of bytes available for addressing.
.PT
unused
.PT
unused
.PE
.IE
The second part of the header (eight entries, of pointer size bytes each)
describes the load file itself:
.IS 2
.PS 1 4 "" :
.PT
NTEXT; the program text size in bytes.
.PT
NDATA; the number of load-file descriptors (see below).
.PT
NPROC; the number of entries in the procedure descriptor table.
.PT
ENTRY; procedure number of the procedure to start with.
.PT
NLINE; the maximum source line number.
.PT
SZDATA; the address of the lowest uninitialized data byte.
.PT
unused
.PT
unused
.PE
.IE
.P
The program text consists of NTEXT bytes.
NTEXT is always a multiple of the wordsize.
The first byte of the program text is the
first byte of the instruction address
space, i.e. it has address 0.
Pointers into the program text are found in the procedure descriptor
table where relocation is simple and in the global data area.
The initialization of the global data area allows easy
relocation of pointers into both address spaces.
.P
The global data area is described by the NDATA descriptors.
Each descriptor describes a number of consecutive words (of~wordsize)
and consists of a sequence of bytes.
While reading the descriptors from the load file, one can
initialize the global data area from low to high addresses.
The size of the initialized data area is given by SZDATA,
this number can be used to check the initialization.
.N
The header of each descriptor consists of a byte, describing the type,
and a count.
The number of bytes used for this (unsigned) count depends on the
type of the descriptor and
is either a pointer-sized integer
or one byte.
The meaning of the count depends on the descriptor type.
At load time an interpreter can
perform any conversion deemed necessary, such as
reordering bytes in integers
and pointers and adding base addresses to pointers.
.BP
.A
In the following pictures we show a graphical notation of the
initializers.
The leftmost rectangle represents the leading byte.
.N 1
.DS
.PS - 4 " "
Fields marked with
.N 1
.PT n
contain a pointer-sized integer used as a count
.PT m
contain a one-byte integer used as a count
.PT b
contain a one-byte integer
.PT w
contain a wordsized integer
.PT p
contain a data or instruction pointer
.PT s
contain a null terminated ASCII string
.PE 1
.DE 0
.VS 1 1
.DS
-------------------
| 0 | n | repeat last initialization n times
-------------------
.DE
.DS
---------
| 1 | m | m uninitialized words
---------
.DE
.DS
____________
/ bytes \e
----------------- -----
| 2 | m | b | b |...| b | m initialized bytes
----------------- -----
.DE
.DS
_________
/ word \e
-----------------------
| 3 | m | w |... m initialized wordsized integers
-----------------------
.DE
.DS
_________
/ pointer \e
-----------------------
| 4 | m | p |... m initialized data pointers
-----------------------
.DE
.DS
_________
/ pointer \e
-----------------------
| 5 | m | p |... m initialized instruction pointers
-----------------------
.DE
.DS
____________
/ bytes \e
-------------------------
| 6 | m | b | b |...| b | initialized integer of size m
-------------------------
.DE
.DS
____________
/ bytes \e
-------------------------
| 7 | m | b | b |...| b | initialized unsigned of size m
-------------------------
.DE
.DS
____________
/ string \e
-------------------------
| 8 | m | s | initialized float of size m
-------------------------
.DE 3
.PS - 8
.PT type~0:
If the last initialization initialized k bytes starting
at address \fIa\fP, do the same initialization again n times,
starting at \fIa\fP+k, \fIa\fP+2*k, .... \fIa\fP+n*k.
This is the only descriptor whose starting byte
is followed by an integer with the
size of a
pointer,
in all other descriptors the first byte is followed by a one-byte count.
This descriptor must be preceded by a descriptor of
another type.
.PT type~1:
Reserve m words, not explicitly initialized (BSS and HOL).
.PT type~2:
The m bytes following the descriptor header are
initializers for the next m bytes of the
global data area.
m is divisible by the wordsize.
.PT type~3:
The m words following the header are initializers for the next m words of the
global data area.
.PT type~4:
The m data address space pointers following the header are
initializers for the next
m data pointers in the global data area.
Interpreters that represent EM pointers by
target machine addresses must relocate all data pointers.
.PT type~5:
The m instruction address space pointers following the header are
initializers for the next
m instruction pointers in the global data area.
Interpreters that represent EM instruction pointers by
target machine addresses must relocate these pointers.
.PT type~6:
The m bytes following the header form
a signed integer number with a size of m bytes,
which is an initializer for the next m bytes
of the global data area.
m is governed by the same restrictions as for
transfer of objects to/from memory.
.PT type~7:
The m bytes following the header form
an unsigned integer number with a size of m bytes,
which is an initializer for the next m bytes
of the global data area.
m is governed by the same restrictions as for
transfer of objects to/from memory.
.PT type~8:
The header is followed by an ASCII string, null terminated, to
initialize, in global data,
a floating point number with a size of m bytes.
m is governed by the same restrictions as for
transfer of objects to/from memory.
The ASCII string contains the notation of a real as used in the
Pascal language.
.PE
.P
The NPROC procedure descriptors on the load file consist of
an instruction space address (of~pointer~size) and
an integer (of~pointer~size) specifying the number of bytes for
locals.

View File

@@ -1,16 +0,0 @@
.so /usr/lib/tmac/tmac.kun
.SS 6
.RP
.PL 12i 11i
.LL 89
.MS T E
\!.TL '%'''
.ME
.MS T O
\!.TL '''%'
.ME
.MS B
.sp 1
.ME
.SM S1 B
.SM S2 B

View File

@@ -1,245 +0,0 @@
.SN 5
.BP
.S1 "MAPPING OF EM DATA MEMORY ONTO TARGET MACHINE MEMORY"
The EM architecture is designed to be implemented
on many existing and future machines.
EM memory is highly fragmented to make
adaptation to various memory architectures possible.
Format and encoding of pointers is explicitly undefined.
.P
This chapter gives solutions to some of the
anticipated problems.
First, we describe a possible memory layout for machines
with 64K bytes of address space.
Here we use a member of the EM family with 2-byte word and pointer
size.
The most straightforward layout is shown in figure 2.
.N 1
.DS
65534 -> |-------------------------------|
|///////////////////////////////|
|//// unimplemented memory /////|
|///////////////////////////////|
ML -> |-------------------------------|
| |
| | <- LB
| stack and local area |
| |
|-------------------------------| <- SP
|///////////////////////////////|
|//////// inaccessible /////////|
|///////////////////////////////|
|-------------------------------| <- HP
| |
| heap area |
| |
| |
HB -> |-------------------------------|
| |
| global data area |
| |
EB -> |-------------------------------|
| |
| program text | <- PC
| |
| ( and tables ) |
| |
| |
PB -> |-------------------------------|
|///////////////////////////////|
|////////// undefined //////////|
|///////////////////////////////|
0 -> |-------------------------------|
Figure 2. Memory layout showing typical register
positions during execution of an EM program.
.DE 2
The base registers for the various memory pieces can be stored
in target machine registers or memory.
.IS
.N 1
.TS
tab(;);
l 1 l l l.
PB;:;program base;points to the base of the instruction address space.
EB;:;external base;points to the base of the data address space.
HB;:;heap base;points to the base of the heap area.
ML;:;memory limit;marks the high end of the addressable data space.
.TE 1
.IE
The stack grows from high
EM addresses to low EM addresses, and the heap the
other way.
The memory between SP and HP is not accessible,
but may be allocated later to the stack or the heap if needed.
The local data area is allocated starting at the high end of
memory.
.P
Because EM address 0 is not mapped onto target
address 0, a problem arises when pointers are used.
If a program pushed a constant, say 6, onto the stack,
and then tried to indirect through it,
the wrong word would be fetched,
because EM address 6 is mapped onto target address EB+6
and not target address 6 itself.
This particular problem is solved by explicitly declaring
the format of a pointer to be undefined,
so that using a constant as a pointer is completely illegal.
However, the general problem of mapping pointers still exists.
.P
There are two possible solutions.
In the first solution, EM pointers are represented
in the target machine as true EM addresses,
for example, a pointer to EM address 6 really is
stored as a 6 in the target machine.
This solution implies that every time a pointer is fetched
EB must be added before referencing
the target machine's memory.
If the target machine has powerful indexing
facilities, EB can be kept in a target machine register,
and the relocation can indeed be done on
every reference to the data address space
at a modest cost in speed.
.P
The other solution consists of having EM pointers
refer to the true target machine address.
Thus the instruction LAE 6 (Load Address of External 6)
would push the value of EB+6 onto the stack.
When this approach is chosen, back ends must know
how to offset from EB, to translate all
instructions that manipulate EM addresses.
However, the problem is not completely solved,
because a front end may have to initialize a pointer
in CON or ROM data to point to a global address.
This pointer must also be relocated by the back end or the interpreter.
.P
Although the EM stack grows from high to low EM addresses,
some machines have hardware PUSH and POP
instructions that require the stack to grow upwards.
If reasons of efficiency urge you to use these
instructions, then EM
can be implemented with the memory layout
upside down, as shown in figure 3.
This is possible because the pointer format is explicitly undefined.
The first element of a word array will have a
lower physical address than the second element.
.N 2
.DS
| | | |
| EB=60 | | ^ |
| | | | |
|-----------------| |-----------------|
105 | 45 | 44 | 104 214 | 41 | 40 | 215
|-----------------| |-----------------|
103 | 43 | 42 | 102 212 | 43 | 42 | 213
|-----------------| |-----------------|
101 | 41 | 40 | 100 210 | 45 | 44 | 211
|-----------------| |-----------------|
| | | | |
| v | | EB=255 |
| | | |
Type A Type B
.sp 2
Figure 3. Two possible memory implementations.
Numbers within the boxes are EM addresses.
The other numbers are physical addresses.
.DE 2
.A 0 0
So, we have two different EM memory implementations:
.IS
.PS - 4
.PT A~-
stack downwards
.PT B~-
stack upwards
.PE
.IE
.P
For each of these two possibilities we give the translation of
the EM instructions to push the third byte of a global data
block starting at EM address 40 onto the stack and to load the
word at address 40.
All translations assume a word and pointer size of two bytes.
The target machine used is a PDP-11 augmented with push and pop instructions.
Registers 'r0' and 'r1' are used and suffer from sign extension for byte
transfers.
Push $40 means push the constant 40, not word 40.
.P
The translation of the EM instructions depends on the pointer representation
used.
For each of the two solutions explained above the translation is given.
.P
First, the translation for the two implementations using EM addresses as
pointer representation:
.DS
.TS
tab(:), center;
l s l s l s
_ s _ s _ s
l 2 l 6 l 2 l 6 l 2 l.
EM:type A:type B
LAE:40:push:$40:push:$40
ADP:3:pop:r0:pop:r0
::add:$3,r0:add:$3,r0
::push:r0:push:r0
LOI:1:pop:r0:pop:r0
::-::neg:r0
::clr:r1:clr:r1
::bisb:eb(r0),r1:bisb:eb(r0),r1
::push:r1:push:r1
LOE:40:push:eb+40:push:eb-41
.TE
.DE
.BP
.P
The translation for the two implementations, if the target machine address is
used as pointer representation, is:
.N 1
.DS
.TS
tab(:), center;
l s l s l s
_ s _ s _ s
l 2 l 6 l 2 l 6 l 2 l.
EM:type A:type B
LAE:40:push:$eb+40:push:$eb-40
ADP:3:pop:r0:pop:r0
::add:$3,r0:sub:$3,r0
::push:r0:push:r0
LOI:1:pop:r0:pop:r0
::clr:r1:clr:r1
::bisb:(r0),r1:bisb:(r0),r1
::push:r1:push:r1
LOE:40:push:eb+40:push:eb-41
.TE
.DE
.P
The translation presented above is not intended to be optimal.
Most machines can handle these simple cases in one or two instructions.
It demonstrates, however, the flexibility of the EM design.
.P
There are several possibilities to implement EM on machines with
address spaces larger than 64k bytes.
For EM with two byte pointers one could allocate instruction and
data space each in a separate 64k piece of memory.
EM pointers still have to fit in two bytes,
but the base registers PB and EB may be loaded in hardware registers
wider than 16 bits, if available.
EM implementations can also make efficient use of a machine
with separate instruction and data space.
.P
EM with 32 bit pointers allows one to make use of machines
with large address spaces.
In a virtual, segmented memory system one could use a separate
segment for each fragment.

View File

@@ -1,80 +0,0 @@
.BP
.SN 2
.S1 MEMORY
The EM machine has two distinct address spaces,
one for instructions and one for data.
The data space is divided up into 8-bit bytes.
The smallest addressable unit is a byte.
Bytes are numbered consecutively from 0 to some maximum.
All sizes in EM are expressed in bytes.
.P
Some EM instructions can transfer objects containing several bytes
to and/or from memory.
The size of all objects larger than a word must be a multiple of
the wordsize.
The size of all objects smaller than a word must be a divisor
of the wordsize.
For example: if the wordsize is 2 bytes, objects of the sizes 1,
2, 4, 6,... are allowed.
The address of such an object is the lowest address of all bytes it contains.
For objects smaller than the wordsize, the
address must be a multiple of the object size.
For all other objects the address must be a multiple of the
wordsize.
For example, if an instruction transfers a 4-byte object to memory at
location \fIm\fP and the wordsize is 2,
\fIm\fP must be a multiple of 2 and the bytes at
locations \fIm\fP, \fIm\fP\|+\|1,\fIm\fP\|+\|2 and
\fIm\fP\|+\|3 are overwritten.
.P
The size of almost all objects in EM
is an integral number of words.
Only two operations are allowed on
objects whose size is a divisor of the wordsize:
push it onto the stack and pop it from the stack.
The addressing of these objects in memory is always indirect.
If such a small object is pushed onto the stack
it is assumed to be a small integer and stored
in the least significant part of a word.
The rest of the word is cleared to zero,
although
EM provides a way to sign-extend a small integer.
Popping a small object from the stack removes a word
from the stack, stores the least significant byte(s)
of this word in memory and discards the rest of the word.
.P
The format of pointers into both address spaces is explicitly undefined.
The size of a pointer, however, is fixed for a member of EM, so that
the compiler writer knows how much storage to allocate for a pointer.
.P
A minor problem is raised by the undefined pointer format.
Some languages, notably Pascal, require a special,
otherwise illegal, pointer value to represent the nil pointer.
The current Pascal-VU compiler uses the
integer value 0 as nil pointer.
This value is also used by many C programs as a normally impossible address.
A better solution would be to have a special
instruction loading an illegal pointer value,
but it is hard to imagine an implementation
for which the current solution is inadequate,
especially because the first word in the EM data space
is special and probably not the target of any pointer.
.P
The next two chapters describe the EM memory
in more detail.
One describes the instruction address space,
the other the data address space.
.P
A design goal of EM has been to allow
its implementation on a wide range of existing machines,
as well as allowing a new one to be built in hardware.
To this extent we have tried to minimize the demands
of EM on the memory structure of the target machine.
Therefore, apart from the logical partitioning,
EM memory is divided into 'fragments'.
A fragment consists of consecutive machine
words and has a base address and a size.
Pointer arithmetic is only defined within a fragment.
The only exception to this rule is comparison with the null
pointer.
All fragments must be word aligned.

View File

@@ -1,5 +0,0 @@
case $# in
1) make "$1".t ; ntlp "$1".t^lpr ;;
*) echo $0 heeft een argument nodig ;;
esac

View File

@@ -1,4 +0,0 @@
case $# in
1) make $1.t ; ntout $1.t ;;
*) echo $0 heeft een argument nodig ;;
esac

View File

@@ -1,38 +0,0 @@
.po 0
.TP 1
.ll 79
.sp 15
.ce 4
DESCRIPTION OF A MACHINE
ARCHITECTURE FOR USE WITH
BLOCK STRUCTURED LANGUAGES
.sp 6
.ce 4
Andrew S. Tanenbaum
Hans van Staveren
Ed G. Keizer
Johan W. Stevenson\v'-0.5m'*\v'0.5m'
.sp 2
.ce
August 1983
.sp 2
.ce
Informatica Rapport IR-81
.sp 13
Abstract
.sp 2
.ti +5
EM is a family of intermediate languages
designed for producing portable compilers.
A program called
.B front end
translates source programs to EM.
Another program,
.B back
.BW end ,
translates EM to the assembly language of the target machine.
Alternatively, the EM program can be assembled to a highly
efficient binary format for interpretation.
This document describes the EM languages in detail.
.sp 4
\v'-0.5m'*\v'0.5m' Present affiliation: NV Philips, Eindhoven

View File

@@ -1,130 +0,0 @@
.SN 6
.BP
.S1 "TYPE REPRESENTATIONS"
The representations used for typed objects are not precisely
specified by EM.
Sometimes we only specify that a typed object occupies a
certain amount of space and state no further restrictions.
If one wants to have a different representation of the value of
an object on the stack one has to use a convert instruction
in most cases.
We do specify some relations between the representations of
types.
This allows some intermixed use of operators for different types
on the same object(s).
For example, the instruction ZER pushes signed and
unsigned integers with the value zero and empty sets.
ZER has as only argument the size of the object.
.A
The representation of floating point numbers is a good example,
it allows widely varying implementations.
The only ways to create floating point numbers are via
initialization and via conversions from integer numbers.
Only by using conversions to integers and comparing
two floating point numbers with each other, can these numbers
be converted to human readable output.
Implementations may use base 10, base 2 or any other
base for exponents, and have freedom in choosing the range of
exponent and mantissa.
.A
Other types are more precisely described.
In the following paragraphs a description will be given of the
restrictions imposed on the representation of the types used.
A number \fBn\fP used in these paragraphs indicates the size of
the object in \fIbits\fP.
.S2 "Unsigned integers"
The range of unsigned integers is 0..2\v'-0.5m'\fBn\fP\v'0.5m'-1.
A binary representation is assumed.
The order of the bits within an object is knowingly left
unspecified.
Discussing bit order within each 8-bit byte is academic,
so the only real freedom of this specification lies in the byte
order.
We really do not care whether an implementation of a 4-byte
integer has its bytes in a particular order of significance.
This of course means that some sequences of instructions have
unpredictable effects.
For example:
.DS
LOC 258 ; STL 0 ; LAL 0 ; LOI 1 ( wordsize >=2 )
.DE
The value on the stack after executing this sequence
can be anything,
but will most likely be 1 or 2.
.A
Conversion between unsigned integers of different sizes have to
be done with explicit convert instructions.
One cannot simply pad an unsigned integer with zero's at either end
and expect a correct result.
.A
We assume existence of at least single word unsigned arithmetic
in any implementation.
.S2 "Signed Integers"
The range of signed integers is -2\v'-0.5m'\fBn\fP-1\v'0.5m'~..~2\v'-0.5m'\fBn\fP-1\v'0.5m'-1,
in other words the range of signed integers of \fBn\fP bits
using two's complement arithmetic.
The representation is the same as for unsigned integers except
the range 2\v'-0.5m'\fBn\fP-1\v'0.5m'~..~2\v'-0.5m'\fBn\fP\v'0.5m'-1 is mapped on the
range -2\v'-0.5m'\fBn\fP-1\v'0.5m'~..~-1.
In other words, the most significant bit is used as sign bit.
The convert instructions between signed and unsigned integers
of the same size can be used to catch errors.
.A
The value -2\v'-0.5m'\fBn\fP-1\v'0.5m' is used for undefined
signed integers.
EM implementations should trap when this value is used in an
operation on signed integers.
The instruction mask, accessed with SIM and LIM -~see chapter 9~- ,
can be used to disable such traps.
.A
We assume existence of at least single word signed arithmetic
in any implementation.
.BP
.S2 "Floating point values"
Floating point values must have a signed mantissa and a signed
exponent.
Although no base is specified, base 2 is the normal choice,
because the FEF instruction pushes the exponent in base 2.
.A
The implementation of floating point arithmetic is optional.
The compilers currently in use have runtime parameters for the
size of the floating point values they should use.
Common choices are 4 and/or 8 bytes.
.S2 Pointers
EM has two kinds of pointers: for instruction and for data
space.
Each kind can only be used for its own space, conversion between
these two subtypes is impossible.
We assume that pointers have a range from 0 upwards.
Any implementation may have holes in the pointer range between
fragments.
One can of course not expect to be able to address two megabyte
of memory using a 2-byte pointer.
Normally, a 2-byte pointer allows up to 65536 bytes of
addressable memory.
.A
Pointer representation has one restriction.
The pointer with the same representation as the integer zero of
the same size should be invalid.
Some languages and/or runtime systems represent the nil
pointer as zero.
.S2 "Bit sets"
All bit sets of size \fBn\fP are subsets of the set
{~i~|~i>=0,~i<\fBn\fP~}.
A bit set contains a bit for each element showing its
presence or absence.
Bit sets are subdivided into words.
The word with the lowest EM address governs the subset
{~i~|~i>=0,~i<\fBm\fP~}, where \fBm\fP is the number of bits in
a word.
The next higher words each govern the next higher \fBm\fP set elements.
The relation between a set with size of
a word and an unsigned integer word is that
the value of the unsigned integer is the summation of the
2\v'-0.5m'i\v'0.5m' where i is in the set.
.A
Example: a 2-word bit set (wordsize 2) containing the
elements 1, 6, 8, 15, 18, 21, 27 and 28 is composed of two
integers, e.g. at addresses 40 and 42.
The word at 40 contains the value 33090 (or~-32446),
the word at 42 contains the value 6180.

View File

@@ -1,621 +0,0 @@
.\" $Header$
.nr LL 7.5i
.nr PD 1v
.TL
Amsterdam Compiler Kit installation guide
.AU
Ed Keizer
.AI
Wiskundig Seminarium
Vrije Universiteit
Amsterdam
.NH
Introduction
.PP
This document
describes the process of installing Amsterdam Compiler Kit.
It depends on your combination of hard- and software how
hard it will be to install the kit.
This description is intended for a PDP 11/44 running
.UX
Version 7.
Installation on other PDP 11's should be easy, as long
as they have separate instruction and data space.
Installation on machine's without this feature, like PDP 11/34,
PDP 11/60 requires extensive surgery on some programs and is
thought of as impossible.
See chapter 6 for installation on other systems.
.NH
Restoring tree
.PP
The process of installing Amsterdam Compiler Kit is quite simple.
It is important that the original Amsterdam Compiler Kit
distribution tree structure is restored.
Proceed as follows
.IP " -" 10
Create a directory, for example /usr/em, on a device
with at least 20000 blocks left.
.IP " -"
Change to that directory (cd ...); it will be the working directory.
.IP " -"
Extract all files from the distribution medium, for instance
magtape:
\fBtar x\fP.
.IP " -"
Keep a copy of the original distribution to be able to repeat the process
of installation in case of disasters.
This copy is also useful as a reference point for diff-listings.
.LP
The directories in the tree contain the following information:
.nr PD 1v
.IP "lib" 14
.br
almost all binaries and shell files used by commands and
library em_data.a from misc/data
.IP "lib/ack"
.br
The command descriptor files used by the program ack.
.nr PD 0
.IP "bin"
.br
the few utilities that knot things together
.IP "etc"
.br
The MAIN description of EM sits here.
contains files (e.g. em_table) describing
the opcodes and pseudos in use,
the operands allowed, effect in stack etc. etc.
Make in this directory creates most of the files in h
.IP "include"
.br
More or less system independent include files needed by modules
in the C library from lang/cem/libcc.
Especially needed for "stdio".
.IP "h"
.br
The #include files for:
.nf
as_spec.h Used by EM assembler and interpreters.
em_abs.h Contains trap numbers and address for lin and fil
em_flag.h Definition of bits in array em_flag in lib/em_data.a
Describes parameters effect on flow of instructions
em_mes.h Definition of names for mes pseudo numbers
em_mnem.h instruction => compact mapping.
em_pseu.h pseudo instruction => compact mapping
em_ptyp.h Useful for compact code reading/writing,
defines classes of parameters
em_spec.h Definition of constants used in compact code
local.h Various definitions for local versions
pc_err.h Definitions of error numbers in Pascal
pc_file.h Macro's used in file handling in Pascal
em_path.h Pathnames used by \fIack\fP, intended
for all utilities
pc_size.h Sizes of objects used by Pascal compiler and
run-time system.
em_reg.h Definition of names for register types.
.IP "doc"
.br
Documentation
.nf
cg.doc Use and internal specification of the backend.
.br
regadd.doc Update for cg.doc concerning register variables
.br
regadd.doc Description of steps to add register variables.
.br
ack.doc Layout of description files needed for each machine.
.br
cref.doc C reference manual, addendum
.br
install.doc Ack Installation Guide
.br
pcref.doc Pascal reference manual, addendum
.br
peep.doc Description of the peephole optimizer
.br
em.doc EM reference manual
.br
toolkit.doc A general overview of the toolkit
.br
v7bugs.doc Bugs in the standard V7 system
.br
val.doc Pascal validation suite version 3 report
.nf
.IP "doc/em.doc"
.br
The EM-manual IR-81
.IP "doc/em.doc/int"
.br
The EM interpreter written in pascal
.IP "mkun"
.br
The PUBMAC macro package for nroff/troff from the Katholieke Universiteit at
Nijmegen.
It is used for the EM reference manual,
the Makefile installs the macro package in
/usr/lib/tmac/tmac.mkun*.
This package is in the public domain.
.IP "mach"
.br
just there to group the directories for all machines
these directories have sub-directories named:
.nf
as the assembler ( *.s + libraries => a.out )
cg the new backend ( *.m => *.s )
lib the libraries for all run-time systems
these libraries are used by the assembler.
libpc Used to create Pascal run-time system in 'lib'
libcc Used to create C run-time system in 'lib'
libem Sources for EM runtime system, result sits in 'lib'
test Various tests
dl Down-load programs
int Source for an interpreter
available are:
PMDS II 68000, wordsize 2, ptrsize 4
mach/m68k2
mach/m68k2/as
mach/m68k2/cg
mach/m68k2/libem
mach/m68k2/lib
mach/m68k2/dl
mach/m68k2/libpc
mach/m68k2/libcc
mach/m68k2/libsys
bare 6809
mach/6809
mach/6809/as
8080, wordsize 2, ptrsize 2
mach/8080
mach/8080/as
mach/8080/test
mach/8080/libcc
mach/8080/lib
bare 8086, wordsize 2, ptrsize 2
mach/i86
mach/i86/as
mach/i86/lib
mach/i86/libcc
mach/i86/dl
mach/i86/libem
mach/i86/libpc
mach/i86/saio (library for stand-alone EM on 86/12A )
pdp 11, UNIX/V7, wordsize 2, ptrsize 2
mach/pdp
mach/pdp/test
mach/pdp/libem
mach/pdp/lib
mach/pdp/libcc
mach/pdp/libpc
mach/pdp/cg
mach/pdp/int -PDP 11/44 EM interpreter
vax 780, UNIX V7, wordsize 4, ptrsize 4
mach/vax4
mach/vax4/cg
mach/vax4/lib
mach/vax4/libcc
mach/vax4/libem
mach/vax4/libpc
z80, CP/M, wordsize 2, ptrsize 2
mach/z80
mach/z80/as
mach/z80/libem
mach/z80/lib
mach/z80/libcc
mach/z80/libpc
mach/z80/int -Z80 EM interpreter
z80, nascom
mach/z80a
mach/z80a/dl
vax 11/780, Berkeley UNIX, wordsize 2, ptrsize 4
mach/vax2
mach/vax2/cg
mach/vax2/lib
mach/vax2/libpc
mach/vax2/libem
bare 6500, wordsize 2, ptrsize 2
mach/6500
mach/6500/as
mach/6500/dl
mach/6500/libem
mach/6500/lib
bare 6800, wordsize 2, ptrsize 2
mach/6800
mach/6800/as
EM virtual machine code, wordsize 2, ptrsize 2
mach/int
mach/int/libcc
mach/int/libpc
mach/int/lib
mach/int/test
The directory proto contains files used by most machines.
e.g. makefiles for libraries for C and Pascal
mach/proto
mach/proto/libg
.fi
.IP "emtest"
.br
Contains prototype of em test set.
.IP "man"
.br
Man files for various utilities
.IP "lang"
.br
just there to group the directories for all front-ends
.IP "lang/pc"
.br
Pascal front-end
.IP "lang/pc/libpc"
.br
Source of Pascal run-time system ( in EM or C )
.IP "lang/pc/test"
.br
Some test programs written in Pascal
.IP "lang/pc/pem"
.br
The compiler proper
.IP "lang/cem"
.br
C front-end
.IP "lang/cem/libcc"
.br
Directories with sources of C runtime system, libraries (in EM or C)
.IP "lang/cem/libcc/gen"
.br
Sources for routines in chapter III of UNIX programmers manual,
excluding STDIO
.IP "lang/cem/libcc/stdio"
.br
STDIO sources
.IP "lang/cem/libcc/mon"
.br
Sources for routines in chapter II, written in EM
.IP "lang/cem/comp"
.br
The compiler proper
.IP "lang/cem/ctest"
.br
C test set
.IP "lang/cem/ctest/cterr"
.br
Programs developed for pinpointing previous errors
.IP "lang/cem/ctest/ct*"
.br
The test programs.
.IP "util"
.br
Contains directories with various utilities
.IP "util/opt"
.br
EM peephole optimizer (*.k => *.m)
.IP "util/misc"
.br
Decode (*.[km] => *.e) + encode (*.e => *.k)
.IP "util/data"
.br
The C-code for `lib/em_data.a`
These sources are created by the Makefile in `etc`
.IP "util/ass"
.br
The EM assembler ( *.[km] + libraries => e.out )
.IP "util/arch"
.br
The archiver to be used for ALL EM utilities
.IP "util/cgg"
.br
A program needed for compiling backends.
.IP "util/cpp"
.br
The V7 C preprocessor.
.LP
All pathnames mentioned in the text of this document are relative to the
working directory, unless they start with '/'.
.PP
The person doing the installation needs permission to write in the
directories of the Amsterdam Compiler Kit distribution tree.
Preferably you should log in as sys (uid=3,gid=0).
.NH
Pathnames
.PP
Absolute pathnames are concentrated in "h/em_path.h".
Only the pascal runtime system and the utility \fIack\fP use
absolute pathnames to access files in the kit.
The tree is distributed with /usr/em as the working
directory.
The definition of EM_DIR in em_path.h should be altered to
specify the root
directory for the Compiler Kit distribution on your system.
Em_path.h also specifies which directory should be used for
temporary files.
Most programs from the kit do indeed use that directory
although some remain stubborn and use /tmp or /usr/tmp.
.LP
The shape of the tree should not be altered lightly because
most Makefiles and the
utility \fIack\fP know the shape of the ACK tree.
All pathnames in all Makefiles are relative, that is do not
have "/" as the first character.
The knowledge of the utility \fIack\fP about the shape of the tree is
concentrated in the files in the directory lib/ack.
.NH
Commands
.PP
The kit is distributed with all available commands in the bin
directory.
The commands distributed are:
.IP "\fIack\fP, \fIacc\fP, \fIapc\fP and their links"
.br
They are used to compile the Pascal, C, etc... programs.
.IP \fIarch\fP
.br
The archiver used for the EM- and universal assembler.
.IP "\fIem\fP and \fIeminform\fP"
.br
The EM interpretator for the PDP-11 and the program to unravel
its post-mortem information.
.LP
We currently make the kit available to our users by telling
them that they should include the bin directory of the kit in
their PATH shell variable.
The programs will still work when moved to a different
directory.
The copying should preferably be done with tar, since links are
heavily used.
Renaming of the programs linked to \fIack\fP will not always
produce the desired result.
This program uses its call name as an argument.
Any call name not being \fIcc\fP, \fIacc\fP, \fIpc\fP or \fIapc\fP will be
interpreted as the name of a 'machine description' and the
program will try to find a description file with that name.
All recompilations will only touch the utilities in the bin
directory, not your own copies.
.NH
Options
.PP
There is one important option in h/local.h.
The utility \fIack\fP uses a default machine name when called
as \fIacc\fP, \fIcc\fP, \fIapc\fP, \fIpc\fP or \fIack\fP.
The machine name used for default is determined by the
definition of ACKM in h/local.h.
The current definition is \fIpdp\fP.
.PP
The distribution is tailored to one specific opreating system per CPU type.
For some of these CPU's it is possible to tailor the distribution to another
operating system.
The steps to be taken are described in READ_ME (or README) files in the
subdirectories of the directory in EM_DIR/mach for that particular machine.
For example: The vax2 distribution is tailoerd to BSD4.1, but has #define's
for BSD4.1c and BSD4.2.
For the names and places of these define's look in EM_DIR/mach/vax2/cg and
EM_DIR/mach/vax2/libem.
.NH
Recompilation
.PP
The kit comes with binaries in the directories \fBbin\fP and
\fBlib\fP.
Some directories among mach/*/lib contain archives with object files,
notably mach/pdp/lib.
The binaries and object files are for a PDP 11/44 with floating
point running UNIX V7.
.PP
Almost all directories contain a "Makefile" or a shell command file called
"make".
Apart from commands applying to that specific directory these
files all recognize a few special commands.
When called with one of these they will apply the command to
their own directory and all subdirectories.
The special commands are:
.IP "install" 20
recompile and install all binaries and libraries.
.br
Some Makefiles allow errors to occur in the programs they call.
They ignore such errors and notify the user with the message
"~....... error code n: ignored".
Whenever such a message appears in the output you can ignore it
too.
.br
The installation of the PUBMAC macro package is not done
automatically from the higher level directory.
.IP "cmp"
recompile all binaries and libraries and compare them to the
ones already installed.
.IP pr
print the sources and documentation on the standard output.
.IP opr
make pr | opr
.br
Opr should be an off-line printer daemon.
On some systems it exists under another name e.g. lpr.
The easiest way to call such a spooler is using a shell script
with the name opr that calls lpr.
This script should be placed in /usr/bin or EM_DIR/bin or
one of the directories in your PATH.
.IP clean
remove all files not needed for day-to-day use,
that is binaries not in bin or lib, object files etc.
.LP
Example:
.nf
.sp 1
make install
.sp 1
.fi
given as command in the home directory will cause
recompilation of all programs in the kit.
.LP
Recompilation of the complete kit lasts about 9 hours an a PDP
11/44.
.NH 2
Recompilation on a different machine.
.PP
Installation on other systems will often require recompilation
of all programs.
The presence of a C compiler is essential for recompilation.
Except the Pascal compiler proper all programs are written in C.
Some modules are derived from \fIyacc\fP sources.
Retranslating these programs from that yacc source is not
necessary, although it might improve performance.
Some versions of \fIyacc\fP 'know' that the resulting C programs will
run on a 32-bit int machine.
C modules produced by such a \fIyacc\fP are not portable and
should not be used to (cross)compile programs for 16-bit machines.
We assume a version UNIX which, apart from the C-compiler,
contains most normal utilities, like ed, sed, grep, make, the
Bourne shell etc.
All Makefiles use the system C-compiler.
The existence of a backend for your system is of course essential
if you wish to produce executable files for that system.
When the backend exists it is also possible to boot the Pascal
Compiler,
that is written in Pascal itself.
The kit contains the compact code files for the 2/2 and 2/4
versions of the Pascal compiler.
The current version of this compiler can only be used on machines
with a 16-bit word size and 16- or 32-bit pointers.
The Makefile automatically tries to boot the Pascal compiler
from one of these compact code files, if the compiler proves
unable to compile itself.
.PP
The native assemblers and loaders are used on PDP-11 and VAX.
The description files in lib/ack for other systems use our
universal assembler.
The load file produced by this assembler is not directly
usable in any system known to us,
but has to be converted before it can be put to use.
The \fIdl\fP programs present for some machines unravel
these load files and transmit commands to load memory
to a microprocessor over a serial line.
The PDP-11 version of our universal assembler is supplied
with a conversion program.
The file man/a.out.5 contains a description of the format of
the universal assembler load file,
it might be useful to those who wish or need to write their
own conversion programs.
.br
Berkeley UNIX for the VAX'en has (at least) three different
versions, BSD4.1a, BSD4.1c and BSD4.2. The READ_ME files in the
directories mach/vax2/cg, mach/vax2/libem, mach/vax4/cg and
mach/vax4/libem tell you how to adapt the vax2 and vax4 backend
to these versions.
.NH 2
Recompiling libraries
.PP
The kit contains sources for part II and III of the C-library, except
the math functions, they are grabbed from our V7 system and sometimes
altered in a EM dependent way or replaced altogether when the original
was in assembly.
These files can be used to make libraries for the Ack C-compiler.
The recompilation process uses a few include files.
The include directory in the EM home directory contains a few more
or less system independent include files.
The system dependent include files are fetched from /usr/include
on the system you use to recompile.
This may lead to several problems.
Sometimes the system differs so much from V7 that certain manifest constants
do not exist any more.
At other times these include files were written for a compiler without
a restriction on name length.
In that case - I've seen it happen - people tend to use differing
identifiers that are identical in the first eight characters.
All these problems you have to solve yourself,
the libraries are only included as an extra and too much system
dependent to give any guarantees.
.NH
Fixes to the UNIX V7 system
.PP
UNIX System V7 has a few bugs that prevent a part of or the whole kit
from working properly.
To be honest, we do not know which of the following changes are
essential to the functioning of our kit.
.PP
The file "doc/v7bugs.doc" gives for each of the following bugs
a small test program and a diff listing of the source files that have to be
modified.
.IP 1
Bug in the C optimizer for unsigned comparison
.nr PD 0
.IP 2
The loader 'ld' fails for large data and text portions
.IP 3
Floating point registers are not saved if more memory is needed.
.IP 4
Floating point registers are not copied to child in fork().
.nr PD 1v
.LP
Use the test programs to see if the errors are present in your system
and to check if the modifications are effective.
.NH
Testing
.PP
Test sets are available in Pascal, C and EM assembly.
.IP em 8
.br
The directory emtest contains a few EM test programs.
The EM assembly files in these tests must be transformed into
load files, thereby avoiding use of the EM optimizer.
These tests use the LIN and NOP instructions to mark the passing of each
test.
The NOP instruction prints the current line number during the
test phase.
Each test notifies its correctness by calling LIN with a unique
number followed by a NOP which prints this line number.
The test finishes normally with 0 as the last number printed
In all other cases a bug showed its
existence.
.IP Pascal
.br
The directory lang/pc/test contains a few pascal test programs.
All these programs print the number of errors found and a
identification of these errors.
.IP C
.br
The sub-directories in lang/cem/ctest contain C test programs.
The idea behind these tests is:
when you have a program called xx.c, compile it into xx.cem.
Run it with standard output to xx.cem.r, compare this file to
xx.cem.g, a file containing the 'ideal' output.
Any differences will point to implementation differences or
bugs.
Giving the command "run gen" or plain "run" starts this
process.
The differences will be presented on standard output.
The contents of the result files depend on the wordsize,
the xx.cem.g files on the distribution are intended for a
16-bit machine.
.NH
Documentation
.PP
Manual pages for Amsterdam Compiler Kit can be copied
to "/usr/man/man?" by the
following commands:
.DS
cd man
make install
.DE
.LP
Several documents are provided:
.DS
doc/toolkit.doc: a general overview
doc/pcref.doc: the Pascal-frontend reference manual
doc/val.doc: the results of running the Pascal Validation Suite
doc/cref.doc: the C-frontend manual
doc/em.doc: a description of the EM machine architecture
doc/peep.doc: internal documentation for the peephole optimizer
doc/cg.doc: documentation for backend writers and maintainers
doc/regadd.doc: addendum to previous document describing register variables
doc/install.doc: this document
.DE
.LP
The Validation Suite is a collection of more than 200 Pascal programs,
designed by Brian Wichmann and Arthur Sale to test Pascal compilers.
We are not allowed to distribute it, but you may
request a copy from
.DS
Richard J. Cichelli
A.N.P.A.
1350 Sullivan Trail
P.O. Box 598
Easton, Pennsylvania 18042
USA
.DE
.LP
Good luck.

File diff suppressed because it is too large Load Diff

View File

@@ -1,506 +0,0 @@
.\" $Header$
.TL
Internal documentation on the peephole optimizer
.br
from the Amsterdam Compiler Kit
.NH 1
Introduction
.PP
Part of the Amsterdam Compiler Kit is a program to do
peephole optimization on an EM program.
The optimizer scans the program to match patterns from a table
and if found makes the optimization from the table,
and with the result of the optimization
it tries to find yet another optimization
continuing until no more optimizations are found.
.PP
Furthermore it does some optimizations that can not be called
peephole optimizations for historical reasons,
like branch chaining and the deletion of unreachable code.
.PP
The peephole optimizer consists of three parts
.IP 1)
A driving table
.IP 2)
A program translating the table to internal format
.IP 3)
C code compiled with the table to make the optimizer proper
.PP
In this document the table format, internal format and
data structures in the optimizer will be explained,
plus a hint on what the code does where it might not be obvious.
It is a simple program mostly.
.NH 1
Table format
.PP
The driving table consists of pattern/replacement pairs,
in principle one per line,
although a line starting with white space is considered
a continuation line for the previous.
The general format is:
.DS
optimization : pattern ':' replacement '\en'
.sp
pattern : EMlist optional_boolean_expression
.sp
replacement : EM_plus_operand_list
.DE
Example of a simple one
.DS
loc stl $1==0 : zrl $2
.DE
There is no real limit for the length of the pattern or the replacement,
the replacement might even be longer than the pattern,
and expressions can be made arbitrarily complicated.
.PP
The expressions in the table are made of the following pieces:
.IP -
Integer constants
.IP -
$\fIn\fP, standing for the operand of the \fIn\fP'th EM
instruction in the pattern,
undefined if that instruction has no operand.
.IP -
w, standing for the wordsize of the code optimized.
.IP -
p, for the pointersize.
.IP -
defined(expr), true if expression is defined
.IP -
samesign(expr,expr), true if expressions have the same sign.
.IP -
sfit(expr,expr), ufit(expr,expr),
true if the first expression fits signed or unsigned in the number
of bits given in the second expression.
.IP -
rotate(expr,expr),
first expression rotated left the number of bits given by the second expression.
.IP -
notreg(expr),
true if the local with the expression as number is not a candidate to put
in a register.
.IP -
rom(\fIn\fP,expr), contents of the rom descriptor at index expr that
is associated with the global label that should be the argument of
the \fIn\fP'th EM instruction.
Undefined if such a thing does not exist.
.PP
The usual arithmetic operators may be used on integer values,
if any operand is undefined the expression is undefined,
except for the defined() function above.
An undefined expression used for its truth value is false.
All arithmetic on local label operands is forbidden,
only things allowed are tests for equality.
Arithmetic on global labels makes sense,
i.e. one can add a global label and a constant,
but not two global labels.
.PP
In the table one can use five additional EM instructions in patterns.
These are:
.IP lab
Stands for a local label
.IP LLP
Load Local Pointer, translates into a
.B lol
or into a
.B ldl
depending on the relationship between wordsize and pointersize.
.IP LEP
Load External Pointer, translates into a
.B loe
or into a
.B lde .
.IP SLP
Store Local Pointer,
.B stl
or
.B sdl .
.IP SEP
Store External Pointer,
.B ste
or
.B sde .
.PP
There is only one peephole optimizer,
so the substitutions to be made for the last four instructions
are made at run time before the first optimizations are made.
.NH 1
Internal format
.PP
The translating program,
.I mktab
converts the table into an array of bytes where all
patterns follow unaligned.
Format of a pattern is:
.IP 1)
One byte for high byte of hash value,
will be explained later on.
.IP 2)
Two bytes for the index of the next pattern in a chain.
.IP 3)
An integer\u*\d,
.FS
* An integer is encoded as a byte when less than 255,
otherwise as a byte containing 255 followed by two
bytes with the real value.
.FE
pattern length.
.IP 4)
The list of pattern opcodes, one per byte.
.IP 5)
An integer expression index, 0 if not used.
.IP 6)
An integer, replacement length.
.IP 7)
A list of pairs consisting of a one byte opcode and an integer
expression index.
.PP
The expressions are kept in an array of triples,
implementing a binary tree.
The
.I mktab
program tries to minimize the number of triples by reusing
duplicates and even reverses the operands of commutative operators
when doing so would spare a triple.
.NH 1
A tour through the sources
.PP
Now we will walk through the sources and note things of interest.
.NH 2
The header files
.PP
The header files are the place where data structures and options reside.
.NH 3
alloc.h
.PP
In the header file alloc.h several defines can be used to select various
kinds of core allocation schemes.
This is important on small machines like the PDP-11 since a complete
procedure must be in core at the same space,
and the peephole optimizer should not be the limiting factor in
determining the maximum size of procedures if possible.
Options are:
.IP -
USEMALLOC, standard malloc() and free() are used instead of the own
core allocation package.
Not recommended unless the own package does not work on some bizarre
machine.
.IP -
COREDEBUG, prints large amounts of information about core management.
Better not define it unless you change the code and it stops working.
.IP -
SEPID, if you define this you will get an extra procedure that will
go through a lot of work to scrape the last bytes together if the
system won't provide more.
This is not a good idea if memory is scarce and code and data reside
in the same spaces, since the room used by the procedure might well
be more than the room saved.
.IP -
STACKROOM, number of shorts used in stack space.
This is used if memory is scarce and stack space and data space are
different.
On the PDP-11 a UNIX process starts with an 8K stack segment which
cannot be transferred to the data segment.
Under these conditions one can use a lot of the stack space for storage.
.NH 3
assert.h
.PP
Just defines the assert macro.
When compiled with -DNDEBUG all asserts will be off.
.NH 3
ext.h
.PP
Gives external definitions of variables used by more than one module.
.NH 3
line.h
.PP
Defines the structures used to keep instructions,
one structure per line of EM code,
and the structure to keep arguments of pseudos,
one structure per argument.
Both structures essentially contain a pointer to the next,
a type,
and a union containing information depending on the type.
Core is allocated only for the part of the union used.
.PP
The
.I
struct line
.R
has a very compact encoding for small integers,
they are encoded in the type field.
On the PDP-11 this gives a line structure of only 4 bytes for most
instructions.
.NH 3
lookup.h
.PP
Contains definition of the struct used for symbol table management,
global labels and procedure names are kept in one table.
.NH 3
optim.h
.PP
If one defines the DIAGOPT option in this header file,
for every optimization performed a number is written on stderr.
The number gives the number of the pattern in the table
or one of the four special numbers in this header file.
.NH 3
param.h
.PP
Contains one settable option,
LONGOFF.
If this is not defined the optimizer can only optimize programs
with wordsize 2 and pointersize 2.
Set this only if it must be run on a Z80 or something pathetic like that.
.PP
Other defines here should not be touched.
.NH 3
pattern.h
.PP
Contains defines of indices in a pattern,
definition of the expression triples,
definitions of the various expression operators
and definition of the result struct where expression results are put.
.PP
This header file is the main one that is also included by
.I mktab .
.NH 3
proinf.h
.PP
This one contains definitions
for the local label table structs
and for the struct where all information for one procedure is kept.
This is in one struct so it can be saved easily when recursive
procedures have to be resolved.
.NH 3
types.h
.PP
Collection of typedefs to be used by almost all modules.
.NH 2
The C code itself.
.PP
The C code will now be the center of our attention.
We will make a walk through the sources and we will try
to follow the sources in a logical order.
So we will start at
.NH 3
main.c
.PP
The main.c module contains the main() function.
Here nothing spectacular happens,
only thing of interest is the handling of flags:
.IP -L
This is an instruction to the peephole optimizer to perform
one of its auxiliary functions, the generation of a library module.
This makes the peephole optimizer write its output on a temporary file,
and at the end making the real output by first generating a list
of exported symbols and then copying the temporary file behind it.
.IP -n
Disables all optimization.
Only thing the optimizer does now is filling in the blank after the
.I END
pseudo and resolving recursive procedures.
.PP
The place where main() is left is the call to getlines() which brings
us to
.NH 3
getline.c
.PP
This module reads the EM code and constructs a list of
.I
struct line
.R
records,
linked together backwards,
i.e. the first instruction read is the last in the list.
Pseudos are handled here also,
for most pseudos this just means that a chain of argument records
is linked into the linked line list but some pseudos get special attention:
.IP exc
This pseudo is acted upon right away.
Lines read are shuffled around according to instruction.
.IP mes
Some messages are acted upon.
These are:
.RS
.IP ms_err 8
The input is drained, just in case it is a pipe.
After that the optimizer exits.
.IP ms_opt
The do not optimize flag is set.
Acts just like -n on the command line.
.IP ms_emx
The word- and pointersize are read,
complain if we are not able to handle this.
.IP ms_reg
We take notice of the offset of this local.
See also comments in the description of peephole.c
.RE
.IP pro
A new procedure starts, if we are already in one save the status,
else process collected input.
Collect information about this procedure and if already in a procedure
call getlines() recursively.
.IP end
Process collected input.
.PP
The phrase "process collected input" is used twice,
which brings us to
.NH 3
process.c
.PP
This module contains the entry point process() which is called at any
time the collected input must be processed.
It calls a variety of other routines to get the real work done.
Routines in this module are in chronological order:
.IP symknown 12
Marks all symbols seen until now as known,
i.e. it is now known whether their scope is local or global.
This information is used again during output.
.IP symvalue
Runs through the chain of pseudos to give values to data labels.
This needs an extra pass.
It cannot be done during the getlines pass, since an
.B exc
pseudo could destroy things.
Nor can it be done during the backward pass since it is impossible
to do good fragment numbering backward.
.IP checklocs
Checks whether all local labels referenced are defined.
It needs to be sure about this since otherwise the
semi global optimizations made cannot work.
.IP relabel
This routine finds the final destination for each label in the procedure.
Labels followed by unconditional branches or other labels are marked during
the peephole fase and this leeds to chains of identical labels.
These chains are followed here, and in the local label table each label
has associated with it its replacement label, after this procedure is run.
Care is taken in this routine to prevent a loop in the program to
cause the optimizer to loop.
.IP cleanlocals
This routine empties the local label table after everything
is processed.
.PP
But before this can all be done,
the backward linked list of instructions first has to be reversed,
so here comes
.NH 3
backward.c
.PP
The routine backward has a number of functions:
.IP -
It reverses the backward linked list, making two forward linked lists,
one for the instructions and one for the pseudos.
.IP -
It notes the last occurrence of data labels in the backward linked list
and puts it in the global symbol table.
This is of course the first occurence in the procedure.
This information is needed to decide whether the symbols are global
or local to this module.
.IP -
It decides about the fragment boundaries of data blocks.
Fragments are numbered backwards starting at 3.
This is done to be able to make the type of an expression
containing a symbol equal to its fragment.
This type can then not clash with the types integer and local label.
.IP -
It allocates a rom buffer to every data label with a rom behind
it, if that rom contains only plain integers at the start.
.PP
The first thing done after process() has called backward() and some
of its own little routines is a call to the real routine,
the one that does the work the program was written for
.NH 3
peephole.c
.PP
The first routines in peephole.c
implement a linked list for the offsets of local variables
that are candidates for a register implementation.
Several patterns use the notreg() function,
since it is forbidden to combine a load of that variable
with the load of another and
it is not allowed to take the address of that variable.
.PP
The routine peephole hashes the patterns the first time it is called
after which it doesn't do much more than calling optimize.
But first hashpatterns().
.PP
The patterns are hashed at run time of the optimizer because of
the
.B LLP ,
.B LEP ,
.B SLP
and
.B SEP
instructions added to the instruction set in this optimizer.
These are first replaced everywhere in the table by the correct
replacement after which the first three instructions of the
pattern are hashed and the pattern is linked into one of the
256 linked lists.
There is a define CHK_HASH in this module that you
can set if you do not trust the randomness of the hashing
function.
.PP
The attention now shifts to optimize().
This routine calls basicblock() for every piece of code between two labels.
It also notes which labels have another label or a branch behind them
so the relabel() routine from process.c can do something with that.
.PP
Basicblock() keeps making passes over its basic block
until no more optimizations are found.
This might be inefficient if there is a long basicblock with some
deep recursive optimization in one part of it.
The entire basic block is then scanned a lot of times just for
that one piece.
The alternative is backing up after making an optimization and running
through the same code again, but that is difficult
in a single linked list.
.PP
It hashes instructions and calls trypat() for every pattern that has
a full hash value match,
i.e. lower byte and upper byte equal.
Longest pattern is tried first.
.PP
Trypat() checks length and opcodes of the pattern.
If correct it fills the iargs[] array with argument values
and calculates the expression.
If that is also correct the work shifts to tryrepl().
.PP
Tryrepl() generates the list of replacement instructions,
links it into the list and returns true.
Why then the name tryrepl() if it always succeeds?
Well, there is a mechanism in the optimizer,
unused until today that makes it possible to do optimizations that cannot
be described by the table.
It is possible to give a number as a replacement which will cause the
optimizer to call a routine special() to do some work.
This routine might decide not to do an optimization and return false.
.PP
The last routine that is called from process() is putline()
to write the optimized code, bringing us to
.NH 3
putline.c
.PP
The major part of putline.c is the standard set of routines
that makes EM compact code.
The extra functions performed are:
.IP -
For every occurence of a global symbol it might be necessary to
output a
.B exa ,
.B exp ,
.B ina
or
.B inp
pseudo instruction.
That task is performed.
.IP -
The
.B lin
instructions are optimized here,
.B lni
instructions added for
.B lin
instructions and superfluous
.B lin
instructions deleted.

View File

@@ -1,133 +0,0 @@
.\" $Header$
.TL
Addition of register variables to an existing table.
.NH 1
Introduction
.PP
This is a short description of the newest feature in the
table driven code generator for the Amsterdam Compiler Kit.
It describes how to add register variables to an existing table.
This assumes you have the distribution of October 1983 or later.
It is not clear whether you should read this when starting with
a table for a new machine,
or whether you should wait till the table is well debugged already.
.NH 1
Modifications to the table itself.
.NH 2
Register section
.PP
You can add just before the properties of the register one
of the following:
.IP - 2
regvar
.IP -
regvar ( pointer )
.IP -
regvar ( loop )
.IP -
regvar ( float )
.LP
All register variables of one type must be of the same size,
and they may have no subregisters.
.NH 2
Codesection
.PP
.IP - 2
Two pseudo functions are added to the list allowed inside expressions:
.RS
.IP 1) 3
inreg ( expr ) has as a parameter the offset of a local,
and returns 0,1 or 2:
.RS
.IP 2: 3
if the variable is in a register.
.IP 1:
if the variable could be in a register but isn't.
.IP 0:
if the variable cannot be in a register.
.RE
.IP 2)
regvar ( expr ) returns the register associated with the variable.
Undefined if it is not in a register.
So regvar ( expr ) is defined if and only if inreg (expr ) == 2.
.RE
.IP -
It is now possible to remove() a register expression,
this is of course needed for a store into a register local.
.IP -
The return out of a procedure may now involve register restores,
so the special word 'return' in the table will invoke a user defined
function.
.NH 1
Modifications to mach.c
.PP
If register variables are used in a table, the program
.I cgg
will define the word REGVARS during compilation of the sources.
So the following functions described here should be bracketed
by #ifdef REGVARS and #endif.
.IP - 2
regscore(off,size,typ,freq,totyp) long off;
.br
This function should assign a score to a register variable,
the score should preferably be the estimated number of bytes
gained when it is put in a register.
Off and size are the offset and size of the variable,
typ is the type, that is reg_any, reg_pointer, reg_loop or reg_float.
Freq is the number of times it occurs statically, and totyp
is the type of the register it is planned to go into.
.br
Keep in mind that the gain should be net, that is the cost for
register save/restore sequences and the cost of initialisation
in the case of parameters should already be included.
.IP -
i_regsave()
.br
This function is called at the start of a procedure, just before
register saves are done.
It can be used to initialise some variables if needed.
.IP -
f_regsave()
.br
This function is called at end of the register save sequence.
It can be used to do the real saving if multiple register move
instructions are available.
.IP -
regsave(regstr,off,size) char *regstr; long off;
.br
Should either do the real saving or set up a table to have
it done by f_regsave.
Note that initialisation of parameters should also be done,
or planned here.
.IP -
regreturn()
.br
Should restore saved registers and return.
The function result is already in the function return area by now.
.NH 1
Examples
.PP
Here are some examples out of the PDP 11 table
.DS
lol inreg($1)==2| | | regvar($1) | |
lil inreg($1)==2| | | {regdef2, regvar($1)} | |
stl inreg($1)==2| xsource2 |
remove(regvar($1))
move(%[1],regvar($1)) | | |
inl inreg($1)==2| | remove(regvar($1))
"inc %(regvar($1)%)"
setcc(regvar($1)) | | |
.DE
.NH 1
Afterthoughts.
.PP
At the time of this writing the tables for the PDP 11 and the M68000 and
the VAX are converted, in all cases the two byte wordsize versions.
No big problems have occurred, but experience has shown that it is
necessary to check your table carefully for all patterns with locals in them
because if you forget one code will be generated by that one coderule
to use the memoryslot the local is not in.

View File

@@ -1,897 +0,0 @@
.\" $Header$
.RP
.ND
.nr LL 78m
.tr ~
.ds as *
.TL
A Practical Tool Kit for Making Portable Compilers
.AU
Andrew S. Tanenbaum
Hans van Staveren
E. G. Keizer
Johan W. Stevenson
.AI
Mathematics Dept.
Vrije Universiteit
Amsterdam, The Netherlands
.AB
The Amsterdam Compiler Kit is an integrated collection of programs designed to
simplify the task of producing portable (cross) compilers and interpreters.
For each language to be compiled, a program (called a front end)
must be written to
translate the source program into a common intermediate code.
This intermediate code can be optimized and then either directly interpreted
or translated to the assembly language of the desired target machine.
The paper describes the various pieces of the tool kit in some detail, as well
as discussing the overall strategy.
.sp
Keywords: Compiler, Interpreter, Portability, Translator
.sp
CR Categories: 4.12, 4.13, 4.22
.sp 12
Author's present addresses:
A.S. Tanenbaum, H. van Staveren, E.G. Keizer: Mathematics
Dept., Vrije Universiteit, Postbus 7161, 1007 MC Amsterdam,
The Netherlands
J.W. Stevenson: NV Philips, S&I, T&M, Building TQ V5, Eindhoven,
The Netherlands
.AE
.NH 1
Introduction
.PP
As more and more organizations acquire many micro- and minicomputers,
the need for portable compilers is becoming more and more acute.
The present situation, in which each hardware vendor provides its own
compilers -- each with its own deficiencies and extensions, and none of them
compatible -- leaves much to be desired.
The ideal situation would be an integrated system containing a family
of (cross) compilers, each compiler accepting a standard source language and
producing code for a wide variety of target machines.
Furthermore, the compilers should be compatible, so programs written in
one language can call procedures written in another language.
Finally, the system should be designed so as to make adding new languages
and new machines easy.
Such an integrated system is being built at the Vrije Universiteit.
Its design and implementation is the subject of this article.
.PP
Our compiler building system, which is called the "Amsterdam Compiler Kit"
(ACK), can be thought of as a "tool kit."
It consists of a number of parts that can be combined to form compilers
(and interpreters) with various properties.
The tool kit is based on an idea (UNCOL) that was first suggested in 1960
[7], but which never really caught on then.
The problem which UNCOL attempts to solve is how to make a compiler for
each of
.I N
languages on
.I M
different machines without having to write
.I N
x
.I M
programs.
.PP
As shown in Fig. 1, the UNCOL approach is to write
.I N
"front ends," each
of which translates one source language to a common intermediate language,
UNCOL (UNiversal Computer Oriented Language), and
.I M
"back ends," each
of which translates programs in UNCOL to a specific machine language.
Under these conditions, only
.I N
+
.I M
programs must be written to provide all
.I N
languages on all
.I M
machines, instead of
.I N
x
.I M
programs.
.PP
Various researchers have attempted to design a suitable UNCOL
[2,8], but none of these have become popular.
It is our belief that previous attempts have failed because they have been
too ambitious, that is, they have tried to cover all languages
and all machines using a single UNCOL.
Our approach is more modest: we cater only to algebraic languages
and machines whose memory consists of 8-bit bytes, each with its own address.
Typical languages that could be handled include
Ada, ALGOL 60, ALGOL 68, BASIC, C, FORTRAN,
Modula, Pascal, PL/I, PL/M, PLAIN, and RATFOR,
whereas COBOL, LISP, and SNOBOL would be less efficient.
Examples of machines that could be included are the Intel 8080 and 8086,
Motorola 6800, 6809, and 68000, Zilog Z80 and Z8000, DEC PDP-11 and VAX,
and IBM 370 but not the Burroughs 6700, CDC Cyber, or Univac 1108 (because
they are not byte-oriented).
With these restrictions, we believe the old UNCOL idea can be used as the
basis of a practical compiler-building system.
.KF
.sp 15P
.ce 1
Fig. 1. The UNCOL model.
.sp
.KE
.NH 1
An Overview of the Amsterdam Compiler Kit
.PP
The tool kit consists of eight components:
.sp
1. The preprocessor.
2. The front ends.
3. The peephole optimizer.
4. The global optimizer.
5. The back end.
6. The target machine optimizer.
7. The universal assembler/linker.
8. The utility package.
.sp
.PP
A fully optimizing compiler,
depicted in Fig. 2, has seven cascaded phases.
Conceptually, each component reads an input file and writes a
transformed output file to be used as input to the next component.
In practice, some components may use temporary files to allow multiple
passes over the input or internal intermediate files.
.KF
.sp 12P
.ce 1
Fig. 2. Structure of the Amsterdam Compiler Kit.
.sp
.KE
.PP
In the following paragraphs we will briefly describe each component.
After this overview, we will look at all of them again in more detail.
A program to be compiled is first fed into the (language independent)
preprocessor, which provides a simple macro facility,
and similar textual facilties.
The preprocessor's output is a legal program in one of the programming
languages supported, whereas the input is a program possibly augmented
with macros, etc.
.PP
This output goes into the appropriate front end, whose job it is to
produce intermediate code.
This intermediate code (our UNCOL) is the machine language for a simple
stack machine called EM (Encoding Machine).
A typical front end might build a parse tree from the input, and then
use the parse tree to generate EM code, which is similar to reverse Polish.
In order to perform this work, the front end has to maintain tables of
declared variables, labels, etc., determine where to place the
data structures in memory, and so on.
.PP
The EM code generated by the front end is fed into the peephole optimizer,
which scans it with a window of a few instructions, replacing certain
inefficient code sequences by better ones.
Such a search is important because EM contains instructions to handle
numerous important special cases efficiently
(e.g., incrementing a variable by 1).
It is our strategy to relieve the front ends of the burden of hunting for
special cases because there are many front ends and only one peephole
optimizer.
By handling the special cases in the peephole optimizer,
the front ends become simpler, easier to write and easier to maintain.
.PP
Following the peephole optimizer is a global optimizer [5], which
unlike the peephole optimizer, examines the program as a whole.
It builds a data flow graph to make possible a variety of
global optimizations,
among them, moving invariant code out of loops, avoiding redundant
computations, live/dead analysis and eliminating tail recursion.
Note that the output of the global optimizer is still EM code.
.PP
Next comes the back end, which differs from the front ends in a
fundamental way.
Each front end is a separate program, whereas the back end is a single
program that is driven by a machine dependent driving table.
The driving table for a specific machine tells how the EM code is mapped
onto the machine's assembly language.
Although a simple driving table might just macro expand each EM instruction
into a sequence of target machine instructions, a much more sophisticated
translation strategy is normally used, as described later.
For speed, the back end does not actually read in the driving table at run time.
Instead, the tables are compiled along with the back end in advance, resulting
in one binary program per machine.
.PP
The output of the back end is a program in the assembly language of some
particular machine.
The next component in the pipeline reads this program and performs peephole
optimization on it.
The optimizations performed here involve idiosyncracies
of the target machine that cannot be performed in the machine-independent
EM-to-EM peephole optimizer.
Typically these optimizations take advantage of special instructions or special
addressing modes.
.PP
The optimized target machine assembly code then goes into the final
component in the pipeline, the universal assembler/linker.
This program assembles the input to object format, extracting routines from
libraries and including them as needed.
.PP
The final component of the tool kit is the utility package, which contains
various test programs, interpreters for EM code,
EM libraries, conversion programs, and other aids for the implementer and
user.
.NH 1
The Preprocessor
.PP
The function of the preprocessor is to extend all the programming languages
by adding certain generally useful facilities to them in a uniform way.
One of these is a simple macro system, in which the user can give names to
character strings.
The names can be used in the program, with the knowledge that they will be
macro expanded prior to being input to the front end.
Macros can be used for named constants, expanding short "procedures"
in line, etc.
.PP
Another useful facility provided by the preprocessor is the ability to
include compile-time libraries.
On large projects, it is common to have all the declarations and definitions
gathered together in a few files that are textually included in the programs
by instructing the preprocessor to read them in, thus fooling the front end
into thinking that they were part of the source program.
.PP
A third feature of the preprocessor is conditional compilation.
The input program can be split up into labeled sections.
By setting flags, some of the sections can be deleted by the preprocessor,
thus allowing a family of slightly different programs to be conveniently stored
on a single file.
.NH 1
The Front Ends
.PP
A front end is a program that converts input in some source language to a
program in EM.
At present, front ends
exist or are in preparation for Pascal, C, and Plain, and are being considered
for Ada, ALGOL 68, FORTRAN 77, and Modula 2.
Each of the present front ends is independent of all the other ones,
although a general-purpose, table-driven front end is conceivable, provided
one can devise a way to express the semantics of the source language in the
driving tables.
The Pascal front end uses a top-down parsing algorithm (recursive descent),
whereas the C and Plain front ends are bottom-up.
.PP
All front ends, independent of the language being compiled,
produce a common intermediate code called EM, which is
the assembly language for a simple stack machine.
The EM machine is based on a memory architecture
containing a stack for local variables, a (static) data area for variables
declared in the outermost block and global to the whole program, and a heap
for dynamic data structures.
In some ways EM resembles P-code [6], but is more general, since it is
intended for a wider class of languages than just Pascal.
.PP
The EM instruction set has been described elsewhere
[9,10,11]
so we will only briefly summarize it here.
Instructions exist to:
.sp
1. Load a variable or constant of some length onto the stack.
2. Store the top item on the stack in memory.
3. Add, subtract, multiply, divide, etc. the top two stack items.
4. Examine the top one or two stack items and branch conditionally.
5. Call procedures and return from them.
.sp
.PP
Loads and stores come in several variations, corresponding to the most common
programming language semantics, for example, constants, simple variables,
fields of a record, elements of an array, and so on.
Distinctions are also made between variables local to the current block
(i.e., stack frame), those in the outermost block (static storage), and those
at intermediate lexicographic levels, which are accessed by following the
static chain at run time.
.PP
All arithmetic instructions have a type (integer, unsigned, real,
pointer, or set) and an
operand length, which may either be explicit or may be popped from the stack
at run time.
Monadic branch instructions pop an item from the stack and branch if it is
less than zero, less than or equal to zero, etc.
Dyadic branch instructions pop two items, compare them, and branch accordingly.
.PP
In addition to these basic EM instructions, there is a collection of special
purpose instructions (e.g., to increment a local variable), which are typically
produced from the simple ones by the peephole optimizer.
Although the complete EM instruction set contains nearly 150 instructions,
only about 60 of them are really primitive; the rest are simply abbreviations
for commonly occurring EM instruction sequences.
.PP
Of particular interest is the way object sizes are parametrized.
The front ends allow the user to indicate how many bytes an integer, real, etc.
should occupy.
Given this information, the front ends can allocate memory, determining
the placement of variables within the stack frame.
Sizes for primitive types are restricted to 8, 16, 32, 64, etc. bits.
The front ends are also parametrized by the target machine's word length
and address size so they can tell, for example, how many "load" instructions
to generate to move a 32-bit integer.
In the examples used henceforth,
we will assume a 16-bit word size and 16-bit integers.
.PP
Since only byte-addressable target machines are permitted,
it is nearly
always possible to implement any requested sizes on any target machine.
For example, the designer of the back end tables for the Z80 should provide
code for 8-, 16-, and 32-bit arithmetic.
In our view, the Pascal, C, or Plain programmer specifies what lengths
are needed,
without reference to the target machine,
and the back end provides it.
This approach greatly enhances portability.
While it is true that doing all arithmetic using 32-bit integers on the Z80
will not be terribly fast, we feel that if that is what the programmer needs,
it should be possible to implement it.
.PP
Like all assembly languages, EM has not only machine instructions, but also
pseudoinstructions.
These are used to indicate the start and end of each procedure, allocate
and initialize storage for data, and similar functions.
One particularly important pseudoinstruction is the one that is used to
transmit information to the back end for optimization purposes.
It can be used to suggest variables that are good candidates to assign to
registers, delimit the scope of loops, indicate that certain variables
contain a useful value (next operation is a load) or not (next operation is
a store), and various other things.
.NH 1
The Peephole Optimizer
.PP
The peephole optimizer reads in unoptimized EM programs and writes out
optimized ones.
Both the input and output are expressed in a highly compact code, rather than
in ASCII, to reduce the i/o time, which would otherwise dominate the CPU
time.
The program itself is table driven, and is, by and large, ignorant of the
semantics of EM.
The knowledge of EM is contained in a
language- and machine-independent table consisting of about 400
pattern-replacement pairs.
We will briefly describe the kinds of optimizations it performs below;
a more complete discussion can be found in [9].
.PP
Each line in the driving table describes one optimization, consisting of a
pattern part and a replacement part.
The pattern part is a series of one or more EM instructions and a boolean
expression.
The replacement part is a series of EM instructions with operands.
A typical optimization might be:
.sp
LOL LOC ADI STL ($1 = $4) and ($2 = 1) and ($3 = 2) ==> INL $1
.sp
where the text prior to the ==> symbol is the pattern and the text after it is
the replacement.
LOL loads a local variable onto the stack, LOC loads a constant onto the stack,
ADI is integer addition, and STL is store local.
The pattern specifies that four consecutive EM instructions are present, with
the indicated opcodes, and that furthermore the operand of the first
instruction (denoted by $1) and the fourth instruction (denoted by $4) are the
same, the constant pushed by LOC is 1, and the size of the integers added by
ADI is 2 bytes.
(EM instructions have at most one operand, so it is not necessary to specify
the operand number.)
Under these conditions, the four instructions can be replaced by a single INL
(increment local) instruction whose operand is equal to that of LOL.
.PP
Although the optimizations cover a wide range, the main ones
can be roughly divided into the following categories.
\fIConstant folding\fR
is used to evaluate constant expressions, such as 2*3~+~7 at
compile time instead of run time.
\fIStrength reduction\fR
is used to replace one operation, such as multiply, by
another, such as shift.
\fIReordering of expressions\fR
helps in cases like -K/5, which can be better
evaluated as K/-5, because the former requires
a division and a negation, whereas the latter requires only a division.
\fINull instructions\fR
include resetting the stack pointer after a call with 0 parameters,
offsetting zero bytes to access the
first element of a record, or jumping to the next instruction.
\fISpecial instructions\fR
are those like INL, which deal with common special cases
such as adding one to a variable or comparing something to zero.
\fIGroup moves\fR
are useful because a sequence
of consecutive moves can often be replaced with EM code
that allows the back end to generate a loop instead of in line code.
\fIDead code elimination\fR
is a technique for removing unreachable statements, possibly made unreachable
by previous optimizations.
\fIBranch chain compression\fR
can be applied when a branch instruction jumps to another branch instruction.
The first branch can jump directly to the final destination instead of
indirectly.
.PP
The last two optimizations logically belong in the global optimizer but are
in the local optimizer for historical reasons (meaning that the local
optimizer has been the only optimizer for many years and the optimizations were
easy to do there).
.NH 1
The Global Optimizer
.PP
In contrast to the peephole optimizer, which examines the EM code a few lines
at a time through a small window, the global optimizer examines the
program's large scale structure.
Three distinct types of optimizations can be found here:
.sp
1. Interprocedural optimizations.
2. Intraprocedural optimizations.
3. Basic block optimizations.
.sp
We will now look at each of these in turn.
.PP
Interprocedural optimizations are those spanning procedure boundaries.
The most important one is deciding to expand procedures in line,
especially short procedures that occur in loops and pass several parameters.
If it takes more time or memory to pass the parameters than to do the work,
the program can be improved by eliminating the procedure.
The inverse optimization -- discovering long common code sequences and
turning them into a procedure -- is also possible, but much more difficult.
Like much of the global optimizer's work, the decision to make or not make
a certain program transformation is a heuristic one, based on knowledge of
how the back end works, how most target machines are organized, etc.
.PP
The heart of the global optimizer is its analysis of individual
procedures.
To perform this analysis, the optimizer must locate the basic blocks,
instruction sequences which can be entered only at the top and exited
only at the bottom.
It then constructs a data flow graph, with the basic blocks as nodes and
jumps between blocks as arcs.
.PP
From the data flow graph, many important properties of the program can be
discovered and exploited.
Chief among these is the presence of loops, indicated by cycles in the graph.
One important optimization is looking for code that can be moved outside the
loop, either prior to it or subsequent to it.
Such code motion saves execution time, although it does not save memory.
Unrolling loops is also possible and desirable in some cases.
.PP
Another area in which global analysis of loops is especially important is
in register allocation.
While it is true that EM does not have any registers to allocate,
the optimizer can easily collect information to allow the
back end to allocate registers wisely.
For example, the global optimizer can collect static frequency-of-use
and live/dead information about variables.
(A variable is dead at some point in the program if its current value is
not needed, i.e., the next reference to it overwrites it rather than
reading it; if the current value will eventually be used, the variable is
live.)
If two variables are never simultaneously live over some interval of code
(e.g., the body of a loop), they can be packed into a single variable,
which, if used often enough, may warrant being assigned to a register.
.PP
Many loops involve arrays: this leads to other optimizations.
If an array is accessed sequentially, with each iteration using the next
higher numbered element, code improvement is often possible.
Typically, a pointer to the bottom element of each array can be set up
prior to the loop.
Within the loop the element is accessed indirectly via the pointer, which is
also incremented by the element size on each iteration.
If the target machine has an autoincrement addressing mode and the pointer
is assigned to a register, an array access can often be done in a single
instruction.
.PP
Other intraprocedural optimizations include removing tail recursion
(last statement is a recursive call to the procedure itself),
topologically sorting the basic blocks to minimize the number of branch
instructions, and common subexpression recognition.
.PP
The third general class of optimizations done by the global optimizer is
improving the structure of a basic block.
For the most part these involve transforming arithmetic or boolean
expressions into forms that are likely to result in better target code.
As a simple example, A~+~B*C can be converted to B*C~+~A.
The latter can often
be handled by loading B into a register, multiplying the register by C, and
then adding in A, whereas the former may involve first putting A into a
temporary, depending on the details of the code generation table.
Another example of this kind of basic block optimization is transforming
-B~+~A~<~0 into the equivalent, but simpler, A~<~B.
.NH 1
The Back End
.PP
The back end reads a stream of EM instructions and generates assembly code
for the target machine.
Although the algorithm itself is machine independent, for each target
machine a machine dependent driving table must be supplied.
The driving table effectively defines the mapping of EM code to target code.
.PP
It will be convenient to think of the EM instructions being read as a
stream of tokens.
For didactic purposes, we will concentrate on two kinds of tokens:
those that load something onto the stack, and those that perform some operation
on the top one or two values on the stack.
The back end maintains at compile time a simulated stack whose behavior
mirrors what the stack of a hardware EM machine would do at run time.
If the current input token is a load instruction, a new entry is pushed onto
the simulated stack.
.PP
Consider, as an example, the EM code produced for the statement K~:=~I~+~7.
If K and I are
2-byte local variables, it will normally be LOL I; LOC 7; ADI~2; STL K.
Initially the simulated stack is empty.
After the first token has been read and processed, the simulated stack will
contain a stack token of type MEM with attributes telling that it is a local,
giving its address, etc.
After the second token has been read and processed, the top two tokens on the
simulated stack will be CON (constant) on top and MEM directly underneath it.
.PP
At this point the back end reads the ADI~2 token and
looks in the driving table to find a line or lines that define the
action to be taken for ADI~2.
For a typical multiregister machine, instructions will exist to add constants
to registers, but not to memory.
Consequently, the driving table will not contain an entry for ADI~2 with stack
configuration CON, MEM.
.PP
The back end is now faced with the problem of how to get from its
current stack configuration, CON, MEM, which is not listed, to one that is
listed.
The table will normally contain rules (which we call "coercions")
for converting between CON, REG, MEM, and similar tokens.
Therefore the back end attempts to "coerce" the stack into a configuration
that
.I is
present in the table.
A typical coercion rule might tell how to convert a MEM into
a REG, namely by performing the actions of allocating a
register and emitting code to move the memory word to that register.
Having transformed the compile-time stack into a configuration allowed for
ADI~2, the rule can be carried out.
A typical rule
for ADI~2 might have stack configuration REG, MEM
and would emit code to add the MEM to the REG, leaving the stack
with a single REG token instead of the REG and MEM tokens present before the
ADI~2.
.PP
In general, there will be more than one possible coercion path.
Assuming reasonable coercion rules for our example,
we might be able to convert
CON MEM into CON REG by loading the variable I into a register.
Alternatively, we could coerce CON to REG by loading the constant into a register.
The first coercion path does the add by first loading I into a register and
then adding 7 to it.
The second path first loads 7 into a register and then adds I to it.
On machines with a fast LOAD IMMEDIATE instruction for small constants
but no fast ADD IMMEDIATE, or vice
versa, one code sequence will be preferable to the other.
.PP
In fact, we actually have more choices than suggested above.
In both coercion paths a register must be allocated.
On many machines, not every register can be used in every operation, so the
choice may be important.
On some machines, for example, the operand of a multiply must be in an odd
register.
To summarize, from any state (i.e., token and stack configuration), a
variety of choices can be made, leading to a variety of different target
code sequences.
.PP
To decide which of the various code sequences to emit, the back end must have
some information about the time and memory cost of each one.
To provide this information, each rule in the driving table, including
coercions, specifies both the time and memory cost of the code emitted when
the rule is applied.
The back end can then simply try each of the legal possibilities (including all
the possible register allocations) to find the cheapest one.
.PP
This situation is similar to that found in a chess or other game-playing
program, in which from any state a finite number of moves can be made.
Just as in a chess program, the back end can look at all the "moves" that can
be made from each state reachable from the original state, and thus find the
sequence that gives the minimum cost to a depth of one.
More generally, the back end can evaluate all paths corresponding to accepting
the next
.I N
input tokens, find the cheapest one, and then make the first move along
that path, precisely the way a chess program would.
.PP
Since the back end is analogous to both a parser and a chess playing program,
some clarifying remarks may be helpful.
First, chess programs and the back end must do some look ahead, whereas the
parser for a well-designed grammar can usually suffice with one input token
because grammars are supposed to be unambiguous.
In contrast, many legal mappings
from a sequence of EM instructions to target code may exist.
Second, like a parser but unlike a chess program, the back end has perfect
information -- it does not have to contend with an unpredictable opponent's
moves.
Third, chess programs normally make a static evaluation of the board and
label the
.I nodes
of the tree with the resulting scores.
The back end, in contrast, associates costs with
.I arcs
(moves) rather than nodes (states).
However, the difference is not essential, since it could
also label each node with the cumulative cost from the root to that node.
.PP
As mentioned above, the cost field in the table contains
.I both
the time and memory costs for the code emitted.
It should be clear that the back end could use either one
or some linear combination of them as the scoring function for evaluating moves.
A user can instruct the compiler to optimize for time or for memory or
for, say, 0.3 x time + 0.7 x memory.
Thus the same compiler can provide a wide range of performance options to
the user.
The writer of the back end table can take advantage of this flexibility by
providing several code sequences with different tradeoffs for each EM
instruction (e.g., in line code vs. call to a run time routine).
.PP
In addition to the time-space tradeoffs, by specifying the depth of search
parameter,
.I N ,
the user can effectively also tradeoff compile time vs. object
code quality, for whatever code metric has been chosen.
In summary, by combining the properties of a parser and a game playing program,
it is possible to make a code generator that is table driven,
highly flexible, and has the ability to produce good code from a
stack machine intermediate code.
.NH 1
The Target Machine Optimizer
.PP
In the model of Fig 2., the peephole optimizer comes before the global
optimizer.
It may happen that the code produced by the global optimizer can also
be improved by another round of peephole optimization.
Conceivably, the system could have been designed to iterate peephole and
global optimizations until no more of either could be performed.
.PP
However, both of these optimizations are done on the machine independent
EM code.
Neither is able to take advantage of the peculiarities and idiosyncracies with
which most target machines are well endowed.
It is the function of the final
optimizer to do any (peephole) optimizations that still remain.
.PP
The algorithm used here is the same as in the EM peephole optimizer.
In fact, if it were not for the differences between EM syntax, which is
very restricted, and target assembly language syntax,
which is less so, precisely the same program could be used for both.
Nevertheless, the same ideas apply concerning patterns and replacements, so
our discussion of this optimizer will be restricted to one example.
.PP
To see what the target optimizer might do, consider the
PDP-11 instruction sequence sub #2,r0; mov (r0),x.
First 2 is subtracted from register 0, then the word pointed to by it
is moved to x.
The PDP-11 happens to have an addressing mode to perform this sequence in
one instruction: mov -(r0),x.
Although it is conceivable that this instruction could be included in the
back end driving table for the PDP-11, it is awkward to do so because it
can occur in so many contexts.
It is much easier to catch things like this in a separate program.
.NH 1
The Universal Assembler/Linker
.PP
Although assembly languages for different machines may appear very different
at first glance, they have a surprisingly large intersection.
We have been able to construct an assembler/linker that is almost entirely
independent of the assembly language being processed.
To tailor the program to a specific assembly language, it is necessary to
supply a table giving the list of instructions, the bit patterns required for
each one, and the language syntax.
The machine independent part of the assembler/linker is then compiled with the
table to produce an assembler and linker for a particular target machine.
Experience has shown that writing the necessary table for a new machine can be
done in less than a week.
.PP
To enforce a modicum of uniformity, we have chosen to use a common set of
pseudoinstructions for all target machines.
They are used to initialize memory, allocate uninitialized memory, determine the
current segment, and similar functions found in most assemblers.
.PP
The assembler is also a linker.
After assembling a program, it checks to see if there are any
unsatisfied external references.
If so, it begins reading the libraries to find the necessary routines, including
them in the object file as it finds them.
This approach requires libraries to be maintained in assembly language form,
but eliminates the need for inventing a language to express relocatable
object programs in a machine independent way.
It also simplifies the assembler, since producing absolute object code is
easier than producing relocatable object code.
Finally, although assembly language libraries may be somewhat larger than
relocatable object module libraries, the loss in speed due to having more
input may be more than compensated for by not having to pass an intermediate
file between the assembler and linker.
.NH 1
The Utility Package
.PP
The utility package is a collection of programs designed to aid the
implementers of new front ends or new back ends.
The most useful ones are the test programs.
For example, one test set, EMTEST, systematically checks out a back end by
executing an ever larger subset of the EM instructions.
It starts out by testing LOC, LOL and a few of the other essential instructions.
If these appear to work, it then tries out new instructions one at a time,
adding them to the set of instructions "known" to work as they pass the tests.
.PP
Each instruction is tested with a variety of operands chosen from values
where problems can be expected.
For example, on target machines which have 16-bit index registers but only
allow 8-bit displacements, a fundamentally different algorithm may be needed
for accessing
the first few bytes of local variables and those with offsets of thousands.
The test programs have been carefully designed to thoroughly test all relevant
cases.
.PP
In addition to EMTEST, test programs in Pascal, C, and other languages are also
available.
A typical test is:
.sp
i := 9; \fBif\fP i + 250 <> 259 \fBthen\fP error(16);
.sp
Like EMTEST, the other test programs systematically exercise all features of the
language being tested, and do so in a way that makes it possible to pinpoint
errors precisely.
While it has been said that testing can only demonstrate the presence of errors
and not their absence, our experience is that
the test programs have been invaluable in debugging new parts of the system
quickly.
.PP
Other utilities include programs to convert
the highly compact EM code produced by front ends to ASCII and vice versa,
programs to build various internal tables from human writable input formats,
a variety of libraries written in or compiled to EM to make them portable,
an EM assembler, and EM interpreters for various machines.
.PP
Interpreting the EM code instead of translating it to target machine language
is useful for several reasons.
First, the interpreters provide extensive run time diagnostics including
an option to list the original source program (in Pascal, C, etc.) with the
execution frequency or execution time for each source line printed in the
left margin.
Second, since an EM program is typically about one-third the size of a
compiled program, large programs can be executed on small machines.
Third, running the EM code directly makes it easier to pinpoint errors in
the EM output of front ends still being debugged.
.NH 1
Summary and Conclusions
.PP
The Amsterdam Compiler Kit is a tool kit for building
portable (cross) compilers and interpreters.
The main pieces of the kit are the front ends, which convert source programs
to EM code, optimizers, which improve the EM code, and back ends, which convert
the EM code to target assembly language.
The kit is highly modular, so writing one front end
(and its associated runtime routines)
is sufficient to implement
a new language on a dozen or more machines, and writing one back end table
and one universal assembler/linker table is all that is needed to bring up all
the previously implemented languages on a new machine.
In this manner, the contents, and hopefully the usefulness, of the toolkit
will increase in time.
.PP
We believe the principal lesson to be learned from our work is that the old
UNCOL idea is basically a sound way to produce compilers, provided suitable
restrictions are placed on the source languages and target machines.
We also believe that although compilers produced by this technology may not
be equal to the very best handcrafted compilers,
in terms of object code quality, they are certainly
competitive with many existing compilers.
However, when one factors in the cost of producing the compiler,
the possible slight loss in performance may be more than compensated for by the
large decrease in production cost.
As a consequence of our work and similar work by other researchers [1,3,4],
we expect integrated compiler building kits to become increasingly popular
in the near future.
.PP
The toolkit is now available for various computers running the
.UX
operating system.
For information, contact the authors.
.NH 1
References
.LP
.nr r 0 1
.in +4
.ti -4
\fB~\n+r.\fR Graham, S.L.
Table-Driven Code Generation.
.I "Computer~13" ,
8 (August 1980), 25-34.
.PP
A discussion of systematic ways to do code generation,
in particular, the idea of having a table with templates that match parts of
the parse tree and convert them into machine instructions.
.sp 2
.ti -4
\fB~\n+r.\fR Haddon, B.K., and Waite, W.M.
Experience with the Universal Intermediate Language Janus.
.I "Software Practice & Experience~8" ,
5 (Sept.-Oct. 1978), 601-616.
.PP
An intermediate language for use with ALGOL 68, Pascal, etc. is described.
The paper discusses some problems encountered and how they were dealt with.
.sp 2
.ti -4
\fB~\n+r.\fR Johnson, S.C.
A Portable Compiler: Theory and Practice.
.I "Ann. ACM Symp. Prin. Prog. Lang." ,
Jan. 1978.
.PP
A cogent discussion of the portable C compiler.
Particularly interesting are the author's thoughts on the value of
computer science theory.
.sp 2
.ti -4
\fB~\n+r.\fR Leverett, B.W., Cattell, R.G.G, Hobbs, S.O., Newcomer, J.M.,
Reiner, A.H., Schatz, B.R., and Wulf, W.A.
An Overview of the Production-Quality Compiler-Compiler Project.
.I Computer~13 ,
8 (August 1980), 38-49.
.PP
PQCC is a system for building compilers similar in concept but differing in
details from the Amsterdam Compiler Kit.
The paper describes the intermediate representation used and the code generation
strategy.
.sp 2
.ti -4
\fB~\n+r.\fR Lowry, E.S., and Medlock, C.W.
Object Code Optimization.
.I "Commun.~ACM~12",
(Jan. 1969), 13-22.
.PP
A classic paper on global object code optimization.
It covers data flow analysis, common subexpressions, code motion, register
allocation and other techniques.
.sp 2
.ti -4
\fB~\n+r.\fR Nori, K.V., Ammann, U., Jensen, K., Nageli, H.
The Pascal P Compiler Implementation Notes.
Eidgen. Tech. Hochschule, Zurich, 1975.
.PP
A description of the original P-code machine, used to transport the Pascal-P
compiler to new computers.
.sp 2
.ti -4
\fB~\n+r.\fR Steel, T.B., Jr. UNCOL: the Myth and the Fact. in
.I "Ann. Rev. Auto. Prog."
Goodman, R. (ed.), vol 2., (1960), 325-344.
.PP
An introduction to the UNCOL idea by its originator.
.sp 2
.ti -4
\fB~\n+r.\fR Steel, T.B., Jr.
A First Version of UNCOL.
.I "Proc. Western Joint Comp. Conf." ,
(1961), 371-377.
.PP
The first detailed proposal for an UNCOL. By current standards it is a
primitive language, but it is interesting for its historical perspective.
.sp 2
.ti -4
\fB~\n+r.\fR Tanenbaum, A.S., van Staveren, H., and Stevenson, J.W.
Using Peephole Optimization on Intermediate Code.
.I "ACM Trans. Prog. Lang. and Sys. 3" ,
1 (Jan. 1982) pp. 21-36.
.PP
A detailed description of a table-driven peephole optimizer.
The driving table provides a list of patterns to match as well as the
replacement text to use for each successful match.
.sp 2
.ti -4
\fB\n+r.\fR Tanenbaum, A.S., Stevenson, J.W., Keizer, E.G., and van Staveren, H.
Description of an Experimental Machine Architecture for use with Block
Structured Languages.
Informatica Rapport 81, Vrije Universiteit, Amsterdam, 1983.
.PP
The defining document for EM.
.sp 2
.ti -4
\fB\n+r.\fR Tanenbaum, A.S.
Implications of Structured Programming for Machine Architecture.
.I "Comm. ACM~21" ,
3 (March 1978), 237-246.
.PP
The background and motivation for the design of EM.
This early version emphasized the idea of interpreting the intermediate
code (then called EM-1) rather than compiling it.

View File

@@ -1,303 +0,0 @@
.\" $Header$
.wh 0 hd
.wh 60 fo
.de hd
'sp 5
..
.de fo
'bp
..
.nr e 0 1
.de ER
.br
.ne 20
.sp 2
.in 5
.ti -5
ERROR \\n+e:
..
.de PS
.sp
.nf
.in +5
..
.de PE
.sp
.fi
.in -5
..
.sp 3
.ce
UNIX version 7 bugs
.sp 3
This document describes the UNIX version 7 errors fixed at the
Vrije Universiteit, Amsterdam.
Several of these are discovered at the VU.
Others are quoted from a list of bugs distributed by BellLabs.
.sp
For each error the differences between the original and modified
source files are given,
as well as a test program.
.ER
C optimizer bug for unsigned comparison
.sp
The following C program caused an IOT trap, while it should not
(compile with 'cc -O prog.c'):
.PS
unsigned i = 0;
main() {
register j;
j = -1;
if (i > 40000)
abort();
}
.PE
BellLabs suggests to make the following patch in c21.c:
.PS
/* modified /usr/src/cmd/c/c21.c */
189 if (r==0) {
190 /* next 2 lines replaced as indicated by
191 * Bell Labs bug distribution ( v7optbug )
192 p->back->back->forw = p->forw;
193 p->forw->back = p->back->back;
194 End of lines changed */
195 if (p->forw->op==CBR
196 || p->forw->op==SXT
197 || p->forw->op==CFCC) {
198 p->back->forw = p->forw;
199 p->forw->back = p->back;
200 } else {
201 p->back->back->forw = p->forw;
202 p->forw->back = p->back->back;
203 }
204 /* End of new lines */
205 decref(p->ref);
206 p = p->back->back;
207 nchange++;
208 } else if (r>0) {
.PE
Use the previous program to test before and after the modification.
.ER
The loader fails for large data or text portions
.sp
The loader 'ld' produces a "local symbol botch" error
for the following C program.
.PS
int big1[10000] = {
1
};
int big2[10000] = {
2
};
main() {
printf("loader is fine\\n");
}
.PE
We have made the following fix:
.PS
/* original /usr/src/cmd/ld.c */
113 struct {
114 int fmagic;
115 int tsize;
116 int dsize;
117 int bsize;
118 int ssize;
119 int entry;
120 int pad;
121 int relflg;
122 } filhdr;
/* modified /usr/src/cmd/ld.c */
113 /*
114 * The original Version 7 loader had problems loading large
115 * text or data portions.
116 * Why not include <a.out.h> ???
117 * then they would be declared unsigned
118 */
119 struct {
120 int fmagic;
121 unsigned tsize; /* not int !!! */
122 unsigned dsize; /* not int !!! */
123 unsigned bsize; /* not int !!! */
124 unsigned ssize; /* not int !!! */
125 unsigned entry; /* not int !!! */
126 unsigned pad; /* not int !!! */
127 unsigned relflg; /* not int !!! */
128 } filhdr;
.PE
.ER
Floating point registers
.sp
When a program is swapped to disk if it needs more memory,
then the floating point registers were not saved, so that
it may have different registers when it is restarted.
A small assembly program demonstrates this for the status register.
If the error is not fixed, then the program generates an IOT error.
A "memory fault" is generated if all is fine.
.PS
start: ldfps $7400
1: stfps r0
mov r0,-(sp)
cmp r0,$7400
beq 1b
4
.PE
You have to dig into the kernel to fix it.
The following patch will do:
.PS
/* original /usr/sys/sys/slp.c */
563 a2 = malloc(coremap, newsize);
564 if(a2 == NULL) {
565 xswap(p, 1, n);
566 p->p_flag |= SSWAP;
567 qswtch();
568 /* no return */
569 }
/* modified /usr/sys/sys/slp.c */
590 a2 = malloc(coremap, newsize);
591 if(a2 == NULL) {
592 #ifdef FPBUG
593 /*
594 * copy floating point register and status,
595 * but only if you must switch processes
596 */
597 if(u.u_fpsaved == 0) {
598 savfp(&u.u_fps);
599 u.u_fpsaved = 1;
600 }
601 #endif
602 xswap(p, 1, n);
603 p->p_flag |= SSWAP;
604 qswtch();
605 /* no return */
606 }
.PE
.ER
Floating point registers.
.sp
A similar problem arises when a process forks.
The child will have random floating point registers as is
demonstrated by the following assembly language program.
The child process will die by an IOT trap and the father prints
the message "child failed".
.PS
exit = 1.
fork = 2.
write = 4.
wait = 7.
start: ldfps $7400
sys fork
br child
sys wait
tst r1
bne bad
stfps r2
cmp r2,$7400
beq start
4
child: stfps r2
cmp r2,$7400
beq ex
4
bad: clr r0
sys write;mess;13.
ex: clr r0
sys exit
.data
mess: <child failed\\n>
.PE
The same file slp.c should be patched as follows:
.PS
/* original /usr/sys/sys/slp.c */
499 /*
500 * When the resume is executed for the new process,
501 * here's where it will resume.
502 */
503 if (save(u.u_ssav)) {
504 sureg();
505 return(1);
506 }
507 a2 = malloc(coremap, n);
508 /*
509 * If there is not enough core for the
510 * new process, swap out the current process to generate the
511 * copy.
512 */
/* modified /usr/sys/sys/slp.c */
519 /*
520 * When the resume is executed for the new process,
521 * here's where it will resume.
522 */
523 if (save(u.u_ssav)) {
524 sureg();
525 return(1);
526 }
527 #ifdef FPBUG
528 /* copy the floating point registers and status to child */
529 if(u.u_fpsaved == 0) {
530 savfp(&u.u_fps);
531 u.u_fpsaved = 1;
532 }
533 #endif
534 a2 = malloc(coremap, n);
535 /*
536 * If there is not enough core for the
537 * new process, swap out the current process to generate the
538 * copy.
539 */
.PE
.ER
/usr/src/libc/v6/stat.c
.sp
Some system calls are changed from version 6 to version 7.
A library of system call entries, that make a version 6 UNIX look like
a version 7 system, is provided to enable you to run some
useful version 7 utilities, like 'tar', on UNIX-6.
The entry for 'stat' contained two bugs:
the 24-bit file size was incorrectly converted to 32 bits
(sign extension of bit 15)
and the uid/gid fields suffered from sign extension.
.sp
Transferring your files from version 6 to version 7 using 'tar'
will fail for all files for which
.sp
( (size & 0100000) != 0 )
.sp
These two errors are fixed if stat.c is modified as follows:
.PS
/* original /usr/src/libc/v6/stat.c */
11 char os_size0;
12 short os_size1;
13 short os_addr[8];
49 buf->st_nlink = osbuf.os_nlinks;
50 buf->st_uid = osbuf.os_uid;
51 buf->st_gid = osbuf.os_gid;
52 buf->st_rdev = 0;
/* modified /usr/src/libc/v6/stat.c */
11 char os_size0;
12 unsigned os_size1;
13 short os_addr[8];
49 buf->st_nlink = osbuf.os_nlinks;
50 buf->st_uid = osbuf.os_uid & 0377;
51 buf->st_gid = osbuf.os_gid & 0377;
52 buf->st_rdev = 0;
.PE

View File

@@ -1,753 +0,0 @@
.\" $Header$
.ll 72
.wh 0 hd
.wh 60 fo
.de hd
'sp 5
..
.de fo
'bp
..
.tr ~
. PARAGRAPH
.de PP
.sp
..
. CHAPTER
.de CH
.br
.ne 15
.sp 3
.in 0
\\fB\\$1\\fR
.in 5
.PP
..
. SUBCHAPTER
.de SH
.br
.ne 10
.sp
.in 5
\\fB\\$1\\fR
.in 10
.PP
..
. INDENT START
.de IS
.sp
.in +5
..
. INDENT END
.de IE
.in -5
.sp
..
. DOUBLE INDENT START
.de DS
.sp
.in +5
.ll -5
..
. DOUBLE INDENT END
.de DE
.ll +5
.in -5
.sp
..
. EQUATION START
.de EQ
.sp
.nf
..
. EQUATION END
.de EN
.fi
.sp
..
. TEST
.de TT
.ti -5
Test~\\$1:~
.br
..
. IMPLEMENTATION 1
.de I1
.br
Implementation~1:
..
. IMPLEMENTATION 2
.de I2
.br
Implementation~2:
..
.de CS
.br
~-~\\
..
.br
.fi
.sp 5
.ce
\fBPascal Validation Suite Report\fR
.CH "Pascal processor identification"
The ACK-Pascal compiler produces code for an EM machine
as defined in [1].
It is up to the implementor of the EM machine whether errors like
integer overflow, undefined operand and range bound error are recognized or not.
Therefore it depends on the EM machine implementation whether these errors
are recognized in Pascal programs or not.
The validation suite results of all known implementations are given.
.PP
There does not (yet) exist a hardware EM machine.
Therefore, EM programs must be interpreted, or translated into
instructions for a target machine.
The following implementations currently exist:
.IS
.I1
an interpreter running on a PDP-11 (using UNIX).
The normal mode of operation for this interpreter is to check
for undefined integers, overflow, range errors etc.
.sp
.I2
a translator into PDP-11 instructions (using UNIX).
Less checks are performed than in the interpreter, because the translator
is intended to speed up the execution of well-debugged programs.
.IE
.CH "Test Conditions"
Tester: E.G. Keizer
.br
Date: October 1983
.br
Validation Suite version: 3.0
.PP
The final test run is made with a slightly
modified validation suite.
.SH "Erroneous programs"
Some test did not conform to the standard proposal of February 1979.
It is this version of the standard proposal that is used
by the authors of the validation suite.
.IS
.TT 6.6.3.7-4
The semicolon between high and integer on line 17 is replaced
by a colon.
.sp
.TT 6.7.2.2-13
The div operator on line 14 replaced by mod.
.CH "Conformance tests"
Number of tests passed = 150
.br
Number of tests failed = 6
.SH "Details of failed tests"
.IS
.TT 6.1.2-1
Character sequences starting with the 8 characters 'procedur'
or 'function' are
erroneously classified as the word-symbols 'procedure' and 'function'.
.sp
.TT 6.1.3-2
Identifiers identical in the first eight characters, but
differing in ninth or higher numbered characters are treated as
identical.
.sp
.TT 6.5.1-1
ACK-Pascal requires all formal program parameters to be
declared with type \fIfile\fP.
.sp
.TT 6.6.6.5-1
Gives run-time error eof seen at call to eoln.
A have a hunch that this is a error in the suit.
.sp
.TT 6.6.4.1-1
Redefining the names of some standard procedures leads to incorrect
behaviour of the runtime system.
In this case it crashes without a sensible error message.
.sp
.TT 6.9.3.5.1-1
This test can not be translated by our compiler because two
non-identical variables are used in the same block with the same first eight
characters.
The test passed after replacement of one of those names.
.IE
.CH "Deviance tests"
Number of deviations correctly detected = 120
.br
Number of tests not detecting deviations = 20
.SH "Details of deviations"
The following tests are compiled without a proper error
indication although they do
not conform to the standard.
.IS
.TT 6.1.6-5
ACK-Pascal allows labels in the range 0..32767.
A warning is produced when testing for deviations from the
standard.
.sp
.TT 6.1.8-5
A missing space between a number and a word symbol is not
detected.
.sp
.TT 6.2.2-8
.TT 6.3-6
.TT 6.4.1-3
.TT 6.6.1-3
.TT 6.6.1-4
Undetected scope error. The scope of an identifier should start at the
beginning of the block in which it is declared.
In the ACK-Pascal compiler the scope starts just after the declaration,
however.
.sp
.TT 6.4.3.3-7
The values of fields from one variant are accessible from
another variant.
The correlation is exact.
.sp
.TT 6.6.3.3-4
The passing as a variable parameter of the selector of a
variant part is not detected.
A runtime error is produced because the variant selector is not
initialized.
.sp
.TT 6.8.2.4-2
.TT 6.8.2.4-3
.TT 6.8.2.4-4
.TT 6.8.2.4-5
.TT 6.8.2.4-6
The ACK-Pascal compiler does not restrict the places from where
you may jump to a label by means of a goto-statement.
.sp
.TT 6.8.3.9-5
.TT 6.8.3.9-6
.TT 6.8.3.9-7
.TT 6.8.3.9-16
There are no errors produced for assignments to a variable
in use as control-variable of a for-statement.
.TT 6.8.3.9-8
.TT 6.8.3.9-9
Use of a controlled variable after leaving the loop without
intervening initialization is not detected.
.IE
.CH "Error handling"
The results depend on the EM implementation.
.sp
Number of errors correctly detected =
.in +5
.I1
32
.I2
17
.in -5
Number of errors not detected =
.in +5
.I1
21
.I2
36
.in -5
Number of errors incorrectly detected =
.in +5
.I1
2
.I2
2
.in -5
.SH "Details of errors not detected"
The following test fails because the ACK-Pascal compiler only
generates a warning that does not prevent to run the tests.
.IS
.TT 6.6.2-8
A warning is produced if there is no assignment to a function-identifier.
.IE
With this test the ACK-Pascal compiler issues an error message for a legal
construct not directly related to the error to be detected.
.IS
.TT 6.5.5-2
Program does not compile.
Buffer variable of text file is not allowed as variable
parameter.
.IE
The following errors are not detected at all.
.IS
.TT 6.2.1-11
.I2
The use of an undefined integer is not caught as an error.
.sp
.TT 6.4.3.3-10
.TT 6.4.3.3-11
.TT 6.4.3.3-12
.TT 6.4.3.3-13
The notion of 'current variant' is not implemented, not even if a tagfield
is present.
.sp
.TT 6.4.5-15
.TT 6.4.6-9
.TT 6.4.6-10
.TT 6.4.6-11
.TT 6.5.3.2-2
.I2
Subrange bounds are not checked.
.sp
.TT 6.4.6-12
.TT 6.4.6-13
.TT 6.7.2.4-4
If the base-type of a set is a subrange, then the set elements are not checked
against the bounds of the subrange.
Only the host-type of this subrange-type is relevant for ACK-Pascal.
.sp
.TT 6.5.4-1
.I2
Nil pointers are not detected.
.sp
.TT 6.5.4-2
.I2
Undefined pointers are not detected.
.sp
.TT 6.5.5-3
Changing the file position while the window is in use as actual variable
parameter or as an element of the record variable list of a with-statement
is not detected.
.sp
.TT 6.6.2-9
An undefined function result is not detected,
because it is never used in an expression.
.sp
.TT 6.6.5.3-6
.TT 6.6.5.3-7
Disposing a variable while it is in use as actual variable parameter or
as an element of the record variable list of a with-statement is not detected.
.sp
.TT 6.6.5.3-8
.TT 6.6.5.3-9
.TT 6.6.5.3-10
It is not detected that a record variable, created with the variant form
of new, is used as an operand in an expression or as the variable in an
assignment or as an actual value parameter.
.sp
.TT 6.6.5.3-11
Use of a variable that is not reinitialized after a dispose is
not detected.
.sp
.TT 6.6.6.4-4
.TT 6.6.6.4-5
.TT 6.6.6.4-7
.I2
There are no range checks for pred, succ and chr.
.sp
.TT 6.6.6.5-6
ACK-Pascal considers a rewrite of a file as a defining
occurence.
.sp
.TT 6.7.2.2-8
.TT 6.7.2.2-9
.TT 6.7.2.2-10
.TT 6.7.2.2-12
.I2
Division by 0 or integer overflow is not detected.
.sp
.TT 6.8.3.9-18
The use of the some control variable in two nested for
statements in not detected.
.sp
.TT 6.8.3.9-19
Access of a control variable after leaving the loop results in
the final-value, although an error should be produced.
.sp
.TT 6.9.3.2-3
The program stops with a file not open error.
The rewrite before the write is missing in the program.
.sp
.TT 6.9.3.2-4
.TT 6.9.3.2-5
Illegal FracDigits values are not detected.
.CH "Implementation dependence"
Number of tests run = 14
.br
Number of tests incorrectly handled = 0
.SH "Details of implementation dependence"
.IS
.TT 6.1.9-5
Alternate comment delimiters are implemented
.sp
.TT 6.1.9-6
The equivalent symbols @ for ^, (. for [ and .) for ] are not
implemented.
.sp
.TT 6.4.2.2-10
Maxint = 32767
.sp
.TT 6.4.3.4-5
Only elements with non-negative ordinal value are allowed in sets.
.sp
.TT 6.6.6.1-1
Standard procedures and functions are not allowed as parameters.
.sp
.TT 6.6.6.2-11
Details of the machine characteristics regarding real numbers:
.IS
.nf
beta = 2
t = 56
rnd = 1
ngrd = 0
machep = -56
negep = -56
iexp = 8
minexp = -128
maxexp = 127
eps = 1.387779e-17
epsneg = 1.387779e-17
xmin = 2.938736e-39
xmax = 1.701412e+38
.fi
.IE
.sp
.TT 6.7.2.3-3
.TT 6.7.2.3-4
All operands of boolean expressions are evaluated.
.sp
.TT 6.8.2.2-1
.TT 6.8.2.2-2
The expression in an assignment statement is evaluated
before the variable selection if this involves pointer
dereferencing or array indexing.
.sp
.TT 6.8.2.3-2
Actual parameters are evaluated in reverse order.
.sp
.TT 6.9.3.2-6
The default width for integer, Boolean and real are 6, 5 and 13.
.sp
.TT 6.9.3.5.1-2
The number of digits written in an exponent is 2.
.sp
.TT 6.9.3.6-1
The representations of true and false are (~true) and (false).
The parenthesis serve to indicate width.
.IE
.CH "Quality measurement"
Number of tests run = 60
.br
Number of tests handled incorrectly = 1
.SH "Results of tests"
Several test perform operations on reals on indicate the error
introduced by these operations.
For each of these tests the following two quality measures are extracted:
.sp
.in +5
maxRE:~~maximum relative error
.br
rmsRE:~~root-mean-square relative error
.in -5
.sp 2
.IS
.TT 1.2-1
.I1
25 thousand Whetstone instructions per second.
.I2
169 thousand Whetstone instructions per second.
.sp
.TT 1.2-2
The value of (TRUEACC-ACC)*2^56/100000 is 1.4 .
This is well within the bounds specified in [3].
.br
The GAMM measure is:
.I1
238 microseconds
.I2
26.3 microseconds.
.sp
.TT 1.2-3
The number of procedure calls calculated in this test exceeds
the maximum integer value.
The program stops indicating overflow.
.sp
.TT 6.1.3-3
The number of significant characters for identifiers is 8.
.sp
.TT 6.1.5-8
There is no maximum to the line length.
.sp
.TT 6.1.5-9
The error message "too many digits" is given for numbers larger
than maxint.
.sp
.TT 6.1.5-10
.TT 6.1.5-11
.TT 6.1.5-12
Normal values are allowed for real constants and variables.
.sp
.TT 6.1.7-14
A reasonably large number of strings is allowed.
.sp
.TT 6.1.8-6
No warning is given for possibly unclosed comments.
.sp
.TT 6.2.1-12
.TT 6.2.1-13
.TT 6.2.1-14
.TT 6.2.1-15
.TT 6.5.1-2
Large lists of declarations are possible in each block.
.sp
.TT 6.4.3.2-6
An 'array[integer] of' is not allowed.
.sp
.TT 6.4.3.2-7
.TT 6.4.3.2-8
Large values are allowed for arrays and indices.
.sp
.TT 6.4.3.3-14
Large amounts of case-constant values are allowed in variants.
.sp
.TT 6.4.3.3-15
Large amounts of record sections can appear in the fixed part of
a record.
.sp
.TT 6.4.3.3-16
Large amounts of variants are allowed in a record.
.TT 6.4.3.4-4
Size and speed of Warshall's algorithm depend on the
implementation of EM:
.IS
.I1
.br
size: 122 bytes
.br
speed: 5.2 seconds
.sp
.I2
.br
size: 196 bytes
.br
speed: 0.7 seconds
.IE
.TT 6.5.3.2-3
Deep nesting of array indices is allowed.
.sp
.TT 6.5.3.2-4
.TT 6.5.3.2-5
Arrays can have at least 8 dimensions.
.sp
.TT 6.6.1-8
Deep static nesting of procedure is allowed.
.sp
.TT 6.6.3.1-6
Large amounts of formal parameters are allowed.
.sp
.TT 6.6.5.3-12
Dispose is fully implemented.
.sp
.TT 6.6.6.2-6
Test sqrt(x): no errors.
The error is within acceptable bounds.
.in +5
maxRE:~~2~**~-55.50
.br
rmsRE:~~2~**~-57.53
.in -5
.sp
.TT 6.6.6.2-7
Test arctan(x): may cause underflow or overflow errors.
The error is within acceptable bounds.
.in +5
.br
maxRE:~~2~**~-55.00
.br
rmsRE:~~2~**~-56.36
.in -5
.sp
.TT 6.6.6.2-8
Test exp(x): may cause underflow or overflow errors.
The error is not within acceptable bounds.
.in +5
maxRE:~~2~**~-50.03
.br
rmsRE:~~2~**~-51.03
.in -5
.sp
.TT 6.6.6.2-9
Test sin(x): may cause underflow errors.
The error is not within acceptable bounds.
.in +5
maxRE:~~2~**~-38.20
.br
rmsRE:~~2~**~-43.68
.in -5
.sp
Test cos(x): may cause underflow errors.
The error is not within acceptable bounds.
.in +5
maxRE:~~2~**~-41.33
.br
rmsRE:~~2~**~-46.62
.in -5
.sp
.TT 6.6.6.2-10
Test ln(x):
The error is not within acceptable bounds.
.in +5
maxRE:~~2~**~-54.05
.br
rmsRE:~~2~**~-55.77
.in -5
.sp
.TT 6.7.1-3
.TT 6.7.1-4
.TT 6.7.1-5
Complex nested expressions are allowed.
.sp
.TT 6.7.2.2-14
Test real division:
The error is within acceptable bounds.
.in +5
maxRE:~~0
.br
rmsRE:~~0
.in -5
.sp
.TT 6.7.2.2-15
Operations of reals in the integer range are exact.
.sp
.TT 6.7.3-1
.TT 6.8.3.2-1
.TT 6.8.3.4-2
.TT 6.8.3.5-15
.TT 6.8.3.7-4
.TT 6.8.3.8-3
.TT 6.8.3.9-20
.TT 6.8.3.10-7
Static deep nesting of function calls,
compound statements, if statements, case statements, repeat
loops, while loops, for loops and with statements is possible.
.sp
.TT 6.8.3.2-2
Large amounts of statements are allowed in a compound
statement.
.sp
.TT 6.8.3.5-12
The compiler requires case constants to be compatible with
the case selector.
.sp
.TT 6.8.3.5-13
.TT 6.8.3.5-14
Large case statements are possible.
.sp
.TT 6.9-2
Recursive IO on the same file is well-behaved.
.sp
.TT 6.9.1-6
The reading of real values from a text file is done with
sufficient accuracy.
.in +5
maxRE:~~2~**~-54.61
.br
rmsRE:~~2~**~-56.32
.in -5
.sp
.TT 6.9.1-7
.TT 6.9.2-2
.TT 6.9.3-3
.TT 6.9.4-2
Read, readln, write and writeln may have large amounts of
parameters.
.sp
.TT 6.9.1-8
The loss of precision for reals written on a text file and read
back is:
.in +5
maxRE:~~2~**~-53.95
.br
rmsRE:~~2~**~-55.90
.in -5
.sp
.TT 6.9.3-2
File IO buffers without trailing marker are correctly flushed.
.sp
.TT 6.9.3.5.2-2
Reals are written with sufficient accuracy.
.in +5
maxRE:~~0
.br
rmsRE:~~0
.in -5
.IE
.CH "Level 1 conformance tests"
Number of test passed = 4
.br
Number of tests failed = 1
.SH "Details of failed tests"
.IS
.TT 6.6.3.7-4
An expression indicated by parenthesis whose
value is a conformant array is not allowed.
.IE
.CH "Level 1 deviance tests"
Number of deviations correctly detected = 4
.br
Number of tests not detecting deviations = 0
.IE
.CH "Level 1 error handling"
The results depend on the EM implementation.
.sp
Number of errors correctly detected =
.in +5
.I1
1
.I2
0
.in -5
Number of errors not detected =
.in +5
.I1
0
.I2
1
.in -5
.SH "Details of errors not detected"
.IS
.TT 6.6.3.7-9
.I2
Subrange bounds are not checked.
.IE
.CH "Level 1 quality measurement"
Number of tests run = 1
.SH "Results of test"
.IS
.TT 6.6.3.7-10
Large conformant arrays are allowed.
.IE
.CH "Extensions"
Number of tests run = 3
.SH Details of test failed
.IS
.TT 6.1.9-7
The alternative relational operators are not allowed.
.sp
.TT 6.1.9-8
The alternative symbols for colon, semicolon and assignment are
not allowed.
.sp
.TT 6.8.3.5-16
The otherwise selector in case statements is not allowed.
.IE
.CH "References"
.ti -5
[1]~~\
A.S.Tanenbaum, E.G.Keizer, J.W.Stevenson, Hans van Staveren,
"Description of a machine architecture for use with block structured
languages",
Informatica rapport IR-81.
.ti -5
[2]~~\
ISO standard proposal ISO/TC97/SC5-N462, dated February 1979.
The same proposal, in slightly modified form, can be found in:
A.M.Addyman e.a., "A draft description of Pascal",
Software, practice and experience, May 1979.
An improved version, received March 1980,
is followed as much as possible for the
current ACK-Pascal.
.ti -5
[3]~~\
B. A. Wichman and J du Croz,
A program to calculate the GAMM measure, Computer Journal,
November 1979.

View File

@@ -1,352 +0,0 @@
aar mwPo 1 34
adf sP 1 35
adi mwPo 2 36
adp 2 38
adp mPo 2 39
adp sP 1 41
adp sN 1 42
ads mwPo 1 43
and mwPo 1 44
asp mwPo 5 45
asp swP 1 50
beq 2 51
beq sP 1 52
bge sP 1 53
bgt sP 1 54
ble sP 1 55
blm sP 1 56
blt sP 1 57
bne sP 1 58
bra 2 59
bra sN 2 60
bra sP 2 62
cal mPo 28 64
cal sP 1 92
cff - 93
cif - 94
cii - 95
cmf sP 1 96
cmi mwPo 2 97
cmp - 99
cms sP 1 100
csa mwPo 1 101
csb mwPo 1 102
dec - 103
dee sw 1 104
del swN 1 105
dup mwPo 1 106
dvf sP 1 107
dvi mwPo 1 108
fil 2 109
inc - 110
ine w2 111
ine sw 1 112
inl mwN 3 113
inl swN 1 116
inn sP 1 117
ior mwPo 1 118
ior sP 1 119
lae 2 120
lae sw 7 121
lal P2 128
lal N2 129
lal m 1 130
lal mN 1 131
lal swP 1 132
lal swN 2 133
lar mwPo 1 135
ldc mP 1 136
lde w2 137
lde sw 1 138
ldl mP 1 139
ldl swN 1 140
lfr mwPo 2 141
lfr sP 1 143
lil swN 1 144
lil swP 1 145
lil mwP 2 146
lin 2 148
lin sP 1 149
lni - 150
loc 2 151
loc mP 34 0
loc mN 1 152
loc sP 1 153
loc sN 1 154
loe w2 155
loe sw 5 156
lof 2 161
lof mwPo 4 162
lof sP 1 166
loi 2 167
loi mPo 1 168
loi mwPo 4 169
loi sP 1 173
lol wP2 174
lol wN2 175
lol mwP 4 176
lol mwN 8 180
lol swP 1 188
lol swN 1 189
lxa mPo 1 190
lxl mPo 2 191
mlf sP 1 193
mli mwPo 2 194
rck mwPo 1 196
ret mwP 2 197
ret sP 1 199
rmi mwPo 1 200
sar mwPo 1 201
sbf sP 1 202
sbi mwPo 2 203
sdl swN 1 205
set sP 1 206
sil swN 1 207
sil swP 1 208
sli mwPo 1 209
ste w2 210
ste sw 3 211
stf 2 214
stf mwPo 2 215
stf sP 1 217
sti mPo 1 218
sti mwPo 4 219
sti sP 1 223
stl wP2 224
stl wN2 225
stl mwP 2 226
stl mwN 5 228
stl swN 1 233
teq - 234
tgt - 235
tlt - 236
tne - 237
zeq 2 238
zeq sP 2 239
zer sP 1 241
zge sP 1 242
zgt sP 1 243
zle sP 1 244
zlt sP 1 245
zne sP 1 246
zne sN 1 247
zre w2 248
zre sw 1 249
zrl mwN 2 250
zrl swN 1 252
zrl wN2 253
aar e2 0
aar e- 1
adf e2 2
adf e- 3
adi e2 4
adi e- 5
ads e2 6
ads e- 7
adu e2 8
adu e- 9
and e2 10
and e- 11
asp ew2 12
ass e2 13
ass e- 14
bge e2 15
bgt e2 16
ble e2 17
blm e2 18
bls e2 19
bls e- 20
blt e2 21
bne e2 22
cai e- 23
cal e2 24
cfi e- 25
cfu e- 26
ciu e- 27
cmf e2 28
cmf e- 29
cmi e2 30
cmi e- 31
cms e2 32
cms e- 33
cmu e2 34
cmu e- 35
com e2 36
com e- 37
csa e2 38
csa e- 39
csb e2 40
csb e- 41
cuf e- 42
cui e- 43
cuu e- 44
dee ew2 45
del ewP2 46
del ewN2 47
dup e2 48
dus e2 49
dus e- 50
dvf e2 51
dvf e- 52
dvi e2 53
dvi e- 54
dvu e2 55
dvu e- 56
fef e2 57
fef e- 58
fif e2 59
fif e- 60
inl ewP2 61
inl ewN2 62
inn e2 63
inn e- 64
ior e2 65
ior e- 66
lar e2 67
lar e- 68
ldc e2 69
ldf e2 70
ldl ewP2 71
ldl ewN2 72
lfr e2 73
lil ewP2 74
lil ewN2 75
lim e- 76
los e2 77
los e- 78
lor esP 1 79
lpi e2 80
lxa e2 81
lxl e2 82
mlf e2 83
mlf e- 84
mli e2 85
mli e- 86
mlu e2 87
mlu e- 88
mon e- 89
ngf e2 90
ngf e- 91
ngi e2 92
ngi e- 93
nop e- 94
rck e2 95
rck e- 96
ret e2 97
rmi e2 98
rmi e- 99
rmu e2 100
rmu e- 101
rol e2 102
rol e- 103
ror e2 104
ror e- 105
rtt e- 106
sar e2 107
sar e- 108
sbf e2 109
sbf e- 110
sbi e2 111
sbi e- 112
sbs e2 113
sbs e- 114
sbu e2 115
sbu e- 116
sde e2 117
sdf e2 118
sdl ewP2 119
sdl ewN2 120
set e2 121
set e- 122
sig e- 123
sil ewP2 124
sil ewN2 125
sim e- 126
sli e2 127
sli e- 128
slu e2 129
slu e- 130
sri e2 131
sri e- 132
sru e2 133
sru e- 134
sti e2 135
sts e2 136
sts e- 137
str esP 1 138
tge e- 139
tle e- 140
trp e- 141
xor e2 142
xor e- 143
zer e2 144
zer e- 145
zge e2 146
zgt e2 147
zle e2 148
zlt e2 149
zne e2 150
zrf e2 151
zrf e- 152
zrl ewP2 153
dch e- 154
exg esP 1 155
exg e2 156
exg e- 157
lpb e- 158
gto e2 159
ldc 4 0
lae 4 1
lal P4 2
lal N4 3
lde w4 4
ldf 4 5
ldl wP4 6
ldl wN4 7
lil wP4 8
lil wN4 9
loc 4 10
loe w4 11
lof 4 12
lol wP4 13
lol wN4 14
lpi 4 15
adp 4 16
asp w4 17
beq 4 18
bge 4 19
bgt 4 20
ble 4 21
blm 4 22
blt 4 23
bne 4 24
bra 4 25
cal 4 26
dee w4 27
del wP4 28
del wN4 29
fil 4 30
gto 4 31
ine w4 32
inl wP4 33
inl wN4 34
lin 4 35
sde 4 36
sdf 4 37
sdl wP4 38
sdl wN4 39
sil wP4 40
sil wN4 41
ste w4 42
stf 4 43
stl wP4 44
stl wN4 45
zeq 4 46
zge 4 47
zgt 4 48
zle 4 49
zlt 4 50
zne 4 51
zre w4 52
zrl wP4 53
zrl wN4 54

View File

@@ -1,7 +0,0 @@
/* Intended as a common directory for ALL temporary files */
#define TMP_DIR "/usr/tmp"
/* Access to the ACK tree and parts thereof */
#define EM_DIR "/usr/em" /* The root directory for EM stuff */
#define RTERR_PATH "etc/pc_rt_errors"
#define ACK_PATH "lib/ack"

View File

@@ -1,7 +0,0 @@
/* collection of options, selected by including or excluding 'defines' */
/* Version number of the EM object code */
# define VERSION 3 /* 16 bits number */
/* The default machine used by ack, acc, apc */
# define ACKM "vax2"

View File

@@ -1,10 +0,0 @@
install cmp:
opr:
make pr | opr
pr:
@pr Makefile *.h
clean:
-rm -f *.old

View File

@@ -1,12 +0,0 @@
#define ARMAG 0177545
struct ar_hdr {
char ar_name[14];
long ar_date;
char ar_uid;
char ar_gid;
int ar_mode;
long ar_size;
};
#define AR_TOTAL 26
#define AR_SIZE 22

View File

@@ -1 +0,0 @@
#define as_magic (sp_magic|(14<<8))

View File

@@ -1,156 +0,0 @@
/* offsets of interesting fields in EM-pattern */
#define PO_HASH 0
#define PO_NEXT 1
#define PO_MATCH 3
#define ILLHASH 0177777
/* Escapes in printstrings */
#define PR_TOK '\001'
#define PR_TOKFLD '\002'
#define PR_EMINT '\003'
#define PR_EMSTR '\004'
#define PR_ALLREG '\005'
#define PR_SUBREG '\006'
/*
* In case this list gets longer remember to keep out printable nonprintables
* like \t \n \r and the like.
*/
/* Commands for codegenerator, in low order 5 bits of byte */
#define DO_NEXTEM 0
#define DO_MATCH 1
#define DO_XMATCH 2
#define DO_XXMATCH 3
#define DO_REMOVE 4
#define DO_DEALLOCATE 5
#define DO_REALLOCATE 6
#define DO_ALLOCATE 7
#define DO_LOUTPUT 8
#define DO_ROUTPUT 9
#define DO_MOVE 10
#define DO_ERASE 11
#define DO_TOKREPLACE 12
#define DO_EMREPLACE 13
#define DO_COST 14
#define DO_RETURN 15
#define DO_COERC 16
#define DO_PRETURN 17
#define DO_RREMOVE 18
typedef struct instance {
int in_which;
# define IN_COPY 1
# define IN_RIDENT 2
# define IN_ALLOC 3
# define IN_DESCR 4
# define IN_REGVAR 5
int in_info[TOKENSIZE+1];
} inst_t,*inst_p;
typedef struct {
int c_size; /* index in enode-table */
int c_time; /* dito */
} cost_t,*cost_p;
typedef struct {
int m_set1; /* number of tokenexpr in move: from */
int m_expr1; /* optional expression */
int m_set2; /* number of tokenexpr in move: to */
int m_expr2; /* optional expression */
int m_cindex; /* code index to really do it */
cost_t m_cost; /* associated cost */
} move_t, *move_p;
typedef struct {
int set_size;
short set_val[SETSIZE];
} set_t,*set_p;
struct exprnode {
short ex_operator;
short ex_lnode;
short ex_rnode;
};
typedef struct exprnode node_t;
typedef struct exprnode *node_p;
typedef struct { /* to stack coercions */
int c1_texpno; /* token expression number */
int c1_expr; /* boolean expression */
int c1_prop; /* property of register needed */
int c1_codep; /* code index */
cost_t c1_cost; /* cost involved */
} c1_t,*c1_p;
#ifdef MAXSPLIT
typedef struct { /* splitting coercions */
int c2_texpno; /* token expression number */
int c2_nsplit; /* split factor */
int c2_repl[MAXSPLIT]; /* replacement instances */
int c2_codep; /* code index */
} c2_t,*c2_p;
#endif MAXSPLIT
typedef struct { /* one to one coercions */
int c3_texpno; /* token expression number */
int c3_prop; /* property of register needed */
int c3_repl; /* replacement instance */
int c3_codep; /* code index */
} c3_t,*c3_p;
/*
* contents of .ex_operator
*/
#define EX_TOKFIELD 0
#define EX_ARG 1
#define EX_CON 2
#define EX_ALLREG 3
#define EX_SAMESIGN 4
#define EX_SFIT 5
#define EX_UFIT 6
#define EX_ROM 7
#define EX_NCPEQ 8
#define EX_SCPEQ 9
#define EX_RCPEQ 10
#define EX_NCPNE 11
#define EX_SCPNE 12
#define EX_RCPNE 13
#define EX_NCPGT 14
#define EX_NCPGE 15
#define EX_NCPLT 16
#define EX_NCPLE 17
#define EX_OR2 18
#define EX_AND2 19
#define EX_PLUS 20
#define EX_CAT 21
#define EX_MINUS 22
#define EX_TIMES 23
#define EX_DIVIDE 24
#define EX_MOD 25
#define EX_LSHIFT 26
#define EX_RSHIFT 27
#define EX_NOT 28
#define EX_COMP 29
#define EX_COST 30
#define EX_STRING 31
#define EX_DEFINED 32
#define EX_SUBREG 33
#define EX_TOSTRING 34
#define EX_UMINUS 35
#define EX_REG 36
#define EX_LOWW 37
#define EX_HIGHW 38
#define EX_INREG 39
#define EX_REGVAR 40
#define getint(a,b) \
if ((a=((*(b)++)&BMASK)) >= 128) {\
a = ((a-128)<<BSHIFT) | (*(b)++&BMASK); \
}

View File

@@ -1,30 +0,0 @@
#define LINO_AD 0
#define FILN_AD 4
#define LINO (*(int *)(_hol0()+LINO_AD))
#define FILN (*(char **)(_hol0()+FILN_AD))
#define EARRAY 0
#define ERANGE 1
#define ESET 2
#define EIOVFL 3
#define EFOVFL 4
#define EFUNFL 5
#define EIDIVZ 6
#define EFDIVZ 7
#define EIUND 8
#define EFUND 9
#define ECONV 10
#define ESTACK 16
#define EHEAP 17
#define EILLINS 18
#define EODDZ 19
#define ECASE 20
#define EMEMFLT 21
#define EBADPTR 22
#define EBADPC 23
#define EBADLAE 24
#define EBADMON 25
#define EBADLIN 26
#define EBADGTO 27

View File

@@ -1,12 +0,0 @@
/*
* The various different hints as given after a mes ms_ego
*
* Yet to be stabilized
*/
#define ego_live 0 /* ,offset,size,regno */
#define ego_dead 1 /* ,offset,size,regno */
#define ego_assoc 2 /* ,offset,size,regno */
#define ego_unass 3 /* ,offset,size,regno */
#define ego_init 4 /* ,offset,size,regno */
#define ego_update 5 /* ,offset,size,regno */

View File

@@ -1,25 +0,0 @@
/* flags */
#define EM_PAR 0017 /* parameter type */
#define EM_FLO 0060 /* flow information */
/* types */
#define PAR_NO 0000 /* no parameter */
#define PAR_C 0001 /* constant */
#define PAR_D 0002 /* double word constant */
#define PAR_N 0003 /* numeric (>=0) */
#define PAR_F 0004 /* address offset */
#define PAR_L 0005 /* addressing locals/parameters */
#define PAR_G 0006 /* addressing globals */
#define PAR_W 0007 /* size: word multiple, fits word, possibly indirect */
#define PAR_S 0010 /* size: word multiple */
#define PAR_Z 0011 /* size: zero or word multiple */
#define PAR_O 0012 /* size: word multiple or word fraction */
#define PAR_P 0013 /* procedure name */
#define PAR_B 0014 /* branch: instruction label */
#define PAR_R 0015 /* register number (0,1,2) */
/* flow */
#define FLO_NO 0000 /* straight on */
#define FLO_C 0020 /* conditional branch */
#define FLO_P 0040 /* procedure: call and return */
#define FLO_T 0060 /* terminate: no return */

View File

@@ -1,21 +0,0 @@
/*
* mnemonics for the message numbers in EM
*/
#define ms_err 0 /* Compilation error occurred, ignore rest of module */
#define ms_opt 1 /* Disable optimization please */
#define ms_emx 2 /* Wordsize and pointersize assumed */
#define ms_reg 3 /* Hint for possible register usage from frontend */
#define ms_src 4 /* Number of source lines in this module */
#define ms_flt 5 /* Floating point used */
#define ms_com 6 /* Comment to be retained in compact code */
#define ms_ret 7 /* Reserved */
#define ms_ext 8 /* List of exported symbols from this library module */
#define ms_par 9 /* Number of bytes of parameters accessed */
#define ms_ego 10 /* Hint from EM Global Optimizer */
#define ms_gto 11 /* Dangerous procedure, uses nonlocal goto */
/*
* for details about ms_reg, see em_reg.h
* for details about ms_ego, see em_ego.h
*/

View File

@@ -1,8 +0,0 @@
#define ptyp(x) (1<<(x-sp_fspec))
#define cst_ptyp 0000140
#define sym_ptyp 0000034
#define arg_ptyp 0000574
#define con_ptyp 0036000
#define val_ptyp 0037777
#define any_ptyp 0137777

View File

@@ -1,10 +0,0 @@
/*
* mes ms_reg,offset,size,type,priority
*
* Here are the defines for type
*/
#define reg_any 0 /* Unspecified type */
#define reg_loop 1 /* loop control variable */
#define reg_pointer 2 /* pointer variable */
#define reg_float 3 /* floating point variable */

View File

@@ -1,22 +0,0 @@
#define EARGC 64
#define EEXP 65
#define ELOG 66
#define ESQT 67
#define EASS 68
#define EPACK 69
#define EUNPACK 70
#define EMOD 71
#define EBADF 72
#define EFREE 73
#define EWRITEF 96
#define EREADF 97
#define EEOF 98
#define EFTRUNC 99
#define ERESET 100
#define EREWR 101
#define ECLOSE 102
#define EREAD 103
#define EWRITE 104
#define EDIGIT 105
#define EASCII 106

View File

@@ -1,19 +0,0 @@
#define WRBIT 0100000
#define TXTBIT 040000
#define EOFBIT 020000
#define ELNBIT 010000
#define WINDOW 04000
#define MAGIC 0252
struct file {
char *ptr;
unsigned flags;
char *fname;
int ufd;
int size;
int count;
int buflen;
char bufadr[512];
};
#define EXTFL(z) ((struct file *)(_hbase + _extfl[z]))

View File

@@ -1,21 +0,0 @@
/* fundamental */
#define sz_byte 1
#define sz_bool 1
#define sz_char 1
/* fixed for the time being */
#define sz_word 2
#define sz_int 2
#define sz_long 4
/* variable (see pc.c) */
#define sz_addr sizes[0]
#define sz_real sizes[1]
#define sz_head sizes[2]
#define sz_buff sizes[3]
#define sz_mset sizes[4]
#define sz_iset sizes[5]
#define sz_last 5
#define sz_proc 2*sz_addr

View File

@@ -1 +0,0 @@
typedef char jmp_buf[256];

View File

@@ -1,42 +0,0 @@
/*
* Error codes
*/
#define EPERM 1
#define ENOENT 2
#define ESRCH 3
#define EINTR 4
#define EIO 5
#define ENXIO 6
#define E2BIG 7
#define ENOEXEC 8
#define EBADF 9
#define ECHILD 10
#define EAGAIN 11
#define ENOMEM 12
#define EACCES 13
#define EFAULT 14
#define ENOTBLK 15
#define EBUSY 16
#define EEXIST 17
#define EXDEV 18
#define ENODEV 19
#define ENOTDIR 20
#define EISDIR 21
#define EINVAL 22
#define ENFILE 23
#define EMFILE 24
#define ENOTTY 25
#define ETXTBSY 26
#define EFBIG 27
#define ENOSPC 28
#define ESPIPE 29
#define EROFS 30
#define EMLINK 31
#define EPIPE 32
/* math software */
#define EDOM 33
#define ERANGE 34
#define EQUOT 35

View File

@@ -1,71 +0,0 @@
tail_pc.a
abi.c
abl.c
abr.c
arg.c
ass.c
asz.c
atn.c
bcp.c
bts.e
buff.c
clock.c
diag.c
dis.c
efl.c
eln.c
encaps.e
exp.c
get.c
gto.e
hlt.c
ini.c
catch.c
log.c
mdi.c
mdl.c
new.c
nobuff.c
notext.c
opn.c
hol0.e
pac.c
pclose.c
pcreat.c
pentry.c
perrno.c
pexit.c
popen.c
cls.c
put.c
rdc.c
rdl.c
rdr.c
rdi.c
rln.c
rf.c
rnd.c
sav.e
sig.e
sin.c
sqt.c
fef.e
string.c
trap.e
unp.c
uread.c
uwrite.c
wdw.c
incpt.c
wrc.c
wrf.c
wri.c
wrl.c
wrr.c
cvt.c
fif.e
wrz.c
wrs.c
outcpt.c
wf.c
trp.e

View File

@@ -1,16 +0,0 @@
# $Header$
head:
echo This Makefile needs arguments
distr:
rm `head -1 LIST`; arch cr `head -1 LIST` `tail +2 LIST`
clean:
rm -f *.old
opr:
make pr | opr
pr:
@pr Makefile *.[ec]

View File

@@ -1,11 +0,0 @@
problems:
- names of system call routines may clash with user routines
- some modules in Pascal?
- ttyio, stdio, pasio, unixio
- mention all external references
- list of routines and partitioning
- size of sizes in asz,bcp,dis,new,opn,pac,unp: int or long ?
NOTE:
The run files in mach/*/libpc show the actual usage of this
library.

View File

@@ -1,23 +0,0 @@
/* $Header$ */
/*
* (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: J.W. Stevenson */
int _abi(i) int i; {
return(i>=0 ? i : -i);
}

View File

@@ -1,23 +0,0 @@
/* $Header$ */
/*
* (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: J.W. Stevenson */
long _abl(i) long i; {
return(i>=0 ? i : -i);
}

View File

@@ -1,23 +0,0 @@
/* $Header$ */
/*
* (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: J.W. Stevenson */
double _abr(r) double r; {
return(r>=0 ? r : -r);
}

View File

@@ -1,56 +0,0 @@
/* $Header$ */
/*
* (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: J.W. Stevenson */
/*
/* function argc:integer; extern; */
/* function argv(i:integer):string; extern; */
/* procedure argshift; extern; */
/* function environ(i:integer):string; extern; */
extern int _pargc;
extern char **_pargv;
extern char **_penvp;
int argc() {
return(_pargc);
}
char *argv(i) {
if (i >= _pargc)
return(0);
return(_pargv[i]);
}
argshift() {
if (_pargc > 1) {
--_pargc;
_pargv++;
}
}
char *environ(i) {
char **p; char *q;
if (p = _penvp)
while (q = *p++)
if (i-- < 0)
return(q);
return(0);
}

View File

@@ -1,33 +0,0 @@
/* $Header$ */
/*
* (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: J.W. Stevenson */
#include <em_abs.h>
#include <pc_err.h>
extern char *_hol0();
extern _trp();
_ass(line,bool) int line,bool; {
if (bool==0) {
LINO = line;
_trp(EASS);
}
}

View File

@@ -1,29 +0,0 @@
/* $Header$ */
/*
* (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: J.W. Stevenson */
struct descr {
int low;
int diff;
int size;
};
int _asz(dp) struct descr *dp; {
return(dp->size * (dp->diff + 1));
}

View File

@@ -1,74 +0,0 @@
/* $Header$ */
/*
floating-point arctangent
atan returns the value of the arctangent of its
argument in the range [-pi/2,pi/2].
there are no error returns.
coefficients are #5077 from Hart & Cheney. (19.56D)
*/
static double sq2p1 = 2.414213562373095048802e0;
static double sq2m1 = .414213562373095048802e0;
static double pio2 = 1.570796326794896619231e0;
static double pio4 = .785398163397448309615e0;
static double p4 = .161536412982230228262e2;
static double p3 = .26842548195503973794141e3;
static double p2 = .11530293515404850115428136e4;
static double p1 = .178040631643319697105464587e4;
static double p0 = .89678597403663861959987488e3;
static double q4 = .5895697050844462222791e2;
static double q3 = .536265374031215315104235e3;
static double q2 = .16667838148816337184521798e4;
static double q1 = .207933497444540981287275926e4;
static double q0 = .89678597403663861962481162e3;
/*
xatan evaluates a series valid in the
range [-0.414...,+0.414...].
*/
static double
xatan(arg)
double arg;
{
double argsq;
double value;
argsq = arg*arg;
value = ((((p4*argsq + p3)*argsq + p2)*argsq + p1)*argsq + p0);
value = value/(((((argsq + q4)*argsq + q3)*argsq + q2)*argsq + q1)*argsq + q0);
return(value*arg);
}
static double
satan(arg)
double arg;
{
if(arg < sq2m1)
return(xatan(arg));
else if(arg > sq2p1)
return(pio2 - xatan(1/arg));
else
return(pio4 + xatan((arg-1)/(arg+1)));
}
/*
atan makes its argument positive and
calls the inner routine satan.
*/
double
_atn(arg)
double arg;
{
if(arg>0)
return(satan(arg));
else
return(-satan(-arg));
}

View File

@@ -1,30 +0,0 @@
/* $Header$ */
/*
* (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: J.W. Stevenson */
int _bcp(sz,y,x) int sz; char *y,*x; {
while (--sz >= 0) {
if (*x < *y)
return(-1);
if (*x++ > *y++)
return(1);
}
return(0);
}

View File

@@ -1,56 +0,0 @@
#
; $Header$
;
; (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: J.W. Stevenson */
mes 2,EM_WSIZE,EM_PSIZE
#define SIZE 0
#define HIGH EM_WSIZE
#define LOWB 2*EM_WSIZE
#define BASE 3*EM_WSIZE
; _bts is called with four parameters:
; - the initial set (BASE)
; - low bound of range of bits (LOWB)
; - high bound of range of bits (HIGH)
; - set size in bytes (SIZE)
exp $_bts
pro $_bts,0
lal BASE ; address of initial set
lol SIZE
los EM_WSIZE ; load initial set
1
lol LOWB ; low bound
lol HIGH ; high bound
bgt *2 ; while low <= high
lol LOWB
lol SIZE
set ? ; create [low]
lol SIZE
ior ? ; merge with initial set
inl LOWB ; increment low bound
bra *1 ; loop back
2
lal BASE
lol SIZE
sts EM_WSIZE ; store result over initial set
ret 0
end ?

View File

@@ -1,35 +0,0 @@
/* $Header$ */
/*
* (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: J.W. Stevenson */
#include <pc_file.h>
extern _flush();
/* procedure buff(var f:file of ?); */
buff(f) struct file *f; {
int sz;
if ((f->flags & (0377|WRBIT)) != (MAGIC|WRBIT))
return;
_flush(f);
sz = f->size;
f->count = f->buflen = (sz>512 ? sz : 512-512%sz);
}

View File

@@ -1,102 +0,0 @@
/* $Header$ */
/*
* (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
*
*/
#include <em_abs.h>
#include <em_path.h>
#include <pc_file.h>
#define MESLEN 30
#define PATHLEN 100
extern struct file *_curfil;
extern int _pargc;
extern char **_pargv;
extern char **_penvp;
extern char *_hol0();
extern _trp();
extern exit();
extern int open();
extern int read();
extern int write();
/* Modified not to use a table of indices any more. This circumvents yet
another point where byte order in words would make you lose.
*/
_catch(erno) unsigned erno; {
char *p,*q,**qq;
unsigned i;
int fd;
char *pp[8];
char mes[MESLEN];
char filename[PATHLEN];
char c;
qq = pp;
if (p = FILN)
*qq++ = p;
else
*qq++ = _pargv[0];
p = &("xxxxx: "[5]);
if (i = LINO) {
*qq++ = ", ";
do
*--p = i % 10 + '0';
while (i /= 10);
}
*qq++ = p;
if ((erno & ~037) == 0140 && (_curfil->flags&0377)==MAGIC) {
/* file error */
*qq++ = "file ";
*qq++ = _curfil->fname;
*qq++ = ": ";
}
if ( (i=strtobuf(EM_DIR,filename,PATHLEN)) >= PATHLEN-1 ||
(filename[i]='/' ,
strtobuf(RTERR_PATH,filename+i+1,PATHLEN-i-1) >= PATHLEN-i-1
) )
goto error;
if ((fd=open(filename,0))<0)
goto error;
/* skip to correct message */
for(i=0;i<erno;i++)
do if (read(fd,&c,1)!=1)
goto error;
while (c!= '\n');
if(read(fd,mes,MESLEN-1)<=0)
goto error;
mes[MESLEN-1]=0;
for(i=0;i<MESLEN-1;i++)
if(mes[i]=='\n')
mes[i+1]=0;
*qq++ = mes;
*qq = 0;
qq = pp;
while (q = *qq++) {
p = q;
while (*p)
p++;
if (write(2,q,p-q) < 0)
;
}
exit(erno);
error:
_trp(erno);
}

View File

@@ -1,37 +0,0 @@
/* $Header$ */
/*
* (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: J.W. Stevenson */
/* function clock:integer; extern; */
extern int times();
struct tbuf {
long utime;
long stime;
long cutime;
long cstime;
};
int clock() {
struct tbuf t;
times(&t);
return( (t.utime + t.stime) & 077777);
}

View File

@@ -1,67 +0,0 @@
/* $Header$ */
/*
* (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: J.W. Stevenson */
#include <pc_file.h>
#include <pc_err.h>
extern struct file *_curfil;
extern _trp();
extern _flush();
extern _outcpt();
extern int close();
_xcls(f) struct file *f; {
if ((f->flags & WRBIT) == 0)
return;
if ((f->flags & (TXTBIT|ELNBIT)) == TXTBIT) {
#ifdef CPM
*f->ptr = '\r';
_outcpt(f);
#endif
*f->ptr = '\n';
_outcpt(f);
}
_flush(f);
}
_cls(f) struct file *f; {
#ifdef MAYBE
char *p;
#endif
_curfil = f;
if ((f->flags&0377) != MAGIC)
return;
#ifdef MAYBE
p = f->bufadr;
if (f->ptr < p)
return;
if (f->buflen <= 0)
return;
p += f->buflen;
if (f->ptr >= p)
return;
#endif
_xcls(f);
if (close(f->ufd) != 0)
_trp(ECLOSE);
f->flags = 0;
}

View File

@@ -1,122 +0,0 @@
/* $Header$ */
/*
* (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
*
*/
extern double _fif();
/*
* _ecvt converts to decimal
* the number of digits is specified by ndigit
* decpt is set to the position of the decimal point
* sign is set to 0 for positive, 1 for negative
*/
#define NDIG 80
static char*
cvt(arg, ndigits, decpt, sign, eflag)
double arg;
int ndigits, *decpt, *sign, eflag;
{
register int r2;
double fi, fj;
register char *p, *p1;
static char buf[NDIG];
int i; /*!*/
if (ndigits<0)
ndigits = 0;
if (ndigits>=NDIG-1)
ndigits = NDIG-2;
r2 = 0;
*sign = 0;
p = &buf[0];
if (arg<0) {
*sign = 1;
arg = -arg;
}
arg = _fif(arg, 1.0, &fi);
/*
* Do integer part
*/
if (fi != 0) {
p1 = &buf[NDIG];
while (fi != 0) {
i = (_fif(fi, 0.1, &fi) + 0.03) * 10;
*--p1 = i + '0';
r2++;
}
while (p1 < &buf[NDIG])
*p++ = *p1++;
} else if (arg > 0) {
while ((fj = arg*10) < 1) {
arg = fj;
r2--;
}
}
p1 = &buf[ndigits];
if (eflag==0)
p1 += r2;
*decpt = r2;
if (p1 < &buf[0]) {
buf[0] = '\0';
return(buf);
}
while (p<=p1 && p<&buf[NDIG]) {
arg = _fif(arg, 10.0, &fj);
i = fj;
*p++ = i + '0';
}
if (p1 >= &buf[NDIG]) {
buf[NDIG-1] = '\0';
return(buf);
}
p = p1;
*p1 += 5;
while (*p1 > '9') {
*p1 = '0';
if (p1>buf) {
p1--; *p1 += 1;
} else {
*p1 = '1';
(*decpt)++;
if (eflag==0) {
if (p>buf)
*p = '0';
p++;
}
}
}
*p = '\0';
return(buf);
}
char*
_ecvt(arg, ndigits, decpt, sign)
double arg;
int ndigits, *decpt, *sign;
{
return(cvt(arg, ndigits, decpt, sign, 1));
}
char*
_fcvt(arg, ndigits, decpt, sign)
double arg;
int ndigits, *decpt, *sign;
{
return(cvt(arg, ndigits, decpt, sign, 0));
}

View File

@@ -1,34 +0,0 @@
/* $Header$ */
/*
* (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: J.W. Stevenson */
#include <pc_file.h>
/* procedure diag(var f:text); */
diag(f) struct file *f; {
f->ptr = f->bufadr;
f->flags = WRBIT|EOFBIT|ELNBIT|TXTBIT|MAGIC;
f->fname = "DIAG";
f->ufd = 2;
f->size = 1;
f->count = 1;
f->buflen = 1;
}

View File

@@ -1,87 +0,0 @@
/* $Header$ */
/*
* (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: J.W. Stevenson */
#include <pc_err.h>
#define assert() /* nothing */
/*
* use circular list of free blocks from low to high addresses
* _highp points to free block with highest address
*/
struct adm {
struct adm *next;
int size;
};
extern struct adm *_lastp;
extern struct adm *_highp;
extern _trp();
static int merge(p1,p2) struct adm *p1,*p2; {
struct adm *p;
p = (struct adm *)((char *)p1 + p1->size);
if (p > p2)
_trp(EFREE);
if (p != p2)
return(0);
p1->size += p2->size;
p1->next = p2->next;
return(1);
}
_dis(n,pp) int n; struct adm **pp; {
struct adm *p1,*p2;
/*
* NOTE: dispose only objects whose size is a multiple of sizeof(*pp).
* this is always true for objects allocated by _new()
*/
n = ((n+sizeof(*p1)-1) / sizeof(*p1)) * sizeof(*p1);
if (n == 0)
return;
if ((p1= *pp) == (struct adm *) 0)
_trp(EFREE);
p1->size = n;
if ((p2 = _highp) == 0) /*p1 is the only free block*/
p1->next = p1;
else {
if (p2 > p1) {
/*search for the preceding free block*/
if (_lastp < p1) /*reduce search*/
p2 = _lastp;
while (p2->next < p1)
p2 = p2->next;
}
/* if p2 preceeds p1 in the circular list,
* try to merge them */
p1->next = p2->next; p2->next = p1;
if (p2 <= p1 && merge(p2,p1))
p1 = p2;
p2 = p1->next;
/* p1 preceeds p2 in the circular list */
if (p2 > p1) merge(p1,p2);
}
if (p1 >= p1->next)
_highp = p1;
_lastp = p1;
*pp = (struct adm *) 0;
}

View File

@@ -1,36 +0,0 @@
/* $Header$ */
/*
* (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: J.W. Stevenson */
#include <pc_file.h>
#include <pc_err.h>
extern struct file *_curfil;
extern _trp();
extern _incpt();
int _efl(f) struct file *f; {
_curfil = f;
if ((f->flags & 0377) != MAGIC)
_trp(EBADF);
if ((f->flags & (WINDOW|WRBIT|EOFBIT)) == 0)
_incpt(f);
return((f->flags & EOFBIT) != 0);
}

View File

@@ -1,33 +0,0 @@
/* $Header$ */
/*
* (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: J.W. Stevenson */
#include <pc_file.h>
#include <pc_err.h>
extern _trp();
extern _rf();
int _eln(f) struct file *f; {
_rf(f);
if (f->flags & EOFBIT)
_trp(EEOF);
return((f->flags & ELNBIT) != 0);
}

View File

@@ -1,144 +0,0 @@
#
; $Header$
; (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
;
mes 2,EM_WSIZE,EM_PSIZE
; procedure encaps(procedure p; procedure(q(n:integer));
; {call q if a trap occurs during the execution of p}
; {if q returns, continue execution of p}
inp $handler
#define PIISZ 2*EM_PSIZE
#define PARG 0
#define QARG PIISZ
#define E_ELB -EM_PSIZE
#define E_EHA -2*EM_PSIZE
; encaps is called with two parameters:
; - procedure instance identifier of q (QARG)
; - procedure instance identifier of p (PARG)
; and two local variables:
; - the lb of the previous encaps (E_ELB)
; - the procedure identifier of the previous handler (E_EHA)
;
; One static variable:
; - the lb of the currently active encaps (enc_lb)
enc_lb
bss EM_PSIZE,0,0
exp $encaps
pro $encaps,PIISZ
; save lb of previous encaps
lae enc_lb
loi EM_PSIZE
lal E_ELB
sti EM_PSIZE
; set new lb
lxl 0
lae enc_lb
sti EM_PSIZE
; save old handler id while setting up the new handler
lpi $handler
sig
lal E_EHA
sti EM_PSIZE
; handler is ready, p can be called
; p doesn't expect parameters except possibly the static link
; always passing the link won't hurt
lal PARG
loi PIISZ
cai
asp EM_PSIZE
; reinstate old handler
lal E_ELB
loi EM_PSIZE
lae enc_lb
sti EM_PSIZE
lal E_EHA
loi EM_PSIZE
sig
asp EM_PSIZE
ret 0
end ?
#define TRAP 0
#define H_ELB -EM_PSIZE
; handler is called with one parameter:
; - trap number (TRAP)
; one local variable
; - the current LB of the enclosing encaps (H_ELB)
pro $handler,EM_PSIZE
; save LB of nearest encaps
lae enc_lb
loi EM_PSIZE
lal H_ELB
sti EM_PSIZE
; fetch setting for previous encaps via LB of nearest
lal H_ELB
loi EM_PSIZE
adp E_ELB
loi EM_PSIZE ; LB of previous encaps
lae enc_lb
sti EM_PSIZE
lal H_ELB
loi EM_PSIZE
adp E_EHA
loi EM_PSIZE ; previous handler
sig
asp EM_PSIZE
; previous handler is re-instated, time to call Q
lol TRAP ; the one and only real parameter
lal H_ELB
loi EM_PSIZE
lpb ; argument base of enclosing encaps
adp QARG
loi PIISZ
exg EM_PSIZE
dup EM_PSIZE ; The static link is now on top
zer EM_PSIZE
cmp
zeq *1
; non-zero LB
exg EM_PSIZE
cai
asp EM_WSIZE+EM_PSIZE
bra *2
1
; zero LB
asp EM_PSIZE
cai
asp EM_WSIZE
2
; now reinstate handler for continued execution of p
lal H_ELB
loi EM_PSIZE
lae enc_lb
sti EM_PSIZE
lpi $handler
sig
asp EM_PSIZE
rtt
end ?

View File

@@ -1,106 +0,0 @@
/* $Header$ */
#include <pc_err.h>
extern double _fif();
extern double _fef();
extern _trp();
/*
exp returns the exponential function of its
floating-point argument.
The coefficients are #1069 from Hart and Cheney. (22.35D)
*/
#define HUGE 1.701411733192644270e38
static double p0 = .2080384346694663001443843411e7;
static double p1 = .3028697169744036299076048876e5;
static double p2 = .6061485330061080841615584556e2;
static double q0 = .6002720360238832528230907598e7;
static double q1 = .3277251518082914423057964422e6;
static double q2 = .1749287689093076403844945335e4;
static double log2e = 1.4426950408889634073599247;
static double sqrt2 = 1.4142135623730950488016887;
static double maxf = 10000.0;
static double
floor(d)
double d;
{
if (d<0) {
d = -d;
if (_fif(d, 1.0, &d) != 0)
d += 1;
d = -d;
} else
_fif(d, 1.0, &d);
return(d);
}
static double
ldexp(fr,exp)
double fr;
int exp;
{
int neg,i;
neg = 1;
if (fr < 0) {
fr = -fr;
neg = -1;
}
fr = _fef(fr, &i);
/*
while (fr < 0.5) {
fr *= 2;
exp--;
}
*/
exp += i;
if (exp > 127) {
_trp(EEXP);
return(neg * HUGE);
}
if (exp < -127)
return(0);
while (exp > 14) {
fr *= (1<<14);
exp -= 14;
}
while (exp < -14) {
fr /= (1<<14);
exp += 14;
}
if (exp > 0)
fr *= (1<<exp);
if (exp < 0)
fr /= (1<<(-exp));
return(neg * fr);
}
double
_exp(arg)
double arg;
{
double fract;
double temp1, temp2, xsq;
int ent;
if(arg == 0)
return(1);
if(arg < -maxf)
return(0);
if(arg > maxf) {
_trp(EEXP);
return(HUGE);
}
arg *= log2e;
ent = floor(arg);
fract = (arg-ent) - 0.5;
xsq = fract*fract;
temp1 = ((p2*xsq+p1)*xsq+p0)*fract;
temp2 = ((xsq+q2)*xsq+q1)*xsq + q0;
return(ldexp(sqrt2*(temp2+temp1)/(temp2-temp1), ent));
}

View File

@@ -1,39 +0,0 @@
#
; $Header$
;
; (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
;
;
mes 2,EM_WSIZE,EM_PSIZE
#define FARG 0
#define ERES EM_DSIZE
; _fef is called with two parameters:
; - address of exponent result (ERES)
; - floating point number to be split (FARG)
; and returns an EM_DSIZE-byte floating point number
exp $_fef
pro $_fef,0
lal FARG
loi EM_DSIZE
fef EM_DSIZE
lal ERES
loi EM_PSIZE
sti EM_WSIZE
ret EM_DSIZE
end ?

View File

@@ -1,41 +0,0 @@
#
; $Header$
;
; (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
;
;
mes 2,EM_WSIZE,EM_PSIZE
#define ARG1 0
#define ARG2 EM_DSIZE
#define IRES 2*EM_DSIZE
; _fif is called with three parameters:
; - address of integer part result (IRES)
; - float two (ARG2)
; - float one (ARG1)
; and returns an EM_DSIZE-byte floating point number
exp $_fif
pro $_fif,0
lal 0
loi 2*EM_DSIZE
fif EM_DSIZE
lal IRES
loi EM_PSIZE
sti EM_DSIZE
ret EM_DSIZE
end ?

View File

@@ -1,31 +0,0 @@
/* $Header$ */
/*
* (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
*
*/
#include <pc_file.h>
#include <pc_err.h>
extern _rf();
extern _trp();
_get(f) struct file *f; {
_rf(f);
if (f->flags&EOFBIT)
_trp(EEOF);
f->flags &= ~WINDOW;
}

View File

@@ -1,85 +0,0 @@
#
; $Header$
; (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: J.W. Stevenson */
mes 2,EM_WSIZE,EM_PSIZE
#define TARLB 0
#define DESCR EM_PSIZE
#define NEWPC 0
#define SAVSP EM_PSIZE
#define D_PC 0
#define D_SP EM_PSIZE
#define D_LB EM_PSIZE+EM_PSIZE
#define LOCLB -EM_PSIZE
; _gto is called with two arguments:
; - pointer to the label descriptor (DESCR)
; - local base (LB) of target procedure (TARLB)
; the label descriptor contains two items:
; - label address i.e. new PC (NEWPC)
; - offset in target procedure frame (SAVSP)
; using this offset and the LB of the target procedure, the address of
; of local variable of the target procedure is constructed.
; the target procedure must have stored the correct target SP there.
descr
bss 3*EM_PSIZE,0,0
exp $_gto
pro $_gto,EM_PSIZE
lal DESCR
loi EM_PSIZE
adp NEWPC
loi EM_PSIZE
lae descr+D_PC
sti EM_PSIZE
lal TARLB
loi EM_PSIZE
zer EM_PSIZE
cmp
zeq *1
lal TARLB
loi EM_PSIZE
bra *2
1
lae _m_lb
loi EM_PSIZE
2
lal LOCLB
sti EM_PSIZE
lal LOCLB
loi EM_PSIZE
lal DESCR
loi EM_PSIZE
adp SAVSP
loi EM_WSIZE ; or EM_PSIZE ?
ads EM_WSIZE ; or EM_PSIZE ?
loi EM_PSIZE
lae descr+D_SP
sti EM_PSIZE
lal LOCLB
loi EM_PSIZE
lae descr+D_LB
sti EM_PSIZE
gto descr
end ?

View File

@@ -1,3 +0,0 @@
#
; $Header$
mes 2,EM_WSIZE,EM_PSIZE

View File

@@ -1,35 +0,0 @@
/* $Header$ */
/*
* (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: J.W. Stevenson */
#include <pc_file.h>
extern char *_hbase;
extern int *_extfl;
extern _cls();
extern exit();
_hlt(ecode) int ecode; {
int i;
for (i = 1; i <= _extfl[0]; i++)
if (_extfl[i] != -1)
_cls(EXTFL(i));
exit(ecode);
}

View File

@@ -1,29 +0,0 @@
#
; $Header$
;
; (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
;
;
mes 2,EM_WSIZE,EM_PSIZE
; _hol0 return the address of the ABS block (hol0)
exp $_hol0
pro $_hol0,0
lae 0
ret EM_PSIZE
end ?

View File

@@ -1,75 +0,0 @@
/* $Header$ */
/*
* (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: J.W. Stevenson */
#include <pc_file.h>
#include <pc_err.h>
#define EINTR 4
extern int errno;
extern _trp();
extern int read();
_incpt(f) struct file *f; {
if (f->flags & EOFBIT)
_trp(EEOF);
f->flags |= WINDOW;
f->flags &= ~ELNBIT;
#ifdef CPM
do {
#endif
f->ptr += f->size;
if (f->count == 0) {
f->ptr = f->bufadr;
for(;;) {
f->count=read(f->ufd,f->bufadr,f->buflen);
if ( f->count<0 ) {
if (errno != EINTR) _trp(EREAD) ;
continue ;
}
break ;
}
if (f->count == 0) {
f->flags |= EOFBIT;
*f->ptr = '\0';
return;
}
}
if ((f->count -= f->size) < 0)
_trp(EFTRUNC);
#ifdef CPM
} while ((f->flags&TXTBIT) && *f->ptr == '\r');
#endif
if (f->flags & TXTBIT) {
if (*f->ptr & 0200)
_trp(EASCII);
if (*f->ptr == '\n') {
f->flags |= ELNBIT;
*f->ptr = ' ';
}
#ifdef CPM
if (*f->ptr == 26) {
f->flags |= EOFBIT;
*f->ptr = 0;
}
#endif
}
}

View File

@@ -1,73 +0,0 @@
/* $Header$ */
/*
* (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: J.W. Stevenson */
#include <pc_file.h>
#include <pc_err.h>
extern (*_sig())();
extern _catch();
#ifndef CPM
extern int ioctl();
#endif
char *_hbase;
int *_extfl;
char *_m_lb; /* LB of m_a_i_n */
struct file *_curfil; /* points to file struct in case of errors */
int _pargc;
char **_pargv;
char **_penvp;
_ini(args,hb,p,mainlb) char *args,*hb,*mainlb; int *p; {
struct file *f;
char buf[6];
_pargc= *(int *)args; args += sizeof (int);
_pargv= *(char ***)args; args += sizeof (char **);
_penvp= *(char ***)args;
_sig(_catch);
_extfl = p;
_hbase = hb;
_m_lb = mainlb;
if (_extfl[1] != -1) {
f = EXTFL(1);
f->ptr = f->bufadr;
f->flags = MAGIC|TXTBIT;
f->fname = "INPUT";
f->ufd = 0;
f->size = 1;
f->count = 0;
f->buflen = 512;
}
if (_extfl[2] != -1) {
f = EXTFL(2);
f->ptr = f->bufadr;
f->flags = MAGIC|TXTBIT|WRBIT|EOFBIT|ELNBIT;
f->fname = "OUTPUT";
f->ufd = 1;
f->size = 1;
#ifdef CPM
f->count = 1;
#else
f->count = (ioctl(1,(('t'<<8)|8),buf) == 0 ? 1 : 512);
#endif
f->buflen = f->count;
}
}

View File

@@ -1,59 +0,0 @@
/* $Header$ */
#include <pc_err.h>
extern double _fef();
extern _trp();
/*
log returns the natural logarithm of its floating
point argument.
The coefficients are #2705 from Hart & Cheney. (19.38D)
It calls _fef.
*/
#define HUGE 1.701411733192644270e38
static double log2 = 0.693147180559945309e0;
static double sqrto2 = 0.707106781186547524e0;
static double p0 = -.240139179559210510e2;
static double p1 = 0.309572928215376501e2;
static double p2 = -.963769093368686593e1;
static double p3 = 0.421087371217979714e0;
static double q0 = -.120069589779605255e2;
static double q1 = 0.194809660700889731e2;
static double q2 = -.891110902798312337e1;
double
_log(arg)
double arg;
{
double x,z, zsq, temp;
int exp;
if(arg <= 0) {
_trp(ELOG);
return(-HUGE);
}
x = _fef(arg,&exp);
/*
while(x < 0.5) {
x =* 2;
exp--;
}
*/
if(x<sqrto2) {
x *= 2;
exp--;
}
z = (x-1)/(x+1);
zsq = z*z;
temp = ((p3*zsq + p2)*zsq + p1)*zsq + p0;
temp = temp/(((zsq + q2)*zsq + q1)*zsq + q0);
temp = temp*z + exp*log2;
return(temp);
}

View File

@@ -1,33 +0,0 @@
/* $Header$ */
/*
* (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: J.W. Stevenson */
#include <pc_err.h>
extern _trp();
int _mdi(j,i) int j,i; {
if (j <= 0)
_trp(EMOD);
i = i % j;
if (i < 0)
i += j;
return(i);
}

View File

@@ -1,33 +0,0 @@
/* $Header$ */
/*
* (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: J.W. Stevenson */
#include <pc_err.h>
extern _trp();
long _mdl(j,i) long j,i; {
if (j <= 0)
_trp(EMOD);
i = i % j;
if (i < 0)
i += j;
return(i);
}

View File

@@ -1,67 +0,0 @@
/* $Header$ */
/*
* (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: J.W. Stevenson */
extern _sav();
extern _rst();
#define assert() /* nothing */
#define UNDEF 0x8000
struct adm {
struct adm *next;
int size;
};
struct adm *_lastp = 0;
struct adm *_highp = 0;
_new(n,pp) int n; struct adm **pp; {
struct adm *p,*q;
n = ((n+sizeof(*p)-1) / sizeof(*p)) * sizeof(*p);
if ((p = _lastp) != 0)
do {
q = p->next;
if (q->size >= n) {
assert(q->size%sizeof(adm) == 0);
if ((q->size -= n) == 0) {
if (p == q)
p = 0;
else
p->next = q->next;
if (q == _highp)
_highp = p;
}
_lastp = p;
p = (struct adm *)((char *)q + q->size);
q = (struct adm *)((char *)p + n);
goto initialize;
}
p = q;
} while (p != _lastp);
/*no free block big enough*/
_sav(&p);
q = (struct adm *)((char *)p + n);
_rst(&q);
initialize:
*pp = p;
while (p < q)
*((int *)p)++ = UNDEF;
}

View File

@@ -1,33 +0,0 @@
/* $Header$ */
/*
* (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: J.W. Stevenson */
#include <pc_file.h>
extern _flush();
/* procedure nobuff(var f:file of ?); */
nobuff(f) struct file *f; {
if ((f->flags & (0377|WRBIT)) != (MAGIC|WRBIT))
return;
_flush(f);
f->count = f->buflen = f->size;
}

View File

@@ -1,23 +0,0 @@
/* $Header$ */
/*
* (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
*
*/
#include <pc_file.h>
notext(f) struct file *f; {
f->flags &= ~TXTBIT;
}

View File

@@ -1,117 +0,0 @@
/* $Header$ */
/*
* (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: J.W. Stevenson */
#include <pc_file.h>
#include <pc_err.h>
extern char *_hbase;
extern int *_extfl;
extern struct file *_curfil;
extern int _pargc;
extern char **_pargv;
extern char **_penvp;
extern _cls();
extern _xcls();
extern _trp();
extern int getpid();
extern int creat();
extern int open();
extern int close();
extern int unlink();
extern long lseek();
static int tmpfil() {
int i; char *p,*q;
i = getpid();
p = "/usr/tmp/plf.xxxxx";
q = p + 13;
do
*q++ = (i & 07) + '0';
while (i >>= 3);
*q = '\0';
if ((i = creat(p,0644)) < 0)
if ((i = creat(p += 4,0644)) < 0)
if ((i = creat(p += 5,0644)) < 0)
goto error;
if (close(i) != 0)
goto error;
if ((i = open(p,2)) < 0)
goto error;
if (unlink(p) != 0)
error: _trp(EREWR);
return(i);
}
static int initfl(descr,sz,f) int descr; int sz; struct file *f; {
int i;
_curfil = f;
if (sz == 0) {
sz++;
descr |= TXTBIT;
}
for (i=1; i<=_extfl[0]; i++)
if (f == EXTFL(i))
break;
if (i > _extfl[0]) { /* local file */
f->fname = "LOCAL";
if ((descr & WRBIT) == 0 && (f->flags & 0377) == MAGIC) {
_xcls(f);
if (lseek(f->ufd,(long)0,0) == -1)
_trp(ERESET);
} else {
_cls(f);
f->ufd = tmpfil();
}
} else { /* external file */
if ((i -= 2) <= 0)
return(0);
if (i >= _pargc)
_trp(EARGC);
f->fname = _pargv[i];
_cls(f);
if ((descr & WRBIT) == 0) {
if ((f->ufd = open(f->fname,0)) < 0)
_trp(ERESET);
} else {
if ((f->ufd = creat(f->fname,0644)) < 0)
_trp(EREWR);
}
}
f->buflen = (sz>512 ? sz : 512-512%sz);
f->size = sz;
f->ptr = f->bufadr;
f->flags = descr;
return(1);
}
_opn(sz,f) int sz; struct file *f; {
if (initfl(MAGIC,sz,f))
f->count = 0;
}
_cre(sz,f) int sz; struct file *f; {
if (initfl(WRBIT|EOFBIT|ELNBIT|MAGIC,sz,f))
f->count = f->buflen;
}

View File

@@ -1,50 +0,0 @@
/* $Header$ */
/*
* (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: J.W. Stevenson */
#include <pc_file.h>
#include <pc_err.h>
#define EINTR 4
extern int errno;
extern _trp();
extern int write();
_flush(f) struct file *f; {
int i,n;
f->ptr = f->bufadr;
n = f->buflen - f->count;
if (n <= 0)
return;
f->count = f->buflen;
if ((i = write(f->ufd,f->bufadr,n)) < 0 && errno == EINTR)
return;
if (i != n)
_trp(EWRITE);
}
_outcpt(f) struct file *f; {
f->flags &= ~ELNBIT;
f->ptr += f->size;
if ((f->count -= f->size) <= 0)
_flush(f);
}

Some files were not shown because too many files have changed in this diff Show More