593 Commits

Author SHA1 Message Date
em
de2af3ce35 Added some xtra output for Henk Schouten's debugger. 1985-02-26 15:05:51 +00:00
cvs2hg
604d707769 fixup commit for branch 'unlabeled-2.17.1' 1985-02-19 13:41:31 +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
sater
628d3da626 changed references to EM_?SIZE to TEM_?SIZE 1984-10-23 15:04:24 +00:00
sater
a5c07a52b4 changed EM_WSIZE to TEM_WSIZE 1984-10-23 15:02:03 +00:00
sater
43c97f0d41 added -h and -c flags, to change names of tables.h and tables.c respectively
now also takes an argument instead of stdin.
EM_BSIZE is now compulsory again.
Constants EM_?SIZE are passed on to cg with a T prepended (T for target)
1984-10-23 13:39:15 +00:00
sater
24eeca9474 Changed to use -h flag to cgg and better way of preserving old tables.h
if not changed. Nice huh, Andy?
1984-10-23 13:29:41 +00:00
sater
7eef0e0b59 added rcsid(again). Who took that away? 1984-10-16 13:45:16 +00:00
sater
9d03cb68c7 added code to generate code for ACK assembler.
Works if ACK_ASS is defined.
1984-10-16 13:31:44 +00:00
ceriel
d89d5770b1 Had forgotten to initialise the line number on which a nonterminal
symbol occurred first.
1984-10-12 14:19:34 +00:00
ceriel
f6d9a497eb No changes 1984-10-11 21:35:58 +00:00
ceriel
bac12b0c46 The former version gave a fatal error message at the first undefined
nonterminal. The new version checks all nonterminals
1984-10-11 10:35:01 +00:00
ceriel
e13ebaad9e The routine findpath did not work. It used the same static buffer for
several calls. Now it uses alloc.
1984-10-09 11:43:19 +00:00
em
315806b282 Initial revision 1984-10-09 10:36:29 +00:00
ceriel
43de6c3b78 added "#ifdef NORCSID" 1984-10-09 10:16:33 +00:00
ceriel
0ec009bde2 Added some comments and removed some Lint complaints 1984-10-09 10:13:46 +00:00
ceriel
0f8a2d3a39 Initial revision 1984-10-09 09:47:14 +00:00
ceriel
b5402db333 The routine LLmessage did not insert tokens properly.
This is corrected now.
1984-10-09 09:33:37 +00:00
ceriel
4f5c40c608 Changed RCSid 1984-10-08 17:11:03 +00:00
ceriel
2055a65cae Added RCSid. 1984-10-08 16:21:03 +00:00
ceriel
ed6a7245bd Adapted the libpath routine to use EM_DIR from ../../../h/em_path.h 1984-10-08 15:58:23 +00:00
ceriel
2cd6c03840 Added entry for LLgen. 1984-10-08 15:20:54 +00:00
ceriel
c38d1013cb Initial revision 1984-10-08 15:19:18 +00:00
ceriel
6da013b55a Added entry for LLgen documentation. 1984-10-08 15:00:23 +00:00
ceriel
e3eae54592 Initial revision 1984-10-08 14:51:38 +00:00
ceriel
7cc3184392 Initial revision 1984-10-08 14:24:19 +00:00
ceriel
952ba464cc Initial revision 1984-10-08 14:14:53 +00:00
keie
08b7ec6600 Initial revision 1984-10-08 14:11:42 +00:00
keie
f918aa20fe New installation procedure:
1 - New place for binaries and libraries in the ACK tree.
2 - The ranlib action is moved to ../../install which tries it at
    every action.
1984-10-08 14:09:28 +00:00
bal
54bac1caaf bug fixed: generate "add.l #65536,a1" rather than "lea 65536(a1),a1".
The latter form is only generated for constants that fit in a word.
1984-10-08 12:45:38 +00:00
keie
504da3a54d Altered the test path lib/n_ack into the normal path ACK_PATH. 1984-10-05 15:07:47 +00:00
keie
36cca2b9c7 Added a priority associated with each phase. Paths with the highest
total priority have preference.
1984-10-05 13:34:38 +00:00
keie
6f8a00ee5c 1 - Added some debugging for linker flags.
2 - Setting of NEEDS and RTS is moved to main.c.
3 - Added recognition of -Rphase:[-]number for dynamic priority setting.
1984-10-05 13:31:40 +00:00
keie
ca275f5d22 1 - Most flags used by ack itself are now also passed to the phases
for recognition with mapflag.
2 - A few bugs are removed in connection with argument passing to the
    linker (unrecognized flags and libraries).
3 - The setting of RTS, HEAD and TAIL is done directly after the
    path determination for each file.
1984-10-05 13:28:56 +00:00
keie
150c8164af Removed the defines needed by util/ack/em_pc.c.
These defaults are now provided in lib/ack/fe.
1984-10-04 11:11:30 +00:00
keie
70975146a1 1 - Added RCS identification.
2 - Removed the default for compiler and error file pathname.
    These are now always supplied by the callee.
1984-10-04 11:08:42 +00:00
keie
962cc80686 Corrected a small bug in the pc mapflags. 1984-10-04 10:54:11 +00:00
keie
f6ecbec936 1- Added RCS identification.
2- The pathnames of the Pascal compiler and Compile time-error file
   are now always explicitly passed to em_pc.
1984-10-04 10:47:03 +00:00
keie
8128e3d82d Altered to reflect the changes in em_path.h.
Now dynamically concatenes EM_DIR and error path.
1984-10-04 10:42:13 +00:00
keie
ea86ccd217 Altered the description of EM_HOME in em_path.h to that of
EM_DIR.
1984-10-02 16:24:59 +00:00
sater
045ccfaeba added missing cast at call to regsave, in ms_gto case 1984-10-02 11:17:57 +00:00
sater
a6b69be622 changed definition of myalloc to extern 1984-10-02 10:31:06 +00:00
sater
50d77d903a added external definition for myalloc() 1984-10-02 10:30:44 +00:00
keie
cbf6d06de2 Bug removed: the trailing zero at the end of a growstring was not
explicitly written in doassign(trans.c).
Only luck kept the program together.
1984-10-01 17:42:56 +00:00
keie
bb0ff814f6 Nill pointers are not allowed in CSA descriptors any more. 1984-10-01 16:05:17 +00:00
keie
f80b30bdbb Null pointer are not allowed any more for in-bound indeces in the CSA
table.
1984-10-01 14:54:09 +00:00
keie
7f6105c294 Initial revision 1984-09-25 16:33:15 +00:00
keie
1f59bd7223 Added National semiconductor assembler. 1984-09-25 16:32:45 +00:00
em
8f7669b247 1 - A few minor syntactic changes.
2 - Altered the description of strings as initializers. (sequence of U1's).
1984-09-25 11:06:29 +00:00
keie
f950163854 Made the buffer long enough for the machine state on most machines. 1984-09-24 15:18:20 +00:00
keie
38b8391594 Initial revision 1984-09-24 15:18:07 +00:00
keie
e88fe13466 Initial revision 1984-09-24 14:10:23 +00:00
em
e29ef2395a Compile-time option GLOBAL_OPT defined. If set, the resulting
peephole optimizer will be suitable for optimizing the output of
the global optimizer. In particular, it doesn't change the register
messages.
1984-09-14 10:25:07 +00:00
keie
546bcee023 1 - The prop keyword with is flags is now obsolete. Its function is
taken over by several other keywords: stdin, stdout, prep, optimizer,
    combiner and linker.
2 - The search order is changed. First {EM}/lib/{M}/descr, then
    {EM}/lib/ack/{M}, finally {M}.
1984-09-13 14:40:09 +00:00
keie
a9beb24998 The t_do bits are not set by this module. The t_next entry is used
to see whether the scan for this phase is already done.
t_do is now set in add_inputs(files.c).
1984-09-13 14:35:02 +00:00
keie
96da898a4a 1 - The t_do flags is now set by add_inputs(files.c).
2 - Recognize the fact that it is possible to start a combiner without
    input files.
3 - Removed -d flag. Overflow for -v (>2) now ends up in debug.
    -v may be followed by a number indicating the increment.
1984-09-13 11:07:46 +00:00
keie
a69b503ad0 1 - The outfile entry is only used when the output file must not be thrown
away.
2 - If a combiner has no named input file (only libs+flags) then issue
    a warning message and make up a name.
1984-09-13 11:04:00 +00:00
bal
5fd55904ec pem did not generate a register message for var-parameters of
array- or record type. The routine "treewalk" is modified.
It generates a register message for every var-parameter, even
if it has its noreg-flag set.
1984-09-12 13:21:43 +00:00
bal
195c808f88 unlk a6 added to restr(). 1984-09-11 15:44:14 +00:00
keie
50e3b4fe4a Added ego, basic and callname conventions. 1984-09-10 17:34:04 +00:00
keie
f366afdae1 No comment. 1984-09-10 16:51:02 +00:00
keie
c08fe56b97 Combiners (ego, linkers) now use a list of path's(ack.h) to indicate
their input files.
Unmatched flags are now sent to the linker.
1984-09-10 16:48:57 +00:00
keie
ed3db93f56 1 - A transformation is succesfull when
a - a stopsuffix is indicated and met,
    b - the last transformation is included in the transformation path.
2 - Maintains a 'cash' of best paths for all transformation to be executed.
1984-09-10 16:46:13 +00:00
keie
71dc6af5a8 The input file names of the linker are to be found in a different place. 1984-09-10 16:45:12 +00:00
keie
cfdc2ce05f 1 - added keywords callname and outfile. See manual.
2 - multiple combiners are allowed now.
3 - A different search mechanism is used for finding descriptor files.
1984-09-10 16:42:55 +00:00
keie
845c92825a 1 - callname recognition is moved to rmach.c.
2 - The overall scheme is altered.
	first, all input files are processed until a combining phase is met.
	then, all the combining phases are executed, the resulting files
	are again processed until a combiner (or final) phase is met.
3 - The EM_DIR shell variable can be used to set ack's idea of the EM
    home directory.
1984-09-10 16:37:11 +00:00
keie
3adba1b759 1 - The names of temporary files are now Ack'hex''unique'.'suffix'.
'hex' is the pid of the current invocation of ack in hex.
    'unique' is a tail unique to this invocation.
2 - The outfile field is used to indicate default naming, can be ovrrriden
    by the -o flag.
3 - Added handling for phases with multiple inputs (ego, linker).
1984-09-10 16:33:03 +00:00
keie
ea6c20f5d1 The role of the combiner is -partially- assumed by the linker.
Linker arguments are now part of the transformation structure.
Temp file nameing is changed.
1984-09-10 16:30:47 +00:00
keie
d99b36abf8 Naming of the tempname is changed (see files.c). 1984-09-10 16:29:37 +00:00
keie
93693877be Initial revision 1984-09-03 13:49:40 +00:00
sater
2aa5c6b7d9 Variable nregvars had a name clash with the array nregvar[] in the
file tables.c. That was different in the 8'th character (!"#$%&'()_).
These variables should actually be static.
1984-08-23 17:07:53 +00:00
keie
bbc3cb33cc We do not use the missing " trick anymore.
The root directory of the EM tree is in the name EM_DIR, the
root directory for tempfiles is in TMP_DIR.
All other path's are relative to EM_DIR.
1984-08-23 13:33:11 +00:00
keie
77ebfceac5 The ACK tree on the vax has as default machine 'vax2'. 1984-08-23 13:27:14 +00:00
keie
3d10bd6e59 The missing trailing " trick is now also used for TMP_DIR. 1984-08-23 13:26:44 +00:00
keie
03a31cf3fc The ms_gto is added. This is a trick used to indicate procedures
jumped to with gto.
1984-08-23 13:25:44 +00:00
keie
81267df9ad *** empty log message *** 1984-08-23 13:20:59 +00:00
keie
113cf23e0f Initial revision 1984-08-23 13:18:14 +00:00
keie
3154365fff Initial revision 1984-08-23 13:00:32 +00:00
sater
e006f1ec29 increased MAXNODES in small memory mode 1984-08-23 12:25:24 +00:00
sater
1c36c470db Increased the amount of information passed through error routines
to printf. The routine badassert, running on a 2/4 machine lost it's
last argument on the way.
Anyone know of a better way to solve this problem?
1984-08-17 15:35:28 +00:00
keie
1da13e49e1 Added comment. 1984-08-17 14:57:31 +00:00
keie
f077a39568 Added RCS identification. 1984-08-17 14:44:24 +00:00
sater
6474db065f Revised to include rcsid of pattern file in binary opt 1984-08-16 16:08:39 +00:00
sater
10b16f7c76 enlarged string table in big memory case 1984-08-16 13:34:59 +00:00
sater
1ff6c3236f added patterns to prevent stacking in *p++ cases 1984-08-15 16:05:54 +00:00
sater
19b13e8e4f added patterns to remove some more dup's 1984-08-15 16:04:19 +00:00
sater
e5d1aebbae added patterns for inc/dec/adp of local and external offsetted
This makes the getc() macro from C very efficient, among others
1984-08-15 14:31:54 +00:00
sater
b23de46c3a added patterns to remove as many dup's as possible. 1984-08-15 14:23:42 +00:00
sater
9bdd1abf9a added definition of malloc().
Program crashed on 2/4 machines
1984-08-08 10:54:04 +00:00
sater
6180399964 reworked patterns for autoincrement stores, now that peephole optimizer
rearranged it.
1984-08-07 10:22:49 +00:00
sater
db0822fa37 added patterns for *p++ local and external p
added pattern to remove some badly placed dups
1984-08-03 16:37:15 +00:00
sater
11026ace27 added setcc calls to some incrementing ops
added patterns for indirect local and external increments
added patterns for loe ine and such
1984-08-03 16:33:40 +00:00
sater
76281fa307 removed some superfluous patterns.
Were special cases not needed with the general case.
1984-08-03 13:16:59 +00:00
sater
dbcebe6e4c A move from a nonreg to a reg did not have the effect that all
registers clashing with the destination were erased. Erase added.
1984-08-02 16:31:25 +00:00
keie
8a4d834bc6 The name "unix" is now predefined for preprocessor usage. 1984-08-02 14:13:04 +00:00
sater
925701dc62 When building the parameter list for a pf-call, the line number
for the exchanges war remembered at the wrong time.
This caused:
	foo(3,'string')
to cause an external identifier for the string. Fixed.
1984-07-31 09:39:35 +00:00
keie
385d7ffbd8 String initializer handling is changed.
Strings are now considered to be sequences of xU1's.
No alignment is done before or after the string other than the
alignment done for names and segment type switches.
1984-07-30 14:42:33 +00:00
bal
e1c24cb475 bug fixed: added "fprintf(codefile,""rts\n");" to restr() 1984-07-30 12:47:54 +00:00
bal
964976ff0b bugs fixed (syntax errors, patterns moved to front,
"ldl ldl adp sdl sti" requires DATAREG instead of ANY1 on
fakestack)
1984-07-30 11:16:41 +00:00
bal
4eea24fe69 patterns added to generate autoincrement and to generate
a "move X,d0" instead of a "move X,-(sp)" before storing into X
1984-07-27 16:53:19 +00:00
sater
811bc78f04 added rcsid 1984-07-27 10:28:48 +00:00
sater
b07af506d6 added PR* routines 1984-07-26 13:15:21 +00:00
sater
5e97bff353 Changed procedure prolog to use PR* routines. 1984-07-26 13:05:22 +00:00
keie
c001aa20d7 *** empty log message *** 1984-07-23 11:49:00 +00:00
sater
61da47ea52 removed all calls to blm~ from table
duplicated some patterns for in[lc] to deal with de[lc]
extra rule for adi 2 to deal with source1 cleverly
1984-07-23 11:29:59 +00:00
sater
d6a3a26314 removed blm.s, not used by table anymore 1984-07-20 16:20:54 +00:00
sater
eca6c1f306 edited to make reentrant, no more globals in use 1984-07-20 16:20:28 +00:00
sater
189e577315 added copyright notice 1984-07-20 13:54:36 +00:00
sater
8b9ebd989f added rcsid
adapted to new archive updating style, with LIST and march and all that
1984-07-20 11:32:47 +00:00
sater
182f3ee338 Initial revision 1984-07-20 11:25:31 +00:00
sater
8707eb1715 added rcsid 1984-07-20 11:25:18 +00:00
sater
9935b1fc88 added copyright notice 1984-07-20 11:20:12 +00:00
sater
06249087bd removed copyright notice, wasn't really *written* by us. 1984-07-20 11:07:12 +00:00
sater
5e3c08728c added rcsid 1984-07-20 11:03:31 +00:00
sater
f54556ac0f Initial revision 1984-07-20 10:44:57 +00:00
sater
1a0102783f A sti 8 of a regdef8 token went into panic mode. Fixed. 1984-07-20 10:32:48 +00:00
sater
1e5056bcc0 to check long >= 0 or long < 0 it is enough to test high order word. Added.
anding and oring of long constants is much better now
dvu 2 and rmu 2 by positive constants is now done inline.
1984-07-19 16:50:27 +00:00
sater
96e8152f11 added rcsid 1984-07-19 15:03:30 +00:00
sater
7683ff7d03 Initial revision 1984-07-19 15:01:43 +00:00
sater
309ed81674 Archive made with archiver in environment ASAR if set, arch otherwise 1984-07-19 14:55:12 +00:00
sater
badfdeb5db removed #ifdef UNTESTED around logical instructions without arguments,
seems they were used ( which implicitly means tested ) after all
1984-07-19 14:03:49 +00:00
sater
ea793ccff5 Initial revision 1984-07-19 13:52:18 +00:00
sater
3c037725e9 added rcsid 1984-07-19 13:34:12 +00:00
sater
b28024573a changed name from comparchentry to compmodule 1984-07-19 13:22:36 +00:00
sater
320c575b54 Initial revision 1984-07-19 13:20:15 +00:00
sater
1e806d2a28 old code put back, now register handling is different again
actually old code never was removed, due to a misunderstanding
about comment conventions.
1984-07-19 13:12:03 +00:00
sater
18d72ffde3 makefile adapted to new style archive handling, RCS and all that 1984-07-19 13:11:36 +00:00
sater
53c19368d5 a setl instruction was changed to a setd
setl was just plain wrong
1984-07-19 13:09:53 +00:00
sater
fa6f4b86e3 Initial revision 1984-07-19 12:51:00 +00:00
bal
0f199294ae rcsid added 1984-07-19 11:50:29 +00:00
bal
ff6056a6b6 Initial revision 1984-07-19 11:50:28 +00:00
sater
92c1e38b42 Initial revision 1984-07-19 11:50:18 +00:00
bal
8bbb3ddca7 New implementation of GTO (without register save masks)
several optimizations added
1984-07-19 11:15:28 +00:00
bal
8fef858ce8 New implementation of GTO (without register save masks) 1984-07-19 11:07:15 +00:00
bal
39428d2028 rcsid added
several optimizations added
1984-07-19 11:02:06 +00:00
bal
e5895a2768 rcsid added
clr.w -(sp) generated in prolog if register save mask is 0
1984-07-19 10:57:19 +00:00
bal
250f0df7f7 Initial revision 1984-07-19 10:03:10 +00:00
bal
85c15fca29 Initial revision 1984-07-19 09:37:24 +00:00
sater
3422e2338c added patterns for ldc adi/ldc sbi with zero high order word
added patterns for *--p with p register
added patterns to generate cmpb to compare two bytes.
added patterns to use regvar to index global array
added patterns for lol inl
added patterns for external pointer increment/decrement
1984-07-18 16:47:24 +00:00
sater
e92ac2c6d3 The patterns to change a cii to cuu when dealing with a known positive
quantity was technically wrong. Changed to generate a cui.
1984-07-18 15:54:25 +00:00
sater
35fbddd030 added definition of index, to keep compiler happy 1984-07-18 14:14:46 +00:00
sater
c65b0f7044 removed recursive comments
removed NC with sti rules
added rule to reverse operands of adi 2
added rule to convert loc sbi to loc adi
added loc slu -> loc sli rule
added local++ rule
added rule for asping xsource2
added rule for csb when nothing on stack
1984-07-18 13:39:24 +00:00
sater
84fca60378 added rcsid
changed instruction label format to allow more than 256 procedures
1984-07-18 13:32:11 +00:00
sater
7c5508ddbd changed instruction label format to allow more than 256 procedures 1984-07-18 13:28:01 +00:00
sater
d33e4ac474 added rcsid
converted to recognize and generate new 0%o format
1984-07-18 13:14:18 +00:00
sater
0a4d372056 added patterns for unsigned shifting
added patterns to delay additive operations until after multiplicative,
  this can be useful for some register machines
1984-07-18 11:05:28 +00:00
sater
f98fe503a0 Improved error handling on unterminated strings 1984-07-18 11:04:58 +00:00
4 changed files with 2852 additions and 571 deletions

View File

@@ -1,47 +0,0 @@
# $Header$
d=../../..
h=$d/h
PEM=$d/lib/pc_pem
PEM_OUT=$d/lib/pc_pem.out
HEAD=$h/em_spec.h $h/em_pseu.h $h/em_mnem.h $h/em_mes.h $h/pc_size.h
LDFLAG=-i
all: pem pem.out
pem.out: pem.m
apc -mint --t -o pem.out pem.m
pem: pem.m
apc $(LDFLAG) -o pem pem.m
# pem.m is system dependent and may NOT be distributed
pem.m: pem.p $(HEAD)
-rm -f pem.m
-if apc -I$h -O -c.m pem.p ; then :; else \
acc -o move move.c ; move ; rm -f move move.[oskm] ; \
fi
cmp: pem
cmp pem $(PEM)
install: pem
cp pem $(PEM)
distr:
rm -f pem2[24].p
co -rdistr2 -p pem.p >pem22.p
apc -mpdp -c.m -I$h pem22.p ; rm -f pem22.p
co -rdistr2 -p pem.p >pem24.p
apc -mvax2 -c.m -I$h pem24.p ; rm -f pem24.p
clean:
-rm -f pem pem.out *.[os] *.old
pr:
@pr pem.p
xref:
xref pem.p^pr -h "XREF PEM.P"
opr:
make pr ^ opr

2852
mach/pdp/cg/table Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -1,363 +0,0 @@
/* @(#)comm6.c 1.7 */
/*
* implement pseudo instructions
*/
#include "comm0.h"
#include "comm1.h"
#include "y.tab.h"
newequate(ip, typ)
register item_t *ip;
register short typ;
{
typ &= ~S_EXT;
if (typ & S_COM)
typ = S_UND;
else if ((typ & S_VAR) && (typ & S_TYP) != S_ABS)
typ = S_UND;
#ifdef THREE_PASS
else if (pass == PASS_1 && typ == S_UND)
typ = S_VAR;
else if (pass == PASS_2 && (ip->i_type & S_TYP) == S_UND)
ip->i_type |= typ;
#endif THREE_PASS
if (typ == S_UND)
serror("illegal equate");
if (pass == PASS_3)
assert((ip->i_type & S_TYP) == (typ & S_TYP));
newident(ip, typ);
}
newident(ip, typ)
register item_t *ip;
{
register flag;
#ifdef GENLAB
static char genlab[] = GENLAB;
#endif GENLAB
if (pass == PASS_1) {
/* printf("declare %s: %o\n", ip->i_name, typ); */
if (ip->i_type & ~S_EXT)
serror("multiple declared");
else
--unresolved;
ip->i_type |= typ;
}
if (PASS_SYMB == 0)
return;
#ifdef THREE_PASS
if (ip->i_type & S_EXT)
flag = SYM_EXT;
else
flag = SYM_LOC;
#else
flag = SYM_EXT|SYM_LOC; /* S_EXT not stable in PASS_1 */
#endif THREE_PASS
#ifdef GENLAB
if (strncmp(ip->i_name, genlab, sizeof(genlab)-1) == 0)
flag = SYM_LAB;
#endif GENLAB
if (sflag & flag)
newsymb(
ip->i_name,
ip->i_type & (S_EXT|S_TYP),
(short)0,
load(ip)
);
}
newlabel(ip)
register item_t *ip;
{
#ifdef THREE_PASS
register addr_t oldval = ip->i_valu;
#endif
if (DOTSCT == NULL)
nosect();
ip->i_type &= ~S_TYP;
ip->i_type |= DOTTYP;
if (store(ip, (valu_t) DOTVAL) == 0)
return;
#ifdef THREE_PASS
assert(pass != PASS_2 || oldval - ip->i_valu == DOTGAIN);
#endif
}
newsect(ip)
register item_t *ip;
{
register ushort typ;
register sect_t *sp = NULL;
typ = ip->i_type & S_TYP;
if (typ == S_UND) {
/*
* new section
*/
assert(pass == PASS_1);
--unresolved;
typ = outhead.oh_nsect + S_MIN;
outhead.oh_nsect++;
if (outhead.oh_nsect > SECTMAX || typ > S_MAX)
fatal("too many sections");
sp = &sect[typ - S_MIN];
sp->s_item = ip;
sp->s_lign = ALIGNSECT;
#ifdef DUK
ip->i_type = typ;
#else DUK
ip->i_type = typ | S_EXT;
#endif DUK
ip->i_valu = 0;
} else if (typ >= S_MIN) {
sp = &sect[typ - S_MIN];
if (sp->s_item != ip)
sp = NULL;
}
if (sp == NULL)
serror("multiple declared");
else
switchsect(typ);
}
newbase(base)
valu_t base;
{
#ifdef ASLD
register sect_t *sp;
if ((sp = DOTSCT) == NULL)
nosect();
if (sp->s_flag & BASED)
serror("already based");
sp->s_base = base;
sp->s_flag |= BASED;
DOTVAL += base;
#else
warning(".base ignored");
#endif
}
/*
* NOTE: A rather different solution is used for ASLD and NOLD:
* ASLD:
* - maximum length of .comm is recorded in i_valu during PASS_1
* - address of .comm is recorded in i_valu in later passes:
* assigned at end of PASS_1, corrected for s_gain at end of PASS_2
* - symbol table entries are produced in commfinish()
* NOLD:
* - i_valu cannot be used since it is needed for relocation info
* - only one .comm with a particular symbol is allowed per module
* - symbol table entries are produced in newcomm()
*/
newcomm(ip, val)
register item_t *ip;
valu_t val;
{
if (pass == PASS_1) {
if (DOTSCT == NULL)
nosect();
if (val == 0)
serror("bad size");
/* printf("declare %s: %o\n", ip->i_name, DOTTYP); */
if ((ip->i_type & ~S_EXT) == S_UND) {
--unresolved;
ip->i_type = S_COM|DOTTYP|(ip->i_type&S_EXT);
#ifdef ASLD
ip->i_valu = val;
} else if (ip->i_type == (S_COM|S_EXT|DOTTYP)) {
if (ip->i_valu < val)
ip->i_valu = val;
#endif
} else
serror("multiple declared");
}
#ifndef ASLD
if (PASS_SYMB == 0)
return;
if (pass != PASS_3)
/*
* save symbol table index
* for possible relocation
*/
ip->i_valu = outhead.oh_nname;
#ifdef DUK
newsymb(ip->i_name, S_COM|DOTTYP|(ip->i_type&S_EXT), (short)0, val);
#else DUK
newsymb(ip->i_name, S_EXT|DOTTYP, (short)0, val);
#endif DUK
#endif
}
switchsect(newtyp)
short newtyp;
{
register sect_t *sp;
if (sp = DOTSCT)
sp->s_size = DOTVAL - sp->s_base;
if (newtyp == S_UND) {
DOTSCT = NULL;
DOTTYP = newtyp;
return;
}
assert(newtyp >= S_MIN);
sp = &sect[newtyp - S_MIN];
if (pass == PASS_3) {
#ifdef AOUTSEEK
aoutpart = -1;
aoutseek[PARTEMIT] = sp->s_foff + sp->s_size - sp->s_zero;
#else
fseek(aoutfile[PARTEMIT], sp->s_foff + sp->s_size - sp->s_zero, 0);
#endif
}
DOTVAL = sp->s_size + sp->s_base;
DOTSCT = sp;
DOTTYP = newtyp;
}
align(bytes)
valu_t bytes;
{
register valu_t gap;
register sect_t *sp;
if ((sp = DOTSCT) == NULL)
nosect();
if (bytes == 0)
bytes = ALIGNWORD;
if (sp->s_lign % bytes)
if (bytes % sp->s_lign)
serror("illegal alignment");
else
sp->s_lign = bytes;
if (pass == PASS_1)
/*
* be pessimistic: biggest gap possible
*/
gap = bytes - 1;
else {
/*
* calculate gap correctly;
* will be the same in PASS_2 and PASS_3
*/
if ((gap = DOTVAL % bytes) != 0)
gap = bytes - gap;
#ifdef THREE_PASS
if (pass == PASS_2)
/*
* keep track of gain with respect to PASS_1
*/
DOTGAIN += (bytes - 1) - gap;
#endif
}
/* I don't play the os_zero game here, but plainly write out zero's */
/* Led abuses trailing zero parts */
while (gap--) emit1(0) ;
}
#ifdef RELOCATION
newrelo(s, n)
short s;
{
struct outrelo outrelo;
#ifdef DUK
int iscomm;
#endif DUK
if (rflag == 0)
return;
if (PASS_RELO == 0)
return;
s &= ~S_DOT;
assert((s & ~(S_COM|S_VAR|S_TYP)) == 0);
#ifndef THREE_PASS
if (s == S_UND)
serror("bad relocation");
#endif
/*
* always relocation info if S_VAR to solve problems with:
* move b,d0
* b=a
* a: .data2 0
*/
#ifdef DUK
iscomm = s & S_COM;
#endif DUK
s &= ~S_COM;
if ((n & RELPC) == 0 && s == S_ABS)
return;
if ((n & RELPC) != 0 && s == DOTTYP)
return;
if (pass != PASS_3) {
outhead.oh_nrelo++;
return;
}
s &= ~S_VAR;
outrelo.or_type = (char)n;
outrelo.or_sect = (char)DOTTYP;
#ifndef ASLD
#ifdef DUK
if (s == S_UND || iscomm) {
#else DUK
if (s == S_UND) {
#endif DUK
assert(relonami != 0);
outrelo.or_nami = relonami-1;
relonami = 0;
} else
#endif
if (s < S_MIN) {
assert(s == S_ABS);
/*
* use first non existing entry (argh)
*/
outrelo.or_nami = outhead.oh_nname;
} else {
/*
* section symbols are at the end
*/
outrelo.or_nami = outhead.oh_nname
- outhead.oh_nsect
+ (s - S_MIN)
;
}
outrelo.or_addr = (long)DOTVAL;
putofmt((char *)&outrelo, SF_RELO, PARTRELO);
}
#endif
newsymb(name, type, desc, valu)
register char *name;
short type;
short desc;
valu_t valu;
{
struct outname outname;
if (name && *name == 0)
name = 0;
assert(PASS_SYMB);
if (pass != PASS_3) {
if (name)
outhead.oh_nchar += strlen(name)+1;
outhead.oh_nname++;
return;
}
if (name) {
AOUTPART(PARTCHAR);
outname.on_foff = outhead.oh_nchar;
do {
AOUTPUTC(*name, PARTCHAR);
outhead.oh_nchar++;
} while (*name++);
} else
outname.on_foff = 0;
outname.on_type = type;
outname.on_desc = desc;
outname.on_valu = valu & ~((0xFFFFFFFF)<<(8*sizeof(valu_t)));
putofmt((char *)&outname, SF_NAME, PARTNAME);
}

View File

@@ -1,161 +0,0 @@
#
# Author: L.J. Bekema @ VU Informatica, Amsterdam
#
.SUFFIXES: .c,v .h .h,v
.c,v.o:
co -q $*.c
$(CC) $(CFLAGS) -c $*.c
rm -f $*.c
.h,v.h:
co -q $*.h
# Definitions for the making programs.
M = /user1/sjoerd/amoeba/libmonix
X = /usr/em/lib/l68k2
CC = l68k2
LIBDIR = ../../lib
PREFLAGS= -DNDEBUG # -DNASSERT
CFLAGS = -L $(PREFLAGS)
LDFLAGS = -b0:0x20000 -a0:2 -a1:2 -a2:2 -a3:2 -a4:2 -c.out $M/head.o
LDLIBS = $X/tail_cc.1s $X/tail_cc.2g $M/libmonix.a $X/tail_em.rt $X/end_em
LINTFLAGS=-phbxac $(PREFLAGS)
PR = pr
PRFLAGS =
# Some convenient macro definitions.
CFILES = archive.c byte_order.c error.c extract.c finish.c main.c memory.c\
output.c read.c relocate.c save.c scan.c sym.c write.c
CVFILES = archive.c,v byte_order.c,v error.c,v extract.c,v finish.c,v main.c,v\
memory.c,v output.c,v read.c,v relocate.c,v save.c,v scan.c,v\
sym.c,v write.c,v
HFILES = assert.h const.h debug.h defs.h memory.h orig.h scan.h
HVFILES = assert.h,v const.h,v debug.h,v defs.h,v memory.h,v orig.h,v scan.h,v
OFILES = archive.o byte_order.o error.o extract.o finish.o main.o memory.o\
output.o read.o relocate.o save.o scan.o sym.o write.o
# Things that can be made.
led: $(OFILES)
$(CC) $(LDFLAGS) $(OFILES) $(LDLIBS) -o led.led
/user1/sjoerd/amoeba/util/convert led.led led
/user1/sjoerd/amoeba/test/load led >/user1/sjoerd/amoeba/test/led.load
mach.c: mach.c,v
co -q mach.c
install:led
cp led $(LIBDIR)/em_led
cmp: led
cmp led $(LIBDIR)/em_led
lint:
-for i in $(CFILES) $(HFILES) mach.c; do\
if test ! -f $$i; then\
echo $$i >> checked.out;\
co -q $$i;\
fi;\
done
lint $(LINTFLAGS) $(CFILES)
rm -f `cat checked.out` checked.out
pr: $(CVFILES) $(HVFILES) mach.c
@-for i in $?; do\
co -q -p $$i | $(PR) $(PRFLAGS) -h `basename $$i ,v`;\
done
@touch pr
opr:
make pr | opr
clean:
rm *.o led
depend:
-for i in $(CFILES); do\
if test ! -f $$i; then\
echo $$i >> checked.out;\
co -q $$i;\
fi;\
done
makedepend $(CFILES)
rm -f `cat checked.out` checked.out
procentry.o:
$(CC) -c -L procentry.c
# The next lines are generated automatically.
# AUTOAUTOAUTOAUTOAUTOAUTOAUTOAUTOAUTOAUTOAUTOAUTOAUTOAUTOAUTOAUTOAUTOAUTOAUTO
archive.o: ../../h/arch.h
archive.o: ../../h/out.h
archive.o: ../../h/ranlib.h
archive.o: const.h
archive.o: debug.h
archive.o: defs.h
archive.o: memory.h
byte_order.o: assert.h
byte_order.o: const.h
error.o: ../../h/out.h
error.o: const.h
extract.o: ../../h/out.h
extract.o: const.h
extract.o: debug.h
extract.o: defs.h
extract.o: memory.h
extract.o: orig.h
extract.o: scan.h
finish.o: ../../h/out.h
finish.o: const.h
finish.o: defs.h
finish.o: memory.h
finish.o: orig.h
finish.o: scan.h
main.o: ../../h/out.h
main.o: const.h
main.o: debug.h
main.o: defs.h
main.o: memory.h
main.o: orig.h
memory.o: ../../h/out.h
memory.o: assert.h
memory.o: const.h
memory.o: debug.h
memory.o: mach.c
memory.o: memory.h
output.o: ../../h/out.h
output.o: const.h
output.o: memory.h
read.o: ../../h/arch.h
read.o: ../../h/out.h
read.o: ../../h/ranlib.h
read.o: assert.h
read.o: const.h
relocate.o: ../../h/out.h
relocate.o: const.h
relocate.o: debug.h
relocate.o: defs.h
relocate.o: orig.h
save.o: ../../h/arch.h
save.o: ../../h/out.h
save.o: assert.h
save.o: const.h
save.o: memory.h
scan.o: ../../h/arch.h
scan.o: ../../h/out.h
scan.o: ../../h/ranlib.h
scan.o: assert.h
scan.o: const.h
scan.o: memory.h
scan.o: scan.h
sym.o: ../../h/out.h
sym.o: const.h
sym.o: memory.h
write.o: ../../h/out.h
write.o: assert.h
write.o: const.h
write.o: memory.h
write.o: orig.h