Compare commits

..

6385 Commits

Author SHA1 Message Date
Godzil
ffe13a4583 Update README 2015-06-24 23:41:49 +01:00
George Koehler
c602379db9 Some fixes for aelflod and aslod.
Copy rhead() and rsect() from aslod to aelflod, so aelflod can work
for machine with 64-bit long.

In aelflod, fix ELF header so file(1) no longer reports "corrupted
section header size".

Signed-off-by: Manoel Trapier <godzil@godzil.net>
2015-06-24 23:41:49 +01:00
Godzil
9da790283e Remove/change bad prototypes
In modules/system/time, a bad prototype for "time" was left. There is too some problem with filno under OpenBSD. Currently, the only known OS that don't want to export fileno with c89/c99 standard, is linux, so #ifdef/#endif the prototypes only for linux. (OpenBSD seems to define them as MACROs, that led to errors)
2015-06-24 23:41:49 +01:00
Godzil
0ba3023570 Add a missing header include. 2015-06-24 23:41:49 +01:00
Godzil
06665f4624 Change sbrk definitions.
The prototypes difference between platform is really annoying, since it's hard to always match the system on, and prevent warning on bad types. I try now to always use BRK emulation on all platform that do not match the prototype used in ACK. the PM script should be changed to set this correctly during setup.
2015-06-24 23:41:49 +01:00
Godzil
0f10f91839 Surprisly clang started to tell me where variable may used uninitialized, correcting it!
That's a good point it tell me that, but was a bit unexpected ^^
2015-06-24 23:41:49 +01:00
Godzil
c59e2f03ab Augment the "template" buffer size, 50byte is too short for a path. 2015-06-24 23:41:49 +01:00
Manoel Trapier
5f00cd2e53 Make a brk/sbrk emulation.
Mac OS X seems to have some difficulties with brk/sbrk (maybe with the
4MB heap limit), and replace all the allocation logic will be prone to
errors, I'll add a new define and lib to emulate brk/sbrk using more
standard allocation methods. By default the heap is 64MB, it should be
enough.
2015-06-24 23:41:49 +01:00
Manoel Trapier
e92393d6f3 Correcting a nasty bug introduced in commit 6204c6b6416dfe4d3a0f0b0b7d6d8b5be81acefb 2015-06-24 23:41:49 +01:00
Manoel Trapier
b21aede758 Correct a bad change. 2015-06-24 23:41:49 +01:00
Manoel Trapier
3f6a9560c5 Correct assert definition to correctly display the faulty text instead of "x" 2015-06-24 23:41:49 +01:00
Manoel Trapier
93f542eb7a Add #warning to cemcom.ansi 2015-06-24 23:41:49 +01:00
Manoel Trapier
2071a7dbb0 Correct bad changes 2015-06-24 23:41:48 +01:00
Manoel Trapier
4cb35a7d72 OUPS! printing text here was really not good idea! 2015-06-24 23:41:48 +01:00
Manoel Trapier
d853b7f2fb Converting mach ncg... 2015-06-24 23:41:48 +01:00
Manoel Trapier
ca57bb617b Correct some Linux/clang missing parts. 2015-06-24 23:41:48 +01:00
Godzil
ee6e8bdfc3 Correct comment errors. 2015-06-24 23:41:48 +01:00
Godzil
595e5258aa Update i86 as part. 2015-06-24 23:41:48 +01:00
Godzil
d627b11b98 Do not use ACK cpp (even ANSI one) to compile for the host. 2015-06-24 23:41:48 +01:00
Godzil
da1cb44497 Currently deactivate all language expect ANSI C. 2015-06-24 23:41:48 +01:00
Godzil
a39e88ecca Update generic part of the AS 2015-06-24 23:41:48 +01:00
Godzil
b31c94cf32 cpp.ansi: Add missing "#warning" directive 2015-06-24 23:41:48 +01:00
Manoel Trapier
5c73826e4c Remove unwanted files 2015-06-24 23:41:48 +01:00
Manoel Trapier
46f101f4dd Update makeheader.sh 2015-06-24 23:41:48 +01:00
Manoel Trapier
2830ec90b1 Finishing ANSI C frontend 2015-06-24 23:41:47 +01:00
Manoel Trapier
60b5f91561 More incoherency between MacOSX and Linux... 2015-06-24 23:41:47 +01:00
Godzil
b2d6e23b5f Add small too to generate headers.
(Need cproto)
2015-06-24 23:41:47 +01:00
Godzil
6e6d9c26b5 Working on ANSI C frontend... 2015-06-24 23:41:47 +01:00
Godzil
1c4e04de3a Next batch of changes! 2015-06-24 23:41:47 +01:00
Godzil
a05a174f40 MacOS X/clang found a new batch of warnings :) 2015-06-24 23:41:47 +01:00
Manoel Trapier
1b34c8cc9f Warning hunt on ego. 2015-06-24 23:41:47 +01:00
Manoel Trapier
25c717d9b3 Next batch of warning hunt... 2015-06-24 23:41:47 +01:00
Manoel Trapier
1ed1edf94d Correct an incoherency with arith and label types. 2015-06-24 23:41:47 +01:00
Manoel Trapier
08d1784f95 Remove more warns on ncgg
!! Maybe a bug found in ncgg cgg.y with n_coerc call atline 612
2015-06-24 23:41:47 +01:00
Manoel Trapier
e3b4856beb As suspected clang/Linux have it's own sort of warns ^^ 2015-06-24 23:41:47 +01:00
Godzil
0f7eaacc5f Now CGG compile without warns ;) 2015-06-24 23:41:46 +01:00
Godzil
97bb7d9316 Remove bad prototypes 2015-06-24 23:41:46 +01:00
Manoel Trapier
20d58dea19 Another batch.. 2015-06-24 23:41:46 +01:00
Manoel Trapier
2bbd5a38de More strict checks... 2015-06-24 23:41:46 +01:00
Manoel Trapier
a8d9183e25 Reordonate modules in a more logical way.
(some modules have dependencies on other especially with header files)
2015-06-24 23:41:46 +01:00
Manoel Trapier
a262a916dc Being a bit more strict on warnings (-Wall). 2015-06-24 23:41:46 +01:00
Manoel Trapier
74fb1cff61 Make GCC happy with current patchs and compilation flags. 2015-06-24 23:41:46 +01:00
Godzil
c0cd8650a6 Another batch especially on C ANSI frontend 2015-06-24 23:41:46 +01:00
Godzil
369ec26b03 Add a global symbol2str header 2015-06-24 23:41:46 +01:00
Godzil
2a5ab5b856 Update .gitignore 2015-06-24 23:41:46 +01:00
Godzil
350e569c2c Correct printf with 64bit pointer 2015-06-24 23:41:45 +01:00
Godzil
d87b482eac Correct some error on static function declaration. 2015-06-24 23:41:45 +01:00
Manoel Trapier
b31ac47714 A bit of missing corections. 2015-06-24 23:41:45 +01:00
Manoel Trapier
03763cbbf0 Starting ANSI C frontend 2015-06-24 23:41:45 +01:00
Manoel Trapier
452127650a Next batch 2015-06-24 23:41:45 +01:00
Godzil
bd3e7b87e6 Getting sync. 2015-06-24 23:41:45 +01:00
Godzil
6093a51511 Add missing stdarg (funnily, linux/clang does not complain about this miss) 2015-06-24 23:41:45 +01:00
Manoel Trapier
41f96d5169 Next batch... 2015-06-24 23:41:45 +01:00
Manoel Trapier
c5bfc89269 Update README. 2015-06-24 23:41:45 +01:00
Manoel Trapier
22c8f3ac10 Add transtyping for support of 64bit cpu and 32cpu (or the printf verification for %d/%ld will fail) 2015-06-24 23:41:45 +01:00
Godzil
674eb61908 Another batch... 2015-06-24 23:41:45 +01:00
Godzil
653bd13b40 Correct printf, and minor changes 2015-06-24 23:41:44 +01:00
Godzil
7b8e3edd43 Add missing function prototype. 2015-06-24 23:41:44 +01:00
Godzil
5362498c1c Change arith type to force it to be 32bit. 2015-06-24 23:41:44 +01:00
Manoel Trapier
f6d58a0d04 Another batch... 2015-06-24 23:41:44 +01:00
Manoel Trapier
36a59de862 Change from yacc to byacc (yacc build code that generate warnings...) 2015-06-24 23:41:44 +01:00
Manoel Trapier
0946773758 ANSIfication] Another batch. 2015-06-24 23:41:44 +01:00
Manoel Trapier
3d1d1277b7 Next batch. 2015-06-24 23:41:44 +01:00
Manoel Trapier
60330b05cd Update a bit of module em_code. 2015-06-24 23:41:44 +01:00
Manoel Trapier
e54911f642 Update module assert 2015-06-24 23:41:44 +01:00
Manoel Trapier
71df09d022 Update tokens.g and regenerate tokens.c with it. 2015-06-24 23:41:44 +01:00
Manoel Trapier
498d867bc3 Update LLgen.g and regenerate LLgen.c with it. 2015-06-24 23:41:44 +01:00
Manoel Trapier
f1cd17c51e Next batch, LLgen no longuer have warning under linux/clang. 2015-06-24 23:41:44 +01:00
Manoel Trapier
d28368333a Next batch of Ansi-ification 2015-06-24 23:41:43 +01:00
Manoel Trapier
9f7ae734db Part 1 of warning/old k&r inconsistency correction. 2015-06-24 23:41:43 +01:00
Manoel Trapier
7eff32c40d Force C89 and error on all warnings. 2015-06-24 23:41:43 +01:00
Manoel Trapier
d3715f3ca4 Add missing Copyright file 2015-06-24 23:41:43 +01:00
Manoel Trapier
659f26136a exchange LICENSE and Copyright file 2015-06-24 23:41:43 +01:00
Godzil
33af50ea26 Start k&r to ansi modification 2015-06-24 23:41:43 +01:00
Manoel Trapier
cb89c679ec Update README to display better in markdown 2015-06-24 23:41:43 +01:00
Manoel Trapier
d78a72a6e2 Add markdown and license file 2015-06-24 23:41:43 +01:00
Manoel Trapier
a551523b22 Add gitignore file. 2015-06-24 23:41:43 +01:00
Manoel Trapier
b907b15d4f Add NES platform to default build. (Still more to go to compile correctly) and re-enabling the "k&r" cpp 2015-06-24 23:41:43 +01:00
Manoel Trapier
45e01dcd3e Correct mach cg pmfile that incorrectly reference PLATFORM where it should reference ARCH 2015-06-24 23:41:43 +01:00
Manoel Trapier
cc534493fd Copy pc86 platform to nes platform, and make change accordingly. 2015-06-24 23:41:43 +01:00
David Given
dccecc5d45 Back out erroneous change. 2012-12-14 11:56:21 +00:00
George Koehler
0fc7fd5d33 Prevent segfault when trying to print an error message.
Use <stdarg.h> to pass arguments correctly, as ack/util/util.c
already uses <stdarg.h> the same way.
2012-10-24 13:44:50 -04:00
David Given
4349d702fa Change from using platform-specific types to stdint platform-independent types
when reading the structure header.
2012-09-27 11:32:40 +01:00
David Given
2beb3646a7 Change to use stdint's implementation independent types rather than short and
long (which vary depending on whether you're on a 64-bit system or not).
2012-09-27 10:54:41 +01:00
George Koehler
7ef9b79c11 Merge deletion of many undead files. 2012-09-23 15:31:16 -04:00
George Koehler
3dcc3bd1cf Allow pc86 bootloader to boot from more floppy drives.
When the bootloader probes the drive geometry, the BIOS can clobber the
es register.  If this happens, the bootloader loads the program to the
wrong address, and jumps off the code.  This happens with an emulated
floppy drive in Bochs or QEMU, but not with an emulated hard disk.
2012-09-23 14:43:22 -04:00
George Koehler
e7c79415b5 Prevent division by zero in aslod.
rhead() and rsect() had assumed sizeof(long) == 4, but OpenBSD/amd64
has sizeof(long) == 8.  The problem revealed itself when sect->os_lign
became zero, and align() divided by zero.
2012-09-21 22:51:12 -04:00
George Koehler
0131ca4d46 Delete 689 undead files.
These files "magically reappeared" after the conversion from CVS to
Mercurial.  The old CVS repository deleted these files but did not
record *when* it deleted these files.  The conversion resurrected these
files because they have no history of deletion.  These files were
probably deleted before year 1995.  The CVS repository begins to record
deletions around 1995.

These files may still appear in older revisions of this Mercurial
repository, when they should already be deleted.  There is no way to fix
this, because the CVS repository provides no dates of deletion.

See http://sourceforge.net/mailarchive/message.php?msg_id=29823032
2012-09-20 22:26:32 -04:00
George Koehler
be234ea759 *Again* fix fit16i() for systems with 64-bit long.
I already did this in abebf1586c06, but I edited the wrong file.  Then
in edddc6b7cd17, I deleted that file.

By fixing fit16i(), I can now compile ACK for OpenBSD/amd64.
2012-09-19 23:39:51 -04:00
George Koehler
8bf34937f1 Delete old and unused files from modules/src/em_code 2012-09-17 16:04:55 -04:00
George Koehler
99eb12a282 Fix fit16i() for systems with 64-bit long.
(long)0xFFFF8000 had expanded to 0x00000000FFFF8000.
With (long)(-0x8000), the compiler now extends the negative sign.
2012-09-16 19:57:07 -04:00
George Koehler
96ea0a5903 Fix more functions in util/ack for 64-bit hosts.
This continues the fix from changeset aabde0589450.  We must use
va_list to forward the arguments, because some of the arguments might
be 64-bit pointers.  A pointer does not fit in an int.
2012-09-07 16:28:10 -04:00
George Koehler
800d4ae032 Fix cemcom.ansi for 64-bit hosts.
Hosts with sizeof(arith) == sizeof(long) == 8 need to set full_mask[1]
through full_mask[8].  Because MAXSIZE == 8, we only had full_mask[0]
through full_mask[7].  This fix declares arith full_mask[MAXSIZE + 1]
and prevents a fatal error: "array full_mask too small for this machine"
2012-09-07 15:53:13 -04:00
David Given
6ea172d0d9 Fix a 64-bitness issue (removed some untyped K&R C code that assumed ints
and pointers were the same size).
2012-02-27 22:36:36 +00:00
Ceriel Jacobs
1072a8797e Added atol() that ignores overflow, so that unsigned long constants are dealt with properly 2011-06-15 11:13:48 +02:00
Ceriel Jacobs
2483e5723d Fixed CFU 2011-06-15 10:56:58 +02:00
cjhjacobs
58613009f8 Fixed bug reported on tack-devel mailing list on 20-3-2011 2011-05-18 19:19:19 +02:00
David Given
b6dfaefeff Removed file that the CVS conversion procedure left in (when it shouldn't have). 2011-03-20 20:47:10 +00:00
cvs2hg
eb0b730607 convert CVS tags 2011-02-11 00:51:45 +00:00
dtrg
45ee287136 Replaced dis and new with modern implementations donated by erik@backerud.se. 2010-10-02 21:52:29 +00:00
dtrg
075cb488a3 Call the correct kill() and getpid() syscalls rather than _kill() and _getpid(). 2010-10-02 21:51:40 +00:00
dtrg
a33473e0a5 Now call creat() and open() instead of _creat() and _open(). 2010-09-27 20:47:32 +00:00
dtrg
7292b538bc Added support for remove() and unlink(). 2010-09-27 20:44:49 +00:00
dtrg
a8ecb11013 Fixed very old bug where Streams.GetStreamPosition would return the wrong position --- thanks to Jan Verhoeven for finding this. 2010-09-01 19:55:15 +00:00
dtrg
085f346f8c Fixed definitions of O_* flags. 2010-08-20 19:27:09 +00:00
dtrg
c326f3c6a3 Remove references to using-machine-name-for-compiler, as we don't do that any more. 2010-08-09 22:47:33 +00:00
dtrg
a0c67da261 Changed to actually work. (On modern Linux systems the old version just
crashes. On old Linux systems it apparently only worked by accident.)
2010-08-06 17:06:31 +00:00
dtrg
293f34fa9b Flush stdout before prompting the user for input. 2010-08-06 17:02:16 +00:00
dtrg
da6111328d Flush output stream before waiting for user input. 2010-08-05 22:23:34 +00:00
cvs2hg
7273130b4c fixup commit for tag 'release-6-0-pre-4' 2010-08-04 18:04:08 +00:00
dtrg
9d2d5606ea Forgot to update version number. 2010-08-04 18:04:07 +00:00
dtrg
5147166810 Updated for 6.0pre4. 2010-08-04 18:01:12 +00:00
dtrg
e537bcc321 Fixed typo. 2010-08-04 17:59:40 +00:00
dtrg
5a872eed38 Prevent build failure on modern Bisons (which are more picky than the old yacc this was written for). 2010-08-01 10:36:01 +00:00
dtrg
51b41f72f8 Invoke genfiles explicitly with sh --- CVS doesn't store executable bits. 2010-08-01 10:35:33 +00:00
dtrg
ee72886e54 Renamed 'switch' variable to avoid conflict with a keyword in modern awks. 2010-08-01 10:35:04 +00:00
dtrg
2c54f8c742 Renamed getline() to getln() to avoid conflict with glibc's version. 2010-08-01 10:34:27 +00:00
dtrg
481bcd8a8b Added a very-nearly-noop peephole optimiser for Z80. 2008-03-20 23:20:08 +00:00
dtrg
fc44fe2185 Properly handles files ending in a partial line. 2008-03-20 22:50:50 +00:00
dtrg
4dd1ff6d80 Archival checkin (semi-working code). 2007-11-02 18:56:58 +00:00
cvs2hg
58e5e12ead fixup commit for tag 'release-6-0-pre-3' 2007-04-29 23:09:25 +00:00
dtrg
54ce3f451b Configured distr system for the 6.0pre3 release. 2007-04-29 23:09:24 +00:00
dtrg
663f4f2fb5 Cleaned up a bit and made work with the new platform architecture. 2007-04-29 23:03:24 +00:00
dtrg
78777e802b Now using more conservative optimisation due to random seg fault issues. 2007-04-29 23:02:23 +00:00
dtrg
df088c184b Added optimised rules for int<<8 and uint>>8 (which can be done with simple register shuffling rather than calling .sli). 2007-04-29 23:00:31 +00:00
dtrg
868b8c5075 Fixed the ego parameters to actually allow extended optimisation. 2007-04-29 21:25:09 +00:00
dtrg
eb4ea1e761 Use better optimisation options. 2007-04-29 21:24:17 +00:00
dtrg
494d9a3e4a Now runs descr files through the ANSI C preprocessor, rather than the K&R one (which no longer exists). 2007-04-29 21:23:55 +00:00
dtrg
6127ddf024 Fixed the trap code to write out the error message correctly. 2007-04-29 20:47:48 +00:00
dtrg
9d0f0a8fdd Disabled the code to throw signals on EM traps; this is the platform's job (and requires working signal support, which we may not have). 2007-04-29 20:46:48 +00:00
dtrg
c9d7f7ef23 Added suppot for BSS clearing and command line parsing. 2007-04-29 00:28:06 +00:00
dtrg
a7323e1a8b Documented floating-point status. 2007-04-28 22:34:47 +00:00
dtrg
3a4147a37d Added the Mandelbrot generator. 2007-04-28 22:34:05 +00:00
dtrg
be8baf3da6 Added cpm platform. 2007-04-27 22:42:41 +00:00
dtrg
013f58f94e Added the stdint.h header file. 2007-04-27 22:42:02 +00:00
dtrg
0d8578410c Cleaned up and enabled the support for conditionally emitting the floating-point stdio code. 2007-04-27 22:41:39 +00:00
dtrg
7f266d6b4e Removed a completely pointless 128-byte buffer. 2007-04-27 22:41:05 +00:00
dtrg
440d6faadd Fixed a bug where loc lol stf was getting the constant pushed onto the stack *after* stf had popped it off. 2007-04-27 22:15:31 +00:00
dtrg
24ea8aee3d Updated for the 6.0pre2 release. 2007-04-24 20:45:58 +00:00
dtrg
bc5ccee8d5 Removed bashish. 2007-04-24 19:48:41 +00:00
dtrg
bfeb736c35 Stripped down the library to something approaching the ANSI C minimum and replaced most of the header files, to provide a reasonably consistent base to work up from. 2007-04-24 19:42:24 +00:00
dtrg
740940c9fc Fixed major typos in the signal declarations that was preventing anything that used signal() from compiling. 2007-04-24 19:34:34 +00:00
dtrg
f6085fb234 Updated use of headers to compile cleanly. 2007-04-24 19:33:53 +00:00
dtrg
b8e1348f2a Ensured that _errno is always defined. Rejigged the pc86 boot code so it doesn't always waste 510 bytes of memory. 2007-04-24 19:25:00 +00:00
dtrg
413880c52d Added support for the linux386 platform. Disabled building of the K&R C, Basic and Occam compilers. 2007-04-23 23:41:50 +00:00
dtrg
ae9ac25f45 Modified to run ncgg input files through the ANSI preprocessor rather than the K&R one. 2007-04-23 23:40:59 +00:00
dtrg
f471d2e618 Added the aelflod tool for generating ELF executables. Added documentation for aelflod and ashow. Now installs the documentation when built. 2007-04-23 23:40:10 +00:00
dtrg
67c4f3de87 Modified to allow a space between the sign and the first digit of a constant. 2007-04-23 23:24:46 +00:00
dtrg
9b920e59cb Now fetches argc, argv, env correctly from the host OS. 2007-04-23 23:24:03 +00:00
dtrg
9710c14c93 Added the 'Star Trek' example game. 2007-04-21 23:20:11 +00:00
dtrg
921c55968c Adapted to tell the user what language they were written in (because they're too similar!). Modified the Pascal implementation to work with our new syscall model. 2007-04-21 23:19:32 +00:00
dtrg
1c83baa702 Adapted for ANSI C and our pseudo-Posix syscall interface. 2007-04-21 23:18:14 +00:00
dtrg
b66d66b597 Fixed a bug where the preprocessor would occasionally lose whitespace at the beginning of lines immediately after a #endif, which was confusing the assembler. 2007-04-21 23:10:13 +00:00
dtrg
2a367fa192 Disabled Terminal as it uses hard-coded ioctls and appears to be non-standard anyway. 2007-04-21 23:07:57 +00:00
dtrg
f4e37e1319 Changed to call the isatty() syscall directly, rather than fiddling around with non-portable ioctls. 2007-04-21 23:07:05 +00:00
dtrg
400c475c03 Disabled the K&R C compiler in favour of the ANSI one. 2007-04-21 23:03:35 +00:00
dtrg
b500b1a7b7 Added linux386 platform. 2007-04-21 23:02:11 +00:00
dtrg
201c66879d Updated to work with the new libmon-less setup. 2007-04-21 22:59:42 +00:00
dtrg
04860c08a8 Updated to work with the linux386 platform. 2007-04-21 22:57:51 +00:00
dtrg
daee8da3c4 yacc source files are now run through the ANSI C preprocessor, not the K&R one. 2007-04-21 22:55:59 +00:00
dtrg
4428647786 Everything is built in ANSI C now. 2007-04-21 22:55:04 +00:00
dtrg
d77b4ce97c Renamed the language libraries and runtimes to have more
conventional names.
2007-02-26 22:36:56 +00:00
cvs2hg
2d80c1d2c8 fixup commit for tag 'release-6-0-pre-1' 2007-02-25 22:49:23 +00:00
dtrg
6a0dd9377d Removed a dynamically generated file from the distribution. 2007-02-25 22:49:22 +00:00
dtrg
a4e52740bb Added some OpenBSD-related comments. 2007-02-25 22:09:15 +00:00
dtrg
8da0d38b6d Applied a patch to support OpenBSD. 2007-02-25 22:07:11 +00:00
dtrg
17b0c36f69 Replaced the call to posix.setenv() with the more portable
posix.putenv().
2007-02-25 20:59:21 +00:00
dtrg
040151dd76 Removed some explicit (and wrong) redeclarations of system
functions.
2007-02-25 20:58:16 +00:00
dtrg
9170d09462 Performed major renovations to make the script work on OpenBSD. 2007-02-25 20:56:41 +00:00
dtrg
415e7e14fc em_table is now in /h; new_table is now in util/data. 2007-02-25 12:58:41 +00:00
dtrg
d85e045ae6 Updated for the new release. 2007-02-25 12:53:55 +00:00
dtrg
b046c21d7f Added the ability to install a built ACK, and did some general
tidying.
2007-02-25 12:53:17 +00:00
dtrg
3dd11c674d Adjusted some of the default parameters and their names. 2007-02-25 12:52:32 +00:00
dtrg
b611731ec3 Updated .distr files for the new release. 2007-02-25 12:51:55 +00:00
dtrg
6d58210806 em_table is now in /h, not /etc. 2007-02-25 12:51:21 +00:00
dtrg
0f16e7540d new_table is now in /util/data, not /etc. 2007-02-25 12:49:04 +00:00
dtrg
903796a817 Now installs the man page. 2007-02-25 12:48:06 +00:00
dtrg
0974fa0e28 Remove non-standard .SB tags. 2007-02-25 12:47:50 +00:00
dtrg
6e509e22dd Added shell magic. 2007-02-25 12:46:11 +00:00
dtrg
f6a41864cf Moved to /h. 2007-02-25 12:45:24 +00:00
dtrg
f05f9de3ed Moved sys/timeb.h from include/_tail_mon. 2007-02-25 12:44:13 +00:00
dtrg
877dc01422 Moved from /etc. 2007-02-25 12:42:04 +00:00
dtrg
880e3eade8 Updated to version 0.1.1 of Prime Mover. 2007-02-25 12:39:52 +00:00
dtrg
681e2e0432 Added example programs. 2007-02-25 00:30:07 +00:00
dtrg
d2c505ad6b Removed some bashish; added comment support; removed the make
distr functionality, as nothing was using it any more and it was
causing problems.
2007-02-24 02:05:56 +00:00
dtrg
26a9b76507 Added pregenerated versions of the LLgen source files (to ease
bootstrapping issues).
2007-02-24 02:01:57 +00:00
dtrg
5c5f711cbb Done a major overhaul of the way target include files are installed and
how platform libraries are built. The ARCH pm variable has now been
renamed PLATFORM (which is more accurate) and a different ARCH
variable added, which represents the CPU family rather than the
hardware platform.
2007-02-20 00:46:10 +00:00
dtrg
809cd2ef0b Added a definition of endrom. 2007-02-20 00:42:23 +00:00
dtrg
5165f0b11f Added some comments and a CVS header. 2007-02-20 00:41:26 +00:00
dtrg
39689a4de9 Tweaked to allow _ as a leading character in identifier names (if
use of underscores in identifiers has been turned on).
2007-02-20 00:40:00 +00:00
dtrg
e4292486a3 Added some missing #includes. 2007-02-20 00:38:49 +00:00
dtrg
08431edbdb Now uses fd 0 instead of trying to explicitly open /dev/tty. 2007-02-20 00:38:13 +00:00
dtrg
611bc73043 Changed to no longer include /usr/include by default. 2007-02-20 00:36:15 +00:00
dtrg
f9ddb860a9 Fixed some reentrant comments. 2007-02-20 00:35:37 +00:00
dtrg
94a7b315e3 Changed the 'preprocess' rule to use the system C preprocessor. 2007-02-20 00:32:58 +00:00
dtrg
c40a44b52e Added some missing CVS headers and did a bit of cleaning up. 2007-02-20 00:31:54 +00:00
dtrg
478d0b1d8a Fixed a compilation error that was causing opt to not have its
peephole optimisation tables, which would make it generate
duff code.
2007-02-20 00:27:01 +00:00
dtrg
df153ba299 Added 8086 PC bootable floppy support (pc86). 2007-02-20 00:25:12 +00:00
dtrg
1c7bb87041 Fixed a bug in the maximum segment calculation. 2006-11-11 23:00:55 +00:00
dtrg
c21ba9ed0f Updated to work with the new version of pm. 2006-11-11 22:59:52 +00:00
dtrg
02a2876821 Now uses the version of LLgen included with the ACK instead of the standalone version. 2006-11-11 22:59:01 +00:00
dtrg
30b980bf7e Added a pmfile to allow LLgen to be built as part of the ACK again. 2006-11-11 22:58:30 +00:00
dtrg
c0ecde554a Added support for anm, asize, ashow, astrip and the new aslod tool. 2006-10-16 23:25:56 +00:00
dtrg
47e1c27c05 Added new aslod tool for making memory dumps. 2006-10-16 23:25:27 +00:00
dtrg
12683dd8c6 Sanitised the use of #include files to more properly conform to the standards. 2006-10-16 23:20:11 +00:00
dtrg
dbe10d2c19 Updated to the version 0.1 of Prime Mover (which involves some syntax changes). 2006-10-15 00:28:12 +00:00
dtrg
708a83ef22 ack expects the tail_ libraries not to have the .a extension. 2006-07-30 23:45:48 +00:00
dtrg
1e4ca91a8b Modified to install aal's manpage. 2006-07-30 23:45:35 +00:00
dtrg
606012371e Added support for the ANSI C language runtime and preprocessor. 2006-07-30 23:45:18 +00:00
dtrg
1efe7422d3 Added rules for building things with the ack itself. 2006-07-30 23:44:57 +00:00
dtrg
9bcefaafa8 Broke dependency on tool_cpp in order to speed up the build. 2006-07-30 23:41:16 +00:00
dtrg
45b4fef7d6 Rationalised use of #includes to be more standards-compliant. 2006-07-30 23:40:35 +00:00
dtrg
d3b557e0db Adjusted to only check the module name against the leaf of the filename, to prevent unnecessary warnings if the source file isn't in the current directory. 2006-07-30 23:38:41 +00:00
dtrg
67733b9d3c Added the correct shell script magic. (Some platforms insist on this.) 2006-07-30 23:37:15 +00:00
dtrg
c1725577a7 Worked around a mysterious preprocessor oddness causing some
crucial whitespace to be removed.
2006-07-30 23:36:19 +00:00
dtrg
e6f856e795 Updated to the latest version of pm. 2006-07-30 23:33:31 +00:00
dtrg
7826e03427 Added support for the K&R C language runtime. 2006-07-27 22:51:38 +00:00
dtrg
c5acfe7919 Added support for the Modula-2 language runtime. 2006-07-27 22:14:55 +00:00
dtrg
5a8968ae4f Added support for the Pascal language runtime. 2006-07-27 22:07:38 +00:00
dtrg
f3a9a3bc40 Added support for the Basic and Occam language runtimes. 2006-07-27 21:58:13 +00:00
dtrg
d29b1ef7d0 Added support for the Basic compiler. 2006-07-26 23:08:09 +00:00
dtrg
1caa63775f Rationalised use of #includes to be more standards-compliant. 2006-07-26 23:06:56 +00:00
dtrg
4c65324e11 Adjusted to allow the path of the Lpars.h file to be given on the
command line.
2006-07-26 23:05:52 +00:00
dtrg
e5e66bf27d Updated to the latest version of pm. 2006-07-26 18:24:16 +00:00
dtrg
2cfb9afac8 Added support for the Occam compiler. 2006-07-26 18:23:32 +00:00
dtrg
30e34f493f Rationalised use of #includes to be more standards-compliant. 2006-07-26 18:22:02 +00:00
dtrg
4fd0f0dba4 Renamed em.h to occam-em.h to avoid a clash with an ACK module
header file.
2006-07-26 18:20:38 +00:00
dtrg
c65c560acd Tweaked the CVS settings. 2006-07-26 18:19:15 +00:00
dtrg
2d2ee38770 Added support for the Modula-2 compiler. 2006-07-26 17:12:19 +00:00
dtrg
26b17074a1 Rationalised use of #includes to be more standards-compliant. 2006-07-26 17:10:30 +00:00
dtrg
bbd94dc2dc Changed to no longer build sys_lock() and sys_unlock(); they only work
on platforms that support hardlinks, and nobody uses them anyway.
2006-07-26 12:40:59 +00:00
dtrg
3494ffb302 Fixed to use rename() for renaming files, not link()/unlink(). 2006-07-26 12:40:25 +00:00
dtrg
8558656665 Now avoids piping shell scripts into a new instance of sh, instead
using a subshell.
2006-07-26 12:29:47 +00:00
dtrg
dc5d08b2a3 Modified to include the appropriate header file rather than (badly)
prototyping syscalls itself.
2006-07-26 12:28:56 +00:00
dtrg
ec254c30c1 Updated to the latest version of pm. 2006-07-26 12:27:01 +00:00
dtrg
3435e8d6ed Modified to not try to unlink directories when installing. 2006-07-25 23:29:12 +00:00
dtrg
b3b2ec567f Updated version number. 2006-07-25 23:24:39 +00:00
dtrg
7068d0d301 Modified to use rename() instead of link()/unlink() to rename files. 2006-07-25 23:24:20 +00:00
dtrg
f756747414 Updated to the latest version of pm which installs files with symlinks. 2006-07-25 23:22:58 +00:00
dtrg
b24e1f5aae Updated to the latest version of pm. 2006-07-25 13:28:35 +00:00
dtrg
6ebe928712 Updated to the latest version of pm. 2006-07-25 09:23:21 +00:00
dtrg
1799cb0706 Added a workaround for an OSX compiler bug. 2006-07-23 20:33:26 +00:00
dtrg
f39d595f98 Updated to the latest version of pm. 2006-07-23 20:07:19 +00:00
dtrg
014be56fb0 Replaced calls to the custom strindex() and strrindex() functions with the
exactly equivalent and standard strchr() and strrchr() functions instead.
2006-07-23 20:01:02 +00:00
dtrg
babe9eafad Modified to no longer build unoptimised duplicates of all the standard
string functions (strcpy, strlen, etc).
2006-07-23 19:58:27 +00:00
dtrg
ec8788ce7d Changed to call ranlib on ar archives. (Unnecessary on Linux and *BSD,
but needed on OSX and technically correct.)
2006-07-23 19:56:11 +00:00
dtrg
05d3be79cd Removed a really unpleasant test for whether a pointer points at a string
constant or not by comparing it with 'end', which presumably points at
the top of the BSS. In fact, on Linux it evaluates to NULL, and on OSX it
doesn't exist at all, so it appears to be unnecessary.
2006-07-23 19:38:13 +00:00
dtrg
345f4c8978 Modified to avoid creating a zero-length iargs array, which some compilers
(OSX) do not create a symbol for.
2006-07-23 18:29:38 +00:00
dtrg
eed5d461e4 cpp now gets installed in the right place. 2006-07-23 17:52:23 +00:00
dtrg
dc4606aa21 Really added support for the Pascal compiler. 2006-07-22 21:24:41 +00:00
dtrg
f1386f3aa5 Added support for the Pascal compiler. 2006-07-22 21:03:07 +00:00
dtrg
2dbc112117 Rationalised use of #includes to be more standards-compliant. 2006-07-22 21:01:15 +00:00
dtrg
e6ddd5be27 Changed to export a header file so it can be correctly referred to. 2006-07-22 20:59:22 +00:00
dtrg
7af0c5696d cpp now gets installed in the right place. 2006-07-22 20:58:27 +00:00
dtrg
558a1ef405 led now gets installed into the right place. 2006-07-22 20:52:44 +00:00
dtrg
8499270aef Added support for the esize object inspection tool. 2006-07-22 20:10:41 +00:00
dtrg
aa2dab31cf Rationalised use of #includes to be more standards-compliant. 2006-07-22 20:08:08 +00:00
dtrg
113383e31c Added support for the led link editor. 2006-07-22 20:04:41 +00:00
dtrg
f232b4dc29 Rationalised use of #includes to be more standards-compliant. 2006-07-22 17:58:49 +00:00
dtrg
304c0e21a0 Added support for the top target peephole optimiser. 2006-07-22 12:31:19 +00:00
dtrg
f8e168adcd Updated to the latest version of pm. 2006-07-22 12:29:40 +00:00
dtrg
fdcdaadcb8 Rationalised use of #includes to be more standards-compliant. 2006-07-22 12:28:20 +00:00
dtrg
744d0ca7be Removed a huge, ancient comment dating from the genmake days. 2006-07-22 12:27:31 +00:00
dtrg
1a037b9685 Added support for the ego global optimisation suite. 2006-07-22 00:52:01 +00:00
dtrg
78ff773233 First version in CVS. 2006-07-22 00:49:48 +00:00
dtrg
2e48c1b80d Changed so as to not compile the ACK with optimisation, to improve
debuggability.
2006-07-22 00:47:55 +00:00
dtrg
f371b251d2 Rationalised use of #includes to be more standards-compliant. 2006-07-22 00:46:16 +00:00
dtrg
d220081198 Changed to declare symbols as extern rather than just mentioning
them without qualification.
2006-07-22 00:45:51 +00:00
dtrg
86e20aa483 Added a concrete definition of nrglobals, because this was not always happening
otherwise.
2006-07-22 00:44:52 +00:00
dtrg
03e34d0e2a Updated to the latest version of pm. 2006-07-21 13:13:47 +00:00
dtrg
3afd3e4cb4 Updated version number. 2006-07-21 11:25:05 +00:00
dtrg
c0c8695ea4 Now resolves symlinks when creating releases (which avoids including a symlink to pm in the distribution, and not pm itself). 2006-07-21 11:24:46 +00:00
dtrg
154b23cd39 Updated version number. Corrected some typos. 2006-07-21 11:19:42 +00:00
dtrg
34ae7c4634 Removed duplicate (and incorrect) system function declarations. 2006-07-21 11:17:18 +00:00
dtrg
70218cfeed Updated to the latest version of pm. 2006-07-21 11:15:14 +00:00
dtrg
db0b628497 Removed a definition of 'struct label' as 'label_t', as it clashes with
a common Posix extension on BSD systems.
2006-07-21 10:35:34 +00:00
dtrg
685e85002e Rearranged the algorithm in get_text() to fix a memory overrun. 2006-07-21 09:28:36 +00:00
dtrg
a1ba8c6d3f Fixed revision history. 2006-07-20 23:24:42 +00:00
dtrg
097c640a6c First version in CVS. 2006-07-20 23:24:28 +00:00
dtrg
ea8f3fe1ff Rationalised use of #includes to be more standards-compliant. 2006-07-20 23:17:25 +00:00
dtrg
22db34a460 Fixed revision history. 2006-07-20 23:10:07 +00:00
dtrg
cf461cd82f First version in CVS. 2006-07-20 23:04:28 +00:00
dtrg
35f2f8b043 Rationalised use of #includes to be more standards-compliant. 2006-07-20 23:04:15 +00:00
dtrg
cf4417431f Added the appropriate #! magic at the beginning of shell scripts. (Some modern shells don't like scripts to be without it.) 2006-07-20 23:02:37 +00:00
dtrg
6717b9e700 Changed configuration to now use malloc()/free() rather than sbrk(). 2006-07-20 22:59:25 +00:00
dtrg
4f1a4b30f7 First version in CVS. 2006-07-20 22:57:46 +00:00
dtrg
e34b2fefba Updated to point at the ncg code generator instead of the cg one. 2006-07-20 22:37:57 +00:00
dtrg
db11db0cac Added the appropriate #! magic at the beginning of shell scripts. (Some modern shells don't like scripts to be without it.) 2006-07-19 14:09:25 +00:00
dtrg
6073ee934e Rationalised use of #includes to be more standards-compliant. 2006-07-19 14:09:05 +00:00
dtrg
4b79248af9 Modified to no longer build LLgen, as it is now distributed separately. 2006-07-19 14:03:33 +00:00
dtrg
b6757337b3 Added the appropriate #! magic at the beginning of shell scripts. (Some modern shells don't like scripts to be without it.) 2006-07-19 10:30:26 +00:00
dtrg
e859ef2491 Rationalised use of #includes to be more standards-compliant. 2006-07-19 10:28:43 +00:00
dtrg
4cb0ab8a63 Rationalised use of #includes to be more standards-compliant. 2006-07-18 18:05:47 +00:00
dtrg
57084134e5 Modified to no longer build LLgen, as it is now distributed seperately. 2006-07-18 17:34:30 +00:00
dtrg
87e91b4766 Added comment about the use of 'cc' rather than 'gcc'. 2006-07-18 17:21:34 +00:00
dtrg
d722986e66 Added the appropriate #! magic at the beginning of shell scripts. (Some modern shells don't like scripts to be without it.) 2006-07-18 17:20:46 +00:00
dtrg
1ed24cab9b No longer generates zero bytes in the script's output file. 2006-07-18 17:20:05 +00:00
dtrg
9ca41cf4b6 Worked around unput() not being strictly legal in the tail code section of a yacc input file. 2006-07-18 17:19:20 +00:00
dtrg
cd09c29949 Rationalised use of #includes to be more standards-compliant. 2006-07-18 17:18:42 +00:00
dtrg
f5bbc20093 Removed unnecessary commas seperating yacc tokens, to prevent warnings. 2006-07-18 17:17:14 +00:00
dtrg
4c0a0e6119 Rationalised use of #includes to be more standards-compliant. 2006-07-18 17:10:29 +00:00
dtrg
8ea67498ed Added the appropriate #! magic at the beginning of shell scripts. (Some modern shells don't like scripts to be without it.) 2006-07-18 17:10:18 +00:00
dtrg
1eb1cb6f62 Renamed the 'index' variable to 'offset', to prevent clashes with the libc index() function. 2006-07-18 17:00:30 +00:00
dtrg
4f6fff6b1f Removed unnecessary commas seperating yacc tokens, to prevent warnings. 2006-07-18 16:59:11 +00:00
dtrg
2aca7fbaf4 Renamed the private 'atol()' function to 'our_atol()' to avoid clashes with the libc one. 2006-07-18 16:57:51 +00:00
dtrg
13a9ff3379 Removed unnecessary commas seperating yacc tokens, to prevent warnings. 2006-07-18 16:52:08 +00:00
dtrg
423368e42f Renamed the 'index()' function to 'indexmode()', to prevent clashes with the libc index() function. 2006-07-18 16:50:22 +00:00
dtrg
45ed0df6d0 Removed a #define that was also defined in cv.c. 2006-07-18 16:48:21 +00:00
dtrg
454bdae81f Added the appropriate #! magic at the beginning of shell scripts. (Some modern shells don't like scripts to be without it.) 2006-07-18 16:45:57 +00:00
cvs2hg
5cb054f106 fixup commit for tag 'llgen-1-0' 2006-02-04 00:57:05 +00:00
dtrg
e864bf235e Split LLgen off to be self-contained, and not necessarily part of the ACK. Replaced its build system with one based on pm. Rewrote the README. Updated the license text to match the overriding license common to all the ACK. 2006-02-04 00:57:04 +00:00
dtrg
953a565a10 Moved LLgen documentation from the main ACK documentation directory into LLgen's own documentation directory. 2006-02-04 00:43:32 +00:00
dtrg
dd57d79b1b Modernised usage of system header files. 2006-02-04 00:37:19 +00:00
dtrg
71a92846dd Modernised usage of system header files. 2006-02-03 22:23:37 +00:00
dtrg
c39e85da63 Modernised usage of system header files. Changed the patch buffer (which allowed the library path to be modified with a hex editor) to an environment variable instead. 2006-02-03 22:23:11 +00:00
dtrg
4c0b3bb40f Modernised usage of system header files. 2006-01-24 22:29:19 +00:00
dtrg
4fdd9b83fc Converted to use termios, not sgtty. (pbetti@e-tech.net) 2005-08-10 22:48:40 +00:00
cjhjacobs
26889d3762 Fix: did not deal with quotes in macro definitions properly 2005-06-30 16:54:15 +00:00
dtrg
e0846f63be Removed duplicate and inconsistent function declarations. 2005-06-25 15:52:19 +00:00
dtrg
35bd1df1aa Now includes stdlib.h to avoid implicit call declarations. 2005-06-25 15:50:40 +00:00
dtrg
4ed4d8423f Added some prototyping to stop a compile error with gcc 4. 2005-06-25 13:49:06 +00:00
cvs2hg
cf1a80ecb6 fixup commit for tag 'release-5-6' 2005-06-24 23:20:42 +00:00
dtrg
e8b47b4745 Added some new readmes at the top level. 2005-06-24 23:20:41 +00:00
dtrg
5c8a5ed523 Added LLgen_NCER.n to the distribution because the makefile seems to want it. 2005-06-24 23:19:55 +00:00
dtrg
754267f0bd Added new mkdist tool. 2005-06-24 23:19:24 +00:00
dtrg
adb3cc5523 Created new tool to generate distributions. 2005-06-24 22:13:57 +00:00
dtrg
dd400ca720 Removed a call to _cleanup(), which appears to be a Minixism (and should be unnecessary). 2005-06-24 22:12:02 +00:00
dtrg
f2046954e6 Cleaned up the struct sgtty workaround and made it more generic. 2005-06-24 22:11:27 +00:00
dtrg
779fe568fc Removed an assumption that 'stdin' is a constant, which it's not on Linux. (You can't use it as an initialiser when declaring a global variable.) 2005-06-24 22:10:24 +00:00
dtrg
9bc8c07deb Replaced references to /usr/tmp with references to /tmp. 2005-06-24 22:08:47 +00:00
dtrg
70ef6fe52e Applied interim patches to make the interpreter compile on Linux. (Linux doesn't support struct sgtty; all this code should probably be rewritten to use termios instead, if I've understood it correctly.) 2005-06-24 21:42:11 +00:00
dtrg
9bd955e4f6 Removed Versions, since that file doesn't actually exist. 2005-06-24 21:14:44 +00:00
ceriel
a56d81ea51 new copyright notice in repository 2005-05-26 06:47:43 +00:00
ceriel
b1632b8060 Fix 2003-01-08 09:39:52 +00:00
ceriel
8f69a0ca44 Fix 2002-09-11 13:32:57 +00:00
ceriel
e8fdf4fcda fix 2002-09-11 13:19:23 +00:00
ceriel
1e32788ad1 Added missing files to .distr 2002-09-11 13:17:00 +00:00
ceriel
053ba2d164 ... 2002-09-10 13:40:14 +00:00
ceriel
daa34d0fe6 minor mods 2002-09-10 13:30:06 +00:00
ceriel
ee2c7069e4 Prevent double fclose 2002-08-26 14:27:15 +00:00
ceriel
4556d261d8 ??? 2002-04-04 12:33:15 +00:00
ceriel
df46c5e165 Fix for union initializers 2001-07-03 10:10:56 +00:00
ceriel
910316cfde Fix: parameter name same as function name not dealt with properly 2001-07-03 08:55:16 +00:00
ceriel
55dbc99000 Updated copyright 1999-04-23 14:15:43 +00:00
ceriel
6ca98e7102 Adapted copyright notice 1999-03-18 15:34:27 +00:00
ceriel
f0a7a313fc Fix: did not always produce error message 1998-11-10 14:26:06 +00:00
ceriel
384c4bc698 Fixed bug with 4-byte sets on 2-byte machines 1998-09-03 12:51:38 +00:00
ceriel
91cb060d10 Replaced a couple of UnGetChar calls with ChPushBack calls. The
UnGetChar call is wrong after skipspaces().
1998-02-09 09:49:00 +00:00
ceriel
d6e0e461f7 Corrected Makefile 1997-09-04 15:49:46 +00:00
ceriel
1840829928 Added LLgen_NCER.n 1997-07-10 07:58:30 +00:00
ceriel
298f8c8b0f fixed typo 1997-07-10 07:58:19 +00:00
ceriel
495dce5d6c Added LLgen_NCER.n 1997-07-10 07:55:35 +00:00
ceriel
8a2a3fd74b Only list readable directories 1997-07-01 12:05:54 +00:00
ceriel
4ec7d8bf7f Bug fix: copied wrong size to destination in structure returns 1997-07-01 08:33:13 +00:00
ceriel
f8fd2aa273 Removed superfluous ; 1997-06-16 13:07:37 +00:00
ceriel
e38b178317 Many modifications, mostly in comment 1997-05-15 12:03:05 +00:00
ceriel
cebde164bb Prevent warning about unused labels 1997-04-02 10:42:06 +00:00
ceriel
6db931eee6 Link em_data.a as well (needed when producing readable EM 1997-04-01 13:58:58 +00:00
ceriel
2c66222509 Fixed bug: flt_div should not touch e1 1997-03-13 18:38:24 +00:00
ceriel
2382ef1a27 Additions for non-correcting error recovery 1997-02-21 17:22:42 +00:00
ceriel
99ac23b4b4 Additions for non-correcting error recovery 1997-02-21 17:11:04 +00:00
ceriel
8ea5d257c4 improved error reporting, added -DNON_CORRECTING 1997-02-21 15:44:44 +00:00
ceriel
664d3fc8d3 some minor fixes 1997-02-21 15:44:10 +00:00
ceriel
13fea7102b Updated 1997-02-21 12:23:04 +00:00
ceriel
c2607fdf0f Added non-correcting error recovery stuff 1997-02-21 11:27:57 +00:00
ceriel
a44875cf00 bug fix: code referred to token attribute of wrong token! 1997-02-17 15:14:55 +00:00
ceriel
ae0cde301d Bug fix: conversion is OK if arg = 0.0 1997-01-27 14:06:51 +00:00
ceriel
9f61a33c9f troff flag -Tlpr is now changed to -Tlp 1996-12-04 14:03:12 +00:00
ceriel
3b3ec3a2af Fixed typo in catchsig.s 1996-11-26 15:05:10 +00:00
ceriel
63e0b36b41 renamed _len to _length: conflict with name in minix lib 1996-11-26 15:02:36 +00:00
ceriel
56033dc0c1 Added -n flag 1996-11-21 10:14:26 +00:00
ceriel
ea09125e30 fixed a bug: STD/LDD was generated on odd-numbered reg 1996-11-19 13:28:41 +00:00
ceriel
a44bbb3977 Fixed a couple of minor bugs 1996-11-19 13:27:56 +00:00
ceriel
322c1c1b4c Some fixes 1996-11-19 09:12:36 +00:00
ceriel
d0587ef3ab Stupid confusion with fdtox and fxtod 1996-11-18 16:49:54 +00:00
ceriel
150db958da Fixed typo 1996-10-22 14:34:16 +00:00
ceriel
efacd02ffd Added LONGCARD as a local extension 1996-08-14 07:42:40 +00:00
ceriel
1592c3638c Moved TryToString call into ChkAssCompat 1996-06-06 07:47:00 +00:00
ceriel
7f7f5f187f Fix: compatibility check in RETURN statement 1996-06-06 07:37:02 +00:00
ceriel
740f1d5f75 fix in cmpxchg instruction; i486 book is wrong 1996-04-25 08:38:05 +00:00
ceriel
6ec3dd7ebd fix in flushbuf: make sure it does not return EOF when it actually succeeds 1996-04-24 13:06:00 +00:00
ceriel
73b54a2326 fixed bug with %[] in doscan.c 1996-04-01 09:08:59 +00:00
ceriel
3895a59e03 Fix to fix in idf.c 1996-02-19 12:19:47 +00:00
ceriel
67cb729554 Fixed bug: crashed when parameter has same name as function 1995-12-20 09:58:56 +00:00
ceriel
d0288b673b Some improvements 1995-12-19 09:30:48 +00:00
ceriel
7442852cad Removed unclear test 1995-12-18 11:02:18 +00:00
ceriel
4baa1312a8 removed 1995-12-06 14:15:11 +00:00
ceriel
cdb362b628 removed 1995-12-06 14:04:51 +00:00
ceriel
e5894e0f5a removed 1995-12-06 13:28:04 +00:00
ceriel
6576498776 removed MakeVersion 1995-12-06 13:26:54 +00:00
ceriel
d224889b8d removed Makefile 1995-12-06 13:26:03 +00:00
ceriel
a6ea80436b removed Makefile, added README 1995-12-06 13:25:23 +00:00
ceriel
0ea8200a57 added file 1995-12-06 13:23:09 +00:00
ceriel
4a5e3f42d3 removed 1995-12-06 13:21:54 +00:00
ceriel
2358a2f5e2 Added pascal compiler report 1995-12-06 13:17:50 +00:00
ceriel
6e2fe89c61 removed 1995-12-06 13:08:44 +00:00
ceriel
583130b79b deleted 1995-12-06 13:04:25 +00:00
ceriel
550095a5d0 Removed Version.c 1995-12-06 09:52:54 +00:00
ceriel
f7157ca24c Copied versions of dv[iu].s from ../../m68k2/libem. 1995-12-05 15:38:55 +00:00
ceriel
ddc1751296 A couple of minor changes 1995-12-05 13:51:43 +00:00
ceriel
0a643bb9d0 Improved the pow() function to give more exact results 1995-12-05 12:29:36 +00:00
ceriel
812b6f2158 Fixed obscure bug in setvbuf 1995-12-04 17:11:54 +00:00
ceriel
6d39052c12 Corrected nested function info 1995-12-04 16:42:11 +00:00
ceriel
d4abf57904 Fixed warnings, recognize -gdb 1995-12-04 15:29:42 +00:00
ceriel
a9df108116 Made to work; how did this get into the repository??? 1995-12-04 15:20:46 +00:00
ceriel
39011a99c5 Pass -gdb on to M2 compiler 1995-12-04 15:01:07 +00:00
ceriel
c97f79454d Fixed a bug with local character arrays initialized with a string 1995-11-15 09:42:25 +00:00
ceriel
2985469116 Fix: wrong offsets for locals when < -32768, installation error for 'show' 1995-11-08 11:09:14 +00:00
ceriel
c1738933d7 Fix: wrong offsets for locals when < -32768 1995-11-08 11:08:09 +00:00
ceriel
4565576021 Fixed bug with labels 1995-11-07 10:37:59 +00:00
ceriel
0bf45ac757 Get() parameter is optional 1995-11-01 16:54:17 +00:00
ceriel
a8b1f8e347 Header file was included twice 1995-11-01 15:59:33 +00:00
ceriel
29e457c381 Fix by Charles Lindsey 1995-09-25 08:09:55 +00:00
ceriel
71da2cdda9 Fixed some bugs with the setxx instructions 1995-09-12 12:09:08 +00:00
ceriel
8b3437dd24 Fix: setxx instructions should only accept byte registers 1995-09-12 12:08:42 +00:00
ceriel
b766e2beab Added libassert for when DEBUG is defined 1995-08-18 07:28:47 +00:00
ceriel
71913a9d1d A68 rules from Charles Lindsey 1995-08-18 07:27:57 +00:00
ceriel
3ad37ef26b lib --> lib.bin for a68 1995-08-18 07:26:46 +00:00
ceriel
b9a67e72ca use stdarg when compiling with ANSI C compiler 1995-08-18 07:26:18 +00:00
ceriel
1aa9149ff9 Changed for sparc_solarisdescr 1995-08-18 07:24:18 +00:00
ceriel
4c73887050 use stdarg when compiling with ANSI C compiler 1995-08-17 16:51:09 +00:00
ceriel
7b207deeb7 use stdarg when compiling with ANSI C compiler 1995-08-17 16:43:36 +00:00
ceriel
53eb117563 use stdarg when compiling with ANSI C compiler 1995-08-17 16:34:29 +00:00
ceriel
0dc2d5a625 use stdarg when compiling with ANSI C compiler 1995-08-17 16:14:45 +00:00
ceriel
b7396a7cd4 use stdarg when compiling with ANSI C compiler 1995-08-17 15:20:35 +00:00
ceriel
0509996f7f use stdarg when compiling with ANSI C compiler 1995-08-17 15:01:56 +00:00
ceriel
c3855160fb use stdarg when compiling with ANSI C compiler 1995-08-17 14:36:05 +00:00
ceriel
acdb874527 use stdarg when compiling with ANSI C compiler, and some other minor changes 1995-08-17 13:33:55 +00:00
ceriel
a96a9107c8 'ed -' is no longer supported on some systems. replaced by 'ed -s' 1995-08-17 12:22:33 +00:00
ceriel
e41c75c1bc Some minor changes 1995-08-17 10:03:43 +00:00
ceriel
32bcf11ab9 Re-ordered for incompatible Linux shell 1995-08-15 14:59:28 +00:00
ceriel
f8cbcf1b4f Don't use SIGEMT; it is not portable 1995-08-15 09:10:39 +00:00
ceriel
65cd309c08 'ed -' is no longer supported by some systems. Use 'ed -s' 1995-08-15 08:43:10 +00:00
ceriel
f8d6337862 'ed -' is no longer supported by some systems. Use 'ed -s' 1995-08-14 15:09:59 +00:00
ceriel
f34bf4b487 removed dependency on /usr/include/varargs.h 1995-08-14 15:08:46 +00:00
ceriel
7c086b1710 create modules/h too, for varargs.h 1995-08-14 15:07:53 +00:00
ceriel
c587ca287e 'ed -' is no longer supported by some systems. Use 'ed -s' 1995-08-14 08:08:56 +00:00
ceriel
525eb1f1a4 Fixed typo 1995-07-31 09:17:14 +00:00
ceriel
7b6d8fbe56 Added copyright notice 1995-07-31 09:10:42 +00:00
ceriel
bf6f4f8a6e Minor mod to Makefile 1995-07-27 07:14:54 +00:00
ceriel
5a6d5d877f declare errno in cerror.s 1995-07-26 08:55:56 +00:00
ceriel
2624e5d05c Use _end instead of $_end. $_end does not always indicate the right
position. This should be fixed as well, but how?
1995-07-26 08:52:03 +00:00
ceriel
ef30bb3398 Fix by Charles Lindsey: still used reg vars, despite ms_gto 1995-07-26 08:44:35 +00:00
ceriel
41d0c898e5 Fixed typo 1995-07-26 08:43:02 +00:00
ceriel
1bcd59df35 Some changes suggested by Charles Lindsey 1995-07-26 08:42:56 +00:00
ceriel
c9153e6b9b Set B_busy 1995-07-25 16:49:15 +00:00
ceriel
4978d19bff Several fixes from Charles Lindsey 1995-07-25 16:43:42 +00:00
ceriel
34b3d1fb52 Fix: produced jgt instead of jg 1995-07-25 13:21:53 +00:00
ceriel
5e03b1bebb Fixes: some conditionals were evaluated wrong due to the overflow bit 1995-07-21 12:05:26 +00:00
ceriel
3883860106 Added Posix names 1995-06-28 09:46:39 +00:00
ceriel
c833d93d2d Some fixes 1995-06-12 14:28:36 +00:00
ceriel
a0bd098f98 Fix: got into infinite loop 1995-05-02 12:23:28 +00:00
ceriel
15d2949b88 Fix: opaque types my only be defined in the CORRESPONDING implementation 1995-04-26 13:54:56 +00:00
ceriel
5edfb9eccf Fix: had a semicolon too much (KJB) 1995-04-18 13:56:20 +00:00
ceriel
fdc0e2efdb minor improvement 1995-03-29 11:57:27 +00:00
ceriel
34f7036b87 Reordered patterns 1995-03-28 11:22:34 +00:00
ceriel
06b0d3775f Added some patterns 1995-03-28 10:01:02 +00:00
ceriel
f069cba449 Made arith_sign more portable 1995-03-28 09:10:31 +00:00
ceriel
86cb2d66d7 Fixed: % and / were interchanged 1995-03-27 11:46:47 +00:00
ceriel
d801356f1e Fixed typo 1995-03-27 11:22:57 +00:00
ceriel
bcb4a75630 free WorkingDir only if including cpp 1995-03-24 13:56:20 +00:00
ceriel
e4fd4fce8e Fix: C_pt_ps and C_pt_op prototypes only valid when READABLE_EM is defined 1995-03-24 10:27:28 +00:00
ceriel
b71c0ca9a3 Added Amake.srclist 1995-03-21 09:39:29 +00:00
ceriel
32c692d93b Use TARGETHOME for manual page 1995-03-17 14:11:47 +00:00
ceriel
87d67255d9 Added filter for TARGETHOME, needed for man pages that include an include-file 1995-03-17 14:11:06 +00:00
ceriel
404d86d544 Added -F option to indicate name of floating point hook 1995-03-17 12:37:06 +00:00
ceriel
911b0a43d8 Fix: never replace LAR/SAR by AAR LOI/STI if descriptor is not in ROM 1995-03-17 12:32:47 +00:00
ceriel
d5505f2f02 Also create sparc_solarisdescr 1995-03-17 11:00:29 +00:00
ceriel
d1435f4fc6 Added an option to strip the grammar from its actions 1995-02-24 12:10:44 +00:00
ceriel
65353b1417 Fix: description of setxx should write arg 1995-02-24 11:53:43 +00:00
ceriel
0ae5288ab7 Fix for membership test with constant LHS 1994-12-20 16:00:57 +00:00
ceriel
68cebfb733 do not allow ',' as separator in parameter declarations; this results in bad C-code 1994-12-20 12:47:48 +00:00
ceriel
2b0a61d143 Added more precise info about parameters 1994-12-20 12:40:21 +00:00
cvs2hg
dc2a339e09 fixup commit for tag 'oct-1' 1994-12-06 09:12:22 +00:00
ceriel
7393f8923c Many changes:
- added some data flow stuff
- many cosmetic changes
1994-12-06 09:12:21 +00:00
ceriel
ef0ecb31b2 Fix: sometimes produced branch to non-existing label 1994-11-29 14:53:02 +00:00
ceriel
63d0700af1 Fix: made 'rep' equivalent to 'repz' 1994-11-16 14:43:42 +00:00
ceriel
33da68f7e2 made statbuf static, so that is is zero when not initialized 1994-11-14 12:34:50 +00:00
ceriel
e10145ba2e exit with erno+1, because otherwise exit status is 0 with array bound error 1994-11-14 11:51:24 +00:00
ceriel
e441b2f658 disabled a warning 1994-11-01 11:45:23 +00:00
ceriel
c7b707c266 SkipToNewLine() fixed: did not work with a / at the end of a line 1994-10-28 15:26:36 +00:00
ceriel
8061bab6a9 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
4c26480d25 Fix: sometimes wrote register gotten from pop_reg(); Fix: WINDOWSIZE; Fix: make distr 1994-10-25 16:14:08 +00:00
ceriel
d992ed4935 mark file parameters as used in reads/writes 1994-10-25 15:41:59 +00:00
ceriel
a1a816ddc2 Avoid some empty if- and else- parts. gcc -Wall does not like it 1994-10-20 12:43:35 +00:00
ceriel
7b996be765 void LoadChar 1994-10-20 11:52:15 +00:00
ceriel
4851c0c9f3 Fine tuning of some patterns 1994-10-19 14:09:26 +00:00
ceriel
cfbdef35e7 A couple of fixes: use Bourne shell, and fixed recursive call of get_sys 1994-10-18 16:07:27 +00:00
ceriel
29a640446a Remove prototype idfs in casts! 1994-10-18 13:43:50 +00:00
ceriel
d1e4c3d930 Fixed: union initialization did not work properly 1994-10-03 12:57:39 +00:00
ceriel
c3ad2ccc5e Improved driver, handles quotes better 1994-09-16 12:41:55 +00:00
ceriel
3662861589 Changed PATH somewhat 1994-08-25 08:05:28 +00:00
ceriel
f54d79e41a removed un-used variable 1994-07-06 08:34:27 +00:00
ceriel
e2894d7a6e Header --> Id 1994-06-28 14:41:17 +00:00
ceriel
8636e9d10a Changed Header into Id 1994-06-27 08:03:14 +00:00
ceriel
1db6a3029b Header --> Id 1994-06-24 14:02:31 +00:00
ceriel
5c83e7dbb5 Header --> Id 1994-06-24 11:31:16 +00:00
ceriel
6cec9aca97 Header --> Id && bug fix 1994-06-24 07:25:30 +00:00
ceriel
910f827fe2 Header --> Id && bug fix 1994-06-23 16:08:51 +00:00
ceriel
273fb42833 Changed Header into Id 1994-06-23 13:47:02 +00:00
ceriel
11f3094b51 Fix: forgot to initialize malloced mem 1994-06-23 10:00:01 +00:00
ceriel
2b54fa3a19 Fix: also redefine LLsafeerror 1994-06-23 09:58:30 +00:00
ceriel
77c44b0f04 Minor fix in error message 1994-06-02 10:54:13 +00:00
ceriel
96172158e5 Fix: dit not handle multiple POINTER TO constructs right 1994-05-25 12:10:59 +00:00
ceriel
f06b39f112 removed wrong assertion 1994-04-19 10:46:08 +00:00
ceriel
dd67502468 Minor fix 1994-04-19 10:04:53 +00:00
ceriel
656fb00e9b Fix: error recovery sometimes skipped tokens it needed later on 1994-04-19 09:38:00 +00:00
ceriel
958aced01b Generate octal char constants instead of ints for LLsets 1994-04-12 13:53:38 +00:00
ceriel
8a670148e4 changed Header to Id 1994-03-11 10:37:39 +00:00
ceriel
b8b3054bba Fix: prevent unintentional token pasting 1994-03-01 15:04:52 +00:00
ceriel
b03e2f6a8b Also update alignment in complete_type(); resulted in obscure (and wrong) error message 1994-03-01 09:54:16 +00:00
ceriel
805a0a4b66 Added -DNDEBUG to compilation flags 1994-02-25 14:14:55 +00:00
ceriel
af0e9371e9 call abort() only when NDEBUG is not defined 1994-02-25 14:01:54 +00:00
ceriel
11682328eb get section alignments right 1994-01-14 11:42:01 +00:00
ceriel
3cd7046ec4 Updated 1993-12-15 13:28:16 +00:00
ceriel
5a99c436b6 minor change: commented __ANSI_H__INCLUDED after #endif 1993-12-15 09:55:35 +00:00
ceriel
6f23614b06 Fixed problem with calloc() declaration 1993-12-09 16:31:05 +00:00
ceriel
6561b6287f Fix: CMP instruction with small constant does not handle PC-relative 1993-12-06 10:14:43 +00:00
ceriel
fe99903321 Several changes: did not work right when compiled with the ANSI C compiler 1993-11-24 15:37:27 +00:00
ceriel
b7a5c1acc0 export WRITE 1993-11-24 15:32:45 +00:00
ceriel
48ab6fa908 Fixed typo 1993-11-24 13:01:08 +00:00
ceriel
ac6b7e7cf5 Export .stop 1993-11-24 12:57:43 +00:00
ceriel
acd80a39f2 Fixed typo 1993-11-24 12:54:29 +00:00
ceriel
1d6775dfa5 Wrong references to _endbss; changed to endbss 1993-11-24 12:45:29 +00:00
ceriel
c791a62031 Fixed: tail_mon2 instead of tail_sys 1993-11-24 12:42:08 +00:00
ceriel
a3de95550e define .cs[ab]4 instead of .cs[ab] 1993-11-24 12:39:21 +00:00
ceriel
67c750a70c Improved CSA some more 1993-11-24 12:39:19 +00:00
ceriel
0b7ae7a629 .long replaced by .data4 1993-11-24 12:37:16 +00:00
ceriel
e30d27c418 Fixed bug in newlabel: assertion was wrong 1993-11-24 12:07:26 +00:00
ceriel
12bc7ed391 Changed as suggested by Frans Meulenbroeks 1993-11-23 15:35:08 +00:00
ceriel
0e6e7bc913 Fixed for machines without .o 1993-11-19 09:59:11 +00:00
ceriel
75afbd450b Fixed problem with the IN operator 1993-11-19 09:53:47 +00:00
ceriel
618041f3ff Some minor modifications 1993-11-19 09:50:20 +00:00
ceriel
6b1a0c486f Fixed too large constant 1993-11-19 09:37:44 +00:00
ceriel
60192399dc Added declarations for static functions 1993-11-18 15:38:13 +00:00
ceriel
862f5da86d use 0xFFFF mask for printing shorts, and work around gcc 2.4.5 bug 1993-11-18 15:35:03 +00:00
ceriel
e3e19a7a0d signal now deals with void functions 1993-11-17 16:53:43 +00:00
ceriel
1ac5aa547d Fix: reset DISABLE_LANG and DISABLE_SUP when installing everything 1993-11-17 16:49:43 +00:00
ceriel
cf151967a5 signal now deals with void functions 1993-11-17 16:38:52 +00:00
ceriel
82f89c97a6 signal now deals with void functions 1993-11-17 16:27:44 +00:00
ceriel
2309d12210 Updated: signal now uses a void function 1993-11-17 11:04:32 +00:00
ceriel
90134a3bea Some minor changes 1993-11-17 10:25:17 +00:00
ceriel
5dfe51c5d4 Oops: committed wrong version 1993-11-17 09:37:02 +00:00
ceriel
875797a7d8 and again ... 1993-11-17 09:10:36 +00:00
ceriel
121cb0c285 Fixed: version with typo committed 1993-11-17 09:05:28 +00:00
ceriel
0dde39aa63 Fixed problem with IN operator 1993-11-16 16:31:27 +00:00
ceriel
cc61337a9f signal, second arg is void function 1993-11-16 12:03:22 +00:00
ceriel
5bbe789504 Some small fixes 1993-11-16 12:00:06 +00:00
ceriel
f5df1934b9 Define PRIVATE as static 1993-11-16 11:59:09 +00:00
ceriel
65592bae41 prevent some gcc warnings 1993-11-16 11:54:00 +00:00
ceriel
70b035d559 Define PRIVATE as static, and consequences 1993-11-16 11:49:17 +00:00
ceriel
0c60f4c22f Fixed several lint complaints 1993-11-16 11:35:23 +00:00
ceriel
8abba8b1a1 Changed: create directories if needed 1993-11-15 09:37:05 +00:00
ceriel
9fbd4783a7 Fixed bug with "/*" 1993-11-15 09:29:39 +00:00
ceriel
8998e56069 Fixed bug 1993-11-15 09:25:32 +00:00
ceriel
49f8a5a61b Fixed some minor problems 1993-11-12 16:59:06 +00:00
ceriel
a4a2ae8f96 catch is a signal arg, and should be void catch() 1993-11-12 16:57:15 +00:00
ceriel
03405742a3 noodstop is a signal arg, and should be void noodstop() 1993-11-12 16:53:24 +00:00
ceriel
dbdf63595a Realloc call: put cast in front of first arg 1993-11-12 15:48:22 +00:00
ceriel
b6ba1452f8 made symbol2str decl global 1993-11-12 15:45:09 +00:00
ceriel
e37939e8c8 Correction: also put ack_sys in conf/bin, otherwise mk_makefile does not work 1993-11-12 15:38:49 +00:00
ceriel
57f0474d91 updated 1993-11-12 15:37:30 +00:00
ceriel
332b6cb337 Minor changes: gave double def of __ctype with gcc on solaris 2 1993-11-12 15:16:08 +00:00
ceriel
501da70526 Restored em_codeO.h; it is also needed when em_opt is not installed 1993-11-12 13:40:17 +00:00
ceriel
990bf1ac74 onintr must be void 1993-11-12 12:53:28 +00:00
ceriel
560f5139eb Changes for release 5.1 1993-11-12 10:56:15 +00:00
ceriel
4b3878c046 Added proto.make 1993-11-12 10:08:55 +00:00
ceriel
0de33667bf Little trick to make distribution easier 1993-11-12 10:02:53 +00:00
ceriel
a9e731d090 Added proto.make 1993-11-11 12:02:20 +00:00
ceriel
aa0cd8e9a1 Some minor mods 1993-11-11 12:00:22 +00:00
ceriel
b71451bfd8 Added comment about Solaris 2 and GNU cc 1993-11-10 16:35:58 +00:00
ceriel
5b5323894e No longer depend on /bin/arch 1993-11-10 16:07:31 +00:00
ceriel
b95ae2fa70 Many changes, mostly for Solaris 2 1993-11-10 15:11:28 +00:00
ceriel
4539174f47 Added -DNDEBUG to compile flags 1993-11-10 15:07:55 +00:00
ceriel
9dae71ae08 Updated for C_ prototypes 1993-11-10 15:07:12 +00:00
ceriel
854597cd2d Updated for C_ prototypes 1993-11-10 14:40:27 +00:00
ceriel
7c473ca0ed Added -DNDEBUG to compile flags 1993-11-10 14:38:32 +00:00
ceriel
528112d9bd Bug fix for dlb routines and C_ are now void 1993-11-10 14:22:26 +00:00
ceriel
4f3e07061e Added -DNDEBUG to compile flags 1993-11-10 14:21:21 +00:00
ceriel
8c849f20f7 Fix: CSA was not quite right 1993-11-10 13:00:01 +00:00
ceriel
f33df43f9a Fix: had array bound error 1993-11-10 12:58:26 +00:00
ceriel
91d270eb90 Modified for Solaris 2 1993-11-10 12:57:16 +00:00
ceriel
964bf270ab Fixed CII (?) did not handle stack pointer right 1993-11-10 12:51:03 +00:00
ceriel
c89c0d2c01 Changed debugging information to also work for Solaris 2 1993-11-10 12:44:24 +00:00
ceriel
37ab68909b Added void for some functions 1993-11-10 12:42:25 +00:00
ceriel
2662c3984d Some small changes 1993-11-10 12:35:33 +00:00
ceriel
4deafdc9de Changed modules mechanism 1993-11-10 12:33:15 +00:00
ceriel
d7b6b9a5ce Added prototyping stuff 1993-11-10 12:32:42 +00:00
ceriel
103cbb4319 Added prototyping stuff 1993-11-10 12:09:49 +00:00
ceriel
62f978c40f Added prototyping stuff 1993-11-10 11:49:49 +00:00
ceriel
73adc0f645 Added prototyping stuff 1993-11-10 11:40:41 +00:00
ceriel
d848beec72 Changed modules mechanism 1993-11-10 11:38:42 +00:00
ceriel
11d4fdf6e0 Added prototyping stuff 1993-11-10 11:14:28 +00:00
ceriel
abf052244b Added prototyping stuff 1993-11-10 10:26:07 +00:00
ceriel
31752a4617 Changed modules mechanism 1993-11-10 10:13:04 +00:00
ceriel
f1681124d1 Changed modules mechanism 1993-11-10 10:04:30 +00:00
ceriel
134da2750b Added modules/h 1993-11-10 10:03:23 +00:00
ceriel
1da6506ba7 Added prototypes 1993-11-05 15:02:57 +00:00
ceriel
66e29d8bd9 Added -lelf for grind on sparc_solaris 1993-11-05 13:12:46 +00:00
ceriel
cee6ab37e7 Compilers should recognize void by now 1993-10-26 16:26:36 +00:00
ceriel
067ad0cc22 Fixed div() and ldiv() for machines with -1/2 = -1 1993-10-26 13:58:04 +00:00
ceriel
a71ae473ac Include em_label.h before em_code.h 1993-10-26 09:59:06 +00:00
ceriel
c689e34fa7 Use LCSYM for bss and STSYM for data, so that grind can see the diff 1993-10-25 15:43:02 +00:00
ceriel
0fc413c78a Use LCSYM for bss and STSYM for data, so that grind can see the diff 1993-10-25 15:34:08 +00:00
ceriel
c9ec055176 Define NDEBUG if you don't want assertions 1993-10-22 14:30:43 +00:00
ceriel
2006278a52 A fix for stabs, and define NDEBUG 1993-10-22 14:24:31 +00:00
ceriel
32760d492a Added prototype 1993-10-22 14:09:28 +00:00
ceriel
4ec65def3f Modified to conform to ANSI C 1993-10-22 14:05:24 +00:00
ceriel
799f0600ef Added prototypes 1993-10-22 13:49:04 +00:00
ceriel
ab8dcfa134 ANSI C fixes 1993-10-21 12:50:58 +00:00
ceriel
d8bcd5d06c Added -s option to as (to keep stabs) 1993-10-13 13:06:49 +00:00
ceriel
d9af0f2851 All 'follows' checks only to be done when ! unresolved 1993-10-13 10:47:28 +00:00
ceriel
af42c1f960 Mention all sections 1993-10-13 10:46:11 +00:00
ceriel
4f2c705501 Some more space for file names 1993-10-12 09:45:59 +00:00
ceriel
549dfcc99d Fixed: functions were implicitly declared extern and later static 1993-10-07 17:47:26 +00:00
ceriel
38a269fc37 Added sparc_solaris 1993-10-07 17:41:19 +00:00
ceriel
29f543b603 Some minor changes: prevent some warnings 1993-10-07 14:07:42 +00:00
ceriel
861f4afc0c Added -LIB where needed 1993-10-07 10:56:25 +00:00
ceriel
df61cc8c4b Added sparc_solaris 1993-10-07 09:52:41 +00:00
ceriel
a6d6f5943d Added end_em 1993-10-07 09:48:06 +00:00
ceriel
dd4903cc3a Added sparc_solaris description 1993-10-07 09:47:16 +00:00
ceriel
fa7069780d Added missing stuff 1993-10-07 09:46:14 +00:00
ceriel
b73eb4057e Fix: set error flag in some error cases 1993-10-07 09:44:03 +00:00
ceriel
513c3df1d2 Added sparc Solaris 2 support 1993-10-07 09:09:16 +00:00
ceriel
9e7c8d2c9f Added sparc_solaris stuff 1993-10-06 17:04:49 +00:00
ceriel
980faf36f0 Added sparc_solaris stuff 1993-10-06 16:42:05 +00:00
ceriel
a430cb7d8e Changed for Solaris 2 1993-10-06 16:18:58 +00:00
ceriel
76d1b91311 fix: probably just a typo 1993-10-06 16:15:30 +00:00
ceriel
6dc51ef6eb Fix: setrlimit has two parameters 1993-10-06 16:12:40 +00:00
ceriel
4775779d8e Made more portable 1993-10-06 13:15:12 +00:00
ceriel
3e43a9ac61 Some more changes for Solaris 2 1993-10-06 11:47:11 +00:00
ceriel
2233b6973b Several fixes; ported to Solaris 2 1993-10-06 11:45:13 +00:00
ceriel
4092904071 proper trap on divide by 0 1993-10-04 14:13:51 +00:00
ceriel
c118bca2c2 An offset fix, and added some files for solaris 2 1993-10-04 08:57:25 +00:00
ceriel
b06a419f71 Fix to Makefile: define CFLAGS 1993-09-30 15:13:11 +00:00
ceriel
f8e6131e61 Some stuff for solaris 2 1993-09-30 15:11:52 +00:00
ceriel
43280fdd5a Fixed previous fix 1993-09-30 15:10:59 +00:00
ceriel
eaea6c1c59 Fix: Makefile used cc instead of $(UCC) 1993-09-03 11:02:02 +00:00
ceriel
668b3fc2d8 New, improved fmod.c 1993-08-31 10:54:08 +00:00
ceriel
a37e49b619 Added check, but probably never happens with correct FEF 1993-08-31 10:53:05 +00:00
ceriel
983e1bf095 Fix to icompute.c: always had one digit too much 1993-08-26 10:08:37 +00:00
ceriel
b3863b7247 Fixed bug with union initializers 1993-08-09 09:40:44 +00:00
ceriel
18967fad9a Fixed make.hfiles; some "shells" did not accept it 1993-08-05 13:00:40 +00:00
ceriel
7a26259981 Fixed make.hfiles; some "shells" did not accept it 1993-08-05 12:30:57 +00:00
ceriel
1a4c319f7e Always define __ACK when preprocessing 1993-08-05 11:09:12 +00:00
ceriel
10e6db39c6 Reversed bitfields for compatibility with (g)cc 1993-08-05 11:08:48 +00:00
ceriel
de8fefd02c Fixed typo 1993-08-04 09:24:07 +00:00
ceriel
bf84a52bc3 Fix make.hfiles; some shells did not accept it 1993-07-07 13:42:45 +00:00
ceriel
eaa9dab166 Fixed infinite loop 1993-06-24 15:48:46 +00:00
ceriel
042d7b2275 Improved 'stop in' mechanism, and prevent core dump ir currlang is not set 1993-06-09 14:18:43 +00:00
ceriel
298fd07712 Prevent warning about overflow 1993-06-09 11:47:01 +00:00
ceriel
5e31863838 Fixed for change in LLgen 1993-06-09 10:34:48 +00:00
ceriel
4ff171c1a5 Also skip lint comments in skip_block() 1993-06-09 10:17:44 +00:00
ceriel
1ad085cfb8 Also skip lint comments in skip_block() 1993-06-09 09:40:54 +00:00
ceriel
40569c479e Mention filename for some error messages 1993-06-08 13:02:01 +00:00
ceriel
5092c4ece3 Don't free filenames when lint 1993-06-04 10:30:16 +00:00
ceriel
4d1b0d3486 A fix: make error_type usable as function type; prevents core dump on some inputs 1993-05-14 12:01:14 +00:00
ceriel
b4aef1eb5e Fixed error: did not compile 1993-05-12 08:33:03 +00:00
ceriel
d7a3b68635 Added /usr/local/bin to PATH (for tbl and the like) 1993-05-12 08:26:39 +00:00
ceriel
7e30c7d648 Fixed for empty parameter lists 1993-05-10 14:02:52 +00:00
ceriel
8c66b84305 small fix in ftell 1993-04-05 11:49:59 +00:00
ceriel
e30c4b9337 Added make entries to produce troff output on standard output 1993-04-01 11:11:49 +00:00
ceriel
9cbc7a4b97 Also run soelim 1993-04-01 11:06:04 +00:00
ceriel
4edcd8222d Fix: wrong target and refs 1993-04-01 10:55:46 +00:00
ceriel
758e04a4eb Fix in proto.make: forgot to define SRC_DIR 1993-04-01 10:52:32 +00:00
ceriel
404d067606 Changed installation mechanism for docs 1993-03-31 16:47:12 +00:00
ceriel
42d7930c11 Changed installation mechanism for docs, deleted mkun 1993-03-31 13:34:42 +00:00
ceriel
132f2234fa Changed installation mechanism for docs 1993-03-31 13:33:07 +00:00
ceriel
6b8fbeb016 Changed installation mechanism 1993-03-31 13:22:17 +00:00
ceriel
5117853b1b Now uses -ms macros 1993-03-30 15:43:44 +00:00
ceriel
e9a4337ccf Fixed problem with missed unstacks 1993-03-30 09:41:00 +00:00
ceriel
b371972acf Fixed error which sometimes caused core dumps 1993-03-30 09:40:07 +00:00
ceriel
6fc94eb375 Improved constant arithmetic: had several bugs 1993-03-18 13:24:20 +00:00
ceriel
eb375db4d6 repositioned lint comments, so that they work better 1993-03-18 13:09:55 +00:00
ceriel
5e702c5527 Added some code to check for Nan/Inf 1993-02-24 15:12:49 +00:00
ceriel
14e756ba87 Enabled divide by 0 and improper trap 1993-02-24 15:10:14 +00:00
ceriel
dfc4956d59 Fixed bug: some offsets were just plain wrong 1993-02-19 17:33:40 +00:00
ceriel
6da226ab2b Fixed bug: some offsets were just plain wrong 1993-02-08 13:35:44 +00:00
ceriel
468d98750c Fixed problem with relocation,
added curr_token, so that parser can access token
1993-02-08 13:01:30 +00:00
ceriel
04d3c7152c Changed order of declarations 1993-02-05 18:21:46 +00:00
ceriel
a0d74876b8 Fixed bit-field initializers bug 1993-02-05 18:15:32 +00:00
ceriel
7352c25e9c Fix: did not work properly on 2-4 machines 1993-02-03 13:28:14 +00:00
ceriel
256151c7e4 Added some patterns and fixed error in constant multiplication 1993-02-03 10:10:07 +00:00
ceriel
6f8002f540 Fix: previous version did not work with variable # of args 1993-01-28 11:45:38 +00:00
ceriel
de58173e36 No more global space for structure returns 1993-01-28 10:09:51 +00:00
ceriel
ebf5153f35 Fix small bug: space following a replacement list was included in the list 1993-01-26 11:58:00 +00:00
ceriel
cf7095f8cc Fix small bug: space following a replacement list was included in the list 1993-01-26 11:49:23 +00:00
ceriel
9c64294186 Fixed bit-field initializers bug 1993-01-21 11:00:51 +00:00
ceriel
9eec0812a1 Improved previous fix 1993-01-19 15:33:35 +00:00
ceriel
f2cfe32e03 found some small leaks with Purify 1993-01-18 16:14:43 +00:00
ceriel
3b80847a9d found a small error with Purify 1993-01-18 15:30:54 +00:00
ceriel
bcff9862e7 found some small leaks with Purify 1993-01-18 15:29:54 +00:00
ceriel
439ec389a0 found some small leaks with Purify 1993-01-18 15:10:01 +00:00
ceriel
ba62ce0edc Added diagnostic about use of for example union tag as a struct tag 1993-01-15 12:41:15 +00:00
ceriel
7eb7218667 Fixed bug in flushbuf: did not reset stream->_ptr on write error 1993-01-14 10:02:28 +00:00
ceriel
fd0bc5d531 Fix in tes mechanism: CAL and CAI 1993-01-12 15:48:39 +00:00
ceriel
5f7f7bf194 Fixed error: ] was missing in translation of COM 1993-01-11 12:46:04 +00:00
ceriel
dc108fd084 Removed adder.h from proto.libfp 1993-01-05 12:52:47 +00:00
ceriel
be2c36fbe5 Removed adder.h from .distr 1993-01-05 12:50:30 +00:00
ceriel
005f32298f Updated for ANSI C, cleaned up a bit 1993-01-05 12:06:58 +00:00
ceriel
55131b091f fixed bug: qualified type introduction within structure decl 1992-12-22 15:29:56 +00:00
ceriel
d2fb022441 improved ply handling 1992-12-18 10:29:31 +00:00
ceriel
ed2ba2e1d5 improved ply handling 1992-12-18 10:22:55 +00:00
ceriel
5fbaff533c Use test instruction for testing 1992-12-17 12:58:05 +00:00
ceriel
4d068e8e04 ply adaption was wrong for EM replacements 1992-12-17 12:52:21 +00:00
ceriel
b1be3e3487 Fix: lint complained about ptr->void* conversions 1992-12-17 11:18:38 +00:00
ceriel
e09aac1b4a shifts do NOT set condition codes properly 1992-12-14 16:40:22 +00:00
ceriel
bc2744ca5c Several fixes: SDF was wrong, and shifts do NOT set contition codes properly 1992-12-14 16:37:35 +00:00
ceriel
2361e37811 Fix: used data from freed memory 1992-12-08 17:44:01 +00:00
ceriel
cb32d73c61 Fix in fef.s: handles infinity more graceful now 1992-12-08 17:26:41 +00:00
ceriel
f8232e51a3 Several changes for ANSI C 1992-12-04 09:36:54 +00:00
ceriel
7d34ba62a7 Fix: MkCoercion did not handle error_type 1992-11-20 13:37:49 +00:00
ceriel
e43e6b8100 Added M68030 MMU instructions 1992-11-19 18:19:55 +00:00
ceriel
ca4461dc4c Added LL_MAXTOKNO 1992-11-19 15:37:52 +00:00
ceriel
dfeffe5e95 Documented LL_MAXTOKNO 1992-11-19 15:37:04 +00:00
ceriel
17efc329f8 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
9f305dcfe1 Fixed bug in register initialization for offsets > 4096 1992-11-16 14:31:49 +00:00
ceriel
0de7277790 Fix 1.69 was partly wrong 1992-11-16 13:52:07 +00:00
ceriel
b6319e4d49 Yet another bug: null reference 1992-11-09 14:30:28 +00:00
ceriel
a829777e65 Fixed bug: divide by 0 1992-11-09 10:14:47 +00:00
ceriel
851efa7ffe Fixed error: removed space where it did not belong 1992-11-04 16:08:11 +00:00
ceriel
dc73ec5cbf declared loadbuf 1992-10-26 11:07:55 +00:00
ceriel
d9bd02fda6 Removed static buffer in gen_idf 1992-10-22 16:56:28 +00:00
ceriel
b3233bcaa0 Removed static buffer in gen_idf 1992-10-22 16:00:05 +00:00
ceriel
94638235bc Fixed bug: checking for multiple occurrences of same case label was wrong 1992-10-21 10:53:45 +00:00
ceriel
67d5d2d6c4 small fix: carry was not always clear before the 'sbc' 1992-10-16 15:43:46 +00:00
ceriel
50db0a3643 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
537cbd3d89 Fixed bug: REP resulted in 0xF2 instead of 0xF3 1992-10-12 17:25:15 +00:00
ceriel
248ca45fc0 Use 80386 SET instruction 1992-09-17 14:15:20 +00:00
ceriel
be227c5f88 Several fixes and addition of 80486 instructions 1992-09-16 16:10:30 +00:00
ceriel
94ec8e495e Fixed ARPL instruction 1992-09-07 14:13:11 +00:00
ceriel
0299ae9ad0 Improved installation mechanism 1992-09-07 13:21:34 +00:00
ceriel
cf32c08fd9 Fix previous change 1992-09-07 12:47:11 +00:00
ceriel
a708a52667 fix: DO_FAST was not set properly 1992-09-04 09:22:11 +00:00
ceriel
6896679afd Added some patterns involving DUPs 1992-09-01 11:16:20 +00:00
ceriel
af5ad235c9 Small change in register allocation criteria 1992-09-01 11:13:42 +00:00
ceriel
ee6d91a1d4 Fix for sparc description 1992-09-01 10:41:37 +00:00
ceriel
ac7dc5e21f Some minor modifications reflecting some changes in the peephole optimizer 1992-09-01 10:35:57 +00:00
ceriel
d18493b0ac Some minor modifications reflecting some changes in the peephole optimizer 1992-09-01 10:19:21 +00:00
ceriel
6f03cff48f Some minor modifications reflecting some changes in the peephole optimizer 1992-09-01 09:39:15 +00:00
ceriel
6b5abe7ab3 Disable multiplication optimizer when global optimizer is used 1992-08-31 16:47:40 +00:00
ceriel
da17ca5a9f Fixed bug: imulb was given wrong opcode 1992-08-31 15:23:59 +00:00
ceriel
28341f4478 tell users to call /bin/TakeAction instead of /TakeAction 1992-08-11 11:08:47 +00:00
ceriel
8cbf1bae34 Apparently forgot about the .so suffix 1992-07-28 08:28:48 +00:00
ceriel
3f54a9f044 Suffix is .so, not .s 1992-07-28 08:24:26 +00:00
ceriel
3699fe387e Always did limit_enquire 1992-07-27 14:32:53 +00:00
ceriel
52620e5829 Fix: always assumed that base type of bitfield had sizeof(int) 1992-07-27 13:28:49 +00:00
ceriel
0eb2e0dc80 Fix previous 'fix' 1992-07-23 11:51:39 +00:00
ceriel
15dce0c943 Fix in "bits_in_type" variable 1992-07-22 15:44:47 +00:00
ceriel
a56e1f25ff Was wrong when compiled with ANSI compiler 1992-07-22 13:49:15 +00:00
ceriel
016273ba99 And some more ... 1992-07-22 13:45:08 +00:00
ceriel
4adaf3165f Added some patterns 1992-07-22 13:37:27 +00:00
ceriel
87cf9446fe Fixed comparison functions: unsigned char! 1992-07-22 12:51:53 +00:00
ceriel
7c7475bb3a fixed lint complaint 1992-07-21 14:40:23 +00:00
ceriel
938bbb9ce8 Fix evaluation order problem 1992-07-21 11:23:24 +00:00
ceriel
be1d645adf Added mk_tokdefs 1992-07-13 10:38:31 +00:00
ceriel
83c2714982 Use UTIL_HOME instead of TARGET_HOME 1992-07-13 10:34:49 +00:00
ceriel
8ab530baef Fixed bug in UCFLAGS 1992-07-13 10:28:08 +00:00
ceriel
d58d691472 Fixed V7 and SYS_V utime problem 1992-07-10 15:22:01 +00:00
ceriel
80f5ecf637 strip did not truncate file 1992-07-09 14:02:43 +00:00
ceriel
0b063462ef Improved N_SOL handling 1992-07-02 11:15:18 +00:00
ceriel
d390121280 improved symbol table generation when source file has line directives 1992-07-02 10:23:46 +00:00
ceriel
2dde78c197 No system-calls from libem 1992-06-30 17:43:24 +00:00
ceriel
8474be6e52 Added EXIT, WRITE entry point 1992-06-30 17:42:09 +00:00
ceriel
5c5812e853 No system-calls from libem 1992-06-30 17:37:35 +00:00
ceriel
e860fa1974 Added EXIT, WRITE entry point 1992-06-30 17:36:49 +00:00
ceriel
8e4ee3ec1a Added EXIT, WRITE and BRK entry point 1992-06-30 17:06:10 +00:00
ceriel
ea624f82de No system-calls from libem 1992-06-30 16:51:19 +00:00
ceriel
50f571bf2b Added EXIT, WRITE and BRK entry point 1992-06-30 16:39:49 +00:00
ceriel
f86c403a53 No system-calls from libem 1992-06-30 16:39:47 +00:00
ceriel
d1b1defbb7 No system-calls from libem 1992-06-30 16:31:52 +00:00
ceriel
d0e54a11e5 Added EXIT, WRITE and BRK entry point 1992-06-30 16:30:56 +00:00
ceriel
d2ee282845 Added EXIT, WRITE and BRK entry point 1992-06-30 16:24:17 +00:00
ceriel
8b26f24e21 Added EXIT, WRITE and BRK entry point 1992-06-30 16:10:24 +00:00
ceriel
6f7d2bc2ee No system-calls from libem 1992-06-30 16:08:42 +00:00
ceriel
9aceb849ad Added BRK,WRITE and EXIT entry points 1992-06-30 16:05:33 +00:00
ceriel
0350c1898b Added EXIT, WRITE and BRK entry point 1992-06-30 16:04:38 +00:00
ceriel
8c8d1a7d9b No system-calls from libem 1992-06-30 15:58:35 +00:00
ceriel
9da8f28a47 Added EXIT, WRITE and BRK entry point 1992-06-30 15:52:07 +00:00
ceriel
4ef108f93e Added BRK and EXIT entry points 1992-06-30 15:51:31 +00:00
ceriel
3f3af2e01f Added EXIT and BRK entry point 1992-06-30 15:22:55 +00:00
ceriel
ab38665421 No system-calls from libem 1992-06-30 15:22:07 +00:00
ceriel
72b89fc1ad Added EXIT and BRK entry point 1992-06-30 15:11:49 +00:00
ceriel
d278d61a10 Added BRK entry point 1992-06-30 15:08:35 +00:00
ceriel
f6157ea21e Added EXIT and BRK entry point 1992-06-30 15:02:56 +00:00
ceriel
cee4d5de8b No system-calls from libem 1992-06-30 15:02:32 +00:00
ceriel
6823ce7c96 Added EXIT and BRK entry point 1992-06-30 11:40:12 +00:00
ceriel
2ae29707d2 No system-calls from libem 1992-06-30 11:39:12 +00:00
ceriel
bf2d5263cb No system-calls from libem 1992-06-30 11:19:33 +00:00
ceriel
0e46e6bc75 Added EXIT entry point 1992-06-30 11:18:17 +00:00
ceriel
45d0d9f68f Removed # in commands 1992-06-26 12:54:57 +00:00
ceriel
44a1c5620c Removed # in commands, changed mechanism for computing mem used 1992-06-26 12:47:07 +00:00
ceriel
50e8baa624 Removed # in commands, removed call to _cleanup() 1992-06-26 12:42:31 +00:00
ceriel
06e487359b Changed mechanism for coputing amount of memory used 1992-06-26 12:38:10 +00:00
ceriel
3ac24b282b Removed # in commands 1992-06-26 12:01:31 +00:00
ceriel
ebdbabcedd Removed # in commands, and a small fix in ch3mon.c 1992-06-26 11:57:17 +00:00
ceriel
2f2b6ccadf Some corrections 1992-06-26 11:54:22 +00:00
ceriel
aba0ed2f52 Made a declaration a little less suspicious, and removed # from proto.make 1992-06-25 17:41:51 +00:00
ceriel
92a6e5c426 Added declaration for st_alloc() 1992-06-25 11:32:30 +00:00
ceriel
ad4b0435bc Added rm_deps 1992-06-24 14:13:10 +00:00
ceriel
c76b5f436a bug fix: an illegal 'inc' was generated 1992-06-12 15:04:27 +00:00
ceriel
46f084d660 Fix: sometimes did not reserve space for local on a mes ms_gto 1992-06-12 09:46:43 +00:00
ceriel
09a80e9e13 Fixed checking of unary '*' 1992-06-12 09:03:07 +00:00
ceriel
b7b797674f Fixed typo 1992-06-09 11:23:39 +00:00
ceriel
1de983200b Fixed bug in '#ifdef FALSE || 1 (garbage) 1992-05-26 18:09:11 +00:00
ceriel
2cb19d3a30 Corrected problem in reading symbol table: t14=15, t15=16 did not work properly 1992-05-20 10:57:42 +00:00
ceriel
6def6e1bea Corrected: end_em is in lib/m68k2, not in lib/minixST 1992-05-20 10:54:40 +00:00
ceriel
b8c96f32bd Improved symbol table for grind 1992-05-20 10:54:28 +00:00
ceriel
fd6e25e50f Restored exit.c and cleanup.c 1992-05-18 16:10:18 +00:00
ceriel
2fbea53939 Restored exit.c and cleanup.c 1992-05-18 16:01:16 +00:00
ceriel
3d52b0d475 Added missing files 1992-05-15 13:55:14 +00:00
ceriel
5362ef6f20 Filename check now only for implementation modules 1992-05-15 13:53:36 +00:00
ceriel
4f11d0433d updated catchsig.s 1992-05-15 13:31:19 +00:00
ceriel
60edf5b3ea Added some missing files 1992-05-15 13:14:55 +00:00
ceriel
f252e26ab4 Fix in previous added check 1992-05-11 16:15:28 +00:00
ceriel
763c607bd8 Added filename check 1992-05-11 11:52:22 +00:00
ceriel
2da0d6f886 Fixed bug: temporary local was used more than once 1992-05-11 11:30:04 +00:00
ceriel
f4cc095863 Cardinal checking sometimes produced wrong error message 1992-05-11 09:50:21 +00:00
ceriel
bc42e31518 Fixed problem with repl_mul(); it was called far too often 1992-04-24 12:39:58 +00:00
ceriel
6640944a51 Corrected limit_impl for installation of interpreters 1992-04-23 16:10:13 +00:00
ceriel
377cd17425 Improved fe 1992-04-23 13:28:28 +00:00
ceriel
1e7ffe6a0f em.c still used lib instead of lib.bin 1992-04-23 13:02:37 +00:00
ceriel
8c9f885817 Fixed proto.make 1992-04-23 12:55:34 +00:00
ceriel
fe0a904894 Corrected manual pages 1992-04-23 12:53:03 +00:00
ceriel
47c7e6a43d Fixed bug in initalization expression handling 1992-04-21 09:54:32 +00:00
ceriel
5d9c7f4d9b Fixed bug: old-style float parameters resulted in wrong addresses for following parameters 1992-04-16 16:29:35 +00:00
ceriel
b4f6c3fa00 Documented -gdb flag 1992-04-15 10:24:15 +00:00
ceriel
276c2ec750 Added -gdb flag 1992-04-15 10:21:16 +00:00
ceriel
60c44af82b Fixed problem with array's of incomplete types 1992-04-14 13:30:37 +00:00
ceriel
0571a16bcb Allow for machine-dependent options 1992-03-27 17:38:54 +00:00
ceriel
b2cca56e16 Accept -gdb option 1992-03-27 17:36:49 +00:00
ceriel
ea2e95a627 Allow letters after the -g flag (for -gdb) 1992-03-27 17:33:19 +00:00
ceriel
8005ef1672 improved assert macro 1992-03-20 13:43:10 +00:00
ceriel
a0aa85fa4e fixed linting 1992-03-02 16:47:03 +00:00
ceriel
d233bcfa50 Fixed linting 1992-03-02 14:55:47 +00:00
ceriel
0d2c7a318b Fixed linting 1992-03-02 14:46:03 +00:00
ceriel
661597162d Bug fix in old-style/new-style mixing 1992-03-02 14:37:37 +00:00
ceriel
a8b2fae0da Fixed CFU implementation 1992-03-02 11:52:09 +00:00
ceriel
a0acff4f4c minor change: give anonymous struct a name 1992-02-26 15:46:44 +00:00
ceriel
c2157b66ef corrected the making of make_macros 1992-02-26 15:32:39 +00:00
ceriel
46540c17c8 corrected the making of make_macros 1992-02-26 15:10:50 +00:00
ceriel
0a0cdb75a4 corrected the making of make_macros 1992-02-26 14:44:00 +00:00
ceriel
629a5dcde9 corrected the making of make_macros 1992-02-26 14:24:26 +00:00
ceriel
ffe7d743a4 corrected the making of make_macros 1992-02-26 14:17:32 +00:00
ceriel
090cbe8ddd corrected the making of make_macros 1992-02-26 13:51:27 +00:00
ceriel
a6a1b1d3d0 initialize inctable better 1992-02-26 13:38:34 +00:00
ceriel
8e99b149fc Fix in DEFPATH mechanism, improved proto.make 1992-02-26 13:35:06 +00:00
ceriel
1263ef9731 Fix in DEFPATH mechanism, improved proto.make 1992-02-26 13:10:48 +00:00
ceriel
baf10676a3 Fix proto.make and initialize inctable better 1992-02-25 11:07:45 +00:00
ceriel
0bfa4970c5 Added i386 description 1992-02-11 16:59:43 +00:00
ceriel
81ec28ccb9 Bug fix: INC/DEC evaluated argument twice(!) 1992-01-31 13:44:57 +00:00
ceriel
f3e5c3032f differing characters should be left untouched 1992-01-24 13:05:30 +00:00
ceriel
646bd0e51f small fix for compatibility with different make's 1992-01-22 11:25:52 +00:00
ceriel
813ca898a7 Bug fix: generated a 'push dl', which does not exist 1992-01-13 10:31:23 +00:00
ceriel
f2e1579f36 Updates for 5th distribution 1991-12-19 10:32:01 +00:00
ceriel
6e48c50a6c Put malloc.c after malloc in .distr file, otherwise it cannot be made 1991-12-19 10:22:15 +00:00
ceriel
697dc9b1de Added stab.c 1991-12-19 10:19:31 +00:00
ceriel
56ab70f21f Added dbsym.c 1991-12-19 09:30:53 +00:00
ceriel
d0179d6790 do not install peephole optimizer libs when not installing fast compilers 1991-12-18 17:26:52 +00:00
ceriel
5ccd830347 replaced atol definition 1991-12-18 16:15:18 +00:00
ceriel
952bd37627 removed atol reference 1991-12-18 16:01:44 +00:00
ceriel
e35f11f208 Made installation mechanism more portable 1991-12-18 14:51:08 +00:00
ceriel
7f4c0bea38 Added some more info about i386 version 1991-12-18 14:39:14 +00:00
ceriel
03022ad7dd Accomodate symbolic debugger info 1991-12-18 14:38:57 +00:00
ceriel
47a6b4b526 Ported to 80386 (problem: different read() semantics) 1991-12-18 14:36:26 +00:00
ceriel
12149f5858 Added pop_push.h 1991-12-18 09:47:19 +00:00
ceriel
70b535c368 No longer use ushort 1991-12-18 09:45:26 +00:00
ceriel
b23ed92d7e Use cp_dir to copy directories 1991-12-18 09:44:10 +00:00
ceriel
e00c0aa591 Added debugger library for -g 1991-12-18 09:42:04 +00:00
ceriel
38608cfa32 Fix: produced dependencies were wrong 1991-12-18 09:40:23 +00:00
ceriel
eb3ce1f70f Fixed typo in previous fix 1991-12-18 09:34:52 +00:00
ceriel
3c338b9a3f Fixed typo 1991-12-18 09:22:13 +00:00
ceriel
de758867f8 Fixed typo in previous fix 1991-12-18 09:14:25 +00:00
ceriel
168634cd0b Do not use '#endif/#else xxx'; it is not allowed for ANSI C 1991-12-17 15:49:18 +00:00
ceriel
df1ed9426d Do not use '#endif/#else xxx'; it is not allowed for ANSI C 1991-12-17 15:28:58 +00:00
ceriel
53c4951b29 Do not use '#endif/#else xxx'; it is not allowed for ANSI C 1991-12-17 15:05:43 +00:00
ceriel
fa0bee0b26 Do not use '#endif/#else xxx'; it is not allowed for ANSI C 1991-12-17 14:36:35 +00:00
ceriel
8482d2c110 Do not use '#endif/#else xxx'; it is not allowed for ANSI C 1991-12-17 14:27:24 +00:00
ceriel
929a0025ca Do not use '#endif/#else xxx'; it is not allowed for ANSI C 1991-12-17 14:11:15 +00:00
ceriel
a38be6605e Do not use '#endif/#else xxx'; it is not allowed for ANSI C 1991-12-17 13:12:22 +00:00
ceriel
abb411daac Do not use '#endif xxx'; it is not allowed for ANSI C 1991-12-17 11:41:12 +00:00
ceriel
c0ba3fbe2d Do not use '#endif xxx'; it is not allowed for ANSI C 1991-12-17 11:33:08 +00:00
ceriel
f442ba9141 Fix to previous fix 1991-12-17 11:23:09 +00:00
ceriel
30de1bcf3f 'int x[];' is a valid compilation unit! See 3.7.2 of ANSI 1991-12-17 10:18:41 +00:00
ceriel
a2a177de54 Added errno.h 1991-12-16 16:54:12 +00:00
ceriel
f30ffd415c Changed order in ceg/list 1991-12-16 16:06:29 +00:00
ceriel
c6f6df87ae Improved installation of make_ files 1991-12-16 15:35:14 +00:00
ceriel
0c59e2e12d Prevent name clashes with sys/types.h on system V 1991-12-16 15:24:24 +00:00
ceriel
80b250950e Do not use '#undef aap xxx'; it is not allowed for ANSI C 1991-12-16 14:34:06 +00:00
ceriel
019590a290 Do not use '#undef aap xxx'; it is not allowed for ANSI C 1991-12-16 14:15:46 +00:00
ceriel
950e26815e Fix '#undef' handling 1991-12-16 14:06:09 +00:00
ceriel
dc44eba062 Do not use '#undef aap xxx'; it is not allowed for ANSI C 1991-12-16 13:45:18 +00:00
ceriel
d20534521e be consistent in naming of itemtab.h 1991-12-12 16:02:59 +00:00
ceriel
8394d5a4e1 Added 'extern' 1991-12-12 16:01:46 +00:00
ceriel
b53facde73 removed macro defining ushort; gave clash with /usr/include/sys/types.h 1991-12-12 14:15:14 +00:00
ceriel
8e82c748ad Fixed comments 1991-12-12 14:12:36 +00:00
ceriel
b0e631d402 Fixed comment 1991-12-12 13:01:00 +00:00
ceriel
fc1b4d3ddc Fixed comments 1991-12-12 12:50:42 +00:00
ceriel
2c076a2a26 Some bug fixes 1991-12-04 16:28:37 +00:00
ceriel
16b930089a Added target optimozer 1991-12-04 14:27:11 +00:00
ceriel
a93813c1f6 Made acceptable for our ANSI C compiler 1991-12-03 11:03:58 +00:00
ceriel
9e2361fc8f bug fix in generating prototypes 1991-12-03 10:56:40 +00:00
ceriel
4bb6c5c4e8 Changed identifier name to make it acceptable for our ANSI C compiler 1991-12-03 10:52:03 +00:00
ceriel
40e580cae6 Install yacc before installing flex 1991-12-03 10:50:03 +00:00
ceriel
d46703ea4d Minor mod to prevent compiler warning 1991-12-03 10:48:57 +00:00
ceriel
5109b16ab2 Several changes 1991-12-03 09:44:01 +00:00
ceriel
0deaae479b Updated LIST 1991-12-03 09:34:29 +00:00
ceriel
b5ab00c143 Take sys/types.h and sys/stat.h from old C library 1991-12-02 16:43:08 +00:00
ceriel
16e6b51cba upgraded 1991-12-02 16:42:31 +00:00
ceriel
70ff99e4d0 Updated 1991-12-02 15:55:49 +00:00
ceriel
68bee1244d removed sgtty.h; is taken from _tail_cc 1991-12-02 15:54:26 +00:00
ceriel
d162f3edb0 Made acceptable for our ANSI C compiler 1991-12-02 15:30:28 +00:00
ceriel
c36ae7020f Fixed for ANSI-C part 1991-12-02 15:25:01 +00:00
ceriel
83ba395e03 Don't use calloc and our own malloc combined 1991-12-02 14:44:20 +00:00
ceriel
f61ddc4926 Made acceptable for our ANSI C compiler 1991-12-02 13:55:09 +00:00
ceriel
3388e4deb6 Several fixes for ANSI 1991-12-02 13:43:59 +00:00
ceriel
9248d14195 l_states.c used 'const' as an identifier; unacceptable for ANSI-C! 1991-12-02 13:09:15 +00:00
ceriel
a01a4a9fd2 Fixed typo 1991-12-02 12:01:04 +00:00
ceriel
7ec968fb03 Always also produce ANSI-C, depending on __STDC__ and __cplusplus 1991-12-02 09:15:04 +00:00
ceriel
ed4afc99f6 minor mods to parameters in grammar 1991-11-29 14:11:31 +00:00
ceriel
649b7d94f0 minor mods to parameters in grammar 1991-11-29 13:57:24 +00:00
ceriel
45751d25ed minor modification 1991-11-29 13:33:12 +00:00
ceriel
ec47c06ad7 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
244c1e5a01 Changed error messages mechanism 1991-11-27 16:34:12 +00:00
ceriel
670b7264ad Deleted comment that was no longer applicable 1991-11-27 14:52:17 +00:00
ceriel
bf0caa6f32 Changed error-messages mechanism 1991-11-27 13:40:52 +00:00
ceriel
505494c560 Improved for lint 1991-11-27 13:38:51 +00:00
ceriel
35260bae58 produce ANSI C under -a option 1991-11-26 15:38:41 +00:00
ceriel
f4ecd50601 made more acceptable for ANSI C 1991-11-26 14:48:27 +00:00
ceriel
89887ef6b0 made more acceptable for ANSI C 1991-11-26 14:39:52 +00:00
ceriel
58251a16dc Several modifications and additions 1991-11-25 16:54:25 +00:00
ceriel
5fdefde095 Some more fine-tuning of the installation mechanism 1991-11-25 16:47:36 +00:00
ceriel
c6931b04e7 Some minor changes 1991-11-25 09:52:08 +00:00
ceriel
5a2df3d011 lib --> lib.bin 1991-11-25 09:51:57 +00:00
ceriel
0d6ddc094b lib/em_data.a --> lib.bin/em_data.a 1991-11-25 09:49:27 +00:00
ceriel
ca89734a36 Another minor change in manual page 1991-11-25 09:41:30 +00:00
ceriel
e0956f63db Minor change in manual page 1991-11-25 09:39:31 +00:00
ceriel
967b13fac5 Added target optimizer 1991-11-23 15:14:32 +00:00
ceriel
047648846a Added 1991-11-23 15:04:01 +00:00
ceriel
698130c4e2 removed makedepend 1991-11-23 12:43:11 +00:00
ceriel
3a2211512d Removed makedepend 1991-11-23 12:26:02 +00:00
ceriel
aa702fa855 Bug fix in multiplication optimization 1991-11-23 12:17:18 +00:00
ceriel
6fa0e5bfb0 Changed copyright notice, made installation less dependent on ACK 1991-11-23 10:41:43 +00:00
ceriel
61fad3018a Added pics directory to .distr 1991-11-23 09:35:36 +00:00
ceriel
3db2add75c Changed action names to reflect action taken 1991-11-22 13:55:56 +00:00
ceriel
2b6f5b9b8d Avoid use of 'you' 1991-11-22 13:18:57 +00:00
ceriel
fad1c30409 Avoid informal use of 'you' 1991-11-22 11:10:09 +00:00
ceriel
2291dff954 updated manual page 1991-11-20 16:45:25 +00:00
ceriel
4b167ab2ba Added MACHOPT_F 1991-11-20 16:07:33 +00:00
ceriel
17352b8b8d Added code to optimize multiplies with constants 1991-11-20 15:53:11 +00:00
ceriel
aa0b70d921 Added MACHOPT_F 1991-11-20 15:52:27 +00:00
ceriel
ca72abbf26 Avoid informal usage of 'you' 1991-11-19 17:25:02 +00:00
ceriel
8f0ef636ab Avoid informal usage of 'you', updated installation manual 1991-11-19 13:44:09 +00:00
ceriel
78ca80f4d5 Avoid informal usage of 'you' 1991-11-19 13:37:20 +00:00
ceriel
7aa5a39735 Error message listed was never given 1991-11-19 13:24:55 +00:00
ceriel
24cab5420a Avoid informal usage of 'you' 1991-11-19 13:19:02 +00:00
ceriel
92d80c915b Avoid informal usage of 'you' 1991-11-19 13:09:50 +00:00
ceriel
a0f00e0b2b Made installation of fast compilers optional, removed own version of 'echo' 1991-11-18 09:53:58 +00:00
ceriel
be802650ca Added labeldef stuff 1991-11-18 09:51:35 +00:00
ceriel
e9a6af1a42 anm also works on aal archives now 1991-11-18 09:46:53 +00:00
ceriel
839165633b Fixed manual page 1991-11-15 14:41:41 +00:00
ceriel
9c507cc10a Updated ack manual page 1991-11-15 13:37:36 +00:00
ceriel
1af5c80b1b Also preprocess when user explicitly askes for it through -c.i 1991-11-15 12:50:13 +00:00
ceriel
64ce6b0ef4 Fixed fef.s: did not work for unnormalized numbers 1991-11-15 09:47:44 +00:00
ceriel
c3de1a9bea Fixed NOP 1991-11-14 15:53:05 +00:00
ceriel
9cfb64d5c2 Bug fix in LOC LOC CII ZEQ/ZNE pattern 1991-11-14 13:20:55 +00:00
ceriel
13a0dec2f6 Many changes in installation mechanism 1991-11-14 09:35:36 +00:00
ceriel
36de35bcd2 Accomodate ANSI C compiler better 1991-11-13 17:07:30 +00:00
ceriel
099fe7a4c2 Added sections 1991-11-13 16:57:40 +00:00
ceriel
ef9b3098de Also install ce and libce 1991-11-13 16:56:48 +00:00
ceriel
7da9d47e5a Also install libce 1991-11-13 16:56:12 +00:00
ceriel
b491906775 updated 1991-11-13 16:55:20 +00:00
ceriel
ac51febc8b Added dbsym and updated output.c 1991-11-13 16:54:59 +00:00
ceriel
de620e1fd5 Added 1991-11-13 16:53:49 +00:00
ceriel
881240fb3c Removed vars.s 1991-11-13 15:03:01 +00:00
ceriel
fe7a55d227 Added sys.s 1991-11-13 14:33:10 +00:00
ceriel
e19f33f3de Added C_db_sline 1991-11-11 18:08:14 +00:00
ceriel
46ecc71373 Some more fixes 1991-11-11 18:03:52 +00:00
ceriel
91fec7991e Accomodate old C compiler, don't call ack(1): too slow for fcc 1991-11-11 13:16:23 +00:00
ceriel
510c0ce854 Added 1991-11-11 13:14:08 +00:00
ceriel
76ab08f62c Added old C compiler, renamed ansi C one 1991-11-11 13:13:09 +00:00
ceriel
afcbb62724 Fixed 1991-11-11 09:40:06 +00:00
ceriel
7a57ef4419 Added dbsymtab.h 1991-11-11 09:39:05 +00:00
ceriel
d8190353cc Added libdb 1991-11-08 15:45:47 +00:00
ceriel
7d0a89d420 Added 1991-11-08 15:44:30 +00:00
ceriel
3015fc2542 Added grind support 1991-11-08 15:12:28 +00:00
ceriel
97a7fcbca3 A few fixes 1991-11-07 11:36:09 +00:00
ceriel
b9c3a99783 '\v' is not a K&R character 1991-11-07 09:53:11 +00:00
ceriel
eac501941f '\v' is not a K&R character 1991-11-07 09:45:09 +00:00
ceriel
650a132457 Fixed typo 1991-11-07 09:39:30 +00:00
ceriel
17014578be Also remove scan.c on cleanup 1991-11-07 09:35:35 +00:00
ceriel
791246001f '\v' is not a K&R character 1991-11-07 09:34:02 +00:00
ceriel
2e58c2438f '\v' is not K&R C 1991-11-06 14:36:25 +00:00
ceriel
4e99d889ff Changed manual page installation mechanism 1991-11-05 15:31:14 +00:00
ceriel
b3f07ce236 Added mk_manpage 1991-11-04 16:51:48 +00:00
ceriel
4affc39a20 Replaced Makefile by proto.make 1991-11-04 11:47:15 +00:00
ceriel
7cff0f9d8a code expanders now support grind 1991-11-01 11:55:34 +00:00
ceriel
3da953fa85 Added grind support 1991-11-01 11:53:42 +00:00
ceriel
e4168af8fb Added C_db_sline for grind 1991-11-01 11:47:41 +00:00
ceriel
03e1bea097 Added some tests and changed ordering mechanism 1991-11-01 10:37:26 +00:00
ceriel
7c479cf325 Fixed error in debugger support for enumeration constants 1991-11-01 10:17:30 +00:00
ceriel
ab6d563a7b Fixes involving floating point constants and debugger support 1991-11-01 10:15:15 +00:00
ceriel
44cc075183 Added 1991-11-01 09:43:36 +00:00
ceriel
0633c900a8 Some fixes to ashow, and also install it 1991-10-31 11:04:02 +00:00
ceriel
0b32f6d32f prevent null reference 1991-10-31 10:01:34 +00:00
ceriel
46b0f8ea19 Fixed Email addresses 1991-10-30 18:21:52 +00:00
ceriel
1558096356 Bug fix in structure assignments 1991-10-29 15:57:26 +00:00
ceriel
bd65353ab5 Added -L option for C compilations 1991-10-29 15:52:40 +00:00
ceriel
c28c395af8 Change of directory name 1991-10-29 09:27:09 +00:00
ceriel
4417f0ea8f Several corrections 1991-10-29 09:26:46 +00:00
ceriel
35dc8e74d0 Improved lint entry 1991-10-29 09:26:01 +00:00
ceriel
d747702ae9 Corrected lintlib entry 1991-10-29 09:24:48 +00:00
ceriel
60b9ebe0d3 Only install ACK-object producing part 1991-10-29 09:19:57 +00:00
ceriel
cfe45c4e2a Deal with CASE a OF 10 .. MAX(CARDINAL) ... and things like that 1991-10-29 09:18:46 +00:00
ceriel
dd99f952d5 Fixes to local label stuff 1991-10-28 17:59:57 +00:00
ceriel
45afd0804b Added 1991-10-25 18:23:32 +00:00
ceriel
035d9f7624 No unsigned long arithmetic is default 1991-10-25 16:03:37 +00:00
ceriel
13da34032e On i386 systems, make code expander lib 1991-10-25 15:46:30 +00:00
ceriel
7213f2527b Pass COPTIONS, not CFLAGS 1991-10-25 15:23:01 +00:00
ceriel
584584a5ba protect against multiple inclusion 1991-10-25 14:44:21 +00:00
ceriel
69026d6c17 Bug fix: used field of freed struct 1991-10-25 14:27:59 +00:00
ceriel
aab21f875e Only install machine-independent part when required 1991-10-25 11:44:18 +00:00
ceriel
96565df518 Some more typedefs 1991-10-25 11:39:06 +00:00
ceriel
d03d8da282 lib --> lib.bin in ego description 1991-10-25 11:31:20 +00:00
ceriel
49a64df069 do not depend on sys/wait.h, it does not always exist 1991-10-25 11:18:29 +00:00
ceriel
bdebaa5059 Do not depend on include files too much 1991-10-25 11:16:56 +00:00
ceriel
6333faba3c Bug fix in padding code 1991-10-25 11:15:09 +00:00
ceriel
84e6e1a10b Several fixes 1991-10-25 11:13:43 +00:00
ceriel
ae063bd74f Added some more types 1991-10-25 11:10:21 +00:00
ceriel
208b9b54e7 cv was made twice 1991-10-25 09:32:18 +00:00
ceriel
31381203bd Some fixes 1991-10-24 15:29:02 +00:00
ceriel
6cc9665025 Fix in proto.make 1991-10-22 14:35:13 +00:00
ceriel
4daf59e3d2 Made more portable by not depending on a.out.h file 1991-10-22 13:31:36 +00:00
ceriel
b117ac89c2 improved clean entry 1991-10-22 10:56:06 +00:00
ceriel
20c2bb2b79 fixes 1991-10-22 10:55:19 +00:00
ceriel
031393529f Added vprintf etc 1991-10-22 09:50:57 +00:00
ceriel
e72aafb165 Added rule to compile as.c 1991-10-22 09:18:32 +00:00
ceriel
0c8514a9ed NSIG is not always defined 1991-10-22 09:07:31 +00:00
ceriel
825941de76 Define NSIG 1991-10-22 09:05:15 +00:00
ceriel
4d82a1b67e Do not define _end; causes name clashes 1991-10-22 09:01:09 +00:00
ceriel
76fb50807b Bug fix: used wrong option letter 1991-10-21 16:38:27 +00:00
ceriel
1bde03203a Fixed typo 1991-10-21 14:17:32 +00:00
ceriel
615e30bdd4 Added compilation rule for scan.c 1991-10-21 14:13:29 +00:00
ceriel
51f8a3b798 cleanup better 1991-10-21 13:59:48 +00:00
ceriel
e8d165a4a6 cleanup better 1991-10-21 13:26:50 +00:00
ceriel
a7760a99bb cleanup better 1991-10-21 13:19:41 +00:00
ceriel
b4ba1a6aca Allow mk_config to run over existing tree, make ack_sys executable 1991-10-18 12:00:42 +00:00
ceriel
f58f97e731 Do not perform actions if NoAction file is present 1991-10-18 12:00:17 +00:00
ceriel
80293fbc82 Make target writable 1991-10-18 10:07:38 +00:00
ceriel
b61f465b1f A few fixes 1991-10-18 10:02:44 +00:00
ceriel
96893d0092 Make targets writable 1991-10-18 09:58:52 +00:00
ceriel
948711ae6f Some fixes 1991-10-18 09:47:46 +00:00
ceriel
e7c3112124 Make files writable 1991-10-17 21:17:17 +00:00
ceriel
94b62ac792 Fixed typo 1991-10-17 16:36:54 +00:00
ceriel
82bad86ee6 a few minor fixes 1991-10-17 13:27:53 +00:00
ceriel
237fb752e5 Use ASAR instead of AR 1991-10-16 17:57:53 +00:00
ceriel
19a47cfa52 qsort arg was wrong for ANSI C 1991-10-16 16:08:27 +00:00
ceriel
7d2b151fde Additions for 5th distribution 1991-10-16 13:36:54 +00:00
ceriel
5dd19fa6e7 Added Action.lint 1991-10-16 13:36:15 +00:00
ceriel
bf01ff880d Adapted for 5th distribution 1991-10-16 13:33:50 +00:00
ceriel
dc61380dc0 many changes 1991-10-16 13:33:38 +00:00
ceriel
7987f04e22 Updated 1991-10-16 13:28:48 +00:00
ceriel
147bb196b2 generate Version.c 1991-10-16 13:07:28 +00:00
ceriel
5073c18d95 5th distribution now! 1991-10-16 11:54:35 +00:00
ceriel
68b728a4e3 fixed lintlib entry 1991-10-16 11:42:25 +00:00
ceriel
e98e8717be Return values 1991-10-16 11:41:33 +00:00
ceriel
425ddb3ff2 New installation mechanism 1991-10-15 16:02:38 +00:00
ceriel
dbcbe25b51 Added cmp and clean entries 1991-10-15 09:31:01 +00:00
ceriel
4991f0027a Only define NULL when not defined yet 1991-10-15 09:25:44 +00:00
ceriel
6debaf0e5c Removed some files that are no longer needed 1991-10-14 15:17:40 +00:00
ceriel
d7964e75d7 Added clean entry 1991-10-14 13:37:43 +00:00
ceriel
7c167d29d2 Added some patterns 1991-10-14 13:04:29 +00:00
ceriel
43248fb244 improved installation mechanism 1991-10-14 11:39:24 +00:00
ceriel
33ec8e07ed improved installation mechanism 1991-10-14 09:38:04 +00:00
ceriel
da6ac05990 Updated 1991-10-14 09:33:55 +00:00
ceriel
20a7f7b188 improved installation mechanism 1991-10-14 09:18:33 +00:00
ceriel
13327f2aec Corrected 1991-10-14 09:17:38 +00:00
ceriel
704bdf8e14 corrected installation mechanism 1991-10-14 09:13:40 +00:00
ceriel
1423d694f8 Corrected installation mechanism 1991-10-14 09:12:13 +00:00
ceriel
57d44ec4bb Added errno.h 1991-10-14 09:05:56 +00:00
ceriel
2997281247 Changed type to int 1991-10-14 08:56:56 +00:00
ceriel
0b5810d83a Removed some strange lines 1991-10-11 09:22:25 +00:00
ceriel
bade2375b5 Added proto.libf77 1991-10-10 15:00:43 +00:00
ceriel
66e3a001cc Added scripts 1991-10-10 14:39:33 +00:00
ceriel
64eacb4c9f Do not install lintlib by default: maybe lint is not installed yet 1991-10-09 19:12:52 +00:00
ceriel
18897487a9 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
6286b4b1a9 Fixed manual page 1991-10-09 16:05:24 +00:00
ceriel
c407a7c642 include local.h from the config dir 1991-10-09 15:49:20 +00:00
ceriel
df3ae6c2fb Updated 1991-10-08 10:04:53 +00:00
ceriel
c5d1752d7f Define NFS 1991-10-08 09:45:12 +00:00
ceriel
023b747e63 Added 1991-10-08 09:23:46 +00:00
ceriel
8a44c33e9f Added fortran 1991-10-07 17:00:59 +00:00
ceriel
9cb2aa3286 Added 1991-10-07 16:59:33 +00:00
ceriel
0f16a0f6f8 Added 1991-10-07 16:35:03 +00:00
ceriel
98b019c735 Added fortran 1991-10-07 15:29:25 +00:00
ceriel
8e9b398e9f Use int instead of gid_t and/or uid_t 1991-10-07 13:37:20 +00:00
ceriel
69ead2f15f More additions 1991-10-04 17:37:32 +00:00
ceriel
54d326e1ba Own fcntl.h 1991-10-04 17:37:22 +00:00
ceriel
9ede34412c Added 1991-10-04 14:34:29 +00:00
ceriel
f9b38448fd own time.h 1991-10-04 14:06:34 +00:00
ceriel
7e091602a7 Added time.h 1991-10-04 14:04:30 +00:00
ceriel
0d055f2272 Added some patterns 1991-10-04 11:10:07 +00:00
ceriel
edf43fdf81 Several fixes 1991-10-04 10:38:53 +00:00
ceriel
bbe1e3ffdc only check for positive powers of 2 1991-10-04 10:37:06 +00:00
ceriel
e07baf28c1 Fixes 1991-10-03 15:57:23 +00:00
ceriel
4e0a99ef38 Fixes and additions 1991-10-03 15:45:13 +00:00
ceriel
b4c5125c32 Fixed wrong constant used for CUF 1991-10-02 15:27:54 +00:00
ceriel
182c7ebd70 Fixed flt_ar2flt.c 1991-10-02 15:20:22 +00:00
ceriel
24a353f3e1 Did shift of 32. Not allowed 1991-10-02 13:41:33 +00:00
ceriel
2b7aae3b44 Added support for volatile 1991-10-02 13:03:31 +00:00
ceriel
ed1a07a874 Fixed ADF 4 error 1991-10-02 12:36:36 +00:00
ceriel
9381b34dfa Fix: sometimes generated illegal register messages for parameters 1991-10-02 12:00:05 +00:00
ceriel
a28c551213 ip_spec.h is moved 1991-10-01 17:37:21 +00:00
ceriel
46964d9dfd Additions 1991-10-01 16:57:53 +00:00
ceriel
0784732f3d Adapted for distribution 1991-10-01 16:44:14 +00:00
ceriel
94ba66caa8 Distribute proto.make, not Makefile 1991-10-01 16:31:08 +00:00
ceriel
fe6cddde09 Moved ip_spec.h to h directory 1991-10-01 16:24:49 +00:00
ceriel
6632781f95 Added ip_spec.h 1991-10-01 16:20:38 +00:00
ceriel
9b68f0e322 Added include directories 1991-10-01 14:59:33 +00:00
ceriel
3777699ed4 Updated c.llb 1991-10-01 13:59:16 +00:00
ceriel
7551b8e83a Changes to manual page 1991-10-01 12:18:39 +00:00
ceriel
a329780d73 small change to manual page 1991-10-01 11:14:24 +00:00
ceriel
daa7aef683 Removed LintPars 1991-10-01 09:54:42 +00:00
ceriel
7cab2ba9d9 New additions 1991-10-01 09:27:44 +00:00
ceriel
c5275f3786 Added 1991-09-30 17:58:00 +00:00
ceriel
eba26ad2e6 Added lint 1991-09-30 17:54:44 +00:00
ceriel
b0f64baa8b Added lint 1991-09-30 16:58:12 +00:00
ceriel
7092d8138e Added -ansi flag to lint.1 1991-09-30 16:55:35 +00:00
ceriel
d202b80bcf Adapted for ACK distribution 1991-09-30 16:53:21 +00:00
ceriel
ffa0f837a1 Added 1991-09-30 16:51:49 +00:00
ceriel
25cf41d9b7 Distribute malloc.c to improve lint library generation 1991-09-30 16:36:17 +00:00
ceriel
e7b4e265d4 fixed some lint complaints 1991-09-30 16:24:45 +00:00
ceriel
8e572d417b fixed lint complaints 1991-09-30 16:12:08 +00:00
ceriel
8d25f69e77 Fix: sometimes crashed on initializers for unknown types 1991-09-30 15:00:46 +00:00
ceriel
3e17bc4188 Hidden name 'not_implemented' 1991-09-30 09:26:09 +00:00
ceriel
b3780be39c Added debugger support library 1991-09-30 09:24:11 +00:00
ceriel
a9bcc007ad Added sparc docs 1991-09-27 17:08:48 +00:00
ceriel
fb51183da2 Added 1991-09-27 16:19:24 +00:00
ceriel
63c9fea5c2 Hidden some names, fixed STR 1 bug, use stdio instead of print module 1991-09-27 15:02:33 +00:00
ceriel
6a02543de2 Use stdio instead of print module 1991-09-27 14:58:31 +00:00
ceriel
3a0c4d8704 Adapted for SPARC. LBRAC not reliable 1991-09-27 14:58:30 +00:00
ceriel
3048dc72a7 Added __sun define 1991-09-27 14:57:38 +00:00
ceriel
39f7f119d7 Added support for grind 1991-09-27 14:55:04 +00:00
ceriel
7520aec9d4 Made to work for SPARC 1991-09-27 14:51:43 +00:00
ceriel
90279a0a36 Also include back.h 1991-09-26 12:55:43 +00:00
ceriel
5e3c1e94b0 Fixed typo 1991-09-25 15:39:43 +00:00
ceriel
52a38e47ca Fixed calls to ioctl; sizes of structs are different in ACK 1991-09-25 15:35:57 +00:00
ceriel
157236bdb0 small change to get a better LB 1991-09-25 15:35:03 +00:00
ceriel
8487ae3d76 Made to work with interpreter 1991-09-25 15:04:05 +00:00
ceriel
ce1dba9cac Fixed illegal array descriptors 1991-09-25 15:04:02 +00:00
ceriel
aa24841c87 removed tst.ocm; did not compile 1991-09-25 15:03:05 +00:00
ceriel
b40fd1c8d9 Several fixes 1991-09-25 10:44:30 +00:00
ceriel
c17ce93d9e Several fixes 1991-09-25 10:30:45 +00:00
ceriel
8661cdb40b Added {} around generated for-loop 1991-09-25 10:29:00 +00:00
ceriel
bc0d2e7d69 Fixed problem in gen_str.c: back-slash escape 1991-09-25 10:28:06 +00:00
ceriel
cb4e69cba9 Added fef,fif and fixes 1991-09-25 09:17:14 +00:00
ceriel
7a725ce340 Added libend 1991-09-25 09:16:08 +00:00
ceriel
8baee004e8 Added mes 11 1991-09-25 09:15:22 +00:00
ceriel
3eed94de5b Added 1991-09-25 09:15:10 +00:00
ceriel
a78a8b6038 Gave coroutine more stack space 1991-09-25 09:14:25 +00:00
ceriel
cae8164263 Added _dvi and _dvil 1991-09-25 09:14:08 +00:00
ceriel
567a619003 Added FLOATS macro and fixed array bound error 1991-09-25 09:11:14 +00:00
ceriel
1acd31de45 Added typedef for sigset_t 1991-09-25 09:07:28 +00:00
ceriel
9225ee6a80 Fixed for Sparc 1991-09-24 17:48:37 +00:00
ceriel
9ec49cb6d9 Avoid DVI instruction. Use library call instead 1991-09-24 10:45:43 +00:00
ceriel
4ecf088423 Added 1991-09-23 13:44:18 +00:00
ceriel
0b83bf33e8 Added 1991-09-20 18:14:05 +00:00
ceriel
f03c37528e Added 1991-09-20 16:05:17 +00:00
ceriel
ae0dbd5050 Added 1991-09-20 15:20:22 +00:00
ceriel
dee2d11596 Added sparc 1991-09-20 15:18:26 +00:00
ceriel
571ad3216b Fixed proto.make 1991-09-20 10:39:07 +00:00
ceriel
be3c10d635 Fixes 1991-09-19 14:39:10 +00:00
ceriel
b281e4c6b5 Removed dir.h 1991-09-19 13:05:02 +00:00
ceriel
1df45b5beb Updates and fixes 1991-09-19 12:54:23 +00:00
ceriel
4bd8dcde59 Updates 1991-09-19 12:46:16 +00:00
ceriel
6e485ef169 Several fixes 1991-09-19 11:26:10 +00:00
ceriel
80e3ee2e79 Added some decls 1991-09-19 10:47:01 +00:00
ceriel
529cb1a5e2 NSIG --> _NSIG 1991-09-19 10:38:40 +00:00
ceriel
bb17a417dc Added definition for SIGSYS 1991-09-19 10:36:32 +00:00
ceriel
0557944381 Added stat.h 1991-09-19 09:35:16 +00:00
ceriel
e5cd7399e5 Added types.h 1991-09-19 09:05:20 +00:00
ceriel
3a848279d5 Added unistd.h 1991-09-19 08:59:59 +00:00
ceriel
8ed14ba4d5 Fixed pmds4 description 1991-09-19 08:48:59 +00:00
ceriel
717cfbd921 improved test entries 1991-09-18 19:39:02 +00:00
ceriel
a1fc266ca5 Same for mach.h 1991-09-18 19:19:35 +00:00
ceriel
14b9b9c79f Fixed: failed on MLU 4 pattern; changed register variables 1991-09-18 19:17:56 +00:00
ceriel
f7fbe11132 r3 is now scratch 1991-09-18 19:10:24 +00:00
ceriel
2962e93407 Added -L flag 1991-09-18 18:44:30 +00:00
ceriel
90370cbc29 one more minor change: display name of file being compiled 1991-09-18 18:40:55 +00:00
ceriel
f84b365280 minor changes 1991-09-18 18:39:11 +00:00
ceriel
8db721b6aa Added include directory for tail_mon 1991-09-18 18:36:22 +00:00
ceriel
998d11379c whichone.h in <> so that -I option determines which one to take 1991-09-18 18:23:36 +00:00
ceriel
d8b3985528 Added entries for clean, etc. 1991-09-18 14:17:27 +00:00
ceriel
b0b814befd Forgot next.c 1991-09-18 10:16:06 +00:00
ceriel
369776173a Fixed: em_path now resides in config 1991-09-18 10:14:52 +00:00
ceriel
934e140c98 Fixed proto.make 1991-09-18 10:03:49 +00:00
ceriel
a0858c04e4 Many fixes 1991-09-18 10:02:37 +00:00
ceriel
16b2c7c173 Fixed mach_params 1991-09-18 09:58:12 +00:00
ceriel
df7fa49125 Fixed proto.make: Cfiles also depends on Makefile 1991-09-18 09:49:37 +00:00
ceriel
3a0c239091 Fixed some errors 1991-09-18 09:48:15 +00:00
ceriel
abb71310d2 signal stuff not included on BSD 4.2 or SunOs 1991-09-18 09:46:08 +00:00
ceriel
dfcbc661ca Added stdtypes.h 1991-09-18 09:43:45 +00:00
ceriel
2ad0051a24 popen.c did not compile with __USG defined 1991-09-18 09:19:40 +00:00
ceriel
fbf6efa8fd Fix: used wrong name 1991-09-17 16:38:16 +00:00
ceriel
d3b2458f24 Fixed array bound error. Amazing that it worked on a SUN-3 1991-09-17 10:39:20 +00:00
ceriel
1d6a5c84b6 system-call to MON mapping is in libsys 1991-09-17 09:47:16 +00:00
ceriel
8c82c2e5ef MAXPROCARG could be 0 1991-09-17 09:46:12 +00:00
ceriel
6a970eac86 fixed description for -g flag 1991-09-16 14:48:15 +00:00
ceriel
3863f0d1a2 Added compmodule 1991-09-16 12:47:00 +00:00
ceriel
d04a7af13c Added libdb 1991-09-16 11:54:19 +00:00
ceriel
fe74ad115d Added 1991-09-16 11:53:12 +00:00
ceriel
03da2719ec Added libdb 1991-09-16 11:49:03 +00:00
ceriel
132d7ddd95 Added 1991-09-16 11:47:43 +00:00
ceriel
443aae6f7a Added proto.libdb 1991-09-16 11:45:37 +00:00
ceriel
5bfd012ea3 Added grind 1991-09-16 11:45:26 +00:00
ceriel
c2bcab0685 Fixed proto.make 1991-09-16 11:09:10 +00:00
ceriel
728dc323cd Fixed proto files 1991-09-16 09:59:09 +00:00
ceriel
24c41e0d4d Added -I. to includes 1991-09-16 09:44:21 +00:00
ceriel
9e2e9cc6f7 Fixed 1991-09-16 09:38:58 +00:00
ceriel
f59466eab7 Only install cv; Xcv can only be compiled on a SUN-3 1991-09-16 09:37:06 +00:00
ceriel
d3254e4bb7 Added ops.c and ops.h 1991-09-13 15:13:59 +00:00
ceriel
884e02e822 fix: make.ops takes a parameter 1991-09-13 15:09:38 +00:00
ceriel
bdf6bc6f87 Added grind 1991-09-13 15:05:49 +00:00
ceriel
65454de06c Fixed proto.make 1991-09-13 14:56:50 +00:00
ceriel
712ae25e0d No longer made with amake 1991-09-13 14:53:27 +00:00
ceriel
767c52b241 Fixed proto.make 1991-09-13 12:36:13 +00:00
ceriel
4d7339bb60 Fixed proto.make 1991-09-13 12:01:42 +00:00
ceriel
cd8141b705 Fixed proto.make 1991-09-13 11:20:27 +00:00
ceriel
0182322630 Fixed proto.make 1991-09-13 11:00:50 +00:00
ceriel
a8cb5cbe86 Fixed proto.make 1991-09-13 10:29:06 +00:00
ceriel
7d5231279f Fixed 1991-09-13 10:24:29 +00:00
ceriel
c9c46c1ec1 Fixed 1991-09-13 10:12:17 +00:00
ceriel
e5052d73e4 fix: make directory lib.bin/ego 1991-09-13 10:07:37 +00:00
ceriel
e73d9b09a4 Identifier name change; tmpnam is reserved 1991-09-13 09:59:54 +00:00
ceriel
b10eadb10e Fixed problem with parameter counts 1991-09-13 09:15:36 +00:00
ceriel
86e38c87fb Fixed typo 1991-09-12 16:41:15 +00:00
ceriel
0ae5c1e43e Fixed: Added -I. 1991-09-12 16:39:50 +00:00
ceriel
90e969b5ba scan.c must be read-write 1991-09-12 16:22:48 +00:00
ceriel
a82fde69c3 Fixed 1991-09-12 14:19:28 +00:00
ceriel
5c64a8d1ea install libmon AND libsys 1991-09-12 12:01:08 +00:00
ceriel
e54a3afdfd install system call library 1991-09-12 11:57:55 +00:00
ceriel
0339ee31bd install libmon AND libsys 1991-09-12 11:52:59 +00:00
ceriel
c5b304bc51 install libbsd4_2 system-call interface by default 1991-09-12 11:50:03 +00:00
ceriel
55d1808387 Added proto.sysmon to .distr 1991-09-10 12:23:18 +00:00
ceriel
8b6a2e2cd7 Added flex and byacc 1991-09-10 11:48:47 +00:00
ceriel
5167121b6e Added ANSI-C to Action file 1991-09-10 11:20:45 +00:00
ceriel
3bbf316395 Added Makefile to do a 'make distr' 1991-09-10 09:55:38 +00:00
ceriel
ad1ff9d44c Added 1991-09-06 16:01:22 +00:00
ceriel
8caa154b25 new installation mechanism 1991-09-06 15:37:13 +00:00
ceriel
528ce00522 Added 1991-09-06 15:36:00 +00:00
ceriel
65bc2b62a1 Added todo 1991-09-06 15:31:41 +00:00
ceriel
f0c03173ef Added test.s 1991-09-06 15:06:36 +00:00
ceriel
699edcc81e Added ANSI stuff 1991-09-06 14:37:35 +00:00
ceriel
ad5b31be99 Distribute proto.make, not Makefile 1991-09-06 13:58:59 +00:00
ceriel
ea750dd18b Fixed for current nroff 1991-09-06 13:36:26 +00:00
ceriel
f1c3c765c5 new installation mechanism 1991-09-06 11:38:51 +00:00
ceriel
1dfcfd17fb Changed comment 1991-09-06 11:34:41 +00:00
ceriel
a073089e73 Added libce 1991-09-06 11:33:10 +00:00
ceriel
607a2393a0 New installation mechanism 1991-09-06 11:33:09 +00:00
ceriel
f67ed5e458 New installation mechanism 1991-09-06 11:04:20 +00:00
ceriel
d206ef7ce1 Added ce to .distr 1991-09-05 16:37:00 +00:00
ceriel
1ceac3b8e9 New installation mechanism 1991-09-05 16:36:59 +00:00
ceriel
50abc3f33b minor change 1991-09-05 16:35:57 +00:00
ceriel
edaf2a01f4 new installation mechanism 1991-09-05 16:35:56 +00:00
ceriel
4ceac64530 new installation mechanism 1991-09-05 11:56:23 +00:00
ceriel
db67ceebc9 LIBS was not used; removed it 1991-09-05 11:52:04 +00:00
ceriel
bb82ab2c09 New installation mechanism 1991-09-05 11:50:17 +00:00
ceriel
3e9c44cef7 new installation mechanism 1991-09-05 11:43:36 +00:00
ceriel
52d1b0e8aa New installation mechanism 1991-09-05 11:33:24 +00:00
ceriel
53664c2d1f New installation mechanism 1991-09-05 11:22:37 +00:00
ceriel
3bdfdfc1cf Some fixes 1991-09-05 11:19:37 +00:00
ceriel
a2fc0c859c new installation mechanism 1991-09-05 11:10:43 +00:00
ceriel
d93bc01d2d New installation mechanism 1991-09-05 11:06:46 +00:00
ceriel
5eb2a9f2fe Fixed error in path name 1991-09-05 10:56:45 +00:00
ceriel
e7a1e1cc9c New installation mechanism 1991-09-05 10:56:44 +00:00
ceriel
324b09070d Adapted NEW 1991-09-05 10:34:46 +00:00
ceriel
9eea2a726e some fixes 1991-09-05 09:47:57 +00:00
ceriel
fc443716c8 proto.make instead of Makefile 1991-09-05 09:26:23 +00:00
ceriel
6c517ebb35 Added .distr 1991-09-05 09:25:02 +00:00
ceriel
9592708fe2 libros --> libmon 1991-09-05 09:24:05 +00:00
ceriel
c8f9014a7e MON library also linked with .e 1991-09-04 17:57:34 +00:00
ceriel
4b7d675f55 Added arm 1991-09-04 17:56:54 +00:00
ceriel
7559fbb966 lib --> lib.bin for programs 1991-09-04 17:56:11 +00:00
ceriel
9853ac8a4b lib --> lib.bin for programs 1991-09-04 17:50:11 +00:00
ceriel
dc715866bb lib --> lib.bin for programs 1991-09-04 16:53:25 +00:00
ceriel
5a0bf7639a lib --> lib.bin for programs 1991-09-04 16:25:34 +00:00
ceriel
70ee3dc406 Fixed machine-dependant defines 1991-09-04 16:18:23 +00:00
ceriel
b6590ab8d1 lib --> lib.bin for programs 1991-09-04 16:18:20 +00:00
ceriel
0caa529e0a fix machine-dependant #if's 1991-09-04 16:01:22 +00:00
ceriel
df039a267d Fixed machine-dependant defines 1991-09-04 15:59:56 +00:00
ceriel
4fd7747338 fix machine-dependant #if's 1991-09-04 15:49:34 +00:00
ceriel
620f7e3d49 fix machine-dependant #if's 1991-09-04 15:37:41 +00:00
ceriel
a2fd894103 lib --> lib.bin for programs 1991-09-04 13:29:18 +00:00
ceriel
3003fa5594 Added tail_mon2 1991-09-04 13:29:04 +00:00
ceriel
284290f41a Added arm 1991-09-04 13:26:41 +00:00
ceriel
707e62a998 lib --> lib.bin for programs 1991-09-04 13:23:32 +00:00
ceriel
ca86ccf220 lib --> lib.bin for programs 1991-09-04 13:12:45 +00:00
ceriel
38fdd40cb7 updated for Minix 1.5 1991-09-04 13:07:02 +00:00
ceriel
206afe317c New installation mechanism 1991-09-04 12:01:39 +00:00
ceriel
5d5fa0b453 New installation mechanism 1991-09-04 11:32:07 +00:00
ceriel
7dd59bfdb0 new installation mechanism 1991-09-04 11:31:36 +00:00
ceriel
b21d0acbdd new installation mechanism 1991-09-04 11:22:19 +00:00
ceriel
1e4b58858e New installation mechanism 1991-09-04 11:19:28 +00:00
ceriel
1100c95c47 new installation mechanism 1991-09-04 11:10:36 +00:00
ceriel
564cbc6eba Only call NOP routine when debugging table 1991-09-04 10:55:52 +00:00
ceriel
89b73247c7 New installation mechanism 1991-09-04 10:45:29 +00:00
ceriel
129dbd29cf new installation mechanism 1991-09-04 10:43:51 +00:00
ceriel
634eb45db6 new installation mechanism 1991-09-03 17:38:15 +00:00
ceriel
6872464b8d new installation mechanism 1991-09-03 16:57:49 +00:00
ceriel
c3b36c748b New installation mechanism 1991-09-03 16:57:00 +00:00
ceriel
3b00811300 New installation mechanism 1991-09-03 16:45:48 +00:00
ceriel
4b27a0d2f3 new installation mechanism 1991-09-03 16:44:58 +00:00
ceriel
7d6eed155c New installation mechanism 1991-09-03 16:34:31 +00:00
ceriel
43efeff393 new installation mechanism 1991-09-03 16:28:37 +00:00
ceriel
01d8753db4 new installation mechanism 1991-09-03 16:20:41 +00:00
ceriel
53bfe9cfa0 New installation mechanism 1991-09-03 16:03:33 +00:00
ceriel
4274cb903c new installation mechanism 1991-09-03 16:03:08 +00:00
ceriel
e262730554 New installation mechanism 1991-09-03 15:37:56 +00:00
ceriel
019074c732 new installation mechanism 1991-09-03 15:37:16 +00:00
ceriel
8818aec10e New installation mechanism, updated to minix 1.5 1991-09-03 15:11:18 +00:00
ceriel
fc1615334c new installation mechanism 1991-09-03 15:01:06 +00:00
ceriel
cdd5e62a71 new installation mechanism 1991-09-03 14:44:30 +00:00
ceriel
9883fa2379 New installation mechanism 1991-09-03 14:27:06 +00:00
ceriel
c55a542ba4 New installation mechanism, updated to 1.5 1991-09-03 14:22:32 +00:00
ceriel
7512bdd33b updated to minix 1.5 1991-09-03 12:00:30 +00:00
ceriel
c44e30af8b updated to minix 1.5 1991-09-03 11:54:28 +00:00
ceriel
096b4683d4 updated to minix 1.5 1991-09-03 11:47:14 +00:00
ceriel
bae41e2d34 new installation mechanism 1991-09-03 10:55:59 +00:00
ceriel
51c2e125ce New installation mechanism 1991-09-03 10:55:25 +00:00
ceriel
88885db964 New installation mechanism 1991-09-03 10:54:20 +00:00
ceriel
084f565c9f new installation mechanism 1991-09-03 10:39:56 +00:00
ceriel
b67d1a36f3 New installation mechanism 1991-09-02 17:47:41 +00:00
ceriel
b520bc40a5 New installation mechanism 1991-09-02 17:27:44 +00:00
ceriel
ce87955d7b New installation mechanism 1991-09-02 17:00:19 +00:00
ceriel
5d9dc323e9 New installation mechanism 1991-09-02 15:46:16 +00:00
ceriel
a70ce8404c New installation mechanism 1991-09-02 15:23:50 +00:00
ceriel
954d74eff8 New installation mechanism 1991-09-02 15:08:48 +00:00
ceriel
6960652579 New installation mechanism 1991-09-02 14:52:41 +00:00
ceriel
1d5fae2b24 New installation mechanism 1991-09-02 14:35:41 +00:00
ceriel
32b924a76a New installation mechanism 1991-09-02 14:18:44 +00:00
ceriel
85a8a71149 New installation mechanism 1991-09-02 14:11:40 +00:00
ceriel
0cc2f6e317 New installation mechanism 1991-09-02 14:03:15 +00:00
ceriel
dc2ab49b32 NOP does nothing but stacking 1991-08-30 15:48:10 +00:00
ceriel
d4045b68d4 New installation mechanism 1991-08-30 15:45:58 +00:00
ceriel
6d9cd78c4e New installation mechanism 1991-08-30 15:19:38 +00:00
ceriel
5730364a30 new installation mechanism 1991-08-30 15:18:42 +00:00
ceriel
e572fa981d New installation mechanism 1991-08-30 12:59:04 +00:00
ceriel
8c40aefc8b New installation mechanism 1991-08-29 15:15:40 +00:00
ceriel
3a7f7f5eb9 use __exit and __write instead 1991-08-29 15:08:24 +00:00
ceriel
1be5f51868 New installation mechanism 1991-08-29 11:57:16 +00:00
ceriel
54fe5425e1 Adapted to new assembler 1991-08-29 11:52:50 +00:00
ceriel
bab09a13c2 New installation mechanism 1991-08-29 11:36:20 +00:00
ceriel
33c0dd8496 use __exit and __write instead 1991-08-29 11:34:42 +00:00
ceriel
c9627bf4e6 only depend on MON implementation for system calls 1991-08-29 11:30:58 +00:00
ceriel
8a9e71256f New installation mechanism 1991-08-28 16:00:10 +00:00
ceriel
49b3949315 new directory for system-dependant things 1991-08-28 15:55:18 +00:00
ceriel
239535a02a end, etext, edata library 1991-08-28 15:43:46 +00:00
ceriel
8b3009d6e3 New installation mechanism 1991-08-28 15:23:40 +00:00
ceriel
1d620a2e3b Distribute ncg, not cg 1991-08-28 14:32:58 +00:00
ceriel
dab686f5e0 New installation mechanism 1991-08-28 14:14:44 +00:00
ceriel
bbb4d40669 Include whichone.h with <> so that the -I options decide which one is included 1991-08-28 14:13:14 +00:00
ceriel
1d990f7f9c Distribute ncg, not cg 1991-08-28 14:11:03 +00:00
ceriel
4c0b0fd096 Distribute ncg, not cg 1991-08-28 13:41:24 +00:00
ceriel
9ab452c974 new installation mechanism 1991-08-28 13:39:54 +00:00
ceriel
896bd6de39 New installation mechanism 1991-08-28 13:10:52 +00:00
ceriel
b5e28c964f New installation mechanism 1991-08-28 12:50:30 +00:00
ceriel
3168ce61ae New installation mechanism 1991-08-28 12:02:16 +00:00
ceriel
b53634fa73 New installation mechanism 1991-08-28 11:28:56 +00:00
ceriel
12c14c0396 New installation mechanism 1991-08-28 11:08:03 +00:00
ceriel
70d13f9a80 New installation mechanism 1991-08-28 10:55:22 +00:00
ceriel
c7edcc34d6 New installation mechanism 1991-08-27 10:47:25 +00:00
ceriel
d9f98bc411 New installation mechanism 1991-08-27 10:18:09 +00:00
ceriel
5f652d1e85 removed compare and install 1991-08-27 10:17:25 +00:00
ceriel
112b0cf407 removed ud_locals.h; it was not used 1991-08-27 10:15:59 +00:00
ceriel
2b23822015 Handle entries without name 1991-08-27 09:55:25 +00:00
ceriel
492be74d94 Removed includes with relative paths 1991-08-27 09:45:37 +00:00
ceriel
2c400f6a44 Added u flag 1991-08-27 09:44:53 +00:00
ceriel
e7856a2204 New installation mechanism 1991-08-27 09:41:49 +00:00
ceriel
53b7af7a80 New installation mechanism 1991-08-27 09:20:30 +00:00
ceriel
31714c8bf3 parameterized cvtkeywords 1991-08-27 09:09:49 +00:00
ceriel
edd602fcdb Keep ms_stb's where they are 1991-08-27 09:08:05 +00:00
ceriel
5d4aa41db7 New installation mechanism 1991-08-27 09:05:27 +00:00
ceriel
3936acad08 Some minor mods 1991-08-27 08:57:28 +00:00
ceriel
da188bbb4d New installation mechanism, changed byte order mechanism 1991-08-26 16:57:47 +00:00
ceriel
73177ad913 New installation mechanism 1991-08-26 16:50:25 +00:00
ceriel
dd478032e6 New installation mechanism 1991-08-26 16:21:27 +00:00
ceriel
e469cc5ac6 New installation mechanism 1991-08-26 16:02:10 +00:00
ceriel
8981100964 New installation mechanism 1991-08-26 15:18:31 +00:00
ceriel
f17db32411 New installation mechanism 1991-08-26 15:10:59 +00:00
ceriel
0fb930b473 New installation mechanism 1991-08-26 14:39:14 +00:00
ceriel
942b24329f New installation mechanism 1991-08-26 14:29:59 +00:00
ceriel
2526e11a03 improved structure assignments 1991-08-26 14:26:07 +00:00
ceriel
57e6cad135 New installation mechanism 1991-08-26 14:05:16 +00:00
ceriel
8e89c04900 New installation mechanism 1991-08-26 13:23:36 +00:00
ceriel
78104e7d8a New installation mechanism 1991-08-26 12:50:21 +00:00
ceriel
8fcbfada69 New installation mechanism 1991-08-26 12:04:28 +00:00
ceriel
216b8e5d98 Removed Makefile 1991-08-26 12:01:41 +00:00
ceriel
5abbc66878 New installation mechanism 1991-08-26 11:08:07 +00:00
ceriel
b1fdacb99c relaxed the ;-terminator requirement for parameters 1991-08-23 16:23:07 +00:00
ceriel
3c221691b3 Added proto files 1991-08-23 14:07:27 +00:00
ceriel
2b3ea5faab Added proto.make file 1991-08-23 14:06:51 +00:00
ceriel
5ca5519c75 Added .distr file 1991-08-21 15:28:46 +00:00
ceriel
42afe4e24e Added .distr file 1991-08-21 15:19:39 +00:00
ceriel
6d86200992 renamed fe 1991-08-21 11:38:52 +00:00
ceriel
f0d26d1935 renamed descr 1991-08-21 11:33:24 +00:00
ceriel
35b0718027 cv is no longer dependant on COFF include files 1991-08-19 16:36:58 +00:00
ceriel
790d540f91 Made to compile on non-COFF systems 1991-08-19 16:09:17 +00:00
ceriel
b503d85d23 If NOPP is defined, do not do trigraph translation; cpp does it 1991-08-09 13:57:13 +00:00
ceriel
5d00c41800 Removed definition of EMHOME; it was not used 1991-08-07 10:52:35 +00:00
ceriel
2a6c8390fa Fix for symbolic debugger 1991-08-05 13:23:45 +00:00
ceriel
c34fcda208 Fixes: sometimes entered panic mode with wrong fakestack 1991-07-30 16:05:59 +00:00
ceriel
da84cc69bc 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
dbe4911b65 Fixed the HFILES macro 1991-07-25 15:45:35 +00:00
ceriel
003382e13f Fix in 'LDC CMS TNE' pattern 1991-07-22 09:23:25 +00:00
ceriel
4d682ab1e2 Changed mechanism for defining size_type 1991-07-12 10:16:11 +00:00
ceriel
240dd55fd9 Removed the id_enum macro and replaced id_struct by id_tag (better name) 1991-07-08 16:49:04 +00:00
dick
ca104453ca prototypes now handled by lint 1991-07-05 11:55:17 +00:00
dick
a0460b8bfc compatibility change in l_class.h for prototypes in ANSI C 1991-07-05 11:33:49 +00:00
ceriel
34d6b23ba6 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
c3c1b918f0 updated 1991-06-26 17:39:48 +00:00
ceriel
9bbcb70320 Added end_em 1991-06-26 17:38:06 +00:00
ceriel
bdad94b18c New global optimizer driver 1991-06-26 17:36:59 +00:00
ceriel
e036de0d90 Removed wrong patterns 1991-06-26 17:35:03 +00:00
ceriel
8afda7422e Fix NOP 1991-06-26 17:33:16 +00:00
ceriel
c77a7e6d32 Fixed call to mktemp() so that it does not try to change a constant string 1991-06-26 17:32:44 +00:00
ceriel
dac25d9dd8 fixed trp.s (undid change by Hans v Eck) 1991-06-26 17:32:09 +00:00
ceriel
e505a02ad7 produce debugging info 1991-06-26 17:30:48 +00:00
ceriel
47dccc3c67 improved clean entry 1991-06-26 17:30:36 +00:00
ceriel
9f565afcc2 removed unused variable 1991-06-26 17:29:58 +00:00
ceriel
8583ee73f3 Added verbose flag 1991-06-26 17:28:15 +00:00
ceriel
ea9332362d correction 1991-06-26 17:26:59 +00:00
ceriel
f3d21dc6cc made alloc.h acceptable for ANSI C compiler 1991-06-26 17:26:03 +00:00
ceriel
8cf9b73fbc Fixed grammar 1991-06-26 17:23:55 +00:00
ceriel
55d8020292 some more statistics 1991-06-24 16:35:08 +00:00
ceriel
42584ddcdb Fixed memory leak 1991-06-24 16:33:43 +00:00
ceriel
1be579a6e7 minor improvement to volatile code 1991-06-21 10:31:20 +00:00
ceriel
aec33f4d0f CLK_TCK --> CLOCKS_PER_SEC; was toch goed 1991-06-21 09:58:57 +00:00
ceriel
9461e91a9b Patched in D option (feature from Johan) 1991-06-20 14:22:37 +00:00
ceriel
7a1d1ce1c1 fixed some label problems 1991-06-20 10:17:36 +00:00
ceriel
9f43986877 ANSI requires separate name space for labels, and made to use idf module 1991-06-19 16:12:56 +00:00
ceriel
3a074a6f99 FIxed problem with volatile structs and the ./-> operators 1991-06-13 15:56:14 +00:00
ceriel
384d4c7647 corrected time.h header 1991-06-11 09:25:32 +00:00
ceriel
9e9e7db6b4 Fixed flushbuf() so that it works with POSIX conformant Unix versions 1991-06-10 17:07:18 +00:00
ceriel
e6a017827e Changed an int into a short 1991-06-06 11:47:23 +00:00
ceriel
44fda8e7d0 Fixed Makefile 1991-06-05 09:25:20 +00:00
ceriel
3e9b9b3cbe Added isnan.c 1991-06-04 15:33:34 +00:00
ceriel
659d310e37 Modified to output a little less white space 1991-06-03 14:46:13 +00:00
ceriel
2838d446ef Did not detect redeclaration of formal as local 1991-05-27 15:06:36 +00:00
ceriel
3891c03e0e prevent complaints about unused variables when they are used as var-param 1991-05-21 14:11:27 +00:00
ceriel
2d79ecd203 Fixed a few problems 1991-05-16 13:22:15 +00:00
ceriel
094b1d0742 Fixed missing ; before } 1991-05-16 13:08:32 +00:00
ceriel
f4757c8370 fixed two possible null-references 1991-05-13 13:57:25 +00:00
ceriel
d8d30b403b Fixed a cast bug (unsigned to unsigned char) 1991-05-13 10:08:54 +00:00
ceriel
1da2103504 Delinted a bit 1991-04-25 16:47:47 +00:00
ceriel
c955dc1374 Delinted a bit 1991-04-25 16:26:11 +00:00
ceriel
7853446daf Fixed some sprint's 1991-04-25 13:54:25 +00:00
ceriel
0c137374ae fixed 1991-04-25 10:54:44 +00:00
ceriel
02d253d810 fixed 1991-04-25 10:49:28 +00:00
ceriel
e4136ac8e5 There was no RCK 2 due to a preprocessor-directive error 1991-04-24 14:09:20 +00:00
ceriel
e001541608 Fixed bug in checking of last char of environment variable 1991-04-24 12:18:03 +00:00
ceriel
e8ff85905f ptr_diff is a long in ANSI C; cast to int 1991-04-23 09:35:51 +00:00
ceriel
d6a224ea5f Changed name of loc_incl.h to loc_time.h 1991-04-22 13:21:11 +00:00
ceriel
ab8022ccbd Fixed bug 1991-04-22 11:29:48 +00:00
ceriel
a3f4cdefa3 Minor change: improved conflict resolver that tested for never happening case 1991-04-19 15:26:50 +00:00
ceriel
80c49a6ea7 Added LOS 4 and STS 4 1991-04-19 13:09:30 +00:00
ceriel
7258ccc596 Added some more patterns 1991-04-19 12:03:49 +00:00
ceriel
2fef7f7389 Added LOS 4 and STS 4 1991-04-19 12:02:52 +00:00
ceriel
de12536c94 fixed bug with struct/union/enum declarations 1991-04-18 12:27:58 +00:00
ceriel
2552813eaa Corrected #error and #define 1991-04-11 10:52:52 +00:00
ceriel
49c5c36362 Added defaults for M2COMPILER and DEF_DIR 1991-04-10 15:10:32 +00:00
ceriel
b2b79edc42 Removed use of STATIC 1991-04-10 13:32:42 +00:00
ceriel
c0d92bbc76 Added some patterns 1991-04-10 10:23:34 +00:00
ceriel
aa35bf7f02 Changed default value of rts to '.' 1991-04-09 15:29:46 +00:00
ceriel
e096bc3fb3 fixed problem with extern declarations 1991-04-09 10:15:48 +00:00
ceriel
e5b52ce56f Added some more patterns 1991-04-05 13:27:49 +00:00
ceriel
8e8f0b4079 fixed typo 1991-04-05 09:45:11 +00:00
ceriel
7c2c7f23e3 prevent overflow 1991-04-05 09:24:45 +00:00
ceriel
86151519db Some small changes to reduce local variable count 1991-04-04 16:48:18 +00:00
ceriel
71dfb50135 Added some re-ordering patterns 1991-04-04 16:45:31 +00:00
ceriel
5b2b02ae1e Added patterns 1991-04-04 13:21:46 +00:00
ceriel
ba2043808d correction: mixture of old-fashioned with ellipsis is always wrong 1991-04-03 10:02:40 +00:00
ceriel
cafd4a0497 Added patterns to improve code for getc() and putc() 1991-03-27 15:47:50 +00:00
ceriel
8a25f4e66b Some minor mods in mixed mode checking 1991-03-27 12:46:37 +00:00
ceriel
52287793fb Removed superfluous : 1991-03-26 18:41:47 +00:00
ceriel
0f809c61dc Added some patterns 1991-03-26 18:10:29 +00:00
ceriel
f9f8f93115 Fixed typo 1991-03-26 14:43:06 +00:00
ceriel
dcb6a17cf3 Fixed bug in function return code 1991-03-26 13:38:36 +00:00
ceriel
9565b3bd24 Added some patterns 1991-03-26 10:11:23 +00:00
ceriel
3e16cf5116 Fix: prevent incorrect error messages 1991-03-26 09:45:20 +00:00
ceriel
ca06e574ca Improved code generation for sets somewhat 1991-03-25 13:28:50 +00:00
ceriel
8b67c1f800 Fix to fix 1991-03-25 13:16:02 +00:00
ceriel
043ad764b8 Yet another fix: this time for AND/IOR/XOR/COM ? 1991-03-25 11:39:27 +00:00
ceriel
6f4da1d70a bug fix for SET instruction on m68k2 1991-03-22 18:23:55 +00:00
ceriel
eecdf96b0b Rearranged a bit 1991-03-22 15:17:16 +00:00
ceriel
1dff113351 Delinted 1991-03-22 14:26:10 +00:00
ceriel
3686d24064 Some modifications for running on smaller machines 1991-03-21 10:45:42 +00:00
ceriel
62bad715c2 Added some patterns for Kees Visser 1991-03-21 09:50:06 +00:00
ceriel
319fb7cbff Removed evaluation order dependency bug 1991-03-21 09:49:35 +00:00
ceriel
7a0002427d Use of em_flag was wrong: did not use sp_fmnem 1991-03-20 17:31:20 +00:00
ceriel
74ff22b506 Allow for AALMAG as well as ARMAG 1991-03-20 16:24:50 +00:00
ceriel
6bdd99ee7b allow for AALMAG as well as ARMAG 1991-03-20 16:21:53 +00:00
ceriel
a9aa131d8c fixed typo 1991-03-20 13:47:18 +00:00
ceriel
5c3b708636 Both aal and arch can read each others archives 1991-03-20 12:45:58 +00:00
ceriel
d32109c18d Several fixes 1991-03-20 11:30:35 +00:00
ceriel
7e8422d810 added check for Nan 1991-03-19 16:51:28 +00:00
ceriel
e27071de78 Check for Nan 1991-03-19 16:39:40 +00:00
ceriel
2684a45cc5 do not write in strings: they could reside in ROM 1991-03-19 11:14:39 +00:00
ceriel
3e0eb5d58a Detect too large values 1991-03-19 10:25:36 +00:00
ceriel
5a53ba3f50 Several minor mods: simplifications and identifier name changes 1991-03-18 16:30:49 +00:00
ceriel
22378eaff8 produce commons for newlbss 1991-03-18 15:06:01 +00:00
ceriel
95967a04e4 newlbss takes size as unsigned 1991-03-18 14:19:27 +00:00
ceriel
a61ee10532 fcntl.h now requires sys/types.h 1991-03-18 09:16:00 +00:00
ceriel
9155b8a68a Fixed bug that never occurred, but was discovered by reading the code 1991-03-15 11:21:46 +00:00
ceriel
f4691c73c4 Call _cleanup before _exit 1991-03-15 09:24:03 +00:00
ceriel
adab058c34 Fixed typo 1991-03-14 13:46:53 +00:00
ceriel
d8771e87f9 minor mods 1991-03-14 13:43:45 +00:00
ceriel
852601d0b5 minor mods 1991-03-14 13:16:32 +00:00
ceriel
5ebc2017a0 Do not use the allocation mechanism for the desig structure; overkill 1991-03-14 11:10:40 +00:00
ceriel
86bc055fa1 Corrected error on NOCROSS 1991-03-14 09:31:32 +00:00
ceriel
f7504dbd4b Cleaned up a bit more 1991-03-13 17:26:07 +00:00
ceriel
f48f0efe60 Added some more patterns 1991-03-13 15:56:43 +00:00
ceriel
52842cd09a Cleaned up a bit 1991-03-13 13:49:56 +00:00
ceriel
17266fb373 A strict warning was given too often 1991-03-13 10:11:25 +00:00
ceriel
0a517b9256 Changes to make node structure smaller, and cleaned up a bit 1991-03-12 16:52:00 +00:00
dick
20b17c3eb2 allow full paths for library names in shell script lint 1991-03-12 10:58:22 +00:00
ceriel
3e18caaab0 fixed bug in coroutine mechanism 1991-03-11 16:21:13 +00:00
ceriel
977e1ac25e Removed unused variable 1991-03-11 14:38:28 +00:00
ceriel
52d4c7ff70 Added VARARGS 1991-03-11 14:33:13 +00:00
dick
67a2cc281f ANSI C prototype handling added 1991-03-08 15:54:05 +00:00
ceriel
30867cf631 the -S option also falls under ifndef NOCROSS 1991-03-07 12:51:11 +00:00
ceriel
b4aaa8824e be a bit more tolerant about external definitions 1991-03-07 12:01:34 +00:00
ceriel
fffa7617b1 m_a_i_n --> _m_a_i_n 1991-03-06 14:44:25 +00:00
ceriel
b893ec7013 m_a_i_n --> _m_a_i_n 1991-03-06 14:26:16 +00:00
ceriel
76d79cf17a Added macro's for long selections 1991-03-06 10:52:34 +00:00
ceriel
24fd4e190e Fixed bugs 1991-03-06 10:20:17 +00:00
ceriel
82b3ae254c Added -S flag 1991-03-05 17:52:37 +00:00
ceriel
3a715f5479 Lay-out changes and made IMPORTS more specific 1991-03-05 13:47:08 +00:00
ceriel
ac83fe3815 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
27d53b0d33 Changed #include's 1991-03-05 12:44:05 +00:00
ceriel
e264b45120 Changed #include's 1991-03-05 12:16:17 +00:00
ceriel
d8ff0feed3 Replaced some EM code by C code 1991-03-05 11:56:39 +00:00
ceriel
81cc04f9a3 Changed unsigned checking so that runtime routines cab be written in C 1991-03-05 11:55:22 +00:00
ceriel
e929b5839f Fixed problem with top-of-stack mechanism on globally optimized code 1991-03-04 15:04:14 +00:00
ceriel
e340cea7be Under -t option, temporaries are in the current directory 1991-03-04 15:00:54 +00:00
ceriel
55bbaa1bf2 Fixed wrong %c conversion 1991-03-04 13:35:22 +00:00
ceriel
5a8012b084 Replaced driver by C version 1991-03-04 12:59:46 +00:00
ceriel
8f339de43b Prevent possible null-dereference 1991-03-01 14:55:46 +00:00
ceriel
e1b6ddca2c Prevent superfluous label generation 1991-03-01 14:54:43 +00:00
ceriel
bd1da2f86c Improved switches, and fixed wrong place indication in error messages 1991-03-01 13:51:37 +00:00
ceriel
9d3696befe Changed stat() interface 1991-02-28 16:47:45 +00:00
ceriel
1903555355 fixed bug with -j option 1991-02-28 14:48:17 +00:00
ceriel
e61d1b425d fixed old-fashioned decl check 1991-02-27 13:48:54 +00:00
ceriel
cb7438cb99 Some modifications to improve floating point printing 1991-02-26 18:37:47 +00:00
ceriel
d50d1f6c5e Added some casts so that it works for negative values 1991-02-26 18:17:21 +00:00
ceriel
1d73a4f04e Added hypot.c 1991-02-26 18:08:25 +00:00
ceriel
ee02bfcd82 minor mods 1991-02-26 15:46:18 +00:00
ceriel
9c0b85db41 Fixed tmpnam(): name contained null-byte 1991-02-26 09:28:39 +00:00
ceriel
1118da779b Use _ versions of system-calls 1991-02-22 16:57:42 +00:00
ceriel
cf10cabb6f fixed problems with flushbuf 1991-02-22 16:45:47 +00:00
ceriel
9340345509 Fix FOPEN_MAX array bound error 1991-02-22 16:32:05 +00:00
ceriel
5c5cb8e5c8 Make sure that line directives start on the beginning of a line 1991-02-22 14:29:37 +00:00
ceriel
782d0f48bf Undid previous change 1991-02-22 13:49:51 +00:00
ceriel
579b3b29bd Removed unused variables 1991-02-22 13:43:22 +00:00
ceriel
dab38becd4 Fixed preprocessor problem with empty macro bodies 1991-02-21 12:08:13 +00:00
ceriel
12f4a430b0 Added varargs.h 1991-02-20 14:53:31 +00:00
ceriel
a8c0b82421 removed -i flag 1991-02-20 09:59:26 +00:00
ceriel
6765041a10 Do not copy libsrc; only extract 1991-02-20 09:56:17 +00:00
ceriel
c9ece34fc5 Changed method of allocating locals 1991-02-20 09:54:55 +00:00
ceriel
1fec35a71e Added some patterns 1991-02-20 09:51:43 +00:00
ceriel
87385c49e4 Changed some identifier names (ANSI C, Ultrix ...) 1991-02-20 09:51:07 +00:00
ceriel
bb31795d33 removed -i flag 1991-02-20 09:48:36 +00:00
ceriel
1c694d98d0 removed unused variables 1991-02-20 09:48:00 +00:00
ceriel
0d65b92220 removed -i flag 1991-02-19 16:57:39 +00:00
ceriel
3f922854b3 fixed typo (?) 1991-02-19 16:54:06 +00:00
ceriel
2c31a9b1ac removed -i flag 1991-02-19 16:51:50 +00:00
ceriel
79cb35ec4f Added SLI reduce 1991-02-19 16:45:57 +00:00
ceriel
e0be1dfe3a Added byacc and flex to .distr 1991-02-19 16:39:36 +00:00
ceriel
8de1b855ab delinted 1991-02-19 16:25:21 +00:00
ceriel
c863c96023 Made use of C_insertpart dependant on compile-time flag 1991-02-19 16:22:41 +00:00
ceriel
c59e581ef2 Delinted a bit 1991-02-19 15:28:48 +00:00
ceriel
9a294d4821 Changed name of include file 1991-02-19 13:53:04 +00:00
ceriel
b5c5f09b16 moved some static declarations that were illegal ANSI C 1991-02-19 12:44:38 +00:00
ceriel
07092a19ca prevent sign-extension in unpack when needed 1991-02-19 12:41:27 +00:00
ceriel
d16c25fc80 prevent sign-extension in unpack when needed 1991-02-19 12:13:08 +00:00
ceriel
c40ca6ebbd Made ability for -g dependant on compile-time flag 1991-02-18 17:18:36 +00:00
ceriel
b4f4a87846 Corrected -g option 1991-02-18 17:15:11 +00:00
ceriel
24dd6b4cb5 Fixed problem with multiple TOKSEP's 1991-02-18 15:50:39 +00:00
ceriel
797441009d prevent multiple occurrences of TOKSEP in replace.c 1991-02-18 15:25:11 +00:00
ceriel
59fe948f83 Delinted some more 1991-02-18 12:05:06 +00:00
ceriel
3660ea15c5 One less significant digit: 20 was too much 1991-02-18 11:43:44 +00:00
ceriel
cf0cd51810 Delinted somewhat (did not work on 2/2 machines) 1991-02-18 11:11:04 +00:00
ceriel
af7686cd66 delinted 1991-02-18 10:58:49 +00:00
ceriel
720d775582 made D_ definitions a long and made symbol table generation conditional 1991-02-15 18:00:26 +00:00
ceriel
612217f906 Removed some incorrect STATIC's 1991-02-15 14:54:53 +00:00
ceriel
9595dda6b5 Fixed: contained construction that was illegal for ANSI C 1991-02-15 14:21:41 +00:00
ceriel
3e0c73690c Removed switches on longs (portability) and added packed subranges 1991-02-14 18:15:22 +00:00
ceriel
1ed0f8180f hash() now returns same value on 2-byte and 4-byte machines 1991-02-04 14:25:58 +00:00
ceriel
ac966f41eb Added end library and floating point processor support 1991-02-01 15:38:19 +00:00
ceriel
14ce396d6f fixed CFI problem 1991-02-01 15:33:41 +00:00
ceriel
0f4e675b50 Added end library and floating point processor support 1991-02-01 15:09:58 +00:00
ceriel
e64fb88a5d Added support for floating point processor 1991-02-01 12:51:48 +00:00
ceriel
4a03769a47 Added mktemp.c 1991-02-01 10:31:03 +00:00
ceriel
977d93dc67 reduce memory usage (again) 1991-02-01 10:21:39 +00:00
ceriel
0539581d5d Generate less stupid conversions 1991-02-01 09:54:21 +00:00
ceriel
2c3dcb0547 modified hash function to deliver same value on 2 byte and 4 byte machines 1991-01-31 15:17:54 +00:00
ceriel
ae5dded36f simplified 'tes' mechanism 1991-01-31 15:17:04 +00:00
ceriel
2a852dcff1 Added fdopen() 1991-01-30 16:26:06 +00:00
ceriel
0cd1cfd249 fixed 'times' systemcall interface 1991-01-30 16:10:13 +00:00
ceriel
e48822da7b Improved identifier string allocation mechanism 1991-01-30 11:25:25 +00:00
ceriel
48e0d9825a 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
ff766530eb hide some VAX-ce specific names 1991-01-22 13:28:21 +00:00
ceriel
2094dcecfe assembling of (xxx,a6) addressing mode was wrong for large values of xxx 1991-01-22 12:43:40 +00:00
ceriel
c70195a81e assembling of (xxx,a6) addressing mode was wrong for large values of xxx 1991-01-22 12:01:25 +00:00
ceriel
8eff53f8ea Upgraded to Berkeley's version 1.8 1991-01-22 10:58:49 +00:00
ceriel
530ce78c37 now has own C library 1991-01-18 11:06:30 +00:00
ceriel
1bdb0a8d96 Added libcc 1991-01-18 11:04:30 +00:00
ceriel
3e4a2c3dbc Added files 1991-01-18 11:03:05 +00:00
ceriel
8322e2d5d3 Made to work if BYTES_REVERSED and/or WORDS_REVERSED are not defined 1991-01-18 09:54:56 +00:00
ceriel
36e47ad79b yytext is an array in lex, but a char * in flex 1991-01-18 09:43:04 +00:00
ceriel
81e80b2cd8 Changed implementation of dependency generator 1991-01-17 17:49:27 +00:00
ceriel
57f2827832 Modified manual page so that STDOUT and STDERR are mentioned 1991-01-17 13:24:28 +00:00
ceriel
bda14dbba1 Added code expander to Action file 1991-01-17 11:59:25 +00:00
ceriel
29b2e6e3d4 initial version 1991-01-16 16:07:50 +00:00
ceriel
e7b7aa3944 simplified compile time floating point somewhat 1991-01-15 18:21:16 +00:00
ceriel
0267340564 in SkipToNewLine(), check for TOKSEP; fixed problem with volatile 1991-01-15 12:00:24 +00:00
ceriel
3ddb8e24b7 wctomb() now also returns 1 on 0-char 1991-01-15 11:55:33 +00:00
ceriel
9e970befed in SkipToNewLine(), check for TOKSEP 1991-01-15 11:51:40 +00:00
ceriel
abb28f949a Corrected some patterns 1991-01-14 17:13:58 +00:00
ceriel
4b40bae467 made acceptable for flex (no yyless() callable from other source file) 1991-01-11 14:36:37 +00:00
ceriel
6acdb3e358 Made acceptable for flex (no yylineno, no yymorfl) 1991-01-11 14:35:14 +00:00
ceriel
818d2f10cf Made acceptable for flex (no yylineno) 1991-01-11 14:32:43 +00:00
ceriel
efa476b5b3 Made acceptable for flex 1991-01-11 14:28:59 +00:00
ceriel
0b26bdf5fb Some changes in search for more efficiency 1991-01-11 14:20:59 +00:00
ceriel
d9815cadcd fixed bug with APPEND in sys_open() 1991-01-11 13:19:36 +00:00
ceriel
224ac1b8ff Some more optim (?) 1991-01-11 10:54:03 +00:00
ceriel
f572b1fb35 some changes that may make ncg a tiny bit less inefficient 1991-01-10 18:39:36 +00:00
dick
32eddf7846 undo modifications outside #ifdef LINT 1991-01-10 17:49:19 +00:00
ceriel
5aa72b23cf corrected small ommission 1991-01-10 13:57:29 +00:00
ceriel
c26441aa64 Added Berkeley Yacc sources 1991-01-10 11:19:59 +00:00
dick
4a7ef15df2 more additions for lint 1991-01-07 12:33:38 +00:00
ceriel
55bf2e9bc1 Changed installation mechanism of LLgen 1991-01-04 15:08:28 +00:00
ceriel
27459757db Changed installation mechanism 1991-01-04 15:01:59 +00:00
ceriel
38d1831dd7 Fixed error in clearerr 1991-01-03 16:08:31 +00:00
ceriel
ac8168088c clearerr is now also a macro 1991-01-03 14:31:16 +00:00
ceriel
c4c7787acc clearerr is now also a macro 1991-01-03 14:23:54 +00:00
ceriel
589f3a3e35 Check for garbage in #pragma and #include 1991-01-03 13:50:57 +00:00
ceriel
72fcc53c49 Check for garbage after #include 1991-01-03 13:45:22 +00:00
ceriel
d7b6541a62 order of fields in struct was changed; PLEASE DICK, DO NOT DO THAT! 1990-12-19 17:32:04 +00:00
eck
4ac18c8ab4 added information about top element size computation 1990-12-19 17:07:10 +00:00
ceriel
3ae67d0d67 some fixes 1990-12-19 12:59:36 +00:00
ceriel
974463cbd4 Fixed stat interface 1990-12-19 12:42:21 +00:00
ceriel
3764bf860b Adapted for debugger 1990-12-19 11:54:55 +00:00
ceriel
9ddcfc5b96 Adapted READ_ME file to current situation 1990-12-19 11:52:37 +00:00
ceriel
5926babe03 fixed byte order in 'desc' field 1990-12-19 11:23:25 +00:00
ceriel
6cc07a7651 Changed LS/PS, ported to DEC VAX 1990-12-19 11:17:06 +00:00
ceriel
c747f1c1c0 simplified options.c 1990-12-19 11:07:15 +00:00
ceriel
f72cc607a1 Correct byte order of 'desc' field 1990-12-19 10:26:39 +00:00
ceriel
631f40cb1a Regenerated dependencies 1990-12-18 14:29:04 +00:00
ceriel
335377da7a changed lint flags, use ms_ego, changed allocation strategy for loops 1990-12-18 11:14:34 +00:00
ceriel
41ca723d96 corrected register save cost counts 1990-12-18 11:13:03 +00:00
ceriel
8b397ebf05 Moved some macros to ../share, changed lint flags 1990-12-17 16:48:31 +00:00
ceriel
5dee3d1b26 Changed lint flags 1990-12-17 16:35:26 +00:00
ceriel
1139272435 Changed types in core allocation routines, changed lint flags 1990-12-17 14:55:03 +00:00
eck
e37c249248 added casts of pointer difference to integer 1990-12-17 14:22:41 +00:00
ceriel
ab62dda2fc Added -t flag to keep temporaries around 1990-12-17 14:22:09 +00:00
ceriel
4e4d3290d4 use ms_ego, changed lint flags 1990-12-17 14:11:13 +00:00
ceriel
a836599f53 removed unused macros, changed lint flags 1990-12-17 13:53:44 +00:00
ceriel
b3ff76d859 Changed lint flags 1990-12-17 13:52:53 +00:00
ceriel
8b63334d30 fixed problem with multiple definitions going by undetected 1990-12-17 13:19:31 +00:00
ceriel
2fbdc5447a Changed types in core allocation routines, changed lint flags 1990-12-17 13:15:03 +00:00
ceriel
5e0ec19a91 Changed lint flags 1990-12-17 13:11:13 +00:00
ceriel
50c8fe71c3 changed lint flags, changed macro name, deleted unused macro 1990-12-17 13:09:57 +00:00
eck
ccc5f10fca fixed bugs with storage-class and void in prototype 1990-12-17 13:08:05 +00:00
ceriel
79444acd83 Changed lint flags 1990-12-17 13:05:24 +00:00
ceriel
4fbd256d14 print some info in comment in tables.c 1990-12-17 12:52:41 +00:00
ceriel
41dc11e497 Fixed problem with cost computation, added some assertions and
added some more precise debugging printing
1990-12-17 10:02:52 +00:00
eck
0ad960a9b0 set _IOMYBUF in setvbuf() when necessary 1990-12-14 14:47:26 +00:00
dick
0cc8f53eec added dummy definition of C_ms_err 1990-12-14 14:42:20 +00:00
ceriel
6390348994 Changed print format 1990-12-14 13:57:46 +00:00
eck
916b9e94e9 aligment (yet again) 1990-12-13 14:03:31 +00:00
eck
73231e630b added error message because of declaration problems 1990-12-13 09:14:54 +00:00
eck
530e1a3b6d fixed error for m68k2 1990-12-13 08:31:44 +00:00
eck
cb6ca0cf40 fixed nasty bug with sets that were used in kill-parts 1990-12-12 17:17:04 +00:00
ceriel
51ad0941cb regenerated dependencies 1990-12-11 14:09:02 +00:00
ceriel
64f8785d20 Added Pascal support 1990-12-11 13:53:01 +00:00
ceriel
f997bd0be8 Added debugger support 1990-12-11 13:52:08 +00:00
ceriel
b3287b2b0f Some fixes: delinted and fixed alignment bug (bloody sizeof strikes again) 1990-12-11 11:10:46 +00:00
ceriel
159d8ec57d Fixed for OUTSEEK (by C. Verstoep) 1990-12-11 10:38:22 +00:00
eck
007151ef1d improved error-handling on conditionally excluded #-lines 1990-12-10 11:17:34 +00:00
dick
495a037714 lint update (merge from C compiler) 1990-12-07 14:42:26 +00:00
ceriel
d9be4de96a Fixed RMU 4 1990-12-07 11:25:45 +00:00
dick
65bf3591a7 adapted to integration into cemcom.ansi 1990-12-06 14:56:42 +00:00
ceriel
c5c6267b1d fixed possible non-sign-extension problem 1990-12-06 11:34:50 +00:00
ceriel
24a8b613ae Added test program 1990-12-04 16:40:21 +00:00
eck
df975bc075 fixed typo 1990-12-04 12:52:41 +00:00
ceriel
2dbe465c0d Fixed for Ultrix: pass SUF 1990-12-04 11:42:25 +00:00
ceriel
8468609eda improved for numbers that can be represented exactly 1990-12-04 11:33:01 +00:00
eck
0b35c31e5b fixed bug with function returning pointer to function 1990-12-04 11:09:34 +00:00
ceriel
456ba2b03c Fixed: some moves were wrong 1990-12-03 16:01:51 +00:00
ceriel
17af2902eb Fixed con_float for non-IEEE machines 1990-12-03 16:00:53 +00:00
eck
4c99b235ed oops: forgot to update LIST 1990-12-03 14:21:21 +00:00
ceriel
8a81dbe6fb leave SIGFPE alone 1990-12-03 14:14:48 +00:00
eck
36861e70ac added isatty.c: it is reasonably standard on UNIX systems 1990-12-03 14:13:31 +00:00
ceriel
b3deddfaf3 also handle SIGFPE; runtime start-off should leave it alone 1990-12-03 13:54:36 +00:00
eck
2661a6085a oops, do set errno in ldexp() (blanket rules) 1990-12-03 13:09:27 +00:00
ceriel
cfd0a9b894 NOP now does not call .nop anymore 1990-12-03 09:36:56 +00:00
ceriel
b76ff7451c some more improvement to CUF 1990-11-30 15:58:33 +00:00
ceriel
70dafd79e9 fixed problem with CUF 1990-11-30 14:35:51 +00:00
ceriel
83b663388c fixed bug with auto-increments and -decrements 1990-11-30 14:34:04 +00:00
ceriel
df77506e1f Some modifications to reduce the number of terminals (for Ultrix) 1990-11-30 09:42:49 +00:00
ceriel
8f661ca8a9 corrected spelling error 1990-11-29 18:05:41 +00:00
ceriel
ff60fa58c3 Added _syscall.s and _sigvec.c 1990-11-29 16:13:49 +00:00
ceriel
45b18b4fc9 Added _sigsetmask.s 1990-11-29 16:04:04 +00:00
ceriel
91ee73faa3 made Makefile more portable 1990-11-27 16:51:58 +00:00
ceriel
ae8ca35563 made Makefile more portable 1990-11-27 16:41:13 +00:00
ceriel
2a6b538c9b Corrected error messages 1990-11-27 09:39:52 +00:00
eck
04480b1db9 added protection against #define of _POSIX_SOURCE 1990-11-22 13:59:54 +00:00
ceriel
713521e0f5 make cmp entry was wrong 1990-11-22 13:48:08 +00:00
ceriel
46f1738ad4 Added -ansi flag 1990-11-22 13:18:47 +00:00
ceriel
aaa75da7da Changed INCLUDES 1990-11-22 13:16:54 +00:00
ceriel
b9e242674e Changed INCLUDES and deleted be description 1990-11-22 13:09:46 +00:00
ceriel
da39a8e59f Changed INCLUDES 1990-11-22 13:09:04 +00:00
ceriel
6dbb3945ff Some more amake simplifications 1990-11-22 12:56:23 +00:00
ceriel
32598a47a2 Also update WorkingDir on line directives 1990-11-22 12:02:00 +00:00
ceriel
2299e83685 Wrong version committed 1990-11-22 11:48:08 +00:00
ceriel
6545b68874 Also update WorkingDir on line directives 1990-11-22 11:25:34 +00:00
ceriel
b2bee3043a Did not handle RETURN's in module bodies right 1990-11-22 09:49:37 +00:00
ceriel
d99b166621 Added -ansi flag for ANSI C compiler 1990-11-21 16:51:49 +00:00
ceriel
d4c2c7ca2c Simplified Amakefile 1990-11-20 13:02:27 +00:00
dick
d443d61b09 improved error messages 1990-11-19 14:14:12 +00:00
ceriel
fb143bcdb5 Some corrections and simplifications 1990-11-16 16:31:40 +00:00
ceriel
449a757841 Added Johan's changes (nothing significant) 1990-11-16 16:01:04 +00:00
ceriel
99bfba6a45 Added Johan's changes 1990-11-16 15:58:36 +00:00
ceriel
8ffaf72dfa Some corrections 1990-11-16 09:58:33 +00:00
ceriel
715dd4ef0f don't allow empty format string 1990-11-15 17:00:39 +00:00
ceriel
a06482bb41 Forgot to add ARPLOP to mach2.c 1990-11-15 16:18:33 +00:00
ceriel
2f82d25400 Added arpl instruction 1990-11-15 15:02:49 +00:00
ceriel
b1cb54a2b9 Added some (short) casts, because valu_t is a long 1990-11-15 12:10:13 +00:00
ceriel
9ef7e00974 Replaced a .data4 by two .data2's: .data4 not guaranteed to work with big numbers 1990-11-15 11:53:22 +00:00
ceriel
994b1319ca Some corrections 1990-11-15 10:43:25 +00:00
ceriel
da44a4c705 Added a default for WRD_FMT 1990-11-15 10:27:15 +00:00
ceriel
ca5df8b32b Only produce #define for WRD_FMT when FORMAT is used 1990-11-15 10:26:40 +00:00
ceriel
a618b9a759 also remove barrier.so 1990-11-13 17:38:50 +00:00
ceriel
ba69e4279d Added support for DBX; Unfortunately, DBX still does not like it; GDB does 1990-11-13 17:00:51 +00:00
eck
7536a1f510 fixed two preprocessing bugs 1990-11-13 16:50:55 +00:00
ceriel
c7fc857c2d Compile fptrp.e with EMFLAGS 1990-11-13 15:39:11 +00:00
ceriel
dc345354ee Adapted for size of ARM table 1990-11-13 15:04:47 +00:00
ceriel
c9b9a9b2c0 Some simplifications 1990-11-13 14:52:51 +00:00
ceriel
0444eaa77c Albert Koelmans newest version, with adaptions 1990-11-13 13:54:10 +00:00
ceriel
52cbbb11e0 Additions from Albert Koelmans 1990-11-13 13:36:15 +00:00
ceriel
0a2ee14396 Adapted for use with improved fp package 1990-11-13 13:21:21 +00:00
ceriel
b7a61761f3 Albert Koelmans newest version, adapted for use with improved fp package 1990-11-13 13:10:45 +00:00
ceriel
321a62a192 Albert Koelmans newest version 1990-11-13 12:53:53 +00:00
ceriel
c5b98176f6 Albert Koelmans newest version 1990-11-13 12:05:13 +00:00
ceriel
f950727c44 Albert Koelmans newest version 1990-11-13 11:59:29 +00:00
ceriel
c3d7275ae8 Albert Koelmans newest version 1990-11-13 11:53:52 +00:00
ceriel
ff117d9f0b Albert Koelmans newest version 1990-11-13 11:46:48 +00:00
ceriel
03a25ece8a don't move ms_ego's 1990-11-13 11:26:04 +00:00
eck
0c8acbf834 vsprintf() sets _IOWRITING flag 1990-11-13 10:56:53 +00:00
ceriel
be2264283f Some corrections 1990-11-13 10:51:02 +00:00
eck
cc04440b5c added patterns 1990-11-13 10:03:55 +00:00
ceriel
ad800075eb Albert Koelmans latest version 1990-11-12 17:13:45 +00:00
ceriel
0a1b11973a Albert Koelmans newest version 1990-11-12 17:09:15 +00:00
ceriel
064258aa8b New version from Albert Koelmans 1990-11-12 15:41:50 +00:00
ceriel
1f7c2d1f39 Latest version from Albert Koelmans 1990-11-12 15:36:03 +00:00
ceriel
33dc73d4c4 Latest version from Albert Koelmans 1990-11-12 15:29:14 +00:00
eck
8a00e32bc8 fixed type of sizeof (decreases size!)
fixed bug with typedef of function with block scope
1990-11-12 15:28:44 +00:00
ceriel
96d5009bef speeded up std_alloc() 1990-11-12 13:56:38 +00:00
ceriel
b089e0d7f8 many changes, delinted 1990-11-12 13:46:31 +00:00
eck
57b1d9824a fixed bugs with sizeof() and unnormalized values 1990-11-09 16:26:15 +00:00
eck
899df7bc78 never set errno in ldexp() 1990-11-09 16:20:49 +00:00
eck
8357c43aee corrected type of *_EPSILON values 1990-11-08 12:01:52 +00:00
ceriel
354b624cb4 updated manual page 1990-11-07 15:25:24 +00:00
eck
e6fd25052a handle 'asp -x' correctly, instead of giving up 1990-11-06 13:22:15 +00:00
ceriel
f0fe57f807 Added Copyright notice 1990-11-06 13:16:57 +00:00
ceriel
7cea685c0e Added pc_math.h 1990-11-06 13:04:12 +00:00
ceriel
f192338596 Made compilable with ANSI C compiler 1990-11-06 13:02:55 +00:00
ceriel
87a8061e1c Many more changes 1990-11-06 12:23:41 +00:00
eck
b28f5a1824 prevent warning when #including setjmp.h 1990-11-06 10:49:12 +00:00
ceriel
925b8a76ed fixed bug with reading from standard input 1990-11-02 14:44:37 +00:00
ceriel
1136d63929 made compilable by the ACK ANSI C compiler 1990-11-02 14:29:02 +00:00
eck
d7c15759ee added warning about old-fashioned declarations
cleaned up error reporting
changed implicit declaration handling
1990-11-02 09:23:27 +00:00
eck
7de2babe56 fixed bug with reading from standard input 1990-11-01 11:09:09 +00:00
ceriel
9f01f909f6 Use make variable ACK 1990-11-01 09:42:51 +00:00
ceriel
2873c58731 Added debugger support 1990-11-01 09:42:03 +00:00
ceriel
ab1b54b56d Added sparc description, don't put constants in regs on M68020 1990-11-01 09:37:02 +00:00
ceriel
b314975f0f LIM puts a word-size object on stack 1990-11-01 09:36:47 +00:00
ceriel
1bab6dbcaf Several fixes 1990-11-01 09:33:51 +00:00
ceriel
1aef1c5921 Added high-speed clear loops and changed behaviour of Realloc 1990-11-01 09:32:21 +00:00
ceriel
8265d3f731 fixed picture and use soelim 1990-10-31 16:42:05 +00:00
ceriel
fd0c8ca52d Fixed bug in example program 1990-10-31 16:28:37 +00:00
ceriel
9aee9cb62f Fixed a few bugs 1990-10-31 15:56:51 +00:00
ceriel
162c1c81e9 Made communication protocol more machine-independant 1990-10-30 15:50:33 +00:00
eck
9df58e86ec removed a cast from offsetof() 1990-10-30 09:53:48 +00:00
eck
05ddeafbfd fixed labeldefs so that registers are killed
replaced 'cms <w>' bij 'cmi <w>'
1990-10-29 17:05:35 +00:00
ceriel
f78e573b69 fixed labeldefs so that registers are killed 1990-10-29 16:39:39 +00:00
eck
68f19d7335 changed offsetof(), so it will not generate a warning on 2-4 machines 1990-10-29 13:52:18 +00:00
ceriel
9da96274ae Added 'file ?' and shell escape, and some re-organization 1990-10-29 11:38:35 +00:00
ceriel
32f21c2bfa 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
54cc752a9e fixed bugs with ext_[wl] arguments, changed reusage of registers 1990-10-26 16:52:43 +00:00
eck
aef60fdda1 initialize sp_occurred[SP_SETJMP] at start of function 1990-10-26 12:38:06 +00:00
eck
17abf1a78a changed definition of jmp_buf (alignment problems) 1990-10-26 11:31:27 +00:00
ceriel
16e89fea1f protect against multiple inclusions, commented text after #endif 1990-10-25 11:18:44 +00:00
eck
da36c2b13f deleted toupper and tolower macros: they were wrong 1990-10-24 17:24:12 +00:00
eck
e701e2e2ec added to*() routines: a macro is impossible 1990-10-24 17:19:50 +00:00
ceriel
a94e7b877a corrected subrange handling: char type was not recognized 1990-10-24 16:46:46 +00:00
eck
32da1c8c1e made a function-call of HUGE_VAL 1990-10-24 14:31:50 +00:00
eck
ba0cc3a57d fixed small bug (void expr. cast to void), squeezing for MINIX 1990-10-23 14:13:10 +00:00
eck
b4f97588b7 fixed bug with undefined structs
ceriel changed debugging information
1990-10-19 11:50:32 +00:00
eck
c3f305bea1 fixed bug with undefined structs
ceriel changed debugging information
1990-10-19 11:21:43 +00:00
ceriel
7e58923415 more fixes 1990-10-17 17:00:03 +00:00
eck
c33f7cbe76 changed homefromsubdir a little 1990-10-16 10:07:12 +00:00
ceriel
7be2815cbc fix to fit? macros 1990-10-15 13:59:55 +00:00
eck
9bdf648402 added #include of <sys/types.h> to sigmisc.c 1990-10-15 11:23:08 +00:00
eck
1105a33fe3 added table for time-zone determination 1990-10-12 14:48:55 +00:00
ceriel
3672f835fe Too many changes and fixes to mention them all here 1990-10-11 08:42:07 +00:00
ceriel
7f8a099a15 Fixed problem with global names used for statics as well as externs 1990-10-08 11:44:15 +00:00
ceriel
06e6c8638f fix: addr_t must be long 1990-10-05 16:31:55 +00:00
ceriel
5ba9685e76 de-linted somewhat 1990-10-02 17:19:17 +00:00
ceriel
4483f237f6 de-linted somewhat 1990-10-02 17:13:40 +00:00
eck
67ef9905e6 made implementation defined behaviour (POSIX) more explicit 1990-10-02 09:59:30 +00:00
eck
6f6dff3461 forgot to add homefromsubdir to .distr 1990-10-01 17:12:54 +00:00
ceriel
8de3973836 Pass -g to cemcom 1990-10-01 15:42:10 +00:00
ceriel
41e3cf403b Added support for debugger, de-linted somewhat 1990-10-01 15:28:28 +00:00
ceriel
eb1326e3ec some more changes and fixes 1990-10-01 11:44:27 +00:00
eck
14133b5e2f added _sigvec.s and changed call of sigvec() in signal.c 1990-09-28 17:13:40 +00:00
ceriel
7fbfa4360c Added _sigvec and _syscall 1990-09-28 17:12:33 +00:00
eck
e91e983728 changed _end to __end because of namespace pollution 1990-09-28 15:35:16 +00:00
eck
30922a239d changed some names because of namespace pollution 1990-09-28 15:19:06 +00:00
eck
fc6247ca5e removed some names from tokenname.c 1990-09-28 14:03:15 +00:00
eck
63e1c0e44a changed some names because of namespace pollution 1990-09-28 13:47:47 +00:00
eck
4001fbb580 changed makefile, added homefromsubdir 1990-09-28 13:13:34 +00:00
eck
bb85ecc4f0 changed some names because of namespace pollution 1990-09-28 13:08:07 +00:00
eck
74edeea849 changed end_em to avoid namespace pollution 1990-09-28 09:47:50 +00:00
eck
cd8e8e5aef completed Makefile entries 1990-09-28 09:47:40 +00:00
eck
a50ec18466 some minor fixes 1990-09-28 09:29:51 +00:00
ceriel
ce71090da3 Fixed problem with -I option 1990-09-27 17:50:52 +00:00
ceriel
928c2dacc5 Fixed problem with -I option 1990-09-27 17:45:34 +00:00
ceriel
282d93dde0 Fixed problems with -I and with value conformant arrays 1990-09-27 17:01:01 +00:00
eck
03a65131fc forgot homefromsubdir in .distr 1990-09-27 16:56:10 +00:00
eck
c937359a4e oops, _envp should have been _penvp 1990-09-27 16:52:07 +00:00
ceriel
e1a20fe944 fixed bug in -I handling 1990-09-27 16:43:51 +00:00
eck
d7a034bc02 fixed bug with -I flag 1990-09-27 16:39:54 +00:00
eck
4581d9f266 forgot to update LIST 1990-09-27 16:38:32 +00:00
eck
851b82ee09 added head_ac 1990-09-27 16:37:22 +00:00
eck
7dff46d44e fixed bug with -I flag 1990-09-27 15:59:38 +00:00
eck
d296eed0c3 added head_ac.e 1990-09-27 15:49:13 +00:00
eck
56502994f4 changed end_em to library to avoid namespace pollution 1990-09-27 14:29:09 +00:00
eck
81ce150a96 changed environment handling to decrease namespace pollution 1990-09-27 13:40:08 +00:00
ceriel
a6d0f40fc8 Some more changes 1990-09-26 17:32:42 +00:00
eck
bc6df29be8 changed first arg of sscanf() to const char * 1990-09-26 13:19:19 +00:00
ceriel
1f408a38c2 Many more changes 1990-09-25 17:40:47 +00:00
ceriel
1ade1b814d Added patterns 1990-09-25 15:12:26 +00:00
ceriel
5efd4280ee Added patterns 1990-09-25 15:04:55 +00:00
ceriel
4c8596ee05 Fix: cmp.l A,A is not the same as tst.l A 1990-09-25 14:59:28 +00:00
eck
5eb4a8d88f oops, fix for ## operator was wrong 1990-09-25 13:46:59 +00:00
eck
7b00154c54 oops, previous fix was wrong for ## operator 1990-09-25 13:40:32 +00:00
ceriel
1011f9679e fixed typo 1990-09-24 15:22:36 +00:00
ceriel
f8de19a427 Some lay-out changes and always use value of LLuserhook 1990-09-24 13:35:28 +00:00
ceriel
096e8368c5 added manual page, some improvements 1990-09-21 16:58:20 +00:00
ceriel
e3bb56818b fix INS and INSB 1990-09-21 14:24:03 +00:00
eck
7488a2fbba added cv to .distr 1990-09-21 12:53:58 +00:00
eck
a480e8fa81 fixed typo 1990-09-21 09:27:04 +00:00
ceriel
fbcee49b7e Some new commands and improvements 1990-09-20 17:51:14 +00:00
eck
e3a247ad23 added em_mesX.h to .distr 1990-09-20 17:03:05 +00:00
ceriel
d800aaf11a Added .distr 1990-09-20 16:18:57 +00:00
ceriel
094c19f350 Added JC and JNC (aliases for JB and JNB) 1990-09-20 14:18:52 +00:00
eck
65f74f5c72 changed shc.[ch] to tes.[ch] in .distr 1990-09-19 15:14:07 +00:00
ceriel
1feeb94dbf many changes 1990-09-19 14:31:12 +00:00
eck
641a446f01 Added ANSI-C library 1990-09-18 15:02:27 +00:00
eck
6f1d9fbf70 forgot to update Action 1990-09-18 14:59:50 +00:00
eck
d1050c2382 improved makefile 1990-09-18 14:56:52 +00:00
eck
a0f46ee7a6 Initial revision 1990-09-18 14:42:32 +00:00
eck
5571e06719 added libcc.ansi to .distr 1990-09-18 14:37:29 +00:00
dick
0e90ae224a clean-up code generation suppression for lint 1990-09-18 14:29:42 +00:00
eck
a246152240 removed crash() call: it was wrong 1990-09-14 16:39:11 +00:00
eck
9eefd96eb1 deleted unnecessary label 1990-09-14 16:37:30 +00:00
ceriel
5f592dd6bd Added some C support 1990-09-14 14:37:26 +00:00
ceriel
4900ad0743 improved line number administration 1990-09-14 14:37:24 +00:00
eck
bd4bc1cad0 replaced some move's by move_i's 1990-09-14 14:30:07 +00:00
eck
707d811586 fixed error with # && ##-operators in non function-like macro's 1990-09-13 15:14:52 +00:00
eck
5ed44e3432 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
49fd9f9377 'x(x) int x; { }' was not accepted 1990-09-12 17:32:31 +00:00
ceriel
11d8919d76 Fix: the type INTEGER[0..255] was put in one byte 1990-09-12 17:09:57 +00:00
eck
e144c7cc4c fixed bugs with prototype scopes 1990-09-12 16:36:16 +00:00
ceriel
bd18f6c521 many changes 1990-09-12 16:13:59 +00:00
eck
74f3d91777 added #if because rename() is also in POSIX 1990-09-11 10:26:42 +00:00
eck
1dd88ae8da changed int-functions to void-functions 1990-09-11 10:24:15 +00:00
eck
0d8a8bae5f removed assumption that time_t is an unsigned type 1990-09-11 10:18:51 +00:00
eck
f0581f7706 fixed small bug with token separation 1990-09-10 11:57:16 +00:00
ceriel
24920dfa75 recognize expressions 1990-09-07 14:56:24 +00:00
eck
2c9fbebe4e strod() & _str_ext_cvt() made more strictly conforming 1990-09-07 11:00:24 +00:00
eck
33c9811ba9 sometimes swap operands in expressions with side-effects 1990-09-06 14:49:52 +00:00
eck
2f0275ba3c added some optimalizations 1990-09-06 11:32:51 +00:00
eck
9915ed4bc2 stupid error fixed: tes shouldn't have worked 1990-09-06 08:59:02 +00:00
ceriel
4a4153bb8b Added Xcv.c 1990-09-05 11:54:11 +00:00
eck
6dc5c01551 added top element size computation information 1990-09-05 09:29:05 +00:00
eck
5c85d84228 changed stackheight computation to top element size computation
changed some parameters
1990-09-04 17:19:04 +00:00
eck
5badcb4296 changed stackheight computation to top element size computation 1990-09-04 17:16:00 +00:00
eck
ee652e6908 changed stacheight to topeltsize 1990-09-04 17:13:37 +00:00
eck
dace3435ec changed stacheight computation to top element size computation 1990-09-04 16:56:39 +00:00
eck
58355b7041 changed stackheight computation to top element size computation 1990-09-04 16:42:43 +00:00
ceriel
3ea64975af distribute makefile.std, not makefile 1990-09-04 11:47:50 +00:00
eck
b2efe2299f fixed bug in qualifier_type() 1990-09-04 10:48:04 +00:00
eck
02ea4988d1 fixed problems with declaration syntax 1990-09-03 13:46:30 +00:00
ceriel
2f83a7e3d9 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
67f0419dc3 Additions for debugger information 1990-09-03 11:07:22 +00:00
ceriel
b2ca3783c4 keep the names .csa and .csb for backwards compatibility 1990-09-03 10:25:57 +00:00
ceriel
dbf9a060c2 Initial version 1990-08-31 18:22:53 +00:00
eck
f614fc6dc3 fixed two little bugs 1990-08-31 10:27:12 +00:00
ceriel
1cb247fa39 only deal with signals that are not ignored 1990-08-29 11:44:33 +00:00
eck
bee5d97eac fixed some bugs in new pattern 1990-08-28 15:01:17 +00:00
eck
5fcee85f88 removed test because of moon3 1990-08-28 14:53:34 +00:00
eck
391874ecb2 merged vax and pdp #defines in float.h 1990-08-28 14:52:52 +00:00
eck
4ab420fb0f fixed qsort() for 0 elements 1990-08-28 14:03:24 +00:00
eck
bc83231874 changed pow() a little 1990-08-28 13:59:36 +00:00
eck
a41c51783a improved the speed somewhat
fixed bug with negative chars in comparisons
1990-08-28 13:54:46 +00:00
eck
cd1f6c38a4 fixed freopen() bug by deleting some code 1990-08-28 13:44:48 +00:00
eck
bc137646df fixed types because of the 2-4 version 1990-08-24 17:05:53 +00:00
eck
dc500c3463 fixed some strange constructions 1990-08-24 16:20:57 +00:00
ceriel
8401d7b9ec Did not handle quotes in C comments right 1990-08-23 15:53:13 +00:00
ceriel
97d1275cfe changed 'enter' into 'entry' (80286) 1990-08-23 09:30:56 +00:00
eck
0bf7d60080 several improvements + fixes 1990-08-22 16:26:21 +00:00
ceriel
2a26b4d335 avoid double LINs and corrected bug in symbol table entries for records 1990-08-22 15:33:43 +00:00
eck
ba475d78a2 added optional .w to OP_EA_D 1990-08-21 10:59:09 +00:00
eck
797f90a022 changed interface for cs[ab] 1990-08-21 10:17:49 +00:00
ceriel
3fb20f5201 made produced itemtab.h file more readable 1990-08-20 15:32:29 +00:00
ceriel
e2ce4995e6 Initial revision 1990-08-20 15:07:38 +00:00
ceriel
78681448e4 new table (merged with m68k2) 1990-08-20 15:00:15 +00:00
eck
b4a2b975a0 added m68k2 stuff, added patterns 1990-08-20 13:55:38 +00:00
eck
0f2f6da38f fixed several bugs with object sizes 1990-08-14 09:59:37 +00:00
ceriel
36b11dc296 improved REAL constant and string constant stab generation 1990-08-10 18:01:50 +00:00
ceriel
c7a5b07da7 fixed bug concerning back-slashes within strings 1990-08-10 17:57:32 +00:00
eck
535e64328a added _sigsetmask.s 1990-08-09 15:40:08 +00:00
eck
fd921229f2 added _sigsetmask.s 1990-08-09 15:29:51 +00:00
eck
7bee903886 changed sigsetmask to _sigsetmask 1990-08-09 15:27:13 +00:00
ceriel
4a34358b6a keep comments in actions; they may be significant (for lint) 1990-08-07 10:48:02 +00:00
eck
17158641e0 fixed error in .trp: it could generate a bus error 1990-08-03 16:16:28 +00:00
ceriel
257c868cc7 don't throw away pseudo's, even if they are not reachable 1990-08-02 16:01:21 +00:00
ceriel
116b6a00bc show some more of the name list entries 1990-08-02 15:58:10 +00:00
ceriel
b32921d7ed pass -g flag to Modula-2 compiler 1990-08-01 14:46:07 +00:00
ceriel
0c56d078ec bug fix: did not return soon enough 1990-08-01 14:41:18 +00:00
ceriel
05c205181b increase size of yytext buffer 1990-08-01 14:40:22 +00:00
ceriel
79ce5a13a0 only leave ms_std's if prodepth > 0 1990-08-01 14:36:45 +00:00
ceriel
5ca5b63151 some more changes for debugger support 1990-08-01 14:35:07 +00:00
ceriel
eb50492a1f #ifdeffed strange test 1990-08-01 14:34:53 +00:00
ceriel
f936a3f35a time optimization is default now 1990-08-01 14:33:08 +00:00
ceriel
e3120d2b5f minor change 1990-08-01 14:32:04 +00:00
ceriel
e0ff37aa6e support for long strings 1990-08-01 14:30:45 +00:00
ceriel
f4e1a15dfb Added support for debugger messages 1990-07-30 16:05:27 +00:00
ceriel
76fd4c3d7b fixed declaration of C_error 1990-07-30 16:03:15 +00:00
ceriel
8eecdff85a added support for debugger 1990-07-30 15:56:25 +00:00
ceriel
8206965ae9 changed a comment 1990-07-30 15:51:32 +00:00
ceriel
6d675af42c removed limit on string size 1990-07-30 15:40:08 +00:00
ceriel
05db577e01 some fixes 1990-07-30 14:52:58 +00:00
ceriel
09d156b96a several changes 1990-07-30 14:32:43 +00:00
ceriel
3c10a60011 vax4 uses own assembler now 1990-07-30 14:29:13 +00:00
ceriel
8cd417eeab modifications for debugger 1990-07-30 14:20:20 +00:00
ceriel
aae0eeca94 protect types.h against multiple inclusions 1990-07-30 14:17:30 +00:00
ceriel
f3209123e0 fixed: tail_mon is needed for languages 1990-07-30 14:10:35 +00:00
ceriel
1f0d138f31 clarified text somewhat 1990-07-30 12:46:12 +00:00
ceriel
5a0ad2a8bc fixed typo 1990-07-30 12:43:38 +00:00
ceriel
1168708cd0 Added support for S_CRS 1990-07-30 11:56:28 +00:00
ceriel
5c0938d05b Added some more support for debugger 1990-07-30 09:43:45 +00:00
eck
f321062250 fixed bug with state 1990-07-26 15:08:49 +00:00
ceriel
cef36d185e removed g-flag 1990-07-25 17:40:02 +00:00
ceriel
27b1d561b5 do not move ms_std message, added shc.c and shc.h to .distr 1990-07-25 17:10:40 +00:00
eck
313376cd36 improved -I handling 1990-07-25 13:00:40 +00:00
eck
c615803fa6 changed names of csa and csb to csa4 and csb4 1990-07-25 11:46:27 +00:00
eck
2807862aba #if X=3 caused infinite loop 1990-07-25 10:20:44 +00:00
eck
7ef2d1bc37 switch to text segment when generating a label 1990-07-20 14:02:35 +00:00
eck
47249aaad3 atw.h was wrong, since word_size may contain a cast 1990-07-20 10:30:49 +00:00
ceriel
cf28f45a59 improved conversion of extended to string 1990-07-20 09:39:43 +00:00
eck
b23125354b added patterns for stackheight mechanism 1990-07-19 17:22:56 +00:00
eck
43b01a70a0 squeezing for MINIX & bug fix in dumpidf 1990-07-19 17:16:36 +00:00
ceriel
eab3243973 dumped core on SIM instruction 1990-07-19 10:00:02 +00:00
eck
aca2c5f4b1 forgot pop_push.awk 1990-07-18 16:31:32 +00:00
eck
4ef2c70ed3 added stackheight message handling 1990-07-18 14:53:19 +00:00
eck
adfec1c0ef added #defines for stackheight computation 1990-07-18 14:42:37 +00:00
ceriel
3e27993361 prevent core dump when no args are given 1990-07-18 14:38:48 +00:00
eck
379511e232 added stackheight computation 1990-07-18 14:33:07 +00:00
ceriel
30824d6133 replaced call of non-existing Dvu to a call to Duv 1990-07-18 09:11:33 +00:00
ceriel
e2bc68a46b fix problem with variant tag and made double compatible with subranges 1990-07-17 13:57:01 +00:00
ceriel
109a357e95 Fix: DIV and MOD on negative args 1990-07-16 09:05:19 +00:00
eck
7f5abdd670 fixed int to unsigned conversions, declarations, pp-list initialization 1990-07-13 10:18:27 +00:00
ceriel
63fe4e0a18 Added patterns 1990-07-12 16:12:17 +00:00
eck
21f1ef5a6c fixed character count in doscan 1990-07-11 09:08:33 +00:00
ceriel
fbe4a79045 check result of array address calculation 1990-07-04 14:24:55 +00:00
ceriel
c6a11d1f62 rand() did not work on 2-byte machines 1990-06-30 20:02:45 +00:00
ceriel
5512f14697 use new con_float 1990-06-29 11:05:19 +00:00
ceriel
cabefb9d9e fixed -I option 1990-06-29 10:00:41 +00:00
ceriel
266d247470 fixed -I option 1990-06-28 18:06:16 +00:00
ceriel
56858bb480 bug fix: wrong procedure was called 1990-06-27 09:29:55 +00:00
ceriel
3ae582dfd7 Added some more patterns 1990-06-25 16:58:33 +00:00
ceriel
29b8ec04c5 Added strtol() 1990-06-25 15:59:16 +00:00
ceriel
736108572f produce commons, fix bug with mov-extend instructions 1990-06-25 15:48:49 +00:00
ceriel
b972fea237 produce commons for bss 1990-06-25 13:42:02 +00:00
ceriel
0105d98302 tp_unsigned is now a true boolean 1990-06-21 15:49:41 +00:00
ceriel
f218a430f6 int now uses intelligent calls 1990-06-21 13:17:50 +00:00
ceriel
4355b05597 Model 3 (Intelligent Calls) implemented (Remco Feenstra & Peter Boersma);
a few bugs fixed
1990-06-21 12:16:31 +00:00
ceriel
c7c79e9b42 Model 3 (intelligent calls) implemented 1990-06-21 12:11:50 +00:00
eck
472ee0cea4 always flush line-buffered output when filling an input buffer 1990-06-21 11:13:23 +00:00
ceriel
6c5c8c980e Added em_mesX.h which makes some C_ms_... unique in first 7 chars 1990-06-20 12:00:26 +00:00
ceriel
8444bc32fb Added debugger message routines 1990-06-20 11:59:57 +00:00
ceriel
bd82622a2e Added debugger messages 1990-06-20 11:58:38 +00:00
ceriel
39730420a2 Made to work with troff 1990-06-20 10:05:22 +00:00
ceriel
97e131bc81 Added bsbb and bsbw 1990-06-19 15:27:43 +00:00
ceriel
9de0c3d920 fixed optimizations that were wrong with indexed mode 1990-06-19 15:15:37 +00:00
eck
101a129256 fixed some typos 1990-06-19 11:29:20 +00:00
ceriel
bb1964e1d3 Updated for IEEE format 1990-06-15 16:50:08 +00:00
ceriel
d7b4e48972 correct M_MAX_D for old floating point format 1990-06-15 16:47:27 +00:00
ceriel
a8f5884144 cg no longer part of distribution 1990-06-14 16:52:04 +00:00
ceriel
ddd97f9328 Added new patterns 1990-06-14 16:45:33 +00:00
ceriel
45783a1e73 Added a SBS pattern for constant args 1990-06-13 09:59:11 +00:00
ceriel
3bcec93972 fix: #if instead of #ifdef 1990-06-12 11:22:49 +00:00
ceriel
a8d2505ba5 changed order so that it works without ranlib 1990-06-12 11:21:40 +00:00
ceriel
a28eb23f82 fix from Verstoep: free() was called twice on same arg 1990-06-12 10:07:00 +00:00
ceriel
39fee04619 fix previous fix 1990-06-11 15:17:50 +00:00
ceriel
f234f061a1 Added dependency generator, reduced size of type structure 1990-06-08 10:03:47 +00:00
ceriel
05d0caaaea do not generate line number/file name information by default for C 1990-06-06 17:04:46 +00:00
ceriel
020e6311fb use own version of assert (ASSERT) 1990-06-06 16:54:30 +00:00
ceriel
dd3d0777c7 dependencies 1990-06-06 16:23:47 +00:00
ceriel
aff5b89ac9 change flag -xs to -i, -xm to -m, dependencies 1990-06-06 16:10:19 +00:00
ceriel
27c1b37c21 change flag -xs to -i, -xm to -m 1990-06-06 16:01:03 +00:00
ceriel
280d7a79be change flag -s to -i 1990-06-06 16:00:28 +00:00
ceriel
4d7ba75469 removed useless #ifdef 1990-06-06 15:35:33 +00:00
ceriel
bf66a6ade1 Added dependency generator 1990-06-06 14:42:53 +00:00
ceriel
8d1bb88fc9 Added -A option, like -d 1990-06-06 14:37:03 +00:00
ceriel
bea95a4443 mktime() did not work for 2-byte machines 1990-06-05 12:07:28 +00:00
ceriel
6df0ecdf8f fixed typo 1990-06-05 09:50:28 +00:00
ceriel
3de1e669b2 optimized a bit 1990-05-31 18:33:38 +00:00
ceriel
e2b59f6517 Removed some erroneous fclose() calls 1990-05-31 13:54:33 +00:00
ceriel
9eaa440fab removed DEBUG #define 1990-05-31 13:33:31 +00:00
ceriel
82b0ef795d fix: IL sometimes removed procedures that could be called indirectly 1990-05-30 11:31:32 +00:00
ceriel
ab0d3bf876 Added EM_vars.c 1990-05-23 09:24:55 +00:00
ceriel
adb704aad4 make GMT the default 1990-05-22 14:42:28 +00:00
ceriel
59dd7cdfeb fix to fix 1990-05-22 12:22:25 +00:00
ceriel
ef69de1614 atol and atoi get old-fashioned behaviour 1990-05-22 10:48:12 +00:00
ceriel
24c9be9777 Use fputs instead of printf in perror.c 1990-05-21 10:20:15 +00:00
ceriel
da8f9124ff compares with 0 were wrong 1990-05-18 13:22:13 +00:00
ceriel
c336bc86b1 made size of yylex bigger 1990-05-18 11:04:53 +00:00
ceriel
a4e5e4eeaa Added a pattern 1990-05-18 10:47:12 +00:00
ceriel
c4dabcd9a4 unsigned but-fields were sometimes sign-extended when converted to int 1990-05-18 10:29:57 +00:00
ceriel
74147d2b4a ignore NOP 1990-05-17 19:40:15 +00:00
ceriel
9dacc57b3a C_out uses EM_bsssize etc. instead of C_bsssize etc. 1990-05-16 18:05:55 +00:00
ceriel
afae382803 removed references to C_bssinit etc. 1990-05-16 18:03:50 +00:00
ceriel
aa20369a56 removed pc_size.h 1990-05-16 10:56:45 +00:00
ceriel
0c6f2f490f 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
9570000674 an = was temporarily set to 0, but not reset 1990-05-14 12:30:18 +00:00
eck
27718f5d6d error with cast to unsigned long 1990-05-11 15:22:19 +00:00
ceriel
e9d214e977 check -m option 1990-05-11 13:11:12 +00:00
ceriel
c64733ae6f fix in sscanf: _count field was wrong 1990-05-09 13:31:36 +00:00
ceriel
b04388a326 fixed some patterns: operand could have side effects 1990-05-08 09:03:28 +00:00
eck
a1e2a583b5 fixed bug with double definition 1990-05-03 16:18:22 +00:00
eck
51467658c6 scan with %p didn't work properly on 2-4 machines 1990-05-03 10:50:23 +00:00
eck
7987a1fed8 cast ptrdiff_t to int for ANSI 1990-04-25 15:10:13 +00:00
eck
dc12b2fa3d warn about ptrdiff_t passed as long on 2-4 machines 1990-04-25 15:09:51 +00:00
ceriel
f2b4713c24 cast ptrdiff_t to int for ANSI 1990-04-25 14:23:05 +00:00
ceriel
8fe53f501f avoid a crash in directives 1990-04-24 14:07:07 +00:00
eck
536b12010f garbage is allowed in the fdopen mode string 1990-04-24 09:40:47 +00:00
eck
470bb82342 garbage is allowed in the f[re]open mode string 1990-04-24 09:30:15 +00:00
ceriel
6ab26e5cdc avoid null references on illegal input 1990-04-23 16:11:37 +00:00
eck
da806afa6b some more corrections 1990-04-23 13:48:43 +00:00
ceriel
dbd1744edc Use C_out instead if EM_mkcalls 1990-04-23 13:43:05 +00:00
ceriel
ed81d83f4c use .limhp 1990-04-23 13:39:26 +00:00
ceriel
f95fae24fc moved a coercion 1990-04-23 13:38:19 +00:00
ceriel
2b488e1021 INS instruction fix 1990-04-23 13:33:26 +00:00
eck
81b7f67cb4 result of sizeof() is 'unsigned int' (for backward compatibility) 1990-04-23 13:33:07 +00:00
eck
86188fb772 size_t is 'unsigned int' (for backward compatibility) 1990-04-23 13:26:09 +00:00
ceriel
fb25b628d6 yet another bug fix in instructions handling special registers 1990-04-23 12:35:41 +00:00
eck
564bb0b81c changed remark about predefined identifiers 1990-04-19 16:04:58 +00:00
eck
64e9d11570 the -U option did not work properly; call do_undef() now 1990-04-18 16:40:17 +00:00
eck
52f08181a6 two -D options for one identifier didn't work 1990-04-18 13:09:36 +00:00
eck
b44938412e two -D options for one identifier didn't work 1990-04-18 13:03:05 +00:00
eck
e625c3bdb8 added wait-statements for floating-point library 1990-04-17 13:57:23 +00:00
eck
010ada1c23 added a.out.h for the cv program 1990-04-12 17:03:31 +00:00
eck
90963fd585 added csa4 and csb4 1990-04-12 11:35:10 +00:00
eck
f1351720e5 added csa4 and csb4 1990-04-12 11:29:49 +00:00
eck
031b9dfee2 added warning for nested comment 1990-04-10 10:52:52 +00:00
eck
a3f1aaa41f don't free prototype lists, they might be part of a typedef 1990-04-10 10:14:46 +00:00
eck
dd5ef3905f timezone info should not end up in rom 1990-04-09 17:03:58 +00:00
eck
8c9149b058 changed over/underflow for exp() 1990-04-09 16:54:09 +00:00
eck
a3bd2c6734 file creation on f[re]open() was still wrong 1990-04-09 15:55:51 +00:00
eck
09a4136272 deleted _tname from __iobuf structure 1990-04-09 15:38:02 +00:00
eck
d2516d4eaf improved file creation on f[re]open() 1990-04-09 15:21:43 +00:00
eck
aa4de95f26 various bug fixes & improvements 1990-04-06 15:37:16 +00:00
eck
6e685b9fcc definition of ptrdiff_t was wrong 1990-04-04 16:21:34 +00:00
eck
d87444a7fb improved _doscan(); fflush() doesn't call fseek() anymore 1990-04-04 15:52:01 +00:00
eck
ad7e46a324 code for '*(ip = iarr) = x' was wrong 1990-04-04 15:08:45 +00:00
ceriel
f0c0b894f2 corrected SDF patterns 1990-04-04 15:06:32 +00:00
ceriel
16ef0467a8 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
ededd15b74 changed assert() macro so __bad_assertion() can use fputs() 1990-04-03 15:29:03 +00:00
eck
644cfbf61f changed __bad_assertion(), it now uses fputs() 1990-04-03 15:01:58 +00:00
eck
84b8c8a6ca improved volatiles, added warning for possibly nested comments 1990-04-02 15:57:51 +00:00
ceriel
2782412b59 Fix: did generate wrong code for 'if (x && 0) ...' 1990-03-29 11:19:36 +00:00
eck
99e74b2341 bug fix for #line directives 1990-03-29 10:45:15 +00:00
eck
ed2516a57a bug fixes after test-suite 1990-03-29 10:41:46 +00:00
ceriel
fd80d596df produced incorrect 'pure' objects 1990-03-29 09:46:14 +00:00
eck
34d54a20b1 several bug fixes after test-suite 1990-03-29 09:05:21 +00:00
ceriel
f27e9ca63e Added #defines for _EM_?SIZE 1990-03-28 17:14:35 +00:00
eck
c8c4c6e7a9 several bug fixes after test-suite 1990-03-28 16:37:18 +00:00
eck
0bb4c0167c bug fixes for scanf() 1990-03-28 16:33:05 +00:00
ceriel
3553a28b78 fix: still sometimes assumed that a move to address register sets condition codes 1990-03-26 14:47:26 +00:00
ceriel
863824de01 fixed bug in conversion from float/double to unsigned 1990-03-26 14:16:59 +00:00
ceriel
a932246479 Fix: did not work with ALIGNMENT < MIN_SIZE 1990-03-21 16:45:39 +00:00
eck
28d6834ae7 forgot ) 1990-03-21 14:46:18 +00:00
eck
0296dc2371 fixed wrong assertion 1990-03-21 13:33:14 +00:00
eck
df33f1eeff adapted directory test for POSIX 1990-03-21 11:13:21 +00:00
ceriel
57790a926f simplified stupid ?: expression 1990-03-20 16:24:21 +00:00
ceriel
f99d67e76e minor improvement: LDC CMS T?? does not need STACK in stack pattern 1990-03-20 15:49:04 +00:00
ceriel
353d22ea90 LDC CMS TNE was wrong 1990-03-20 15:01:25 +00:00
ceriel
71156a48ae Fixed 16-bit address mode bugs 1990-03-19 14:46:55 +00:00
ceriel
0b95807664 Added verbose option 1990-03-15 10:44:14 +00:00
eck
d3208e42ca changed commented #define's into #undef's 1990-03-14 12:49:16 +00:00
ceriel
3bcec5fe6c Fixed to also handle pseudo instructions 1990-03-14 11:47:09 +00:00
ceriel
11b54f5d47 fix: generated wrong loops 1990-03-14 11:42:28 +00:00
ceriel
1a18efbe49 EM_mkcalls is obsolete 1990-03-14 10:16:49 +00:00
eck
d04a8595f3 fixed calls of echo() macro's 1990-03-13 14:33:43 +00:00
ceriel
2c7496a525 Added 16-bit mode 1990-03-12 16:24:58 +00:00
eck
9a5ac60946 changed target_sizes.h to trgt_sizes.h 1990-03-12 13:35:26 +00:00
eck
59edf55051 changed line_prefix.h to ln_prefix.h 1990-03-12 13:28:12 +00:00
ceriel
34eff754f5 documented .use16 and .use32 1990-03-09 12:37:19 +00:00
ceriel
6e0c2ad593 Added arpl instruction 1990-03-09 11:07:43 +00:00
ceriel
a082cf03dc allow for % in assembler strings 1990-03-07 16:24:06 +00:00
ceriel
5d01fbf6b8 fixed typo 1990-03-06 13:39:48 +00:00
ceriel
8e6fe7258c fix: ARRAY type of itself caused crash;
better implementation of ranges in CASE labels
1990-03-06 13:22:30 +00:00
eck
a771c9aa30 added test for directory 1990-03-06 13:10:35 +00:00
eck
f99437138d made little mistakes in div() and ldiv() 1990-03-05 13:48:03 +00:00
eck
11c9808d7e fixed div() and ldiv() 1990-03-01 16:32:22 +00:00
eck
61b718d716 floating-point yet again, fixed debugging bug 1990-03-01 13:02:39 +00:00
eck
2dd3439f90 also give a message on loading a floating-point function result 1990-02-28 15:32:07 +00:00
eck
44d9a8b42d improved the generation of floating-point messages 1990-02-28 14:51:35 +00:00
ceriel
63e64680bd Added some code to reverse evaluation order of assignment operators when possible 1990-02-28 12:18:36 +00:00
ceriel
2236ff6d6a Fix: some patterns were never found due to wrong condition 1990-02-28 12:10:49 +00:00
ceriel
8ec051b83e Added some patterns 1990-02-28 12:10:19 +00:00
ceriel
b0c09c2a94 Added some more patterns 1990-02-28 11:14:39 +00:00
eck
ccd728edbc changed names of ?cvt : namespace problems 1990-02-27 16:48:01 +00:00
ceriel
239d634ab1 Added pattern for cmp A,A 1990-02-27 16:31:10 +00:00
ceriel
9d4e978a1e fixed problems with overflow bit in condition codes 1990-02-27 16:21:47 +00:00
ceriel
f17b176ddd Fixed problem with anonymous structure tags 1990-02-27 15:45:09 +00:00
ceriel
d35a781049 improved test for overflow 1990-02-27 14:30:10 +00:00
eck
073c81c9aa added extern declaration for flt_flt2arith() 1990-02-26 15:39:45 +00:00
ceriel
29152cbf74 two fixes to the lint part: unsigned constant compares, and initializations in switch headers 1990-02-26 11:35:15 +00:00
eck
8d04be4a13 deleted a ';': pasting didn't work properly 1990-02-26 10:18:40 +00:00
ceriel
95632b0fef Oops in assertion: MAXPROCARG instead of MAXPROCARGS 1990-02-23 17:05:04 +00:00
ceriel
0c95aa4b86 fixed library order : fix for 2-byte machines 1990-02-23 17:02:06 +00:00
ceriel
551b10f3a6 fixed for 2-byte machines 1990-02-23 17:00:59 +00:00
ceriel
0ec452930f print pointer as hex 1990-02-23 16:58:34 +00:00
eck
64e1fa33d3 fixed bugs, added No_Mem() 1990-02-21 16:38:45 +00:00
ceriel
1228fe1baf a few fixes: usual arithmetic conversions were wrong 1990-02-20 13:31:52 +00:00
ceriel
972d39139d Added some patterns for shifts with constant shift count 1990-02-19 16:38:35 +00:00
ceriel
8bfbe723db bug fix: far calls+jumps with address prefix were wrong 1990-02-19 09:06:16 +00:00
ceriel
cba0bbac02 Under the -M option, identifiers were sometimes truncated 1990-02-14 11:57:41 +00:00
eck
e4d7651f02 fixed fflush: it didn't even compile! 1990-02-13 17:08:05 +00:00
ceriel
c6d14bb079 some corrections 1990-02-13 09:23:04 +00:00
ceriel
2293458101 corrected: _fstat is in _Xstat.c 1990-02-13 09:20:50 +00:00
ceriel
7c4af80c0f is_rom is boolean, not integer 1990-02-12 15:15:21 +00:00
ceriel
abeebac3c1 recognize but ignore -undef flag 1990-02-12 14:33:57 +00:00
ceriel
7761eecc34 removed MKDEP; it is now a cpp option (-d) 1990-02-12 11:47:50 +00:00
ceriel
63d6fe28e7 Added a change suggested by Cees Verstoep 1990-02-12 09:32:04 +00:00
ceriel
3f950c9f17 Added a new operator for ncg: is_rom() 1990-02-09 16:34:17 +00:00
eck
069d94c39b added ANSI-C document 1990-02-09 16:30:40 +00:00
ceriel
8d7a5dba0a documented recent changes 1990-02-09 16:28:26 +00:00
ceriel
dedf1d945c updated to current situation 1990-02-09 16:27:59 +00:00
ceriel
eaf856c7a0 Added some patterns for unsigned compares 1990-02-09 15:28:46 +00:00
ceriel
541279bd1e Changed an #ifdef NOTDEF to #if 0 1990-02-09 15:03:17 +00:00
ceriel
626e7b5b06 Added U flag for exit status 0 with unresolved refs 1990-02-09 12:44:37 +00:00
eck
67819cfd6c made a little mistake with the #else and #endif 1990-02-09 11:29:57 +00:00
ceriel
8a8bb6cf10 removed wrong pattern 1990-02-09 10:41:58 +00:00
eck
d7d56d2cbb fixed bug with 0L; don't give warning on char x[3] = "abc" 1990-02-09 10:35:44 +00:00
ceriel
ba6c223113 only print file names if there is more than one 1990-02-08 15:11:23 +00:00
ceriel
e361a5777b remove LLlex #define 1990-02-07 10:53:05 +00:00
ceriel
77577f45fa Documented %prefix 1990-02-07 10:49:30 +00:00
ceriel
db54c35c24 several improvements 1990-02-05 10:06:42 +00:00
eck
b40425786c added 80286 instructions 1990-02-02 16:28:06 +00:00
eck
5625842582 fixed 2 bugs with line directives 1990-02-02 09:56:35 +00:00
eck
197379a33a fixed bug with character constants 1990-02-01 13:09:40 +00:00
ceriel
0c5cce9a96 max filename length too short in error messages 1990-01-31 16:27:05 +00:00
ceriel
546d8f3d16 some fixes 1990-01-31 15:50:30 +00:00
eck
945c0dc404 don't recognize any pragma's (mechanism is still present) 1990-01-31 11:52:40 +00:00
ceriel
01829a4203 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
f994b0bf84 Fixed MON instruction: getpid() was wrong 1990-01-31 10:54:26 +00:00
ceriel
b3d5eaef01 remove comments in macro texts completely 1990-01-30 18:33:54 +00:00
ceriel
6c588b0ae8 fixed again 1990-01-30 14:02:49 +00:00
ceriel
5929f3dd0e Fix: illegal optimizations of muls 1990-01-30 13:41:36 +00:00
eck
114048df57 ignore qualifiers when looking for sdef 1990-01-30 11:19:30 +00:00
ceriel
5dec33abaa minor correction to runtime start-off 1990-01-29 15:52:08 +00:00
ceriel
2d0493ac92 Fixed shell command in READ_ME file 1990-01-29 15:36:45 +00:00
ceriel
8c6dc46124 allow for multiple parsers within one program 1990-01-29 13:51:32 +00:00
ceriel
da48891d6e allow for multiple parsers within one program 1990-01-29 13:45:42 +00:00
ceriel
218b982231 open and close output file in one place 1990-01-29 12:40:43 +00:00
ceriel
9288115a4d fixed for OUTSEEK 1990-01-29 11:42:58 +00:00
ceriel
0c4835caf3 maintain own free list of buffer headers 1990-01-29 11:41:37 +00:00
eck
343dbb810f formal parameters in prototyps need only 1 underscore 1990-01-29 10:09:00 +00:00
ceriel
4de10af212 Fixed check in COM 1990-01-26 17:12:23 +00:00
ceriel
c4c1e6191b Fixed SIG 1990-01-26 16:43:29 +00:00
ceriel
933b1de514 bug fix: it said \(nl where \n(nl was meant 1990-01-26 15:08:22 +00:00
eck
721005b4d7 big fix for #include in macro argument 1990-01-26 14:59:50 +00:00
eck
f4dcfc3c64 bug fix with #include in argument
save #pragma's until they can be printed
1990-01-26 14:49:13 +00:00
ceriel
ebbda9ae11 bug fix with many -I options 1990-01-26 12:00:35 +00:00
ceriel
b48f529177 Added some mkdep features and fixed a bug 1990-01-26 11:53:08 +00:00
ceriel
f5b29d9ccc creat mode 666 1990-01-26 11:02:34 +00:00
ceriel
343c5872eb fixed typo 1990-01-26 09:50:44 +00:00
ceriel
c2717419d4 ftime has an error return(?) 1990-01-26 09:38:45 +00:00
ceriel
444d0bb4da ftime has an error return(?) 1990-01-26 09:33:23 +00:00
ceriel
9b1f6614f6 some optimizations were not protected by calls to small() 1990-01-24 12:37:33 +00:00
ceriel
ae3e9716f5 Added some code for dependency generator 1990-01-23 15:25:21 +00:00
ceriel
94b3467079 improved Makefile 1990-01-23 13:16:47 +00:00
ceriel
76cd1e34ca fixed: did not compile 1990-01-23 12:06:05 +00:00
ceriel
ccfd50c6b7 fixed; did not compile 1990-01-23 11:00:47 +00:00
ceriel
7cb9955f82 corrected 1990-01-22 17:07:11 +00:00
ceriel
0710269e32 corrected 1990-01-22 16:48:13 +00:00
eck
b2cbaa46d5 changed system-call to avoid namespace pollution 1990-01-22 16:26:12 +00:00
ceriel
a42999afab Added strhp.s 1990-01-22 16:25:52 +00:00
eck
86501edf9e big fix: auto aggregate strings didn't work 1990-01-22 16:16:03 +00:00
ceriel
36dbf24131 adapted so that _brk routine may update .limhp 1990-01-22 15:38:46 +00:00
ceriel
4c7f63ee6c adapted so that _brk routine may update .limhp 1990-01-22 15:32:44 +00:00
ceriel
2782e386f9 No chmk; use the system call library 1990-01-22 15:28:45 +00:00
ceriel
8850b696ab brk routine updates .limhp 1990-01-22 15:05:10 +00:00
ceriel
7e34a42088 Use .limhp 1990-01-22 15:03:13 +00:00
ceriel
ea891cfb3c Added .limhp 1990-01-22 14:57:58 +00:00
ceriel
9ecf2ad8f8 Use .limhp 1990-01-22 14:39:47 +00:00
ceriel
13ce9b12ac Added .limhp (for later use?) 1990-01-22 14:34:58 +00:00
ceriel
f815a342e7 Use .limhp 1990-01-22 14:25:10 +00:00
ceriel
9f0c356194 Added entry points for ANSI C 1990-01-22 14:15:55 +00:00
ceriel
5241920b3c Use .limhp 1990-01-22 14:14:38 +00:00
ceriel
786665c582 Use .limhp 1990-01-22 14:08:16 +00:00
ceriel
ee026dd2ab Added entry points for ANSI C 1990-01-22 13:59:43 +00:00
ceriel
73bfa1d1ab Use .limhp 1990-01-22 13:58:54 +00:00
ceriel
bf95ea8fd9 Added entry points for ANSI C 1990-01-22 13:41:58 +00:00
eck
8fd07efa80 some additions for MINIX 1990-01-22 13:29:46 +00:00
eck
777fb8a624 changed setjmp implementation for POSIX
made some changes for MINIX
1990-01-22 13:20:42 +00:00
ceriel
1fdf2d2e19 Added entry points for ANSI C 1990-01-22 13:09:29 +00:00
eck
37c64c6e36 changed system-calls to avoid namespace pollution 1990-01-22 13:08:36 +00:00
eck
0ab62357ce changed system-calls to avoid namespace pollution 1990-01-22 13:00:13 +00:00
eck
a816b64b86 forgot to update .distr 1990-01-22 12:54:26 +00:00
eck
13c2ffcc5b added sigsetjmp() & siglongjmp() 1990-01-22 12:53:21 +00:00
eck
a940c44ae5 added new routines for ansi 1990-01-22 11:56:01 +00:00
ceriel
dbe88218e4 Added entry points for ANSI C 1990-01-22 11:48:01 +00:00
eck
c1b2a43ef5 changed system-calls to avoid namespace pollution 1990-01-22 11:44:21 +00:00
ceriel
c6d87355db Added entry points for ANSI C 1990-01-22 11:24:37 +00:00
eck
68e198f375 added new routines for ansi 1990-01-22 11:14:56 +00:00
eck
90819543f6 changed system-calls to avoid namespace pollution 1990-01-22 11:13:26 +00:00
ceriel
67f0c95888 Added entry points for ANSI C 1990-01-22 11:01:47 +00:00
eck
69e2ddcb49 added new routines for ansi 1990-01-22 10:54:12 +00:00
eck
0614d593dd forgot _dup() & _creat() 1990-01-22 10:34:50 +00:00
eck
aee0dc7377 forgot _dup() 1990-01-22 10:28:09 +00:00
ceriel
666c527a43 Added some more entry points for ANSI C 1990-01-22 10:20:09 +00:00
eck
55fab905c1 forgot _creat() 1990-01-22 09:28:35 +00:00
eck
9ee0876c2b added new routines for ansi 1990-01-22 08:51:54 +00:00
ceriel
66327ddda6 Added entry points for ANSI C 1990-01-19 17:37:29 +00:00
ceriel
9eff28dac8 Added entry points for ANSI C 1990-01-19 17:22:11 +00:00
eck
8c0b75b068 forgot _execve() 1990-01-19 17:15:47 +00:00
ceriel
b2ce4472b5 Added entry points for ANSI C 1990-01-19 17:05:29 +00:00
eck
5c228063bc forgot _sbrk(), _fstat(), _times() 1990-01-19 16:25:54 +00:00
ceriel
b6038dab22 Added entry points for ANSI C 1990-01-19 16:22:03 +00:00
ceriel
89b736ba83 Added mechanism to warn correctly about conflicts 1990-01-19 16:05:44 +00:00
ceriel
0939a12a70 Added entry points for ANSI C 1990-01-19 16:03:46 +00:00
eck
86b0d0bc80 added new routines for ansi 1990-01-19 15:17:33 +00:00
ceriel
f21378d696 made allocation chunk size dependant on pointer size 1990-01-19 11:30:16 +00:00
eck
35023ba945 bug fixes from modules/malloc; changed formats to use %p 1990-01-18 17:24:18 +00:00
ceriel
fc5c0ddc52 several fixes in the CHECK part 1990-01-18 17:11:41 +00:00
eck
b8d6eae391 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
01535f998d Removed a call to 'abort'; just a non-zero exit status is enough 1990-01-18 16:35:39 +00:00
ceriel
b2f85981ad Bug fix: also use ACKDIR to look for description files 1990-01-18 16:07:42 +00:00
ceriel
531f9b1f77 removed unused variables 1990-01-18 10:59:04 +00:00
ceriel
bcf2aa511c bug fix: casts of constants to a set type caused memory fault 1990-01-18 10:12:38 +00:00
ceriel
7913b6800a simplified a bit, and documented better 1990-01-17 16:05:00 +00:00
ceriel
a72bbc0ce2 Changed an o into $suf 1990-01-17 14:39:50 +00:00
eck
c19026af9e bug fix: defined(aap)1 expanded to 01 1990-01-16 15:27:24 +00:00
eck
c4e0fddf5b MINIX squeezing with strings, fixed small preprocessor bug 1990-01-16 15:21:15 +00:00
ceriel
2b6d2c8407 graceful degradation: allocate fewer structs if cannot get requested amount 1990-01-16 14:38:28 +00:00
ceriel
b254b73745 Added i386_as.6 1990-01-16 13:27:47 +00:00
ceriel
6bbcb68a79 added comment 1990-01-16 10:11:45 +00:00
ceriel
f48df3b6fe Commented out a wrong warning, as was already done in the C compiler 1990-01-16 10:08:34 +00:00
ceriel
b5135607b4 bug fix: #if defined(...) did not work properly 1990-01-15 17:01:36 +00:00
ceriel
018558cb9e fixed prvious change 1990-01-15 12:42:57 +00:00
ceriel
2138609918 do not remove targets for install or cmp 1990-01-15 11:47:10 +00:00
ceriel
dd22ea4caf fixed bug in translation of BR instruction 1990-01-15 11:44:43 +00:00
ceriel
53096cbf0c adapted for use of ACK VAX assembler 1990-01-12 18:03:50 +00:00
ceriel
54cb64aef2 Adapted for use of the ACK VAX assembler 1990-01-12 17:58:12 +00:00
ceriel
0ce4d37e54 Adapted for use of ACK VAX assembler 1990-01-12 17:05:42 +00:00
ceriel
7babff444a some more fixes 1990-01-12 17:02:31 +00:00
ceriel
027b33d313 VAX a.out to ACK a.out conversion program, first version 1990-01-12 16:58:02 +00:00
ceriel
57dfc84ee7 ACK VAX assembler, first version 1990-01-12 16:55:50 +00:00
ceriel
0004fd81ed fixed again 1990-01-12 15:41:59 +00:00
ceriel
cb25b013fb fixed for 0 argument 1990-01-12 15:34:21 +00:00
ceriel
558a632821 errno in .bss 1990-01-12 14:13:39 +00:00
ceriel
e2732629bf Fix for PDPFLOAT format 1990-01-12 11:52:51 +00:00
ceriel
6dac59f2d4 some more changes to use VAX assembler 1990-01-12 10:29:26 +00:00
ceriel
c9312a41da make labels disappear 1990-01-12 10:11:44 +00:00
ceriel
5521ebb35a Adapted for use of ACK VAX assembler 1990-01-11 16:44:19 +00:00
ceriel
7fed954836 use LABEL_STARTER 1990-01-11 16:33:53 +00:00
ceriel
15d1e95d31 Adapted for use of ACK VAX assembler 1990-01-11 16:10:13 +00:00
ceriel
de564c09b2 Adapted for use of ACK VAX assembler 1990-01-11 16:00:19 +00:00
eck
2eacdccc5d deleted struct mlist 1990-01-11 08:30:19 +00:00
eck
00876cd9df added alloction dump
shrunk some data structures
changed some ALLOCDEF's
changed setjmp to __setjmp
1990-01-10 17:33:35 +00:00
ceriel
776f85238f bug fix: cannot optimize IMUL 1990-01-10 11:23:45 +00:00
eck
abcaa3e669 changed UnGetChar() to ChPushBack() in domacro.c 1990-01-05 09:28:54 +00:00
eck
369a99fe3a there are only 24 hours in a day, not 29 1990-01-04 11:33:10 +00:00
eck
7157ec19b6 changed strrchr() into strchr() 1990-01-04 08:39:10 +00:00
eck
670ca5a83a added putenv.c 1990-01-03 17:23:10 +00:00
eck
e109e76069 changed genfiles to shell script 1990-01-03 16:58:22 +00:00
eck
a8f0aa6016 various fixes to makefile 1990-01-03 16:42:36 +00:00
ceriel
4bb598c9ad mkdir command always executed and result ignored 1990-01-03 16:07:05 +00:00
ceriel
f0dccf3ca0 wr_fd no longer exists, because the object module now buffers 1990-01-03 14:24:08 +00:00
ceriel
e59812782e changed creat mode to 0666 1989-12-19 16:44:57 +00:00
eck
02d396c33a forgot .distr 1989-12-19 15:46:39 +00:00
eck
68a72d2ceb Initial revision 1989-12-19 15:45:15 +00:00
ceriel
33e47b1a51 Added mechanism for installing header files 1989-12-19 15:32:51 +00:00
eck
80b04b4440 changed Makefile again 1989-12-19 15:06:03 +00:00
ceriel
513b878285 again, dependencies 1989-12-19 14:54:40 +00:00
ceriel
b60e8cead1 corrected install entry 1989-12-19 13:56:57 +00:00
ceriel
49834ac5c8 dependencies 1989-12-19 13:55:08 +00:00
eck
f4e1d47704 changed Makefile 1989-12-19 11:20:16 +00:00
ceriel
caf06d3a7b prepared for distribution 1989-12-19 11:17:21 +00:00
ceriel
bff577eed4 name is cpp.ansi 1989-12-19 11:12:17 +00:00
ceriel
a1f5834052 use normal C compiler 1989-12-19 11:07:03 +00:00
eck
7fab59ec17 added MakeArch and Makefile to .distr 1989-12-19 11:02:22 +00:00
eck
c02f977487 Initial revision 1989-12-19 10:59:33 +00:00
ceriel
c3b3faf7a4 Added support for constant floating point expressions 1989-12-19 09:40:25 +00:00
ceriel
4b42dcf97f fix: flt_status was not always set properly 1989-12-19 09:27:16 +00:00
ceriel
662c87a579 flt_status maintained for flt_str2flt() 1989-12-18 18:17:17 +00:00
ceriel
328b5011af use normal C compiler 1989-12-18 16:41:55 +00:00
eck
dc87f207cd added Makefile, LIST and .distr 1989-12-18 16:15:07 +00:00
eck
25291680b0 changed EM_* to _EM_*, added Makefile, LIST and .distr 1989-12-18 16:11:26 +00:00
eck
2a15fcf645 fixed Makefile, added .distr 1989-12-18 16:06:47 +00:00
eck
dc2dd991c6 fixed some bugs, added LIST, Makefile & .distr 1989-12-18 16:02:55 +00:00
eck
8a409311da fixed some bugs, added LIST, Makefile & .distr 1989-12-18 15:49:11 +00:00
eck
d43142d811 changed from Hart & Cheney to Cody & Waite 1989-12-18 15:44:36 +00:00
eck
6e2b44962f made a lot of changes 1989-12-18 15:33:48 +00:00
eck
e00f89ea6f made a lot of changes 1989-12-18 15:14:14 +00:00
eck
2f92b46a9d made a lot of changes 1989-12-18 15:04:14 +00:00
eck
bb48507f58 small changes, added LIST, Makefile and .distr 1989-12-18 14:44:38 +00:00
eck
94db19641a Initial revision 1989-12-18 14:40:54 +00:00
eck
d8486967aa many changes and improvements 1989-12-18 14:00:32 +00:00
eck
0c6ba1fd58 added Header 1989-12-18 13:53:00 +00:00
eck
09a352c151 Initial revision 1989-12-18 13:50:55 +00:00
eck
c98a786cc4 Intial revision 1989-12-18 13:31:20 +00:00
ceriel
2b8e44b860 publicdata is extern for development version 1989-12-18 13:18:43 +00:00
ceriel
d6f0d3b65f test on BIGMACHINE was wrong 1989-12-15 15:35:17 +00:00
ceriel
a0187208a5 fixed: did not compare properly with 0; reduced size 1989-12-13 16:35:19 +00:00
ceriel
e891b36895 removed declaration of unused variable 1989-12-13 13:09:10 +00:00
eck
8790a879c9 fixed sizeof() 1989-12-13 12:53:22 +00:00
ceriel
a5f05e8ba0 changed character comparisons with NULL 1989-12-13 09:19:47 +00:00
eck
bdb0b550f7 U-flag was not handled properly 1989-12-12 14:59:59 +00:00
eck
b3a142e244 fixed null-pointer constants and SkipToNewLine() 1989-12-12 12:52:03 +00:00
eck
24a1c0d390 SkipToNewLine() now recognizes strings and character constants 1989-12-12 12:41:39 +00:00
ceriel
9bab5d363c Bug fix in ZRL decoding 1989-12-08 15:04:37 +00:00
ceriel
a8033da29e better error checking 1989-12-07 16:28:05 +00:00
ceriel
2f5b25269e copied from newer version 1989-12-06 12:53:37 +00:00
ceriel
0950240cfa Changed maximum # of args 1989-12-06 12:43:01 +00:00
ceriel
3bed868bb9 .word -> .data2 1989-12-06 12:41:05 +00:00
ceriel
f2996068f8 changed alignments 1989-12-06 12:39:25 +00:00
ceriel
58eaf6df5b some small fixes 1989-12-06 12:38:18 +00:00
ceriel
5e2915d143 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
ac489d50a3 Corrected assertion 1989-11-30 15:12:11 +00:00
ceriel
fec7208f70 new malloc.c, derived from new Minix version 1989-11-30 14:59:18 +00:00
ceriel
30208cda9a changed commented #defines to #undefs 1989-11-30 14:25:40 +00:00
ceriel
a022b9490c LOE INE used address register; it is probably better to use a general register 1989-11-30 10:07:49 +00:00
ceriel
7c723a8e48 Made compilation command and interpreter command variable 1989-11-29 16:12:47 +00:00
ceriel
75cab1f389 Added a move 1989-11-29 12:47:23 +00:00
ceriel
bf9730d10e corrected clean entry in Makefile 1989-11-29 10:56:11 +00:00
ceriel
cd64ce0424 rounding for un-normalized numbers was wrong 1989-11-29 09:56:59 +00:00
ceriel
79b0bb3347 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
0e2861d8b0 Added 80[23]87 support 1989-11-29 09:49:35 +00:00
eck
5f3e4693e6 array type-checking was wrong 1989-11-28 15:28:52 +00:00
ceriel
2465ad8ed8 fixed bug: sometimes destroyed contents of register variable 1989-11-28 14:42:56 +00:00
ceriel
a49ffb7945 fixed entier routine: did not work properly for negative args 1989-11-28 14:16:38 +00:00
ceriel
55a133aa3c fef did not work properly for negative args 1989-11-28 12:51:35 +00:00
ceriel
86b6eab206 speeded up a bit for printing 0.0 1989-11-27 17:29:35 +00:00
ceriel
862f83571f speeded up a bit for converting 0.0 to string 1989-11-27 17:25:55 +00:00
ceriel
b91af798bc 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
1758da9285 Added fp8087.s 1989-11-27 16:19:16 +00:00
ceriel
61c646a496 Added 8087 support 1989-11-27 16:19:15 +00:00
eck
c6d60cb24f fixed small bug 1989-11-27 11:40:58 +00:00
eck
671556cfc4 improved type-checking, fixed preprocessor bug, fixed syntax bug 1989-11-27 11:37:11 +00:00
ceriel
5d81b090b9 Corrected MathLib0.mod: entier was wrong on negative args 1989-11-27 09:37:56 +00:00
eck
4734150614 removed ctype.c, the library functions are generated 1989-11-23 10:43:15 +00:00
eck
d50600e263 fixed unary & and indirect calls 1989-11-22 16:41:09 +00:00
eck
96da16ce33 fixed bugs, added dynamic buffer allocation to preprocessor 1989-11-22 13:58:36 +00:00
ceriel
3107e638f8 some more speed-up changes 1989-11-22 13:38:37 +00:00
eck
f9fadbf045 fixed bugs, added dynamic buffer allocation 1989-11-22 12:59:15 +00:00
ceriel
5ffd738802 cleaned up a bit 1989-11-21 15:44:29 +00:00
ceriel
6a19ee76cc removed some superfluous instructions 1989-11-21 15:42:56 +00:00
ceriel
43e04499d0 changed label formats 1989-11-21 15:40:24 +00:00
ceriel
295c8d2515 a fix to ZER ? and simplified ZRL, ZRE 1989-11-21 11:38:08 +00:00
ceriel
f6c7b7bbcd changed some variables from arith to int 1989-11-21 11:37:10 +00:00
ceriel
cf4c99a093 fixed line number after line directives 1989-11-21 11:33:21 +00:00
ceriel
01b937d82e some arith variables changed into int 1989-11-21 11:28:56 +00:00
ceriel
c6134a1f59 changed mechanism a bit 1989-11-20 14:35:23 +00:00
ceriel
6709f6e340 no default size for asld 1989-11-17 16:55:48 +00:00
ceriel
99c20a6a08 default size is now large 1989-11-17 16:53:53 +00:00
ceriel
a46596cbba new object module makes buffering superfluous 1989-11-17 16:50:59 +00:00
ceriel
07cb257465 print unsigned bitfields as unsigned 1989-11-17 16:37:20 +00:00
ceriel
e9d477fd6e more internal buffering 1989-11-17 15:56:53 +00:00
ceriel
99cae8d6df fix to previous change 1989-11-17 15:19:55 +00:00
ceriel
c4ca7db14f improved #line handling 1989-11-17 14:53:05 +00:00
ceriel
9ad5d4b5e0 generate ; after label 1989-11-17 13:15:48 +00:00
ceriel
5300633c2b improved error messages 1989-11-17 11:52:33 +00:00
ceriel
ff90971199 improved error messages 1989-11-17 11:44:48 +00:00
ceriel
c023409091 improved make.tokcase for EOF handling 1989-11-17 11:41:47 +00:00
ceriel
cde3638bc9 improved for EOF handling 1989-11-17 11:40:48 +00:00
ceriel
b6c29b5541 fixed bug which caused memory faults on erroneous input 1989-11-17 11:36:43 +00:00
ceriel
a43e504fb1 fixed error messages by allowing more than one "simultaneous" symbol2str 1989-11-17 11:31:05 +00:00
ceriel
676fee0a3e fixed bug which caused unsigned bitfield problems 1989-11-17 11:28:38 +00:00
ceriel
d57dfac961 improved error messages 1989-11-17 11:27:26 +00:00
ceriel
d4bcec7ec2 removed some unused variables 1989-11-16 16:08:59 +00:00
ceriel
42a7f3d8e7 new version with internal buffering 1989-11-16 15:52:08 +00:00
ceriel
e93e256512 bug fix: static link was not always removed 1989-11-16 14:57:15 +00:00
ceriel
72f667fbf9 Added unsigned bit-field test 1989-11-15 17:46:58 +00:00
ceriel
f9d19e9302 fixed assembler part of link instruction 1989-11-15 17:46:25 +00:00
ceriel
edf2f575a2 link instruction does not work for more than 32768 bytes locals on M68000 1989-11-15 16:10:18 +00:00
ceriel
3868470366 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
776233c718 improved qualifier checking 1989-11-13 14:01:50 +00:00
ceriel
c30769327b fixes: ucmp did not quite work right, flt_div had an obscure bug 1989-11-13 12:54:33 +00:00
ceriel
12669d882f call to abs should be call to fabs 1989-11-13 10:15:35 +00:00
ceriel
b93cdd9aac do not use sprintf; use sprint instead 1989-11-09 21:33:29 +00:00
ceriel
c5ee3b6735 Added patterns 1989-11-09 18:43:02 +00:00
ceriel
38880093e8 fixed typo 1989-11-09 18:12:12 +00:00
ceriel
0ce3cd0c76 no casts in constants used in #if! 1989-11-09 18:07:14 +00:00
ceriel
95fc55f840 fix: did not work for 4-byte floats 1989-11-09 17:01:29 +00:00
ceriel
013a6f9cd6 cleaned up a little 1989-11-09 14:06:35 +00:00
ceriel
cfc1d926bf minor mod: added comment and removed a variable 1989-11-09 12:33:08 +00:00
ceriel
d9d6cc127f Allow more procedure parameters 1989-11-09 11:04:18 +00:00
ceriel
3e80ca51fc generate #defines for MAXREPLLEN, MAXEMREPLLEN 1989-11-08 17:14:52 +00:00
ceriel
339f9dd942 fixed bug in EM replacement code, and use new #defines from tables.h 1989-11-08 17:13:33 +00:00
ceriel
67f9f2a74f 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
636c151d51 fix: printed wrong message; now dumps core at end 1989-11-08 14:42:09 +00:00
ceriel
410a62e2de fixed some lint complaints 1989-11-08 14:18:57 +00:00
ceriel
45c90324fd Added some casts for lint 1989-11-08 12:52:41 +00:00
ceriel
1ece6f9107 Added a few more patterns 1989-11-08 12:44:33 +00:00
ceriel
9dcaf4ecdc improved checking 1989-11-08 12:30:55 +00:00
ceriel
f3250e5db5 fixed: commited wrong version 1989-11-08 11:22:50 +00:00
ceriel
d4e3a9d9f6 fixed exit status 1989-11-07 16:17:06 +00:00
ceriel
9b2bc42d92 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
ba7100a4c2 wrong Makefile committed at 1.209 1989-11-07 13:04:39 +00:00
ceriel
3dc49877a5 Made suitable for fast compiler version 1989-11-06 16:01:13 +00:00
ceriel
1546ac1235 fixed: send ended up in data segment! 1989-11-06 11:35:52 +00:00
ceriel
6d39055193 use fwrite instead of write 1989-11-03 18:32:32 +00:00
ceriel
1158018fdf Added some patterns 1989-11-03 13:28:37 +00:00
ceriel
f83c2ba230 updated to Minix 1.3 version 1989-11-03 12:57:25 +00:00
ceriel
0928518b8d Added a nicer trap handler 1989-11-03 11:54:41 +00:00
ceriel
a951391408 removed stop.s 1989-11-03 11:53:47 +00:00
eck
6e551adf21 fixed some more bugs 1989-11-03 10:36:56 +00:00
ceriel
bc565a13f1 updated to minix 1.3 1989-11-03 09:25:46 +00:00
dick
787904f82c restrained error messages for lint + misc. 1989-11-02 18:17:59 +00:00
ceriel
287f8d5d70 fixed Constant Width 1989-11-01 17:30:44 +00:00
ceriel
2db075ab69 fixed memory fault, adapted mechanism code_scope 1989-11-01 15:41:06 +00:00
ceriel
d72e4424cd modified labels 1989-11-01 15:35:42 +00:00
ceriel
c33ae16bce the include file is called con_float, not float_cst 1989-11-01 10:57:04 +00:00
ceriel
9c03f2c8bd kill tokens using address registers better 1989-11-01 10:14:27 +00:00
eck
ce1285d2eb format for % was wrong 1989-11-01 10:02:23 +00:00
ceriel
142a703f77 the error() routine did not set err_occurred! 1989-11-01 09:46:16 +00:00
ceriel
c2a260ba68 better unknown flags handling 1989-10-31 11:15:23 +00:00
ceriel
da85a0fa2f Added code expander 1989-10-31 11:14:01 +00:00
eck
7a18c01a7c relaxed typechecking a little bit 1989-10-31 10:48:20 +00:00
eck
bdbbf32404 fixed bug, added -o option 1989-10-31 10:02:48 +00:00
ceriel
cccb0dd197 if malloc can return 0 on a 0 argument, free should also accept 0 1989-10-31 09:44:21 +00:00
ceriel
4b445d4860 malloc can return NULL when given a 0 argument 1989-10-30 18:25:30 +00:00
ceriel
046d5b38a9 use varargs.h 1989-10-30 17:51:31 +00:00
dick
a817264e90 better (more restrained) error reporting 1989-10-30 16:19:35 +00:00
ceriel
2fb6605800 no more -T option to pic 1989-10-30 16:08:07 +00:00
ceriel
8cb76d3ed8 fix to for-loop code was wrong; fixed again 1989-10-30 15:45:43 +00:00
ceriel
67e5a8e7a5 improved check for loop 1989-10-30 15:17:01 +00:00
ceriel
64c2ad3838 There is no d0 register! 1989-10-27 18:20:14 +00:00
ceriel
c2f70c4857 andl3 does not exist! use bicl3 instead 1989-10-27 18:03:37 +00:00
eck
480de7cafb fixed some bugs, changed warning interface 1989-10-27 13:33:10 +00:00
ceriel
f04baf2201 Added code expander 1989-10-27 09:06:43 +00:00
ceriel
0f8516f861 use more simple hashing algorithm, made namelist generation dependant on a #define 1989-10-26 16:16:35 +00:00
ceriel
cd1bb106ec improved STI 8 code 1989-10-26 15:54:21 +00:00
ceriel
9196107b79 fixed so that jumps back to local labels also work 1989-10-26 15:42:30 +00:00
ceriel
74546bd985 Added a command to kill a register 1989-10-26 15:41:38 +00:00
ceriel
adc8fc6e9e Added _exit.c 1989-10-26 11:51:46 +00:00
ceriel
acfb0f2eed Added _exit.c 1989-10-26 11:39:31 +00:00
ceriel
69d8dc3b44 use new version of con_float 1989-10-26 11:07:26 +00:00
ceriel
a751b2ef42 Use Motorola byte order for floating point 1989-10-26 11:04:53 +00:00
ceriel
7f4a6b31a7 Use Intel byte order for floating point 1989-10-26 11:03:30 +00:00
ceriel
cf855ea282 fixed so that jumps back to local labels also work 1989-10-26 11:01:44 +00:00
ceriel
ed479cbb76 Do not call the .nop subroutine for a NOP (ANSI C modification) 1989-10-26 10:10:34 +00:00
ceriel
851a0c4501 Use Intel byte order for floating point 1989-10-26 09:52:41 +00:00
ceriel
3a8a4fc1df Use Motorola byte order for floating point 1989-10-26 09:49:32 +00:00
ceriel
3899b18911 Motorola byte ordering 1989-10-25 17:35:09 +00:00
ceriel
d4d3e6b484 use 8087 byte order 1989-10-25 17:33:49 +00:00
ceriel
a5b0790d96 Added CSA ==4 and CSB ==4 entries, needed for ANSI C 1989-10-25 17:21:52 +00:00
ceriel
13ea4896b0 changes for different byte orderings 1989-10-25 17:15:37 +00:00
ceriel
07f019213d Added csa4.s and csb4.s 1989-10-25 17:08:45 +00:00
ceriel
44ff24f085 Also recognize 'defined' without parentheses 1989-10-25 14:23:08 +00:00
ceriel
35586d769a DEFDIR fix 1989-10-25 13:37:26 +00:00
ceriel
68a2852f57 fixed bug and changed con_float 1989-10-25 13:24:29 +00:00
ceriel
4360ab1cee improved error handling: C_busy now returns 0 if C_failed is called 1989-10-25 11:36:51 +00:00
ceriel
e4309374be changed string to change into CHANGE_ME 1989-10-24 16:58:28 +00:00
ceriel
80cb794116 Added mechanism to change default directory 1989-10-24 16:54:55 +00:00
ceriel
88a316478d adapted floating point package to handle IEEE format in different byte orders 1989-10-24 16:10:01 +00:00
ceriel
a413fa8b90 fixed for SunOs 4.0 make 1989-10-24 16:09:24 +00:00
ceriel
b4e38b8fcd adapted to use 80387 floating point format 1989-10-24 16:00:37 +00:00
ceriel
b5a1f8a3b3 define IEEEFLOAT 1989-10-24 15:08:27 +00:00
eck
d186cb605f removed bug for identifiers starting with L 1989-10-24 15:06:23 +00:00
eck
9286928275 improved domacro when NOPP defined 1989-10-24 15:02:02 +00:00
ceriel
8740dcc72e adapted to use 80387 floating point format 1989-10-24 15:00:09 +00:00
ceriel
c5dcddd4fd adapted to also generate other byte-orders 1989-10-24 14:57:17 +00:00
ceriel
c246adf1c4 correction 1989-10-24 14:42:49 +00:00
ceriel
95cfd33824 corrected assertions 1989-10-24 12:58:23 +00:00
eck
1ce56a4e78 renamed nccp.6 to ncpp.6 1989-10-24 10:18:45 +00:00
ceriel
44b74a6c84 fixed for minix, which does not have ftime 1989-10-24 10:04:35 +00:00
ceriel
42940634dd Added ce directory 1989-10-24 09:30:32 +00:00
ceriel
1e3b6137d4 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
dfb4d0c576 deleted } in arith.c 1989-10-23 14:39:33 +00:00
ceriel
4a5a463e44 improved handling of , (comma) operator and some more Minix squeezing 1989-10-23 13:50:27 +00:00
ceriel
788788edc0 improvements for the , (comma) operator 1989-10-23 13:45:19 +00:00
eck
741b43044d renamed ch7xxx to ch3xxx 1989-10-23 13:00:35 +00:00
ceriel
49d31eaeff initial commit 1989-10-23 11:25:20 +00:00
ceriel
8af6b69b44 Added .distr file 1989-10-23 11:20:46 +00:00
ceriel
d5dc0b7342 Initial commit 1989-10-23 11:19:44 +00:00
ceriel
ead414d725 only give warning about relocation info if -u flag is not given 1989-10-23 10:51:46 +00:00
ceriel
e5117bbf30 Added an ARGSUSED to shut up lint 1989-10-23 10:37:00 +00:00
eck
1d37165575 Initial revision 1989-10-23 10:35:56 +00:00
ceriel
ba8482c5ab Added another pattern 1989-10-23 10:26:00 +00:00
ceriel
10dd78edbf Added patterns 1989-10-20 17:32:04 +00:00
ceriel
cf3bcb5e63 Added routine to evaluate operands of binary operator 1989-10-20 17:08:48 +00:00
ceriel
352c5c581b some more Minix squeezing 1989-10-20 16:16:06 +00:00
ceriel
64b7d49c0a Added patterns 1989-10-20 14:36:26 +00:00
eck
b6a7d4fa0f Minix again 1989-10-20 13:06:10 +00:00
ceriel
01f77a03af Added CBO (commutative binary operator) to make it a little easier to
write reordering patterns
1989-10-20 11:59:52 +00:00
ceriel
d6fa6357f2 some more Minix squeezing 1989-10-20 11:58:37 +00:00
eck
78d3e500fb added CPP variable to Makefile 1989-10-20 11:05:00 +00:00
eck
46e45d1c2d added CPP variable to Makefile 1989-10-20 10:37:25 +00:00
ceriel
3d5569183e some more squeezing for Minix 1989-10-19 19:29:39 +00:00
ceriel
e4857c2446 many minor modifications (it still will not fit on Minix!) 1989-10-19 14:53:25 +00:00
ceriel
35c612b99b some minor improvements 1989-10-19 14:50:52 +00:00
ceriel
1ae683e3b3 improved the making of libCEopt.a 1989-10-18 14:40:15 +00:00
eck
8ff400fd0f squeezing for MINIX 1989-10-18 13:12:31 +00:00
ceriel
84297d3460 parameterize back library name (needed for SUN) 1989-10-18 12:36:28 +00:00
ceriel
b4504c0f73 parameterize back library name (needed for SUN) 1989-10-18 11:51:12 +00:00
ceriel
9c403e7299 Added mechanism to make peephole optimizer version bigger (needed for SUN-3) 1989-10-18 11:39:19 +00:00
ceriel
95563ae3bc small improvement: added pattern for LDC -1 CMS 4 ZEQ/ZNE 1989-10-18 10:15:49 +00:00
ceriel
cf65fbe6a1 a simple optimization added 1989-10-18 09:22:47 +00:00
eck
46fb868503 introduced TABGEN variable 1989-10-17 11:35:13 +00:00
ceriel
744fcc3442 Added split.c to .distr 1989-10-16 18:02:55 +00:00
ceriel
82c3158ada simplified a bit 1989-10-16 17:56:36 +00:00
ceriel
b821194cbd merged cricon.c+crfcon.c+crucon.c into crxcon.c 1989-10-16 16:37:46 +00:00
ceriel
85da3bcac1 only give warning about unresolved references if -u option is not given 1989-10-16 14:52:03 +00:00
ceriel
7b969cc623 head_em.sun renamed to head_ext 1989-10-16 14:45:00 +00:00
ceriel
1fefd074f9 Added em_private.h 1989-10-16 14:23:25 +00:00
eck
aa2bfa7738 adjusted sources for NOPP 1989-10-16 12:38:25 +00:00
ceriel
4c4b47a902 util/ceg/as_parser also uses lex 1989-10-16 09:53:04 +00:00
ceriel
81a2d12ae5 improved Makefile: save libemopt.a when creating libCEopt.a 1989-10-16 09:45:06 +00:00
ceriel
7f6b39f155 improved: did not work with SunOs 4.0 make 1989-10-16 09:32:05 +00:00
ceriel
d7e23d9466 improved: did not work with SunOs 4.0 make 1989-10-16 09:24:52 +00:00
ceriel
0b44329a4b cleaned up considerably 1989-10-13 18:26:05 +00:00
ceriel
284bd607fd Added head_em.s for Sun floating point emulation 1989-10-13 14:35:50 +00:00
ceriel
b6b4cee71f Added headers 1989-10-13 14:27:28 +00:00
ceriel
8c84139dc8 Added RCS Headers 1989-10-13 14:03:25 +00:00
eck
fd259c398c fltcstoper.c addded to Repository 1989-10-13 11:04:42 +00:00
ceriel
257b4847bf Added mechanism for generating fast compilers 1989-10-13 10:48:07 +00:00
ceriel
654715cf8a Added mechanism for generating fast compilers 1989-10-13 09:59:54 +00:00
ceriel
155d41c3e0 Added mechanism for generating fast compilers 1989-10-13 09:25:21 +00:00
ceriel
b759fb2438 fixed typo 1989-10-13 09:22:53 +00:00
ceriel
9ef6cf575b formatted a bit 1989-10-12 16:57:37 +00:00
ceriel
159bdec3f5 Added peephole optimizer library, code expander, and i386 1989-10-12 16:52:17 +00:00
ceriel
17c1915104 Added entry for peephole optimizer library and code expander 1989-10-12 16:50:29 +00:00
ceriel
0faaec8e3d cleaned up Makefile 1989-10-12 16:18:38 +00:00
ceriel
10b58a8520 The InputLevel variable only exists when NOPP is not defined 1989-10-12 14:22:35 +00:00
ceriel
9d08fc6678 use strindex() instead of index() 1989-10-12 11:16:43 +00:00
ceriel
7255b1aa61 some fixes, f.i. process # in actual parameter list 1989-10-12 11:16:02 +00:00
ceriel
b9bb251d60 fixed wrong code for for-loop 1989-10-12 11:10:48 +00:00
ceriel
998de8d264 install code-expander version 1989-10-11 15:31:10 +00:00
ceriel
3aa0ecdb5c removed include file in_all.h 1989-10-11 15:25:07 +00:00
ceriel
0e2a3baa5d also install peephole optimizer and code expander versions 1989-10-11 15:15:47 +00:00
ceriel
f63613844b Added em_codeO.h 1989-10-11 15:13:07 +00:00
ceriel
19df56bc23 use EMHOME instead of ../../.. 1989-10-11 14:21:37 +00:00
ceriel
ebcd62f7d2 bug fix in rounding for 4-byte floating point numbers 1989-10-11 13:34:05 +00:00
ceriel
c7d0d1d447 Added nopt.doc and ceg 1989-10-11 13:17:21 +00:00
ceriel
de6b8d9108 Added em_opt 1989-10-11 12:43:53 +00:00
ceriel
c4d23274c9 moved and initialized the C_tmpdir variable; some linkers do not
find it otherwise
1989-10-10 15:06:56 +00:00
ceriel
b719750e75 Added code-expander-generator 1989-10-10 14:48:42 +00:00
ceriel
bec816346d Added i386 1989-10-10 14:42:59 +00:00
ceriel
9feb3f9254 Added i386 to .distr file 1989-10-10 14:20:45 +00:00
ceriel
48252cc673 initial version 1989-10-10 11:40:55 +00:00
ceriel
010bade227 many fixes, found by actually running the code 1989-10-10 11:38:18 +00:00
dick
2364f3f6b0 some small corrections in the lint part 1989-10-10 11:21:55 +00:00
ceriel
9715c40c3f initial version 1989-10-10 11:01:01 +00:00
ceriel
a96f33ef34 many fixes; got working afcc with this version 1989-10-10 10:58:30 +00:00
ceriel
e713e6f8fe many fixes, found by actually running the code it produces 1989-10-10 10:54:20 +00:00
ceriel
d25472bbfb many fixes; now passes the tests 1989-10-10 10:44:26 +00:00
ceriel
8f74dd7ae6 Initial revision 1989-10-10 10:38:39 +00:00
ceriel
1525e12aee mkstrct.o ended up in the archive twice 1989-10-09 15:03:01 +00:00
ceriel
7e0c59d59a some fixes 1989-10-09 14:15:51 +00:00
ceriel
8c9c04b549 fix to bitfield code: contained non-portable shift 1989-10-09 13:42:39 +00:00
ceriel
9197c959dc recursive calls to sametest routine were wrong; How could this ever work? 1989-10-06 14:53:49 +00:00
ceriel
eb2a76270f corrected XOR problem, and ILOCAL does not exist for m68k4 1989-10-06 11:13:16 +00:00
dick
6ea0fa77db varargs in panic() 1989-10-04 16:04:02 +00:00
dick
d75369dd40 better error reporting 1989-10-04 15:36:56 +00:00
dick
53fe78afae correction lint.1 1989-10-04 15:33:49 +00:00
ceriel
0a9017bae1 if to be preprocessed, # should be the first character 1989-10-04 15:18:12 +00:00
ceriel
0364de3a9c fixed problem: sometimes incorrect labels were generated in case descriptors 1989-10-04 14:39:55 +00:00
ceriel
f3a7c72ddb Added some XOR patterns 1989-10-04 14:35:50 +00:00
ceriel
10a379dc8a latest Makefile Version 1989-10-04 11:12:57 +00:00
ceriel
5d8db9045e fixed: removed an #endif 1989-10-04 11:06:18 +00:00
ceriel
96562f964d This is the 4th distribution version 1989-10-04 11:02:39 +00:00
cvs2hg
42e84d8dd2 fixup commit for tag 'distr3' 1989-10-04 10:56:17 +00:00
ceriel
9a92f57752 Initial revision 1989-10-04 10:56:16 +00:00
ceriel
463a0e7f40 use the con_float include file 1989-10-04 10:28:50 +00:00
ceriel
008a907894 makefile removed, was path-dependant 1989-10-03 16:31:29 +00:00
eck
4bde31f78a minor changes concerning void and pre-processor 1989-09-29 16:20:38 +00:00
eck
26cc87efe6 improved parameters 1989-09-29 15:46:33 +00:00
ceriel
77259cd2f9 removed yet another eor.l error 1989-09-29 11:45:19 +00:00
eck
00027d3893 some minor fixes, renamed ch7 stuff to ch3 1989-09-25 14:28:10 +00:00
eck
fa4e6eecb4 lots and lots of changes & improvements 1989-09-19 16:13:23 +00:00
ceriel
18439ffa3f exit from main instead of return 1989-08-22 11:46:56 +00:00
ceriel
73246f3824 Improved checks for conversion between cardinal and integer 1989-08-21 17:08:54 +00:00
ceriel
360caa08bb use strindex instead of index 1989-08-21 17:03:05 +00:00
ceriel
4c0ea89fe0 use strindex instead of index 1989-08-21 16:56:15 +00:00
ceriel
8ee1e318a3 Added em_codeCE.h to repository and to .distr file 1989-08-21 13:12:51 +00:00
ceriel
84b9957b17 made to compile under Xenix 1989-08-21 12:46:54 +00:00
ceriel
319d9bcfe0 declaration of sprintf only if __STDC__ is not defined 1989-08-21 11:43:41 +00:00
ceriel
e52091ea7c 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
a5f950bac7 replaced size_t by siz_t; size_t is reserved for ANSI C 1989-08-21 10:17:49 +00:00
ceriel
3c03d3f68c pc directory no longer distributed 1989-08-16 13:03:58 +00:00
ceriel
9407523510 prevent core dump when the input file is not present 1989-08-15 09:06:26 +00:00
ceriel
04dcaf5685 did not handle -0.0 right 1989-08-15 09:04:49 +00:00
ceriel
650c178631 fix: did not handle 0.0 right 1989-08-15 09:02:38 +00:00
ceriel
92bccdd4fa inline FEF code for M68881 was wrong; replaced bu subroutine call 1989-08-10 14:17:50 +00:00
ceriel
048099535a removed old dependency on EM_WSIZE 1989-08-10 09:23:44 +00:00
ceriel
8a096ffacb removed old comment 1989-08-09 16:38:12 +00:00
ceriel
5b23cab8e9 removed old EM_WSIZE dependency 1989-08-09 16:34:27 +00:00
ceriel
f755d6683d fix to fix: did not handle negative arguments right 1989-08-09 16:29:15 +00:00
ceriel
8279a37642 made more ANSI conformant 1989-08-09 16:25:50 +00:00
ceriel
be3597ddbe fixed: arguments to fputs were the wrong way around 1989-08-09 16:22:59 +00:00
ceriel
5785bb133b fixed problem with fef on Infinity 1989-08-09 14:37:37 +00:00
ceriel
98f011552e improved rounding 1989-08-09 14:37:07 +00:00
ceriel
d277946286 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
b1347283b9 Added warning for initializer of formal parameter (the syntax allows this!) 1989-08-02 11:26:51 +00:00
ceriel
a1a78e3b70 include mach directory (for con_float) 1989-08-02 10:34:49 +00:00
ceriel
47955d174e fixed typo 1989-08-02 09:47:27 +00:00
ceriel
c302ed167c much improved version 1989-08-01 16:40:28 +00:00
ceriel
94a4bbb268 some fixes: representation for 0, and corrected check for overflow 1989-08-01 16:34:01 +00:00
ceriel
2b2698c44c Added fp68881.s 1989-08-01 16:32:34 +00:00
ceriel
3ed9932864 removed #define for IEEEFORMAT; now, the floating point package always
uses this format
1989-07-31 15:15:41 +00:00
ceriel
37379d70ba some fixes: fif did loose too many bits; unnormalized form did not work 1989-07-31 15:10:54 +00:00
ceriel
338fb5fb30 use con_float routine 1989-07-31 15:10:36 +00:00
ceriel
d12053873a adapted for changed floating point package 1989-07-31 14:54:53 +00:00
ceriel
ed19a3d568 removed IEEEFORMAT #define 1989-07-31 14:52:45 +00:00
ceriel
6572fa2def use con_float file, and use new interface to fif and fef routines 1989-07-31 14:50:19 +00:00
ceriel
066c005493 Added #define for CODE_GENERATOR 1989-07-31 14:45:40 +00:00
ceriel
0ad83c648e fixed interface to fef routines 1989-07-31 14:43:51 +00:00
ceriel
1280176fb0 removed IEEEFORMAT #define, and define USE_DIVIDE for i386 1989-07-31 14:35:34 +00:00
ceriel
022b40d40c use new interface to fif and fef routines 1989-07-31 14:34:23 +00:00
ceriel
fc9e01c8d8 removed IEEEFORMAT #define 1989-07-31 14:32:08 +00:00
ceriel
0ef99949bc use con_float file, and use new interface to fif and fef routines 1989-07-31 14:25:53 +00:00
ceriel
3e194345cf Added #define for buffer size needed for flt_flt2str() 1989-07-31 13:05:51 +00:00
ceriel
990e7a67da Added some assertions 1989-07-31 12:55:33 +00:00
ceriel
ef8450fce9 use con_float file, and use new interface to fif and fef routines 1989-07-31 11:42:27 +00:00
ceriel
4759f1c9f9 use con_float file 1989-07-31 11:22:43 +00:00
ceriel
53ce9da827 fixed some bugs, added flt_umin 1989-07-28 14:13:39 +00:00
ceriel
3d644d25cb needs tail_mon for all languages 1989-07-27 10:22:26 +00:00
ceriel
5f35d0c644 fixed behaviour on too long floating point constants 1989-07-26 11:16:59 +00:00
ceriel
90101c0dec Added ext_comp.c 1989-07-26 11:08:24 +00:00
ceriel
6f9afbf0d5 use IEEE format in floating point package 1989-07-25 15:50:29 +00:00
ceriel
f7360f0fec many changes, to use IEEE format 1989-07-25 14:21:09 +00:00
ceriel
c7be2d1a44 bug fix in NGI for longs 1989-07-24 10:40:21 +00:00
ceriel
52a8f7d1f1 needed ldexp routine for exp.c 1989-07-19 14:51:19 +00:00
ceriel
c09e4ced7e main.old is not always present, so ignore exit status of 'size main.old' 1989-07-19 14:27:19 +00:00
ceriel
36fb149236 new directory for Pascal front-end 1989-07-19 09:01:57 +00:00
ceriel
a0eb2f398d LIBSUF must be 'a', not 'ma' 1989-07-19 08:56:46 +00:00
ceriel
c6cbc82178 merged -m flag with -j flag 1989-07-17 16:40:18 +00:00
ceriel
3e357f311f documented environment variables, changed EM_DIR into ACKDIR 1989-07-17 16:19:10 +00:00
ceriel
228fe4b4d0 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
b1ee8fe36b fixed a problem with the store: we sometimes lost some memory 1989-07-17 15:13:09 +00:00
ceriel
09a52b8cf2 fixed a problem with recursive macros: this was not always detected 1989-07-14 09:51:02 +00:00
ceriel
b07825aee3 exponent was wrong in divide routine; corrected 1989-07-13 11:18:02 +00:00
ceriel
cee897ecfa procedure function --> function procedure 1989-07-12 10:59:16 +00:00
ceriel
02c5bf9140 changed lay-out of manual page a bit 1989-07-12 09:48:15 +00:00
ceriel
f62db3f3c6 Added #define for Free, improved text 1989-07-11 17:02:07 +00:00
ceriel
c8ca61ba6e con_float now uses the flt_arith module 1989-07-11 14:17:34 +00:00
ceriel
7455c23f0f tail_mon needed for .e 1989-07-11 12:52:00 +00:00
ceriel
347197573b made to compile, added proper cast 1989-07-11 12:48:40 +00:00
ceriel
1b08effa77 Added some %persistents, improved behaviour of preprocessor, and other
minor mods
1989-07-11 12:34:38 +00:00
ceriel
c483664bb1 made names of some files shorter 1989-07-11 11:38:52 +00:00
ceriel
96916a7ab4 there is no longer a lib directory; it is replaced by ../libce 1989-07-11 11:34:51 +00:00
ceriel
1e9c82d6e5 made to work, and added the b64 shift routines to the interface 1989-07-11 09:15:17 +00:00
ceriel
a7b5504034 new mechanism for floating point constants 1989-07-10 17:15:55 +00:00
ceriel
c820d77690 new floating point constant mechanism 1989-07-10 16:52:02 +00:00
ceriel
1c848c8db3 Added flt_arith 1989-07-10 11:25:02 +00:00
ceriel
c20a2155fa Initial revision 1989-07-10 11:17:19 +00:00
ceriel
811612634a replaced some db.. instructions; they are wrong if the count register
contains a count > 65535
1989-07-07 16:01:03 +00:00
ceriel
00c4a00675 replaced some db.. instructions; they are wrong if the count register
contains a count > 65535
1989-07-07 15:11:35 +00:00
ceriel
b32fb46dfe replaced some db.. instructions; they are wrong if the count register
contains a count > 65535
1989-07-07 15:05:33 +00:00
ceriel
01a95e3b08 replaced some db.. instructions; they are wrong if the count register
contains a count > 65535
1989-07-07 13:53:37 +00:00
ceriel
46b57440a0 made a bit more robust 1989-06-30 14:46:27 +00:00
ceriel
7d131a2cd5 fix: did not work when called from different directory 1989-06-29 11:03:23 +00:00
ceriel
55da4da081 some fixes 1989-06-28 12:51:16 +00:00
ceriel
3aec06a088 Added ret.s 1989-06-28 12:40:22 +00:00
ceriel
7fadcacc26 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
cd8f86a7e4 Added descriptions for EM machines 1989-06-27 15:46:58 +00:00
ceriel
58f837cd33 fixed reading of archives 1989-06-27 15:41:47 +00:00
ceriel
b005d26d3f removed the ACKFLOAT #define 1989-06-27 13:17:39 +00:00
ceriel
1ae39bf15b Added con_float, for floating point constants 1989-06-27 13:16:17 +00:00
ceriel
f781103cb4 removed some useless PushBack's, and added warnings 1989-06-27 11:43:26 +00:00
eck
27d7d5ed68 various fixes and improvements 1989-06-26 10:37:05 +00:00
ceriel
11349c78cd use better algorithms for some mathematical functions 1989-06-20 13:10:32 +00:00
ceriel
6d78cd6710 bug fix: printed some reals wrong 1989-06-20 11:43:01 +00:00
ceriel
9e151cf706 Added routines to read and write LONGREALS 1989-06-20 11:23:43 +00:00
ceriel
761312d0dd use new math algorithms 1989-06-19 16:22:23 +00:00
ceriel
8b702734cf use new math routines 1989-06-19 15:56:30 +00:00
ceriel
d4389da709 initialize variable inheader 1989-06-19 11:31:22 +00:00
ceriel
197f5bc796 generated with newer makefile generator 1989-06-19 11:30:37 +00:00
ceriel
869ba1ec9e use make_asobj 1989-06-19 11:27:36 +00:00
ceriel
0374c089c3 Added some patterns for floating point code 1989-06-19 11:24:10 +00:00
ceriel
eabc223bf0 generated stupid code for long unsigned comparison 1989-06-19 11:23:08 +00:00
ceriel
9953b58092 don't remove compiler generated labels when they are external 1989-06-19 11:19:22 +00:00
ceriel
1205b95090 use different (better) hashing algorithm 1989-06-19 11:17:41 +00:00
ceriel
a9102764e6 Added ranlib line 1989-06-19 11:16:53 +00:00
ceriel
c48f281b39 Avoid I/O buffering when using the checking malloc 1989-06-19 11:10:58 +00:00
ceriel
e2b5163869 avoid a null-reference 1989-06-19 11:09:44 +00:00
ceriel
f99f25cc5f fix: sizes were the wrong way around for MAXINSTR 1989-06-19 09:57:35 +00:00
ceriel
b11e382851 some minor corrections 1989-06-19 09:56:16 +00:00
ceriel
3824cfd66d fixed some leapyear problems 1989-06-19 09:50:38 +00:00
ceriel
96a52f7a6f fixed exit status of test program 1989-06-19 09:49:22 +00:00
ceriel
f3249a04a1 versions for new Pascal compiler 1989-06-19 09:46:29 +00:00
ceriel
53b430aed6 fixed some typos 1989-06-15 19:50:14 +00:00
ceriel
eee6d61c7b improved Makefile, fixed writes: a field width of 0 is not standard 1989-06-15 19:11:01 +00:00
ceriel
676aee2213 Added call to C_close in the fatal routine 1989-06-15 19:08:18 +00:00
ceriel
b1c3d1bc53 fixed problem with void returns and changed a warning somewhat 1989-06-15 19:06:56 +00:00
ceriel
56e985729d some added patterns for M688881, and a fix 1989-06-15 10:35:42 +00:00
ceriel
4dfa2310fc continue when an include file is not found 1989-06-15 09:16:27 +00:00
eck
cd367c7940 Initial revision 1989-06-14 16:11:19 +00:00
eck
8c9800d8fe Initial revision 1989-06-14 15:07:06 +00:00
eck
06c441dab7 Initial revision 1989-06-14 14:41:35 +00:00
eck
5406895717 Initial revision 1989-06-13 11:23:28 +00:00
eck
341aaf8dc1 Initial revision 1989-06-12 15:22:14 +00:00
ceriel
8b21acdbb3 removed old Pascal error files 1989-06-12 14:24:17 +00:00
ceriel
e8aadf4409 some optimizations for M68881; it is still horrible, though 1989-06-12 14:05:25 +00:00
ceriel
43fb961091 Added simple support for M68881 1989-06-12 09:30:39 +00:00
ceriel
74bc0442bd Added some flags 1989-06-09 15:07:54 +00:00
ceriel
133ecee90d fixed typo 1989-06-09 09:53:29 +00:00
ceriel
2b8ee048c8 Added saving of registers 1989-06-09 09:32:40 +00:00
ceriel
3b4a813a6c installed new Pascal compiler 1989-06-08 13:05:21 +00:00
ceriel
018cf665d8 some additions to .distr file 1989-06-08 13:02:26 +00:00
ceriel
2cd40f68e6 Added support for MC68881 floating point processor 1989-06-08 12:46:17 +00:00
ceriel
64a35f954d leave register messages with a count of 0 1989-06-05 15:47:53 +00:00
ceriel
cc3459e5a8 fix to constant unary minus 1989-05-31 12:42:56 +00:00
ceriel
ced856c234 improved fix 1989-05-30 14:50:16 +00:00
ceriel
e6fb294aac transform HOL into BSS so that IL does not get confused 1989-05-30 14:32:12 +00:00
eck
69f02d8abc Initial revision 1989-05-30 13:34:25 +00:00
ceriel
8f2fe1c003 token references in EM replacements do not work. Give error message 1989-05-30 12:20:54 +00:00
ceriel
6266743c4c static links are not considered read-only anymore 1989-05-30 10:44:34 +00:00
ceriel
7c26c21b87 fixed typo, which resulted in memory fault 1989-05-30 10:41:42 +00:00
ceriel
2f81a59738 removed printf.s, put in dia.s 1989-05-30 10:38:45 +00:00
ceriel
3d7da616bf Added files 1989-05-29 14:45:56 +00:00
ceriel
013ccf9149 changed printf name: removed underscore 1989-05-29 14:42:18 +00:00
ceriel
ce81b47935 removed printf.s 1989-05-29 14:40:51 +00:00
ceriel
aa0e321971 some fixes 1989-05-29 11:32:23 +00:00
ceriel
aaea752423 Added version number to binary 1989-05-29 11:17:40 +00:00
ceriel
4a1f9bbc22 bug fix: did not handle #elif right 1989-05-29 11:11:34 +00:00
ceriel
c1075bd08c Added Version.c 1989-05-29 10:32:46 +00:00
ceriel
fd4e81f64e Modified to make the default M2 compiler name definable at compile time 1989-05-29 10:27:54 +00:00
ceriel
fdcad08fdf fixed typo 1989-05-25 17:22:27 +00:00
ceriel
efe2c8d032 some more fixes 1989-05-18 18:02:24 +00:00
ceriel
e431cec90a fixed some errors 1989-05-18 16:48:28 +00:00
ceriel
9f7ee118f7 new versions, mostly from Cody and Waite 1989-05-18 15:37:54 +00:00
ceriel
03d44703a2 bug fixes 1989-05-16 16:02:46 +00:00
ceriel
f45eda8c23 call .sts instead of .sti for STS instruction 1989-05-16 15:44:49 +00:00
ceriel
57106471dc some fixes 1989-05-16 15:41:36 +00:00
ceriel
4220dc1479 some fixes 1989-05-16 14:48:47 +00:00
eck
d818da36f0 Initial revision 1989-05-16 13:13:53 +00:00
ceriel
13bc7e128d 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
7531131416 fix: kills line for STI 1 with ADDR_LOCAL was wrong 1989-05-11 13:55:31 +00:00
eck
ee50a1d717 Initial revision 1989-05-11 12:32:26 +00:00
ceriel
3c8a8f0349 fixes: you cannot do stack-references in EM replacements! 1989-05-11 11:25:16 +00:00
ceriel
5a9d09a854 some fixes 1989-05-11 10:57:34 +00:00
ceriel
b7c7d50513 fixed typo 1989-05-11 10:43:37 +00:00
eck
c5b0e1bd4f Initial revision 1989-05-11 10:21:37 +00:00
eck
749c364816 Initial revision 1989-05-11 10:09:52 +00:00
eck
0a7c058d01 Initial revision 1989-05-10 16:22:28 +00:00
eck
d2f7f252b2 Initial revision 1989-05-10 16:08:14 +00:00
eck
f0cec58cf9 Initial revision 1989-05-10 10:43:58 +00:00
eck
85c9115d5b converted to ANSI C 1989-05-10 10:20:14 +00:00
ceriel
fdf26a7f06 reversed a-option 1989-05-10 10:19:22 +00:00
eck
d20988a1cb Initial revision 1989-05-10 09:39:49 +00:00
ceriel
c1ff4f2725 default is assertions ON 1989-05-09 15:54:01 +00:00
ceriel
b3e42570bb updated for new Pascal version 1989-05-09 13:49:25 +00:00
ceriel
ff4f0602ff Added 'all' entry 1989-05-08 12:42:53 +00:00
ceriel
d62d0c68ee not include em_path.h anymore 1989-05-08 12:39:33 +00:00
eck
0a60d5f585 updated for new pascal compiler 1989-05-08 10:04:50 +00:00
ceriel
600d569269 removed printf 1989-05-03 11:14:42 +00:00
ceriel
a94dec52d8 Many improvements by Hans van Eck 1989-05-03 10:30:22 +00:00
ceriel
19638876a1 Adapted for new Pascal Compiler 1989-05-03 09:53:25 +00:00
ceriel
948aa06740 fixed: signed divide by power of 2 not equivalent to shift-right 1989-05-02 18:00:37 +00:00
ceriel
bc1ab42895 some fixes 1989-05-01 18:32:24 +00:00
ceriel
dfc5d7318c Added cemain entry in Resolve script 1989-04-26 11:32:46 +00:00
ceriel
eb6c2af313 fix: M_DMAXEXP was wrong 1989-04-20 15:27:00 +00:00
ceriel
e967e920be removed one goto 1989-04-19 15:00:07 +00:00
ceriel
b7a6b75155 new pascal compiler 1989-04-18 13:34:50 +00:00
ceriel
9c24d8f3fe just define unix, not unix=unix 1989-04-18 10:35:57 +00:00
dick
0afe372ebb some printf format corrections 1989-04-17 10:10:59 +00:00
ceriel
6d9d69aebf take care of proper exit status 1989-04-14 18:33:56 +00:00
ceriel
ec3d8bb5aa fix: filename label sometimes turned up as external 1989-04-14 18:25:39 +00:00
ceriel
6e75af9cef make entry to generate .o files 1989-04-11 15:51:01 +00:00
ceriel
944c818096 Corrected some warnings a bit 1989-04-11 14:34:21 +00:00
ceriel
6f8702a65e fixed problem with hex numbers, and use new PushBack feature 1989-04-11 11:40:49 +00:00
ceriel
4d5f61ce45 fixed clock for larger word sizes 1989-04-07 09:20:06 +00:00
ceriel
50114318e2 fixed typo 1989-04-06 14:18:17 +00:00
ceriel
ff853d748c using new input module simplifies EOI handling 1989-04-04 15:02:47 +00:00
ceriel
0995f7a809 better error handling, simplified EOI handling with improved input module 1989-04-04 14:53:48 +00:00
ceriel
6877184666 improved version with better PushBack 1989-04-04 14:49:31 +00:00
ceriel
3030b5edd1 better attempt to indicate start and end of own BSS; still not good
enough
1989-04-04 10:09:27 +00:00
ceriel
1b6fe5b9ed Added DUP pattern 1989-04-04 09:46:47 +00:00
ceriel
c847bfb6c8 improved ASP patterns 1989-04-03 16:16:10 +00:00
ceriel
7a7d0e413b recognize but ignore #pragma 1989-03-31 11:47:12 +00:00
ceriel
d650e927a7 recognize but ignore #pragma 1989-03-31 10:56:53 +00:00
ceriel
87c1bc774b fix to fix 1989-03-30 15:14:37 +00:00
ceriel
f1c6de0f1f 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
96840e712d fix: prevent unwanted sign-extension in the get4 routine 1989-03-30 09:34:43 +00:00
ceriel
6ac4bb17aa check arguments better 1989-03-29 14:58:42 +00:00
ceriel
4797a7d4ce make realloc behave like most Unix realloc versions when handed a
null pointer
1989-03-29 12:58:18 +00:00
ceriel
c5345bf6ac Changed semantics of CallAtEnd so that it calls installed procedures
in reversed order
1989-03-22 17:36:20 +00:00
ceriel
61f0a89372 declare extnd_main 1989-03-22 16:55:06 +00:00
ceriel
b296ddc4a0 documented extnd_main 1989-03-22 16:46:38 +00:00
ceriel
96c4943ef7 Added extnd_main routine 1989-03-22 16:44:20 +00:00
ceriel
d763d3ddeb fixed: beginpart must divert main stream 1989-03-22 16:41:38 +00:00
ceriel
52d3ee55e2 Added ce and libce to .distr 1989-03-22 15:16:36 +00:00
ceriel
eef9b6237b Initial revision 1989-03-22 15:06:05 +00:00
ceriel
4e21aced73 bug fix in WITH statement: called WalkDesignator instead of ChkDesig 1989-03-22 11:07:21 +00:00
ceriel
3a3b5db45d 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
f9b6acf1dc New version with different parameter passing mechanism and some
minor fixes
1989-03-20 13:32:06 +00:00
ceriel
346bc839a3 use value parameters when VAR not needed 1989-03-20 13:03:34 +00:00
ceriel
9379157da7 use value parameters when VAR not needed 1989-03-20 12:46:25 +00:00
ceriel
a432f84eb0 more fine-tuning 1989-03-20 12:36:22 +00:00
ceriel
88ebd891b1 generate -c instead of -c.$(SUFFIX) 1989-03-17 17:06:21 +00:00
ceriel
3ecaa0b634 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
11cb7edde4 Also put the unstackset in tables.c, so that ncg can look at it 1989-03-17 16:34:39 +00:00
ceriel
1e3877b595 documented null-string behaviour 1989-03-16 15:41:43 +00:00
ceriel
7ed597eefc Added tables1 files to .distr 1989-03-16 11:32:16 +00:00
ceriel
c69004d5df Added pattern for BLS 4 1989-03-16 11:21:37 +00:00
ceriel
c1fc03b7e2 fixed typo's 1989-03-16 11:20:47 +00:00
ceriel
bfe38b6f40 no dependencies in suffix rules 1989-03-15 13:28:52 +00:00
ceriel
bb83c44309 fixed the arctan routine 1989-03-15 13:16:40 +00:00
ceriel
6218df1293 improved error message for no RETURN from function procedure 1989-03-15 10:46:27 +00:00
ceriel
21a8f93bc7 adapted for larger function result area 1989-03-14 15:36:33 +00:00
ceriel
fb0051c85a fixed: pattern for ADI STL and the like was wrong 1989-03-14 14:05:10 +00:00
ceriel
101e93205b some more improvements; made fancy modes dependant on #define 1989-03-14 12:47:11 +00:00
ceriel
5980b1e5ec return area has maximum size 2*pointer-size 1989-03-14 12:28:55 +00:00
ceriel
944898dd40 updated to current situation 1989-03-14 11:03:24 +00:00
ceriel
c81a6a0c7a better warnings for unused/undefined parameters 1989-03-13 15:04:05 +00:00
ceriel
0975784c8d some changes for more fine-tuning 1989-03-13 14:12:22 +00:00
ceriel
183942e70c 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
162b824030 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
18d134bda7 put saved label in correct segment 1989-03-10 10:08:22 +00:00
ceriel
33992b426d fix: when looking for f.i. C_loe.., forgot to reset to_change when found 1989-03-10 10:06:47 +00:00
ceriel
f740dcf176 cleaner versions of Makefiles 1989-03-10 09:47:41 +00:00
ceriel
24f3f2f10e updated to ed4 1989-03-08 17:28:08 +00:00
ceriel
15beade4d2 Added code-expander documentation 1989-03-07 16:25:32 +00:00
ceriel
ae34da5376 simplified a bit 1989-03-07 10:33:47 +00:00
ceriel
3370f962a4 undid some changes; they were not effective 1989-03-07 10:29:15 +00:00
ceriel
ab1b682800 changed lint flags 1989-03-07 10:27:22 +00:00
ceriel
23f2646704 use general as pointer flag added 1989-03-07 10:24:32 +00:00
ceriel
15449606d1 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
b708373ff8 use $(REFER) instead of refer 1989-03-07 10:00:45 +00:00
ceriel
3a3db29339 fix to fix 1989-03-07 09:26:42 +00:00
ceriel
d97abb0763 avoid null-reference if some nonterminal is not defined 1989-03-06 18:48:30 +00:00
ceriel
bf62834959 commented out some code 1989-03-06 18:15:50 +00:00
ceriel
7e2d5f6065 commented out some code 1989-03-06 18:02:53 +00:00
dick
1d0b3910b2 more lint code 1989-03-06 15:17:39 +00:00
ceriel
bb7b8d6490 fixed problem with size option 1989-03-03 17:53:31 +00:00
ceriel
6030127779 brought up-to-date, and documented back-interface better 1989-03-03 17:09:28 +00:00
ceriel
018d91b6a1 Added options 1989-03-03 16:16:52 +00:00
ceriel
a1b4e28760 Added a local extension: procedure constants 1989-03-03 16:13:45 +00:00
ceriel
e8aab09b4b some improvements and corrections 1989-03-03 15:16:12 +00:00
ceriel
62729ad0b2 Added some patterns 1989-03-03 12:46:59 +00:00
ceriel
0fe88af93e Initial revision 1989-03-03 11:41:29 +00:00
ceriel
0e3f85e837 Added some patterns 1989-03-03 11:10:13 +00:00
ceriel
26e5032b9c Added some patterns 1989-03-03 10:36:42 +00:00
ceriel
ac2b7f8d44 replace more multiplies by shifts 1989-03-02 18:56:05 +00:00
ceriel
3ab954e38c adapted to new ordering in FILE struct 1989-03-02 11:24:55 +00:00
ceriel
bc1eb3116e 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
847c27663b avoid spurious error messages about missing #endif 1989-03-01 13:39:50 +00:00
ceriel
992dc3eb65 Many new patterns 1989-03-01 11:32:37 +00:00
ceriel
da2ba8e093 Added some patterns 1989-03-01 11:28:49 +00:00
ceriel
a22bbe847f use calloc instead of malloc, to make sure block is initialized to 0 1989-03-01 10:00:37 +00:00
ceriel
5c7325e0de fix: tst instruction also allowed on address register 1989-02-28 18:40:35 +00:00
ceriel
ef6efdee12 simplified CFF somewhat 1989-02-24 14:58:21 +00:00
ceriel
4c755666b8 fixed bug in Usage line 1989-02-24 14:53:49 +00:00
ceriel
587a8e8274 Added patterns and made some improvements 1989-02-24 14:09:46 +00:00
ceriel
80d87777f0 Added pattern for unlk after stack adjustment 1989-02-24 13:34:49 +00:00
ceriel
c3408302c1 better rule for LOE LOF DUP ADP ... 1989-02-23 17:59:30 +00:00
ceriel
c6a806ac4d generate better code for LOL ADP STL 1989-02-23 15:46:46 +00:00
ceriel
b4e24c5bdd bug fix: some variables were not initialized all the time 1989-02-23 10:40:12 +00:00
ceriel
6f4bdccf04 removed prt_ext 1989-02-23 10:08:20 +00:00
ceriel
19c225f75f fixed error in previous commit 1989-02-22 17:38:07 +00:00
ceriel
f2c241fe3a do not depend on SP for restoring registers 1989-02-22 17:18:34 +00:00
ceriel
13c2a9a2a5 changed interface to CSA and CSB 1989-02-22 17:18:17 +00:00
ceriel
5187e46404 speeded up a bit 1989-02-22 16:16:11 +00:00
ceriel
b1626ca895 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
4fd066bb54 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
b37c8b0b24 improve signal handling of Floating Point Exception 1989-02-21 10:49:51 +00:00
ceriel
6beb10355e changed entry points csa and csb 1989-02-21 10:11:26 +00:00
ceriel
3b61d605c1 fixed syntax error in table 1989-02-21 10:09:22 +00:00
ceriel
75c18ef56c changed entry points csa and csb; strscript should call m68020
instead of acc
1989-02-21 10:09:01 +00:00
ceriel
432cf9054d changed entry points for csa and csb 1989-02-21 10:05:03 +00:00
ceriel
d5b2601b8f use a larger buffer on larger machines 1989-02-21 10:01:55 +00:00
ceriel
30959cd73f 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
8aee01de95 made easier to compile with different compiler 1989-02-20 15:29:10 +00:00
ceriel
c096cc6522 fixed; did not work because there was no dependency on as_lib.a 1989-02-20 15:25:27 +00:00
ceriel
a4178ca843 do not catch floating point exceptions anymore 1989-02-17 09:58:06 +00:00
ceriel
9751e398e3 Made easier to use other compiler 1989-02-16 16:33:29 +00:00
ceriel
f7790b0e8e empty string in directory list now means current directory 1989-02-16 11:46:39 +00:00
ceriel
1e19db9d3a empty string in directory list now means current directory 1989-02-16 11:24:01 +00:00
ceriel
00ac6f88a7 empty string in directory list now means current directory 1989-02-16 11:18:44 +00:00
ceriel
188b1df96d fixed; the previous change was wrong 1989-02-16 11:14:22 +00:00
ceriel
9baa112ea1 Handle empty string in search path; It means: current directory 1989-02-16 10:48:06 +00:00
ceriel
59ea3478ac Add include directory when compiling head 1989-02-16 09:40:52 +00:00
ceriel
4da1930ff4 Initial revision 1989-02-15 16:39:58 +00:00
ceriel
0c19cc22e0 fixed some incorrect kills 1989-02-15 11:39:13 +00:00
ceriel
fcc033df20 Initial revision 1989-02-14 18:03:13 +00:00
ceriel
01626b2c32 Initial revision 1989-02-14 15:52:25 +00:00
ceriel
eb3dcf275e fixed some problems, updated with cemcom 1989-02-14 14:35:38 +00:00
ceriel
4629647d78 fixed wrong count in popping parameters 1989-02-14 14:10:31 +00:00
ceriel
ebce0b4a18 New coroutine mechanism incorporated 1989-02-13 18:41:17 +00:00
ceriel
7b2e749b0d make runtime error messages emacs-compatible 1989-02-13 18:28:17 +00:00
dick
429d527a64 more and better declarations in c.llb 1989-02-10 16:46:01 +00:00
ceriel
5a4933ff7f 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
7161d59956 Added documentation about priority and optimizer keywords 1989-02-09 16:17:00 +00:00
ceriel
76cb7a0b33 Added some comments 1989-02-09 15:58:34 +00:00
ceriel
760ee8362e Fix: current distribution is 4th 1989-02-09 15:57:27 +00:00
ceriel
d7ce393510 Adapted; Do not use /dev/tty 1989-02-09 15:55:33 +00:00
ceriel
b005246ad5 Added Algol68S 1989-02-09 15:53:09 +00:00
ceriel
3b922f1292 fix: CHR expects a CARDINAL parameter 1989-02-09 15:43:28 +00:00
ceriel
62d8930080 deleted makefile from distribution; Added some comments about this to
the README file
1989-02-09 15:43:25 +00:00
ceriel
dbe4e49936 New method of calling optimizers; fixed lint entry in Makefile 1989-02-09 14:08:47 +00:00
ceriel
683c162cff New method of calling optimizer; Added Algol68S 1989-02-09 13:46:32 +00:00
ceriel
b11b5996c1 minor correction 1989-02-09 13:26:24 +00:00
ceriel
d79ad333bf *** empty log message *** 1989-02-09 13:24:20 +00:00
ceriel
86ace8a020 Fixed lintflags 1989-02-09 11:33:11 +00:00
ceriel
dfca9ea600 fixed lint options; Added -O<num> option 1989-02-09 11:22:24 +00:00
ceriel
6fc4ca1ae0 The s option now gives a percentage of the size of the input 1989-02-09 10:18:48 +00:00
ceriel
dcde07e7a7 use pusha and popa instructions, and on the proper place 1989-02-08 15:47:22 +00:00
ceriel
cd70a74d25 Added 1989-02-08 15:29:51 +00:00
ceriel
e91749bbce Added 1989-02-08 15:19:42 +00:00
ceriel
143abc2420 Initial revision 1989-02-08 15:12:03 +00:00
ceriel
f682c264a8 Initial revision 1989-02-08 14:57:48 +00:00
ceriel
fb88f5dbdd fixed problem with importing enumeration literals 1989-02-08 10:24:10 +00:00
ceriel
7c22618cb8 make sure that every command ends up in the same directory where it started 1989-02-08 09:44:32 +00:00
ceriel
81f2477282 Adapted to our installation 1989-02-08 09:38:15 +00:00
ceriel
be89699a1a fixed return value of signal 1989-02-08 09:29:27 +00:00
ceriel
04e2dac8e7 replaced some BSS by CON; The order in memory is important!
Adapted to our installation
1989-02-08 09:23:46 +00:00
ceriel
6fec436051 use an ed script instead of an ex script; more portable 1989-02-07 17:54:33 +00:00
ceriel
a13ea6d098 fix in IMUL, define DEBUG 1 1989-02-07 14:30:47 +00:00
ceriel
0bc88b77b2 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
9dcae8fcd0 made arg_error dependent on DEBUG; fixed cmp instruction in as_table 1989-02-07 11:42:28 +00:00
ceriel
fa6900fbbc made back.a dependent on some C files in this directory 1989-02-07 11:32:47 +00:00
ceriel
c64da88289 Added FORMAT information for our lint; Documented the _format routine 1989-02-07 11:17:22 +00:00
ceriel
f3584b3d52 made back.a dependent on some C files in this directory 1989-02-07 11:12:13 +00:00
ceriel
1e9d815c92 Documented need of em_data.a for libeme.a 1989-02-07 11:11:57 +00:00
ceriel
926da49d39 Initial revision 1989-02-07 11:04:05 +00:00
ceriel
e2fe3fec2c increment error count on errors 1989-02-07 09:50:28 +00:00
ceriel
c3f7993b1a fixed problem in sizeof() 1989-02-06 19:06:55 +00:00
ceriel
37fd03b14b some fixes 1989-02-06 15:15:27 +00:00
ceriel
687d428026 move to address register does not set condition codes 1989-02-06 15:11:49 +00:00
ceriel
929716a621 Improved label handling and handling of jumps to jumps 1989-02-06 14:39:08 +00:00
ceriel
e0c7813927 Added some patterns for LOC LOC CII followed by test on (in)equality to 0 1989-02-06 14:38:21 +00:00
ceriel
732d0eac5c Bug fix in cast 1989-02-06 14:38:00 +00:00
ceriel
0ec10de716 Use our own preprocessor, added dependencies 1989-02-06 14:37:51 +00:00
ceriel
eca0cde913 changed order of registers, so that d0 is allocated first 1989-02-06 14:35:10 +00:00
ceriel
76684055eb some simplifications and a bug fix 1989-02-03 16:32:07 +00:00
ceriel
9ea59fd48a corrected print formats 1989-02-02 16:32:19 +00:00
ceriel
920ba0eebe delinted somewhat 1989-02-02 16:31:51 +00:00
ceriel
3b76fbc284 bitwise operators available now 1989-02-02 16:15:54 +00:00
ceriel
821e1e624b Added header 1989-02-02 16:10:15 +00:00
ceriel
55705b22ca improved pattern 1989-02-02 16:04:18 +00:00
ceriel
8127265043 Added some patterns 1989-02-02 16:01:13 +00:00
ceriel
c52b10c115 many changes, to make the make_* files more portable 1989-02-02 14:45:26 +00:00
ceriel
91853768f7 name changes 1989-02-02 14:41:24 +00:00
ceriel
42b647d9a9 as_back/const.h is deleted 1989-02-02 14:36:34 +00:00
dick
f70dfe4d00 better evaluation order checking in expressions 1989-02-02 13:57:07 +00:00
ceriel
f7df668450 delinted, added chstack.c 1989-02-02 13:24:50 +00:00
ceriel
1daac3c5d1 made arg_error dependant on DEBUG 1989-02-02 12:49:21 +00:00
ceriel
0291c897be hidden names, made arg_error dependant on DEBUG 1989-02-02 12:29:14 +00:00
ceriel
bf6a1eb0ba removed unused code 1989-02-02 12:27:33 +00:00
ceriel
542eb9a7d8 made arg_error dependant on a DEBUG constant, improved Makefile 1989-02-02 11:45:50 +00:00
ceriel
45a94c9858 made arg_error dependant on a DEBUG constant 1989-02-02 11:42:53 +00:00
ceriel
f3c29355f6 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
9359e081db documented w2 1989-02-01 15:58:31 +00:00
ceriel
2930ebb406 fixed bug: OO_halfflush did not work properly 1989-01-31 10:33:59 +00:00
ceriel
3adeb611df include back.h file 1989-01-27 16:41:04 +00:00
ceriel
df69d70608 Changed some names 1989-01-27 14:15:55 +00:00
ceriel
8811a2af14 Makefile added 1989-01-27 13:22:55 +00:00
ceriel
d87e8f72a9 Makefile added 1989-01-27 13:10:44 +00:00
ceriel
7bcd261f8e minor mods 1989-01-27 13:09:37 +00:00
ceriel
039552a46c define CODE_EXPANDER 1989-01-27 12:41:43 +00:00
ceriel
c9df20878f improved Makefile 1989-01-27 12:02:55 +00:00
ceriel
b0fdc82616 put table in alphabetical order again 1989-01-26 17:10:18 +00:00
ceriel
766d76e712 moved definitions for extnd routines 1989-01-26 17:08:15 +00:00
ceriel
e72a36bbb2 renamed jump, prolog, and locals to C_jump, C_prolog, and C_locals 1989-01-26 15:42:50 +00:00
ceriel
8ae2077591 adapted to no longer need an as.h file 1989-01-26 15:20:56 +00:00
ceriel
945cceccb5 replaced Dutch comment 1989-01-26 14:47:03 +00:00
ceriel
7f0b775587 cleaned up a bit 1989-01-26 14:43:09 +00:00
ceriel
6ee3538d91 cleaned up a bit 1989-01-26 14:39:09 +00:00
ceriel
f58722ab46 replaced Dutch comments 1989-01-26 14:27:02 +00:00
ceriel
817facac14 Added prefix C_ to the names prolog, jump, and locals 1989-01-26 14:04:11 +00:00
ceriel
e6fb2468c8 change some names 1989-01-26 13:46:19 +00:00
ceriel
709cf50fbd changed identifier Hashitems 1989-01-26 13:41:31 +00:00
ceriel
811321b190 change some names 1989-01-26 13:39:03 +00:00
ceriel
5a18c3748d hide names, and remap public ones 1989-01-26 13:32:57 +00:00
ceriel
e92f8ac398 change some names 1989-01-26 13:24:23 +00:00
ceriel
3373e11923 previous fix was wrong; corrected 1989-01-26 10:58:30 +00:00
ceriel
2ec4640e7e Added includes 1989-01-26 10:52:51 +00:00
ceriel
3a546eb8dd be a bit more liberal with prefixes 1989-01-24 13:51:05 +00:00
ceriel
5e14dddb6c fix in compile time int2float conversion 1989-01-23 16:52:22 +00:00
ceriel
cc55ab947d evaluate switch-expression on a different spot,
allow for *STRING expressions
1989-01-23 15:37:57 +00:00
ceriel
11843b44a1 changed bss() into a macro 1989-01-20 15:19:33 +00:00
ceriel
1c570328f0 fixed parameter types 1989-01-20 15:01:37 +00:00
ceriel
b1b4ba9677 Added some conversions 1989-01-20 14:54:55 +00:00
ceriel
fa9d7ce5ce Added Makefile 1989-01-19 17:51:44 +00:00
ceriel
c951295521 Initial revision 1989-01-19 16:43:32 +00:00
ceriel
b45706ce7a delinted a little 1989-01-19 16:41:55 +00:00
ceriel
57dfee488a Added .distr 1989-01-19 16:26:18 +00:00
ceriel
6833adfb50 Initial revision 1989-01-19 16:20:46 +00:00
ceriel
4c76583aba simplified assertion 1989-01-19 13:48:09 +00:00
ceriel
d55d4bb69f fixed another POINTER TO IDENT problem 1989-01-19 10:58:43 +00:00
ceriel
b83fca4445 use STS and LOS routines 1989-01-19 09:16:15 +00:00
ceriel
6420525753 Added STS and LOS routines 1989-01-18 10:51:57 +00:00
ceriel
7c39967dc5 use STS and LOS routine 1989-01-18 10:51:06 +00:00
ceriel
406d024e9f change to keep lint happy 1989-01-17 11:23:33 +00:00
ceriel
ed34e06d2d Added floating point, fixed LPB 1989-01-17 11:05:02 +00:00
ceriel
9c5f0e8159 changes to hide names and some fixes 1989-01-17 10:27:55 +00:00
ceriel
b800af87af changes to hide names and some fixes 1989-01-17 09:48:32 +00:00
ceriel
56c0f3bc5b many improvements 1989-01-16 16:10:32 +00:00
ceriel
6ba5c0b850 Added patterns 1989-01-16 13:35:02 +00:00
ceriel
ac86c49d85 deleted some patterns; they caused loop 1988-12-14 17:55:02 +00:00
ceriel
46f633870d fixes and improvements 1988-12-14 15:33:20 +00:00
ceriel
b9417a3a55 Added patterns 1988-12-12 18:22:59 +00:00
ceriel
f4caec88e8 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
8e09304da7 Added extra explanation of on_valu field 1988-12-12 12:51:52 +00:00
ceriel
10157af05f fixed: the fgets replacement did not work properly 1988-12-08 16:18:29 +00:00
ceriel
66ae1083a8 Added some patterns 1988-12-08 13:21:07 +00:00
ceriel
8e15d114ac declare holno 1988-12-07 16:00:46 +00:00
ceriel
87d0349814 handle local commons in one place only 1988-12-06 13:22:34 +00:00
ceriel
18b719de80 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
5252b760d9 handle intorcard_type better in case statements 1988-11-29 13:13:03 +00:00
ceriel
73ac23824b 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
da11deeece improved interface 1988-11-25 13:49:07 +00:00
ceriel
9eb1f7a67b cleaned up interface a bit 1988-11-24 11:46:31 +00:00
ceriel
15377abec5 Fix from Lindsey: changed CURRDIR mechanism to make it work on SunOs 4.0 1988-11-24 11:29:14 +00:00
ceriel
6a8360b335 Fix from Lindsey: changed CURRDIR mechanism to make it work on SunOs 4.0 1988-11-24 09:41:39 +00:00
ceriel
3d6ab89bc1 fix from Lindsey 1988-11-24 09:23:51 +00:00
ceriel
982138b8da another minor problem fixed: only test on options['R'] once
in a FOR statement!
1988-11-23 13:10:57 +00:00
ceriel
b86a455efa minor fix: sometimes wrote 0-byte 1988-11-23 11:31:20 +00:00
ceriel
d7bb7c9cf3 Added termcap support 1988-11-23 10:59:09 +00:00
ceriel
35b3050d88 fixed typo 1988-11-22 09:21:25 +00:00
ceriel
e43a0746a8 some more improvements and a fix 1988-11-21 16:55:16 +00:00
ceriel
fec83f1be3 many improvements 1988-11-21 15:04:23 +00:00
ceriel
712ba56ce8 declare procno and holno, extend_ilb changed 1988-11-18 18:00:47 +00:00
ceriel
4757be8bf6 declare procno, extend_ilb changed 1988-11-18 17:57:28 +00:00
ceriel
582ed4da02 declare procno and holno 1988-11-18 17:53:57 +00:00
ceriel
a804cc2e15 cleaned up; hidden names 1988-11-18 17:52:39 +00:00
ceriel
7d8e3b8fcd removed mysprint.c 1988-11-18 17:45:02 +00:00
ceriel
f452bfc1e1 extnd_ilb changed, declared holno and procno 1988-11-18 17:43:47 +00:00
ceriel
f2d5f15e51 fixed wr_arhdr: date and size 1988-11-18 16:06:07 +00:00
ceriel
430dad523d removed tab.c, use tabgen, and some fixes 1988-11-16 15:18:21 +00:00
ceriel
4b5e5a9764 fixed typo 1988-11-16 13:37:46 +00:00
ceriel
6ac798b50c removed tab.c, use tabgen 1988-11-16 11:23:58 +00:00
ceriel
b8cc947bc3 removed tab.c, use tabgen 1988-11-16 11:04:17 +00:00
ceriel
a08e71a16f removed tab.c, use tabgen 1988-11-16 10:58:33 +00:00
ceriel
4bacebab18 Use tabgen, so deleted chtab.c 1988-11-16 10:43:15 +00:00
ceriel
345873dae2 Added tabgen 1988-11-16 10:14:26 +00:00
ceriel
fda83cb06d Added tabgen + manual 1988-11-16 09:37:04 +00:00
ceriel
f1245e2e00 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
090f27251e fixed typo 1988-11-15 11:30:47 +00:00
ceriel
7f77ee091c Added some new patterns 1988-11-15 10:54:37 +00:00
ceriel
28c8abd52b fix to fix 1988-11-14 16:50:06 +00:00
ceriel
5c4164927d replaced some 'move's by the move instructions; Some were just wrong 1988-11-14 12:43:23 +00:00
ceriel
33b7bac870 several fixes 1988-11-11 19:13:26 +00:00
ceriel
66430b1900 fix to fix 1988-11-11 12:53:40 +00:00
ceriel
8bdd4c2a79 Use -kun option instead of absolute path 1988-11-11 11:06:47 +00:00
ceriel
0bb9c9b5a5 removed extra DUP rule. It was wrong after all 1988-11-10 15:38:50 +00:00
ceriel
09cc81f5b5 Use the system module for error messages 1988-11-10 13:46:53 +00:00
ceriel
19dad4482b 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
d6dfd5d1ad fixed to generate only external commons 1988-11-10 13:01:15 +00:00
ceriel
f210ef4f8e fixed problem with DUP: it also dupped tokens with side-effects 1988-11-09 15:49:29 +00:00
ceriel
11dee74e80 Initial revision 1988-11-08 14:09:24 +00:00
ceriel
246554a0b1 changes in search for more speed 1988-11-08 13:47:18 +00:00
ceriel
ef6f9168c4 do not refer to _exit. For some machines, it does not exist 1988-11-07 10:25:45 +00:00
ceriel
15e885ac8d produce better code for EXG 1988-11-07 09:35:47 +00:00
ceriel
af5ed82bff included changes from Andy Michael 1988-11-07 09:24:36 +00:00
ceriel
b90690ba5d 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
d418617de6 new version number 1988-11-04 10:24:34 +00:00
ceriel
f8a3f67ddb Added new line after trap message 1988-11-04 09:55:50 +00:00
ceriel
93cee9d434 Fixed problem with IMPORTS through PROCEDURE bounds 1988-11-03 15:37:37 +00:00
ceriel
5e766a0f20 Fixed bug with underscores in identifiers 1988-11-03 15:36:46 +00:00
dick
4ed20925c6 lint: printf testing and FORMATs 1988-11-03 15:18:46 +00:00
dick
7267917050 foute declaratie van sprint() 1988-11-03 14:59:47 +00:00
dick
190ea14bbf lint: retrieving string arguments from str_list 1988-11-03 13:20:27 +00:00
ceriel
0e895422bc removed include: was already done in nopt.h 1988-11-03 10:03:45 +00:00
ceriel
cfa5eafd3d fixed typo 1988-11-02 16:33:56 +00:00
ceriel
8cd2051b2e modifications in search for more speed 1988-10-31 16:03:44 +00:00
ceriel
8fab3192b6 modyfications in search for more speed 1988-10-31 15:54:54 +00:00
ceriel
7851ff900f many modyfications in search for more speed 1988-10-31 15:42:15 +00:00
ceriel
63f793aff3 modyfied to generate only one switchseg for each C_ routine 1988-10-31 15:21:47 +00:00
ceriel
0011c49d1e many changes, in search for more speed 1988-10-31 15:02:39 +00:00
ceriel
3bb19b6e7d Added code-expander library 1988-10-31 14:17:17 +00:00
ceriel
b5083a9ccf inline substitution of strcmp: was called many times! 1988-10-31 14:10:39 +00:00
ceriel
4f11f3c3fd 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
900421f411 library files now end in .llb 1988-10-28 16:27:32 +00:00
dick
63c0ca38f9 moving lint and lint.1 to lpass2 1988-10-28 16:04:31 +00:00
ceriel
7a6913dea1 some minor improvements 1988-10-28 13:37:48 +00:00
ceriel
78237f3ef8 some small fixes 1988-10-28 10:11:49 +00:00
ceriel
01252cb592 Initial revision 1988-10-26 15:21:11 +00:00
ceriel
a7a80689bf Only generate FIL when needed 1988-10-25 17:43:19 +00:00
ceriel
cfd6bca270 some fixes 1988-10-24 10:35:17 +00:00
ceriel
e71c873fc1 moved comment 1988-10-21 17:35:54 +00:00
ceriel
0d9daaa18d changed assert macro to also work with ANSI C compilers 1988-10-21 17:34:20 +00:00
ceriel
416020b5bd fixed minor problem with subranges 1988-10-21 17:24:34 +00:00
ceriel
ba1c1a82d7 patches to make more suitable for push-pop optim 1988-10-20 15:08:59 +00:00
ceriel
dc5a744d8d some minor changes 1988-10-20 14:33:55 +00:00
ceriel
e0fc646222 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
b61011fba9 use common() when possible 1988-10-20 13:28:02 +00:00
ceriel
163bbc5845 switch to text segment before generating the label 1988-10-20 13:23:52 +00:00
ceriel
f69a7e3e5d many changes, mostly for efficiency 1988-10-20 13:06:10 +00:00
ceriel
a281cc38a4 Added common() routine 1988-10-20 13:01:04 +00:00
ceriel
666367e328 Added obj_back/common.c 1988-10-20 12:59:21 +00:00
ceriel
497792f739 Use varargs.h for routine with variable number of args 1988-10-20 12:57:32 +00:00
ceriel
153a94aad4 Added missing filenames 1988-10-20 12:56:08 +00:00
ceriel
ed651bbd04 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
0ba4588be1 Changed name of compiler to m2 1988-10-19 16:44:01 +00:00
ceriel
10e2f5cb36 Added vars.s 1988-10-17 12:55:24 +00:00
ceriel
8b6ba39da4 made a bit more portable 1988-10-17 10:38:30 +00:00
ceriel
0f8489fe28 Added .distr 1988-10-14 16:47:39 +00:00
ceriel
d096f1882a improved version, generating .o files with much less relocation records
and name table entries
1988-10-13 15:53:31 +00:00
ceriel
ce0ec1c143 delinted somewhat 1988-10-13 15:43:23 +00:00
dick
c08c3e5cf6 driver and manual page added 1988-10-13 11:31:00 +00:00
dick
e66f3adc06 formats introduced in lint 1988-10-12 16:05:17 +00:00
dick
ac21f8d98a formats introduced 1988-10-12 15:49:11 +00:00
dick
bcb3b108a5 formats introduced 1988-10-12 15:32:32 +00:00
ceriel
f397d35b6a many changes: optimize generated code somewhat,
reduce relocation-table size
1988-10-07 16:52:44 +00:00
ceriel
ac3bf2cc95 Added pascal.ign 1988-10-07 10:59:23 +00:00
ceriel
1169f99c92 Added 1988-10-07 10:58:26 +00:00
ceriel
79295ca3ea delinted 1988-10-07 10:26:37 +00:00
ceriel
c488a4d491 Took over addition of -d flag from Erik Baalbergen 1988-10-07 09:48:23 +00:00
ceriel
b909bb629b modified bts2str to also escape double quotes 1988-10-05 16:19:42 +00:00
ceriel
8e7e1320ac Initial revision 1988-10-05 13:29:42 +00:00
ceriel
366b492174 Initial revision 1988-10-04 14:27:35 +00:00
ceriel
a54c470fef some mods from Charles Lindsey 1988-10-04 13:59:51 +00:00
ceriel
e1b871a6ea Initial revision 1988-10-04 13:41:01 +00:00
ceriel
a66faf4100 Initial revision 1988-10-04 10:56:50 +00:00
ceriel
7bac6eb164 Initial revision 1988-10-04 10:46:47 +00:00
ceriel
23a7e7b427 Initial revision 1988-10-04 10:33:39 +00:00
ceriel
17e980aa15 Also pass SRC 1988-10-04 10:04:37 +00:00
dick
5578d004bc simplification of e.out.h 1988-10-03 14:44:39 +00:00
ceriel
668b4ca6e7 many minor changes 1988-10-03 10:53:47 +00:00
ceriel
6b7a135b2b Coercion from int to float is now always done compile time 1988-10-03 10:09:19 +00:00
dick
4cecb6bffb wrong Makefile committed 1988-09-30 16:49:02 +00:00
dick
ff682c0cfc testing enums in switches/cases 1988-09-30 16:43:04 +00:00
ceriel
b0c8f9748a some fixes to procude faster :-) code 1988-09-30 16:13:44 +00:00
dick
1fb9c249b3 refinements in error reporting 1988-09-30 15:20:24 +00:00
dick
63d95a5f0e Initial commit 1988-09-30 11:45:14 +00:00
ceriel
9c8e5b9217 corrected a bit 1988-09-30 09:36:26 +00:00
ceriel
19698499d6 Also handle commons 1988-09-29 16:29:11 +00:00
ceriel
a831fab61d Also handle commons 1988-09-29 16:22:48 +00:00
dick
4f8b2e9926 lint: additional type tests in expressions 1988-09-29 15:24:02 +00:00
ceriel
6ae90c8f34 Initial revision 1988-09-28 16:47:47 +00:00
ceriel
391d115b4d 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
751854f36a prevent multiple includes 1988-09-27 09:50:34 +00:00
ceriel
8a8d0d9151 prevent multiple includes 1988-09-26 15:11:25 +00:00
ceriel
2df4da50da made names more unique 1988-09-26 15:05:00 +00:00
dick
acf34e54ec crash() replaced by ASSERT() & NOTREACHED() in lint 1988-09-26 11:37:38 +00:00
dick
3d549e7932 reorganisation of lint code 1988-09-25 17:29:37 +00:00
ceriel
fb854c82ff Added flag to generate SUN .o format 1988-09-23 14:55:27 +00:00
ceriel
b533b53690 some improvements to manual page and interface 1988-09-22 16:09:18 +00:00
ceriel
9435c895bf Added l_ files to .distr 1988-09-21 13:32:24 +00:00
ceriel
b52e0e8ff1 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
6839d8afb1 introduction of lint source code, governed by ifdef LINT 1988-09-20 16:44:27 +00:00
ceriel
7e502b0937 fix: resolve forward references if definition is needed in lookfor() 1988-09-20 13:31:57 +00:00
ceriel
f8fb06210d 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
6d3e9fb7af fixed; did not work properly 1988-09-19 15:07:12 +00:00
dick
1f7115fa8d error messages and error handling 1988-09-16 23:19:50 +00:00
ceriel
a5f48d6493 Initial revision 1988-09-15 09:49:22 +00:00
ceriel
091f3dbebf Added floating point support 1988-09-14 14:06:31 +00:00
ceriel
eaaa335e50 corrected 1988-09-14 14:05:11 +00:00
ceriel
b725b0af8b correction for update_ceg 1988-09-14 14:03:50 +00:00
ceriel
5fd21b16a9 initialize oh_stamp fields of header 1988-09-13 09:11:54 +00:00
ceriel
a9c8b67b65 Added define for CODE_EXPANDER 1988-09-12 14:33:15 +00:00
ceriel
2f479b6078 Added mechanism to generate C_out 1988-09-12 14:30:22 +00:00
ceriel
115e92a7dc corrected dependencies 1988-09-12 14:05:14 +00:00
ceriel
f2ea210122 Added C_insertpart.c 1988-09-12 14:03:51 +00:00
ceriel
4c8442f1f0 Added C_insertpart etc 1988-09-12 13:59:43 +00:00
ceriel
41d0500d81 replaced relative includes by <> includes 1988-09-12 09:13:49 +00:00
ceriel
5b50914bea fix exit status 1988-09-09 11:36:57 +00:00
ceriel
2d98c32cb2 use varargs 1988-09-09 11:32:59 +00:00
ceriel
ec5cff92d8 fix error count on error 1988-09-09 11:25:43 +00:00
ceriel
291b607f4e 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
5c126dd968 declare SEGHOL 1988-09-08 10:26:18 +00:00
ceriel
b5f657aba6 Added support for new C_insertpart, C_beginpart, C_endpart functions 1988-09-08 10:24:16 +00:00
ceriel
93c04d3389 declare SEGHOL 1988-09-08 10:01:32 +00:00
ceriel
3a183b7b44 replaced all ::= by ==> 1988-09-07 14:47:46 +00:00
ceriel
a01ea4d930 correct exit status 1988-09-07 14:47:40 +00:00
ceriel
02fec008a2 Added install entry 1988-09-07 13:54:26 +00:00
ceriel
d66b646e58 replace spaces by tabs 1988-09-07 13:39:07 +00:00
ceriel
42560d86ef set_segment now generates legal code for SEGHOL; if used, the code
expander will complain
1988-09-07 13:20:03 +00:00
ceriel
64aae9d435 DS and DE are not man macros 1988-09-07 10:13:36 +00:00
ceriel
74fba213bc DS and DE are not man macros 1988-09-07 10:01:59 +00:00
ceriel
f78b282fb4 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
612ddc8a4e return value sometimes was wrong 1988-09-06 15:34:47 +00:00
ceriel
575d4f5223 Extended to handle user libraries 1988-09-06 11:28:16 +00:00
ceriel
a0d2a1ea74 delinted somewhat 1988-09-05 15:51:35 +00:00
ceriel
dca9ed9bb2 Added stty and gtty 1988-09-02 15:40:45 +00:00
ceriel
79ac11bd40 Made to compile with DEBUG off 1988-09-02 13:55:54 +00:00
ceriel
83b92a8af2 fix: assertion was wrong 1988-09-02 13:52:11 +00:00
ceriel
feb6e7505c maybe I got it right this time! 1988-09-02 13:49:07 +00:00
ceriel
2b47b43390 fix: did not handle the case that a program module name and file name
differ
1988-09-02 12:01:53 +00:00
dick
a206f17205 #define PRIVATE; copyright message 1988-09-02 12:00:25 +00:00
ceriel
2dfd74fe14 fix in fix: INN ZEQ and INN ZNE still were wrong 1988-09-02 11:39:58 +00:00
ceriel
615b67952f make somewhat safer 1988-09-01 10:07:02 +00:00
ceriel
a40768b6f9 improve line number administration 1988-08-31 09:24:28 +00:00
ceriel
ac92c0b9c3 made safer 1988-08-30 12:52:09 +00:00
ceriel
d24592ee76 Added bsearch 1988-08-30 12:47:45 +00:00
ceriel
ddc46385f3 fix: did not work properly when name != TERM 1988-08-30 12:34:40 +00:00
ceriel
2540279185 corrected references 1988-08-30 11:40:58 +00:00
ceriel
e102a3f5cb better checks for recursion in tc= 1988-08-30 11:37:32 +00:00
dick
32e5679d6c filename and linenumber info in more places 1988-08-29 15:51:48 +00:00
ceriel
62d1432035 fixed typo 1988-08-29 14:11:13 +00:00
ceriel
8d68d0b1ee minor clarification 1988-08-25 15:16:31 +00:00
ceriel
9a7a7f7f4b Adapted for modula-2 1988-08-25 13:03:13 +00:00
ceriel
5e34ca7d2b ignore exit status of size 1988-08-24 11:39:57 +00:00
ceriel
2fba044900 ignore exit status of size 1988-08-24 11:15:40 +00:00
ceriel
2ffad4edb4 ignore exit status of size 1988-08-24 10:49:24 +00:00
ceriel
2deb5cafce remove empty-producing nonterminals 1988-08-23 16:05:19 +00:00
ceriel
f8a9f58006 Parameterize archiver 1988-08-23 13:16:38 +00:00
ceriel
9d6a005bb2 minor change: use int in array index 1988-08-23 12:54:16 +00:00
dick
61b8c3e9ec more modifications due to lint 1988-08-23 12:45:11 +00:00
ceriel
cc52343fbf fixed INN ZEQ and INN ZNE patterns 1988-08-22 11:23:24 +00:00
ceriel
95b4d20b5d fixed problem with dlbdlb 1988-08-22 10:54:03 +00:00
ceriel
7f5dfa7bb2 Changes from Nigel Hall 1988-08-19 17:05:03 +00:00
ceriel
f3a780ecec Changes from Nigel Hall 1988-08-19 16:46:22 +00:00
ceriel
6246c6fc9e generate new style constants 1988-08-19 16:41:49 +00:00
ceriel
f75ed26b04 made easier to patch 1988-08-19 14:29:04 +00:00
ceriel
859468b767 made easier to patch 1988-08-19 14:25:59 +00:00
ceriel
98359a035e make easier to patch 1988-08-19 14:20:03 +00:00
dick
1a6665e21d initial small modifications for lint 1988-08-19 13:55:22 +00:00
ceriel
e8730266e5 removed not-used variable 1988-08-19 13:40:01 +00:00
ceriel
b1712321e2 made easier to patch 1988-08-19 13:26:27 +00:00
ceriel
7ee4487924 Added ChPushBack 1988-08-19 13:07:20 +00:00
ceriel
282064375d use varargs 1988-08-19 09:22:07 +00:00
ceriel
3a075a7c67 Adapted fort ACK 1988-08-19 09:21:29 +00:00
ceriel
8134a42ee8 adapted for ACK 1988-08-19 09:20:25 +00:00
ceriel
01c8cd6d15 remove files before linking 1988-08-18 16:36:14 +00:00
ceriel
61a911c631 some fixes 1988-08-18 15:32:47 +00:00
ceriel
a1684f6d0b Initial revision 1988-08-18 14:33:57 +00:00
ceriel
367e4ac01c Adapted for ACK 1988-08-18 13:48:49 +00:00
ceriel
08bd32f88d modified for ACK 1988-08-18 13:47:56 +00:00
ceriel
e7683658b7 modified for ACK 1988-08-18 13:35:09 +00:00
ceriel
057ee4e5cb Added Makefile 1988-08-18 13:15:16 +00:00
ceriel
bb01ac81fd to make sure that directories are created ... 1988-08-18 13:12:39 +00:00
ceriel
0f83947e33 Adapted for ack 1988-08-18 11:46:05 +00:00
ceriel
7172fe9816 be a bit more precise in cleanup 1988-08-18 11:04:55 +00:00
ceriel
7e6fe16448 Somewhat adapted for ACK 1988-08-18 11:00:02 +00:00
ceriel
775bda9da0 Added Action file 1988-08-18 08:50:31 +00:00
ceriel
e496b6ee02 Added 1988-08-18 08:49:57 +00:00
ceriel
119bc227de use Realloc instead of Srealloc 1988-08-15 15:27:29 +00:00
ceriel
e0ad269d4c do not use [ for test; no as portable 1988-08-15 09:31:08 +00:00
ceriel
143531822a speeded up :-) 1988-08-11 22:02:53 +00:00
ceriel
371821c6a3 fixed typo 1988-08-11 15:59:35 +00:00
ceriel
a9a2e027c8 improved floating point handling 1988-08-11 14:57:39 +00:00
ceriel
5aa128ea62 speeded up again :-) 1988-08-11 14:50:18 +00:00
ceriel
ebfc4a15a4 Added strtod.c, use it in atof 1988-08-11 12:49:06 +00:00
ceriel
2cb7fcf861 leave maximum value if overflow trap is handled 1988-08-11 10:28:30 +00:00
ceriel
8f9ed86162 ignore floating overflow/underflow 1988-08-11 09:55:22 +00:00
ceriel
d308f4a3c2 fix: the minimum exponent is 1, not 0! 1988-08-10 22:33:48 +00:00
ceriel
e9094d3f03 corrected M_MAX_D 1988-08-10 16:40:48 +00:00
ceriel
094d427268 prevent overflow 1988-08-10 15:54:15 +00:00
ceriel
7e8d7af500 corrected 1988-08-10 15:18:37 +00:00
ceriel
d7d16cbede use new ecvt.c from C library 1988-08-10 11:21:40 +00:00
ceriel
03610bb643 improved/speeded up using new ecvt 1988-08-10 11:12:57 +00:00
ceriel
a1032b168c fix 1988-08-10 10:41:15 +00:00
ceriel
bb46f5218c Added version for machines with proper 4-byte operations 1988-08-10 10:07:53 +00:00
ceriel
e47418efff Use other version of div_ext 1988-08-10 10:00:30 +00:00
ceriel
d388145dce new, much faster version 1988-08-10 09:14:43 +00:00
ceriel
e6d132830a fix: line number administration wrong in scan.c 1988-08-09 14:07:39 +00:00
ceriel
2c413b9455 makefile --> Makefile 1988-08-08 18:03:12 +00:00
dick
56fff3d6cd many improvements 1988-08-07 22:55:20 +00:00
ceriel
5581bdad15 corrected exit status of script 1988-08-05 13:50:27 +00:00
ceriel
901e1b7565 fixes for exit status 1988-08-05 12:48:21 +00:00
ceriel
05bac6c619 also detect 0/0 1988-08-05 11:40:29 +00:00
ceriel
905c5a349f fix: >= and <= were wrong in constant expressions 1988-08-05 11:22:39 +00:00
ceriel
dc72163d44 cleaned up a bit 1988-08-04 18:10:34 +00:00
ceriel
cdb038ed6f forgot leading zero in front of . in F format 1988-08-04 15:48:34 +00:00
ceriel
96fc9c9ab7 gcvt was called with wrong precision 1988-08-04 15:48:20 +00:00
ceriel
28d39e927b fixed problem with 'if (array)' 1988-08-04 14:37:06 +00:00
ceriel
1726d23a44 problem fixed: number of digits displayed and/or format was sometimes wrong 1988-08-04 11:17:27 +00:00
ceriel
b26e580a74 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
2a9fe2a774 some modifications to improve speed (sorry, I mean, make a bit less slow) 1988-08-03 23:31:40 +00:00
ceriel
56a070ad99 fixed 1988-08-03 19:24:55 +00:00
ceriel
38e7921a9d Added E, G, and g format 1988-08-03 16:29:30 +00:00
ceriel
3e66a45a0d fixed 1988-08-03 16:15:48 +00:00
ceriel
caf948e80e moved getopt to stdio, because it uses it 1988-08-03 14:42:47 +00:00
ceriel
0406776361 fixed again 1988-08-02 11:57:37 +00:00
ceriel
0d45d9da11 correct exit status 1988-08-02 11:56:34 +00:00
ceriel
905907f304 Modified for 4th distribution 1988-08-01 09:00:03 +00:00
ceriel
0768c4d4f1 fix to fix 1988-07-29 19:22:48 +00:00
ceriel
87c8b648fc fix in preprocessor part: macro invocation with parameterlist on the
next line did not work
1988-07-29 18:38:25 +00:00
ceriel
5d247a2055 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
f5db63a96d grep -s means different things on different systems; do not use it 1988-07-28 18:47:21 +00:00
ceriel
334293bc04 Added possibility to disable installation of some languages or some machines 1988-07-28 18:43:26 +00:00
ceriel
a28e8440b7 Use Pascal 1988-07-28 18:33:51 +00:00
ceriel
fb53750ee3 fixed error in declaration of sprintf 1988-07-28 18:18:29 +00:00
ceriel
e1f4d01509 Installation of interpreters should be done from global action file 1988-07-28 16:46:23 +00:00
ceriel
fa564bb67c Installation of interpreters should not be done here 1988-07-28 16:45:13 +00:00
ceriel
29e5a20d23 fixed typo 1988-07-28 15:09:01 +00:00
ceriel
c56a92b18b document comment sign in Action files 1988-07-28 11:28:29 +00:00
ceriel
a5578bc229 BSD4.[23] could also run NFS, so added getdirent.s 1988-07-28 09:46:43 +00:00
ceriel
bbe7ae21e8 BSD4.[23] could also run NFS 1988-07-28 09:26:22 +00:00
ceriel
75d52f0a3e corrected Makefiles 1988-07-28 08:37:37 +00:00
ceriel
e4424a38c5 removed em_path.h and local.h from .distr 1988-07-28 00:30:40 +00:00
ceriel
8d6587a95e find out about operating system on foreign machines 1988-07-28 00:09:33 +00:00
ceriel
4f709d86ea clean should remove int 1988-07-27 22:43:19 +00:00
ceriel
3ad68743ca corrected for new TakeAction 1988-07-27 13:17:15 +00:00
ceriel
c0123c0e32 mention port to XenixV3 1988-07-27 13:14:26 +00:00
ceriel
761d355bf7 distribute descr.src instead of descr 1988-07-27 12:56:45 +00:00
ceriel
e70f6d3276 Remove m2mm on clean 1988-07-27 09:28:31 +00:00
ceriel
620f17db1b Added some, because local.h and em_path.h now have a source 1988-07-27 08:32:19 +00:00
ceriel
0c0ff5f64b do not write over distribution files 1988-07-26 19:22:11 +00:00
ceriel
84acaa1163 distribute Makefile 1988-07-26 19:08:46 +00:00
ceriel
9aedda4643 distribute fe.src 1988-07-26 19:06:35 +00:00
ceriel
24d5e841d1 and yet another ... 1988-07-26 15:57:34 +00:00
ceriel
fc1d04e192 fixed typo 1988-07-26 15:46:09 +00:00
ceriel
e0fd12fd05 removed obsolete comment 1988-07-26 15:15:01 +00:00
ceriel
d814f96e9d Added pattern 1988-07-26 14:21:15 +00:00
ceriel
fabf37e889 declared errno 1988-07-26 13:04:24 +00:00
ceriel
5a6849b006 yet another fix 1988-07-26 13:00:30 +00:00
ceriel
52d5e473c4 fix from Leo van Moergestel: signed byte offset must fit in a byte 1988-07-26 11:02:13 +00:00
ceriel
b1dc8c8f52 fixed 1988-07-26 09:53:47 +00:00
ceriel
dbbff76f4c Used new math lib of C to create new version of Mathlib 1988-07-25 16:41:51 +00:00
ceriel
e98a670850 fixed typo 1988-07-25 12:30:52 +00:00
ceriel
e5c19866eb Added math lib 1988-07-25 12:21:59 +00:00
ceriel
7b1eae1d37 fixed: call to atan changed into call to _atn 1988-07-25 11:41:19 +00:00
ceriel
c9f8962fc8 mod to remove declarations in math.h 1988-07-25 11:40:57 +00:00
ceriel
50d857e9f3 Added a #ifndef for not defining functions 1988-07-25 11:32:46 +00:00
ceriel
324c95ae62 replaced mathematical routines by our own 1988-07-25 11:26:26 +00:00
ceriel
d443f370d2 replaced mathematical routines by our own 1988-07-25 11:13:26 +00:00
ceriel
bcec2e84b5 merged with Michael Felts latest version 1988-07-25 10:46:15 +00:00
ceriel
b09805786d Added some prints 1988-07-22 20:58:48 +00:00
ceriel
24c59f9f68 adf and sbf did not work with 0.0 1988-07-22 20:54:49 +00:00
ceriel
44ce140103 Made to work under Microsoft Xenix V3.2 1988-07-22 19:34:07 +00:00
ceriel
a0a265736c Initial revision 1988-07-22 19:01:13 +00:00
ceriel
7515b51d64 Added installation of math lib 1988-07-22 18:51:02 +00:00
ceriel
6777bbfaca search -l libs here 1988-07-22 18:49:00 +00:00
ceriel
cb51abaacd search -l libs in i86 directory 1988-07-22 18:46:09 +00:00
ceriel
0beaad89d3 Added installation of math lib 1988-07-22 18:30:44 +00:00
ceriel
ffb6eb9ff4 Added .distr 1988-07-22 18:29:52 +00:00
ceriel
696f0b1c31 Added math 1988-07-22 18:29:51 +00:00
ceriel
c34fbb3831 Added math.h 1988-07-22 16:59:22 +00:00
ceriel
a18fcb9048 Initial revision 1988-07-22 16:53:29 +00:00
ceriel
8524608cf3 made easier to patch 1988-07-20 08:53:31 +00:00
ceriel
215e55282d some more fixes 1988-07-19 16:49:49 +00:00
ceriel
4d66061c82 install new back-end instead of old 1988-07-19 10:14:22 +00:00
ceriel
60e958a312 the patterns inside #ifdef LONGEMPAT were wrong anyway, so deleted 1988-07-19 10:12:21 +00:00
ceriel
0695089005 Added CS info 1988-07-19 09:45:59 +00:00
ceriel
9d48a61694 improved i86 description 1988-07-18 17:10:43 +00:00
ceriel
0dc643686e M must indicate back-end used 1988-07-18 16:59:39 +00:00
ceriel
becd33d3a9 made to work on small machines 1988-07-18 16:45:25 +00:00
ceriel
ca51618fe9 made to work; contained too many dependencies on word/pointer size 1988-07-18 16:41:04 +00:00
ceriel
5c508b566f Added flag to give stack size 1988-07-15 15:29:44 +00:00
ceriel
bfaff9d0ee simplified a little; does not seem to make much difference 1988-07-15 14:57:43 +00:00
ceriel
d363386a38 several fixes 1988-07-15 13:00:43 +00:00
ceriel
b9aa04dbb3 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
68d3126f16 improved trap handling 1988-07-15 11:17:17 +00:00
ceriel
f0d3a648af 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
7aca78dc21 Also hide name b64_sft 1988-07-14 11:11:48 +00:00
ceriel
e8931fe5de make to compile on Xenix 1988-07-14 10:11:01 +00:00
ceriel
4be6b2ae55 adapted some sizes 1988-07-14 09:33:30 +00:00
ceriel
351429c19c make to work again 1988-07-14 09:15:21 +00:00
ceriel
02154c02b2 fixed problem with D scale factor 1988-07-13 20:13:17 +00:00
ceriel
1cf834f731 did not work properly; assumet it could remove sign AFTER converting to
machine dependant order
1988-07-13 20:00:22 +00:00
ceriel
c29ac899da added -L flag 1988-07-13 18:32:06 +00:00
ceriel
cdb8531b9a use sun3 command to translate 1988-07-13 18:31:57 +00:00
ceriel
1838e7143f Added -L flag 1988-07-13 18:24:07 +00:00
ceriel
d67c9ce97f pass some size flags to basic compiler 1988-07-13 18:04:01 +00:00
ceriel
f8cf94da98 changed text 1988-07-13 17:44:14 +00:00
ceriel
eec2ea8ffe changed text; did not work properly 1988-07-13 17:39:20 +00:00
ceriel
2197952a70 Added some erase() calls; aiaiai 1988-07-13 17:35:01 +00:00
ceriel
105c7e6009 fixed 1988-07-13 16:55:48 +00:00
ceriel
87e020db8a make trap handling more consistent 1988-07-13 14:29:32 +00:00
ceriel
be1e3440b7 other trp routine 1988-07-13 14:21:13 +00:00
ceriel
db95ccff91 updated; the int command now is an interpreter 1988-07-13 13:51:57 +00:00
ceriel
ea7209f246 Added some erase() calls; aiaiai 1988-07-13 13:48:38 +00:00
ceriel
722bf6de1e Added debug statement 1988-07-13 13:43:45 +00:00
ceriel
25f7fe9b77 fix: strhp should do brk system call 1988-07-13 12:51:57 +00:00
ceriel
b3efe7e46c should not result in commons; does not work with some ranlibs 1988-07-12 20:34:16 +00:00
ceriel
df4c1c8174 some minor fixes 1988-07-12 20:16:13 +00:00
ceriel
9178cb9851 corrected error: name is now xenix3 1988-07-12 16:46:39 +00:00
ceriel
2a3a417a29 output with better layout 1988-07-12 15:02:38 +00:00
ceriel
ccbf4f0cf6 made to compile on Xenix 1988-07-12 14:19:03 +00:00
ceriel
53bda08502 do not use shell meta characters in dependents; some makes do not like it 1988-07-12 11:10:31 +00:00
ceriel
20e2452350 updated dependencies 1988-07-11 19:22:19 +00:00
ceriel
0987aa0077 don't use our malloc in cpp on small machines 1988-07-11 15:01:12 +00:00
ceriel
45bb3b1413 try another SBRK 1988-07-11 14:06:11 +00:00
ceriel
6d7522ba44 fixes for Xenix 1988-07-11 13:24:32 +00:00
ceriel
778baeb2c0 fixes for Xenix 1988-07-11 13:18:43 +00:00
ceriel
cd54a85aec updated dependencies 1988-07-11 12:57:24 +00:00
ceriel
3aabba530d fixes for Xenix 1988-07-11 12:53:01 +00:00
dick
9dd080ae4b various improvements 1988-07-08 22:24:06 +00:00
ceriel
0505a65a74 check results in shell script 1988-07-08 16:10:17 +00:00
ceriel
32c3955be1 don't include too much 1988-07-08 15:51:27 +00:00
ceriel
87901b15ba declare mktemp 1988-07-08 15:31:32 +00:00
ceriel
290cb0660d Split in several files. Did not compile on Xenix 1988-07-08 13:57:07 +00:00
ceriel
c5d04fbd6a Added some extern delcarations; without them, it did not compile on Xenix 1988-07-08 13:52:52 +00:00
ceriel
9ab5e19576 use $(CC) instead of cc 1988-07-08 11:37:17 +00:00
ceriel
378b233c33 use system id from local.h 1988-07-08 10:37:00 +00:00
ceriel
892e6cf6f6 Added indication of operating system 1988-07-08 10:33:53 +00:00
ceriel
1c6ab039f4 indicate operating system in local.h 1988-07-08 10:33:06 +00:00
ceriel
d1a390924f we were lucky, but - indicates a range; corrected 1988-07-08 10:29:48 +00:00
ceriel
b8b355a0a2 keap type names different from others; some compilers don't like it 1988-07-08 09:14:04 +00:00
ceriel
a2fde712c3 fixed typo 1988-07-07 18:45:13 +00:00
ceriel
007483d1ed do not try to install Occam lib on non-BSD4.2 systems 1988-07-07 16:46:27 +00:00
ceriel
4d9a144aa7 only try to install Occam lib on Berkeley 4.2 system 1988-07-07 15:13:16 +00:00
ceriel
8fc459e811 fix: was wrong with constants causing overflow 1988-07-07 15:02:47 +00:00
ceriel
5ff8baabfa fix for constants 1988-07-07 14:31:29 +00:00
ceriel
beb142ed98 print longs with %ld 1988-07-07 14:19:16 +00:00
ceriel
3048d94603 bug fix: an array was declared too small 1988-07-07 10:55:52 +00:00
ceriel
b4265c5407 removed the result3 variable; it was not used anymore 1988-07-07 09:59:32 +00:00
ceriel
b365c53262 removed temp file 1988-07-06 18:18:46 +00:00
ceriel
c624447dfc removed cvf.s 1988-07-06 17:44:27 +00:00
ceriel
9cff92f3e1 fixed; did not work for vax 1988-07-06 13:10:24 +00:00
ceriel
b1ed49aea4 fixed syntax error 1988-07-06 10:09:18 +00:00
ceriel
4c0222fb1c fix in english text 1988-07-06 09:52:49 +00:00
ceriel
2ea025fdb4 fixed previously introduced error 1988-07-06 09:43:05 +00:00
ceriel
afc4d5211b made to fit on PDP-11 ... 1988-07-05 19:06:40 +00:00
ceriel
44014704a0 forgot C_magic 1988-07-05 18:27:10 +00:00
ceriel
e1cb398e02 made to fit on PDP-11 1988-07-05 18:06:00 +00:00
ceriel
938b7e3d9d don't use our malloc on small machines 1988-07-05 18:00:43 +00:00
ceriel
901d12332d removed faulty.h from makefile 1988-07-05 16:21:05 +00:00
ceriel
5faf0b599f identifier name clash resolved 1988-07-05 16:05:11 +00:00
ceriel
5d9471f186 unsigned long is not portable 1988-07-05 15:31:33 +00:00
ceriel
530344e2cc made to work 1988-07-05 14:12:26 +00:00
ceriel
93c8b46781 print memory usage as unsigned 1988-07-05 14:07:19 +00:00
ceriel
e35b40b793 spaces replaced by tabs 1988-07-05 14:05:24 +00:00
ceriel
7f6d1911e2 comment sign at begin of line 1988-07-05 12:56:43 +00:00
ceriel
849eeb9f61 handle memory better 1988-07-05 11:51:47 +00:00
ceriel
bb3dc913a2 improved; delayed frees did not work anyway 1988-07-05 11:50:11 +00:00
ceriel
a2905da259 don't use stdio.h 1988-07-05 10:53:53 +00:00
ceriel
bbf9b03ef4 changed order in archive 1988-07-05 09:12:07 +00:00
ceriel
ced82adfae make to work 1988-07-04 16:37:46 +00:00
dick
632b1b2c4b Initial entry, txt1 oversight 1988-07-04 15:30:12 +00:00
ceriel
c10adfa7cf removed README 1988-07-04 15:24:24 +00:00
ceriel
117cb7fd55 Added distr entry 1988-07-04 14:55:22 +00:00
ceriel
db0c67dd10 made to work 1988-07-04 13:41:47 +00:00
ceriel
84578cbd91 fixed, new basic compiler, new flag for EGO 1988-07-04 13:39:15 +00:00
ceriel
0cf8ad9930 updated for new Basic compiler 1988-07-04 13:19:09 +00:00
ceriel
93bdacae44 updated 1988-07-04 11:45:53 +00:00
ceriel
c39c666834 Initial revision 1988-07-04 11:45:41 +00:00
ceriel
bd5583311e corrected some more 1988-07-04 11:44:03 +00:00
ceriel
5157a5a186 several fixes for new basic compiler 1988-07-01 17:30:06 +00:00
ceriel
c2af3d7faa allow for three digits in exponent 1988-07-01 11:56:08 +00:00
ceriel
6ade1e3215 Also export LONGREAL routines 1988-06-30 16:32:54 +00:00
ceriel
74c779b81e mods to handle forward references better 1988-06-30 14:50:30 +00:00
ceriel
fa9e4c5ea3 corrected minor problem 1988-06-30 09:19:06 +00:00
ceriel
5391cf8b17 fixed; did not compile 1988-06-29 16:48:07 +00:00
ceriel
78f0107cb8 only change sign when value is not 0 1988-06-29 16:34:40 +00:00
ceriel
1f07fc05a4 fixed bug with linenumber counting 1988-06-29 14:05:37 +00:00
ceriel
3ed0f85ba7 fixed typo 1988-06-29 13:13:49 +00:00
ceriel
77830f353c small fix 1988-06-29 10:49:24 +00:00
ceriel
e64951e1d3 removed some lint complaints 1988-06-28 14:41:02 +00:00
ceriel
2f7e414d42 corrected lint entry 1988-06-28 14:36:21 +00:00
ceriel
3be40e8f15 removed some lint complaints 1988-06-28 13:55:25 +00:00
ceriel
bd975e3041 removed some lint complaints 1988-06-28 13:43:54 +00:00
ceriel
724d5ba148 use system module for system calls 1988-06-28 11:20:50 +00:00
ceriel
c03e25dc0d Added sys_rename 1988-06-28 11:12:18 +00:00
ceriel
d702321c37 do LLgen after modules 1988-06-28 11:00:54 +00:00
ceriel
2d16f61cdf Added SMALL for small unknown machine 1988-06-28 10:20:07 +00:00
ceriel
fb4ff4cab0 Added some code for small unknown machine 1988-06-28 10:19:23 +00:00
ceriel
4c7c1867c3 get some info from ACK include files 1988-06-27 15:21:37 +00:00
ceriel
4fbb44f790 Added interpreter 1988-06-27 15:14:34 +00:00
ceriel
911eb2ebf9 do not install interpreter on small machines 1988-06-27 15:14:31 +00:00
ceriel
406d72db67 Added interpreter 1988-06-27 15:08:38 +00:00
ceriel
c3255c0a42 Added interpreter 1988-06-27 15:00:08 +00:00
ceriel
ac925ef2d5 More adaptions for ACK 1988-06-27 14:54:40 +00:00
ceriel
3b32a79997 improved distr entry 1988-06-27 14:52:18 +00:00
ceriel
15cf912949 Added interpreter 1988-06-27 14:51:59 +00:00
ceriel
c69f99b644 Put int.1 in this directory 1988-06-27 14:48:30 +00:00
ceriel
fe74b9f8de Adapted for ACK 1988-06-27 14:40:29 +00:00
ceriel
a578d2eda8 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
9f795adbc4 added ACK entries to Makefile 1988-06-27 11:08:04 +00:00
ceriel
d32e121832 added ACK entries to Makefile 1988-06-27 10:58:44 +00:00
ceriel
5ffe3a4280 added ACK entries to Makefile 1988-06-27 10:51:16 +00:00
dick
0e847669e8 Proper place for directory test 1988-06-24 15:59:07 +00:00
dick
198c8525f2 Initial entry 1988-06-24 15:40:41 +00:00
ceriel
e67a70cbea LLscan either macro or function 1988-06-24 14:55:27 +00:00
ceriel
1c801f86eb minor mod: name change 1988-06-24 14:28:13 +00:00
ceriel
123b73506d inline scan 1988-06-24 14:26:35 +00:00
ceriel
71834855e8 generate #define for LL_LEXI in every file 1988-06-24 14:21:07 +00:00
ceriel
7b93233386 fixed typos 1988-06-24 13:21:37 +00:00
ceriel
d3723b3d38 modified distance function somewhat 1988-06-24 12:03:02 +00:00
ceriel
e1f7d20251 modified generation of token mapping somewhat 1988-06-24 11:48:10 +00:00
ceriel
8bdf3af20c fixed Makefile 1988-06-24 09:37:54 +00:00
ceriel
d20bfe4f68 some tables are static now 1988-06-24 09:32:15 +00:00
ceriel
a27fac26db hide some names 1988-06-24 09:31:28 +00:00
dick
6214be89c8 Initial entry 1988-06-22 21:48:19 +00:00
ceriel
b72f2848dd fixed panic mode 1988-06-22 18:47:48 +00:00
dick
da943cec51 Initial entry 1988-06-22 17:09:12 +00:00
ceriel
416944b293 Updated to dense switches generation 1988-06-22 17:04:52 +00:00
dick
a717832bfb Initial entry 1988-06-22 16:57:09 +00:00
ceriel
4934f830fc Added code to generate dense switches 1988-06-22 16:23:36 +00:00
ceriel
c146e278fc distance routine improved a little; still not safe! 1988-06-22 16:22:07 +00:00
dick
d49fb42d47 Initial entry 1988-06-22 16:22:00 +00:00
ceriel
ec40d28c25 Added some patterns to evaluate constant shifts 1988-06-22 13:47:57 +00:00
ceriel
83a22b318c handle SLU like SLI 1988-06-22 11:31:45 +00:00
ceriel
dd690a1065 a minor fix 1988-06-22 10:56:04 +00:00
ceriel
627d2060cd Added some code to reduce SLI, then decided against it 1988-06-22 10:41:52 +00:00
ceriel
f892470f88 when checking for array computations with SLI, also check at the ADS! 1988-06-21 16:49:52 +00:00
ceriel
d25a84511c corrected 1988-06-21 16:20:59 +00:00
ceriel
e8f4e47da5 better info for SLI 1988-06-21 16:10:19 +00:00
ceriel
7f5c3ac4f6 made reading of list from description file a bit more general 1988-06-21 15:31:51 +00:00
ceriel
46c8b743f2 run peephole optimizer after inline substitution 1988-06-21 15:20:49 +00:00
ceriel
860230a837 lay-out fix 1988-06-21 15:20:01 +00:00
ceriel
e4e7671ab6 Added ACK standard entries 1988-06-20 15:52:55 +00:00
ceriel
5ac6f79a47 Initial revision 1988-06-20 12:46:49 +00:00
ceriel
db62807b9b Initial revision 1988-06-20 11:43:45 +00:00
ceriel
9bbab79c2a Added latest change from kaashoek 1988-06-20 11:40:31 +00:00
ceriel
275966674b Initial revision 1988-06-20 11:26:47 +00:00
ceriel
f15a6e827a Initial revision 1988-06-20 11:21:01 +00:00
ceriel
701172d318 Added .distr 1988-06-20 11:20:13 +00:00
ceriel
765add698d Initial revision 1988-06-20 11:13:07 +00:00
ceriel
fcafcb1700 corrected dependancy list 1988-06-16 17:04:59 +00:00
ceriel
e0a4fd1989 some cosmetic changes 1988-06-16 15:06:09 +00:00
ceriel
59dbc95e0d made bittable dynamic 1988-06-16 13:46:38 +00:00
ceriel
a0934dc7e0 made bittable dynamic 1988-06-16 13:24:10 +00:00
ceriel
184984d472 Minor adaptions to comments 1988-06-16 11:44:31 +00:00
ceriel
922eba369d Added doc for new IL option 1988-06-16 10:49:45 +00:00
ceriel
3dd878594f Add option to global optimizer, to indicate that it is offered the
whole program
1988-06-16 09:59:25 +00:00
ceriel
8f1cac51c8 Added option for temporary directory 1988-06-16 09:57:59 +00:00
ceriel
dea600f9bf Added option to indicate that whole program is offered 1988-06-16 09:41:51 +00:00
ceriel
ec551e2f36 updated 1988-06-16 09:40:09 +00:00
ceriel
35d8ec11fa be a bit more optimistic about gain for pointer registers 1988-06-15 15:28:10 +00:00
ceriel
c68c06d0c3 only check duplicate ms_emx 1988-06-15 15:25:50 +00:00
ceriel
16e657858a Some improvements 1988-06-15 13:15:41 +00:00
ceriel
889cf28571 Added target optimizer 1988-06-14 09:43:11 +00:00
ceriel
9c6ef73ba3 Added target optimizer 1988-06-14 09:29:44 +00:00
ceriel
14233a4c03 Initial revision 1988-06-14 09:22:51 +00:00
ceriel
adadb10b17 corrected 1988-06-13 18:01:47 +00:00
ceriel
be8815e2b7 made nbits a long 1988-06-13 17:57:39 +00:00
ceriel
ed5868aa06 give some more info on global optimizer 1988-06-13 15:57:21 +00:00
ceriel
2722d45fdd larger bittable 1988-06-13 15:29:32 +00:00
ceriel
192de9bf32 linenumber in long instead of short 1988-06-13 15:28:19 +00:00
ceriel
cc9c3ae870 made to compile on system V 1988-06-13 15:01:54 +00:00
ceriel
2563acb019 Added pattern for ASS 4 1988-06-13 13:42:39 +00:00
ceriel
969b5221f5 make interface new_stackptr cleaner 1988-06-13 10:34:14 +00:00
ceriel
8f9818c385 Added short-hand for C_cal+C_asp, made interface new_stackptr cleaner 1988-06-13 10:29:36 +00:00
ceriel
de0048e96b don't throw away external procedures 1988-06-10 15:39:05 +00:00
ceriel
0c386e3032 tolower was called without checking for isupper; adapted 1988-06-10 14:28:32 +00:00
ceriel
f2b485740b adaptions for generation of compiler with embedded code-generator 1988-06-10 09:17:45 +00:00
ceriel
3d044db749 improved error messages with opaque types 1988-06-09 11:39:11 +00:00
ceriel
3fec1232da fixed problem with ReOrganize 1988-06-09 09:16:46 +00:00
ceriel
1347076988 changed behaviour of Allocate(..., 0) 1988-06-08 09:22:31 +00:00
ceriel
9fb5d02aa9 changed a comment 1988-06-07 12:34:04 +00:00
ceriel
40ef304bcf prevent core dump when e.out file too large 1988-06-07 12:17:00 +00:00
ceriel
9f9681bf39 corrected CFU 1988-06-07 11:08:55 +00:00
ceriel
f5d3ab845d fixed problem that was introduced by fix of alignment problem 1988-06-06 13:02:41 +00:00
ceriel
8a368a9ed1 Added code for new LOI/STI opcodes 1988-06-06 10:30:57 +00:00
ceriel
e75308763c Added opcodes for LOI/STI with size >= 32767 1988-06-06 10:10:27 +00:00
ceriel
02297c82ff fixed em.c: call lib/em44 instead of lib/int44 ... 1988-06-03 16:13:57 +00:00
ceriel
cd893a6ff8 corrected 1988-06-03 14:25:26 +00:00
ceriel
8036ca8aec improved test 82 1988-06-03 10:42:07 +00:00
ceriel
a22b21016e corrected cap.c 1988-06-03 09:36:08 +00:00
ceriel
5ce46ce603 removed faulty.h, updated Parameters 1988-06-03 09:33:29 +00:00
kaashoek
60af526ac5 mach.h table for generating assembly added 1988-05-31 17:00:23 +00:00
kaashoek
e568d54af9 bug removed 1988-05-31 14:12:35 +00:00
kaashoek
6a08adb962 grammar changed 1988-05-31 14:05:41 +00:00
kaashoek
f68b18f639 *** empty log message *** 1988-05-31 13:41:03 +00:00
kaashoek
7cc193c460 *** empty log message *** 1988-05-31 13:22:14 +00:00
kaashoek
83b11ebd82 *** empty log message *** 1988-05-31 13:20:28 +00:00
kaashoek
f466e4b0e7 skip traling spaces by operands 1988-05-31 13:16:48 +00:00
kaashoek
4e62421f45 The file 'data.h' must also be included. 1988-05-31 12:56:26 +00:00
kaashoek
12db9cf64e 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
60de25db56 ::= replaced by ==> 1988-05-31 09:38:26 +00:00
dick
885d03a020 Initial version 1988-05-30 17:17:16 +00:00
kaashoek
8ba1ce6f1a Zorgen dat de prioriteit van de 'distance' goed is; haakjes om de expressie
zetten
1988-05-29 15:22:18 +00:00
kaashoek
95b5bdcdc5 Quotes en back-slashes moeten ook speciaal behandeld wordeni in strings. 1988-05-29 13:55:56 +00:00
kaashoek
953ac2b514 Subtiel foutje met haakjes tellen, twee regels moeten omgedraaid worden. 1988-05-29 13:53:57 +00:00
kaashoek
a5b6ef2a18 Quotes en back-slahses moeten ook speciaal behandeld worden in strings. 1988-05-29 13:52:54 +00:00
kaashoek
2edf3315d6 Initial revision 1988-05-27 17:07:58 +00:00
kaashoek
c7beb3208f Foutje met new-line karakters in een string, precies hetzelfde als bij eval. 1988-05-27 15:25:30 +00:00
kaashoek
6d56874b8f Stom tikfoutje: sitchseg ipv. switchseg. 1988-05-27 14:08:29 +00:00
kaashoek
7f580b3029 De routines C_xxx_fcon() stonden per ongeluk tussen commentaar haken. 1988-05-27 13:58:00 +00:00
kaashoek
28e86b7f15 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
abc9006b8e Stom foutje in vorige verbetering 1988-05-27 09:30:05 +00:00
kaashoek
cd73332f77 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
8998c4165d 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
a3ad389064 final version 1988-05-16 13:16:03 +00:00
kaashoek
1099f24bbf 16/5 1988-05-16 10:51:32 +00:00
kaashoek
ebd4ca5662 Initial revision 1988-05-16 10:51:23 +00:00
kaashoek
b52eecb904 Initial revision 1988-05-16 10:32:30 +00:00
ceriel
2565b29679 changed int?? into em?? 1988-05-06 17:40:44 +00:00
ceriel
0be2e884b1 some last-minute minor changes 1988-05-06 17:03:30 +00:00
ceriel
d33fa59a9f found a %D; replaced by %ld 1988-05-06 17:03:06 +00:00
ceriel
066439ec19 changed int?? to em?? 1988-05-06 13:46:55 +00:00
ceriel
7f7078c9f0 check that files can be created 1988-05-04 16:49:58 +00:00
ceriel
f63363cfb8 small fix in sigvec 1988-05-04 16:16:41 +00:00
ceriel
b536454c5b previous change was wrong 1988-05-04 10:14:49 +00:00
ceriel
d19d409038 Added use of -T option 1988-05-04 10:14:48 +00:00
ceriel
b9943e0ca2 minor update 1988-05-03 15:17:13 +00:00
kaashoek
438572359f more comments from Dick and Henri 1988-05-03 15:15:28 +00:00
ceriel
2a1191bfc1 fixed very minor bug: strings should be aligned on word_boundaries 1988-05-03 15:04:30 +00:00
ceriel
58724710d1 Added some comments 1988-05-03 13:17:20 +00:00
kaashoek
b5f619dadd consistent naming 1988-05-03 13:03:07 +00:00
kaashoek
723e024d25 output_back 1988-05-03 12:55:48 +00:00
kaashoek
bc28af9d7c close_back() 1988-05-03 12:55:30 +00:00
kaashoek
3afe1ff2e4 open_back() 1988-05-03 12:54:52 +00:00
ceriel
e40b7407d5 declare some variables in init.c instead of runtime startoff 1988-05-03 12:44:32 +00:00
ceriel
781a1218a5 only increment line number on ASCII LF 1988-05-03 11:30:25 +00:00
ceriel
eb3dd52dd8 added comment 1988-05-03 09:53:52 +00:00
ceriel
94bb3d3e04 improved checking 1988-05-03 09:03:19 +00:00
ceriel
7dcfb2b4ad Added a stripped version of the Unix module 1988-05-03 08:33:33 +00:00
ceriel
8b655cb67e Exchanged role of ALLOCATE/Allocate 1988-05-03 08:20:11 +00:00
ceriel
e533bb9bbf minor mod 1988-05-02 15:51:29 +00:00
ceriel
2468ee6d34 did not compile with NOPP defined 1988-05-02 15:37:13 +00:00
ceriel
d5f6dfeb2a did not compile with USE_TMP not defined 1988-05-02 14:40:35 +00:00
ceriel
132e8d0baa minor fixes 1988-05-02 14:13:25 +00:00
ceriel
1408daf070 Added some OK commands and some #ifdefs 1988-05-02 13:25:38 +00:00
ceriel
f6f8a5e858 fixed another typo 1988-05-02 12:35:39 +00:00
ceriel
7af7f27042 mention limitation of Modula-2 on small machines 1988-05-02 11:11:04 +00:00
ceriel
e04d01106a don't try to install Modula-2 libraries for big machines on small machines 1988-05-02 11:05:54 +00:00
ceriel
e34c870d02 minor mods 1988-05-02 10:33:30 +00:00
ceriel
e030fdc548 fixed typo 1988-05-02 08:46:58 +00:00
ceriel
aadfe97a58 make to fit on PDP-11 again 1988-04-29 15:41:38 +00:00
ceriel
4d528bbc24 Added some unix signal handling 1988-04-29 14:38:36 +00:00
ceriel
f7efb51155 Added another trap number 1988-04-29 12:37:02 +00:00
ceriel
82c952bdeb updated somewhat; deleted int 1988-04-29 11:16:49 +00:00
ceriel
2cd29242ae deleted int 1988-04-29 11:00:40 +00:00
ceriel
23aca9118e improved clean entry 1988-04-29 09:22:57 +00:00
ceriel
69b293d86b types of case-labels are base-types 1988-04-29 09:16:51 +00:00
ceriel
578b8fd103 Fixed again to work with 'indir' 1988-04-29 09:15:01 +00:00
ceriel
a3e39fe309 mentioned another problem 1988-04-29 09:13:55 +00:00
ceriel
e8d1bdb192 make to work with modified installation script 1988-04-29 09:12:29 +00:00
ceriel
43de234b53 Added floating point support 1988-04-28 15:16:07 +00:00
ceriel
0e501983f4 don't allow allocates bigger than MAX(INTEGER) 1988-04-28 15:13:44 +00:00
ceriel
9388fb69f8 be careful about overflow in con_float 1988-04-28 15:03:03 +00:00
ceriel
6fa999d162 corrected 1988-04-28 14:50:27 +00:00
ceriel
88acb4c4d9 be careful about overflow in con_float 1988-04-28 14:46:11 +00:00
ceriel
c4d0a4f449 corrected the overflow checks 1988-04-28 14:21:55 +00:00
ceriel
2a11727622 updated to current situation 1988-04-28 13:38:24 +00:00
ceriel
81e724d4f6 improved printf 1988-04-28 11:16:50 +00:00
ceriel
673679e5eb improved trap handling 1988-04-27 18:11:33 +00:00
ceriel
5891ec12a0 corrected brk and sbrk somewhat 1988-04-27 18:02:59 +00:00
ceriel
2e009ecfff almost fixed problem with cfu 1988-04-27 16:57:43 +00:00
ceriel
420ca09aee improved; now also runs with interpreter 1988-04-27 13:01:25 +00:00
ceriel
20f4177c29 updated to different default action of TakeAction 1988-04-27 11:34:33 +00:00
ceriel
ccdfd76de2 Allow for (more) complex shell commands in parameter 1988-04-27 11:30:13 +00:00
ceriel
7fbb57dea4 clean entry should not throw away distributed files 1988-04-27 10:57:37 +00:00
ceriel
39d3496f4b Added termcap.c 1988-04-26 18:23:40 +00:00
ceriel
8acf1542f6 updated dependencies 1988-04-26 16:15:25 +00:00
ceriel
5a7fa39fc9 updated dependencies 1988-04-26 16:03:36 +00:00
ceriel
8781ada304 generate more register messages 1988-04-26 15:33:48 +00:00
ceriel
a0799c99ec Initial revision 1988-04-26 14:33:11 +00:00
ceriel
be39f6c6a0 updated smoewhat 1988-04-26 14:21:10 +00:00
ceriel
143387e11d updated smoewhat 1988-04-26 14:11:05 +00:00
ceriel
db786790ee made epsd 1e-14 instead of 1e-17 1988-04-26 14:10:55 +00:00
ceriel
bfd4554758 fixed: did not compute hexadecimal numbers right 1988-04-26 13:47:02 +00:00
ceriel
6722c28d81 Added comment 1988-04-26 13:04:04 +00:00
ceriel
7943327f7d corrected 1988-04-26 11:43:23 +00:00
ceriel
76a93fcbc3 better error checking in Storage module 1988-04-26 11:25:36 +00:00
ceriel
6c825b7892 fixed hexadecimal character class 1988-04-26 10:51:50 +00:00
ceriel
e925036f8d corrected 1988-04-26 10:49:07 +00:00
ceriel
2bbecf2416 better argument checking of standard functions 1988-04-26 10:14:01 +00:00
ceriel
b3ce56e32a Added many tests; probably still not enough 1988-04-25 18:20:49 +00:00
ceriel
d9638fca0e fixed bug: did not convert 0 right 1988-04-25 18:13:32 +00:00
ceriel
264773ee06 fixed bug in SIM and SIG 1988-04-25 17:05:36 +00:00
ceriel
d260937564 improved layout with varargs 1988-04-25 16:24:42 +00:00
ceriel
71dd29ae30 improved layout 1988-04-25 16:17:29 +00:00
ceriel
6607dc999e fixed; va_end(list) should be va_end(ap) 1988-04-25 15:31:58 +00:00
ceriel
093a970d7f generate scope info for functions 1988-04-25 12:55:25 +00:00
ceriel
131d4d9454 align on ints instead of shorts 1988-04-25 10:41:33 +00:00
ceriel
e4838a6225 dont generate .data4 1988-04-25 10:31:33 +00:00
ceriel
9bd075e3a0 Added TableHandl.def 1988-04-25 09:28:10 +00:00
ceriel
816c7e6416 made ioctls to work better on sun 1988-04-22 19:41:22 +00:00
ceriel
cf00c1ffa0 made to look better on our laser printer 1988-04-22 18:59:19 +00:00
ceriel
d6f2d2f25c corrected wait systemcall 1988-04-22 18:49:13 +00:00
ceriel
01faecb6ed conversion to our assembler was not complete 1988-04-22 18:44:28 +00:00
ceriel
3f3b3d04e6 conversion to our assembler was not complete 1988-04-22 18:37:59 +00:00
ceriel
3edf9486c9 fixed to not accept dots in numbers 1988-04-22 18:34:22 +00:00
ceriel
3228f4f21b restore external base, just to be sure 1988-04-22 17:19:40 +00:00
ceriel
856f58468e restore external base, just to be sure 1988-04-22 16:54:58 +00:00
ceriel
d1a444d6d1 minor fix 1988-04-22 16:19:56 +00:00
ceriel
4410cc5cdf main should return value 1988-04-22 16:00:01 +00:00
ceriel
48f7be1f8e corrected; did some shifts that have undefined result 1988-04-22 15:49:20 +00:00
ceriel
d3da6b76dc avoid use of modf; not portable 1988-04-22 14:17:34 +00:00
ceriel
b68e30f6ff avoid use of modf; not portable 1988-04-22 14:11:55 +00:00
ceriel
b948e4b59d corrected; sometimes lookahead would fail 1988-04-22 14:02:43 +00:00
ceriel
adaa19c807 some more actions for making distr 1988-04-22 09:39:50 +00:00
ceriel
fd4bda4865 made more portable 1988-04-21 18:53:31 +00:00
ceriel
e0d31020c8 made to conform to ACK rules 1988-04-21 18:48:15 +00:00
ceriel
0aa6d4ed5d corrected: a shift of 32 is not portable! 1988-04-21 18:40:42 +00:00
ceriel
5db0db5959 fixed minor bug in lin instruction (!) 1988-04-21 15:29:02 +00:00
ceriel
5f4707b280 improved comments; should now be understandable for anyone who knows EM 1988-04-21 10:08:56 +00:00
ceriel
e41fd6d8a9 corrected typo 1988-04-21 09:21:18 +00:00
ceriel
1cd66f2952 Dicks corrected emtest 1988-04-20 17:49:42 +00:00
ceriel
211f5d2ad8 improved signal handling 1988-04-20 17:10:21 +00:00
ceriel
79e3ac1a26 improved setjmp 1988-04-20 16:58:29 +00:00
ceriel
379101461e corrected .s files 1988-04-20 16:47:41 +00:00
ceriel
536716ba84 rewritten setjmp: compiler now gives a bit more support 1988-04-20 15:33:17 +00:00
ceriel
cd782a1488 corrected a syntax error 1988-04-20 15:28:26 +00:00
ceriel
ae50580eff new handling of setjmp; now pass return address 1988-04-20 15:28:10 +00:00
ceriel
083d520d38 SUN4 frexp strikes again ... 1988-04-20 14:42:04 +00:00
ceriel
09eb4f9325 changed xenix3.0 to xenix3 1988-04-20 11:52:53 +00:00
ceriel
b82c0d9bdd Added test 1988-04-20 10:45:09 +00:00
ceriel
fee10c4735 Initial revision 1988-04-20 10:43:48 +00:00
ceriel
06c28ad222 do not call frexp with 0.0; the SUN4 cannot stand it 1988-04-20 10:01:35 +00:00
ceriel
865e5b607a Added include 1988-04-20 09:25:31 +00:00
ceriel
750aad12f6 Made a bit more portable 1988-04-19 19:46:28 +00:00
ceriel
62c9bd14ce made to work for distribution 1988-04-19 18:58:08 +00:00
ceriel
b651e4cfbe Added my name to author list 1988-04-19 17:19:21 +00:00
ceriel
540fb5605b Added minix and minixST 1988-04-19 17:16:10 +00:00
ceriel
347a183428 avoid installation order problem 1988-04-19 17:05:05 +00:00
ceriel
0768c14544 Added check that script is started from proper directory 1988-04-19 16:57:19 +00:00
ceriel
39ee09e442 order was wrong 1988-04-19 16:56:40 +00:00
ceriel
832e4c3e8d order was wrong 1988-04-19 16:55:51 +00:00
ceriel
bbe4d39ddd improved stupid test 1988-04-19 16:45:19 +00:00
ceriel
9d3f9ea496 fixed a small problem with the 'symmetric' option; also fixed a
problem with Hex numbers
1988-04-19 14:40:27 +00:00
ceriel
fef0bf1075 adapted for new distribution 1988-04-19 14:33:58 +00:00
kaashoek
7fc73c9cf3 *** empty log message *** 1988-04-19 12:40:43 +00:00
kaashoek
805354f806 *** empty log message *** 1988-04-19 11:41:16 +00:00
ceriel
37a3f20b85 Added minix 1988-04-19 11:10:14 +00:00
ceriel
eb1ddcb2a3 Added minix 1988-04-19 11:01:39 +00:00
ceriel
3f28711419 Added minix 1988-04-19 10:56:12 +00:00
ceriel
a4d9ed6ac8 Initial revision 1988-04-19 10:48:34 +00:00
kaashoek
5b4ae84255 comments Dick 1988-04-19 10:41:05 +00:00
ceriel
8c20160cb6 Initial revision 1988-04-19 10:38:18 +00:00
ceriel
e9f4f7498c corrected somewhat 1988-04-19 10:33:07 +00:00
ceriel
d5b7752fdb Added define for ACK 1988-04-19 10:30:15 +00:00
ceriel
709fee14c6 Initial revision 1988-04-19 10:19:15 +00:00
ceriel
cac49c513c Added cleanup 1988-04-19 10:13:41 +00:00
ceriel
da872ef789 assert macro has one parameter 1988-04-19 09:57:44 +00:00
ceriel
9d3ae1c4d0 Added minixST 1988-04-19 09:40:02 +00:00
ceriel
a61b1a19bb Initial revision 1988-04-19 09:34:37 +00:00
ceriel
5140441585 Initial revision 1988-04-19 09:27:51 +00:00
ceriel
1519576e82 Added .distr 1988-04-19 09:22:48 +00:00
ceriel
647b192b1f Initial revision 1988-04-19 09:15:48 +00:00
ceriel
449ea0d073 Added .distr 1988-04-19 09:13:41 +00:00
ceriel
2a7411dd91 Added descr 1988-04-19 09:10:18 +00:00
ceriel
65f67f48a3 Added m2 as callname 1988-04-18 15:57:28 +00:00
ceriel
580b1c081f cleaned up some garbage. How did it get there? 1988-04-18 15:54:20 +00:00
ceriel
eb6ed2df62 Added .distr file 1988-04-18 15:00:24 +00:00
ceriel
f0dee053ca Added READ_ME file 1988-04-18 14:06:00 +00:00
ceriel
88d11eaf44 changed font 5 references to font CW references 1988-04-18 13:56:01 +00:00
ceriel
defbe00b6a changed font 5 references to font CW references 1988-04-18 13:42:35 +00:00
ceriel
003eed2758 deleted print and show 1988-04-18 13:40:54 +00:00
ceriel
71efb88a36 changed font 5 references to font CW references 1988-04-18 13:34:29 +00:00
ceriel
a9ad34c8db fixed a bug: did not handle %while in FIXED terms 1988-04-18 11:06:55 +00:00
ceriel
ba88529f50 deleted LLgen from distr file 1988-04-18 10:36:07 +00:00
ceriel
c06568406c Initial revision 1988-04-18 10:24:30 +00:00
ceriel
35e749a72f Added id.sed 1988-04-18 10:23:45 +00:00
ceriel
132548a987 Added a distr entry 1988-04-18 10:21:30 +00:00
ceriel
b7a100b1f5 create lib directory if not present 1988-04-18 10:17:58 +00:00
ceriel
26b57eab2f corrected some 1988-04-18 10:13:57 +00:00
ceriel
0de242d9bb Added make.sh 1988-04-18 09:18:18 +00:00
ceriel
d1c9c94493 generate message about parameter count 1988-04-15 17:29:02 +00:00
ceriel
9dbd7bdcf5 check for total size of locals and parameters 1988-04-15 17:25:01 +00:00
ceriel
09ed33d12d fixed minor bug: report on used memory was wrong 1988-04-15 16:05:05 +00:00
ceriel
a93bf46382 use varargs when needed 1988-04-15 15:43:52 +00:00
ceriel
f5be4dafc6 use varargs when needed 1988-04-15 15:34:19 +00:00
ceriel
2549099d3b use varargs where needed 1988-04-15 15:19:27 +00:00
ceriel
32e125b3f9 make sure there is a varargs.h file somewhere 1988-04-15 15:18:38 +00:00
ceriel
d1fee09721 Use varargs where needed 1988-04-15 15:07:51 +00:00
ceriel
648d745177 deleted sgtty.h 1988-04-15 15:03:59 +00:00
ceriel
143fe678d4 use stty/gtty instead of ioctl 1988-04-15 15:03:32 +00:00
ceriel
d7b7427431 Added varargs.h 1988-04-15 14:45:04 +00:00
ceriel
ecaea97a99 make to use varargs.h 1988-04-15 14:43:19 +00:00
ceriel
16e2e6f346 Added sgtty.h 1988-04-15 14:38:33 +00:00
ceriel
cc85226c3d changed address 1988-04-15 12:49:16 +00:00
ceriel
1c7c9c60cf 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
f92dad2d9d only fclose on non-NULL streams 1988-04-14 16:09:02 +00:00
ceriel
7971761628 generated illegal code; fixed 1988-04-14 16:03:55 +00:00
ceriel
355177a22c improved sbrk 1988-04-14 10:45:42 +00:00
ceriel
1da83e161b made to fit on PDP-11 again, and some other minor mods 1988-04-13 18:37:45 +00:00
kaashoek
9f4469d798 comments of Ceriel and Henri 1988-04-13 14:33:11 +00:00
ceriel
e53d23a925 some minor improvements 1988-04-13 13:05:38 +00:00
ceriel
24d7026a7a corrected comment message 1988-04-13 12:52:40 +00:00
ceriel
cdda84eaab minor improvement 1988-04-13 12:40:48 +00:00
ceriel
75345fa915 make a little more robust 1988-04-12 19:34:38 +00:00
ceriel
1f041497ec edit modula-2 compiler Makefile on small systems 1988-04-12 15:55:26 +00:00
kaashoek
ca94deb2c2 Initial revision 1988-04-12 14:31:05 +00:00
ceriel
37e21bc6a5 changed copyright notice 1988-04-12 11:30:10 +00:00
ceriel
39c5ab2997 better ORD, VAL, and CAP, and some other minor mods 1988-04-12 09:19:06 +00:00
ceriel
54bfaff625 Added a mechanism to test pointers as soon as possible 1988-04-11 18:32:47 +00:00
ceriel
287ff14a1f fixed typo 1988-04-11 14:46:41 +00:00
ceriel
52085d5555 updated 1988-04-11 13:03:14 +00:00
ceriel
eeb2f2ba80 updated+modula-2 1988-04-11 13:02:20 +00:00
ceriel
eddb43c08e catch possibly occurring trap with stores in the HP 1988-04-11 12:51:22 +00:00
ceriel
3df72f4136 Also allow .def files; compiler will give error message 1988-04-11 12:45:45 +00:00
ceriel
b371c91584 Added xenix3 1988-04-11 12:44:36 +00:00
ceriel
54d444c5c5 Added xenix3 1988-04-11 12:38:24 +00:00
ceriel
39ac6fb719 some minor fixes 1988-04-11 11:41:50 +00:00
ceriel
155a1ba5c8 adapted to new semantics of the EHEAP error: no longer fatal 1988-04-11 11:37:54 +00:00
ceriel
9d7f47c37a adapted to new semantics of the EHEAP error: no longer fatal 1988-04-11 11:27:37 +00:00
ceriel
8dfcff6911 fixed typo 1988-04-11 11:13:20 +00:00
ceriel
0c45ef1b5a adapted to new semantics of the EHEAP error: no longer fatal 1988-04-11 11:03:22 +00:00
ceriel
6eb15567ae Added some debug print statements 1988-04-11 10:55:07 +00:00
ceriel
6bfdc85d8f adapted to new semantics of the EHEAP error: no longer fatal 1988-04-11 10:50:58 +00:00
ceriel
01919da550 corrected some text on segemt registers 1988-04-11 10:44:06 +00:00
ceriel
61bfe50a66 Added installation for modula-2 1988-04-11 10:36:24 +00:00
ceriel
d7030591f9 fixed problems in Storage module: caused integer overflow and bad pointers 1988-04-11 10:34:31 +00:00
ceriel
48d2fa770e minor mod 1988-04-11 10:32:22 +00:00
ceriel
b2275303a2 adapted to new semantics of the EHEAP error: no longer fatal 1988-04-11 10:29:59 +00:00
ceriel
b190c55526 fix 1988-04-11 10:11:07 +00:00
ceriel
252d0e0667 minor fix 1988-04-11 09:55:13 +00:00
ceriel
b05198c6bf adapted to new semantics of the EHEAP error: no longer fatal 1988-04-11 09:52:48 +00:00
ceriel
474a3b4584 Added xenix3 to the list of machine-names 1988-04-11 09:51:11 +00:00
ceriel
b0715c481b also make a makecalls for code expander 1988-04-11 09:48:59 +00:00
ceriel
7c4afedd26 split into separate include files 1988-04-11 09:47:33 +00:00
ceriel
9abbd9eb10 Added some patterns 1988-04-11 09:38:31 +00:00
ceriel
8a51ae7b94 Added comments and m2_traps.h 1988-04-08 14:14:44 +00:00
ceriel
6535d32447 Added libm2 1988-04-08 13:39:19 +00:00
ceriel
131efe9348 Added libm2 1988-04-08 13:12:53 +00:00
ceriel
5250c1571f Added m2 1988-04-08 13:10:18 +00:00
ceriel
f109b70f3e updated for 4th distribution 1988-04-08 12:50:10 +00:00
ceriel
857fbcc0c7 Added u argument type, added distr entry in Makefile 1988-04-08 11:33:21 +00:00
ceriel
32d38f3eb8 two versions of the parameters file: small and large 1988-04-08 10:04:03 +00:00
ceriel
b671136060 don't generate HOL's of zero size 1988-04-08 09:46:04 +00:00
ceriel
ec612942a1 a minor mod 1988-04-07 15:35:48 +00:00
ceriel
0760483bee minor mod 1988-04-07 15:30:37 +00:00
ceriel
cc4c9e85c8 Added id.sed 1988-04-07 15:02:12 +00:00
ceriel
e2f1bc59a0 adapted so that interpreter traps on floating point instructions 1988-04-07 13:14:27 +00:00
ceriel
0582d4d83e Added libfp 1988-04-07 12:39:19 +00:00
ceriel
d664b9fb0b Initial revision 1988-04-07 12:36:30 +00:00
ceriel
92255b2a25 Added libfp 1988-04-07 12:31:47 +00:00
ceriel
9a7b199a5c Initial revision 1988-04-07 12:28:10 +00:00
ceriel
41bf233413 Added libfp 1988-04-07 12:26:29 +00:00
ceriel
4e2aea5cb0 Initial revision 1988-04-07 12:23:02 +00:00
ceriel
a614f3be7a Added ncg and libfp 1988-04-07 11:49:19 +00:00
ceriel
87a5000e57 Initial revision 1988-04-07 11:45:42 +00:00
ceriel
10b3d3d862 added floating point lib 1988-04-07 11:42:21 +00:00
ceriel
8ee3542787 Added copyright notices 1988-04-07 11:40:46 +00:00
ceriel
8a96f95c59 Initial revision 1988-04-07 10:57:49 +00:00
ceriel
cb4e02f02e fixed 1988-04-06 18:36:59 +00:00
ceriel
b64a224b99 Added modula-2 1988-04-06 18:34:20 +00:00
ceriel
14cdead342 lay-out mod 1988-04-06 18:31:49 +00:00
ceriel
f80afde044 Added floating point lib and modula-2 1988-04-06 18:31:20 +00:00
ceriel
935ae44985 Added modula-2 1988-04-06 18:18:55 +00:00
ceriel
c8a728969d some minor changes and a fix in pointer arithmetic 1988-04-06 18:14:50 +00:00
ceriel
c255ffeaaa Added some defines 1988-04-06 18:12:43 +00:00
ceriel
8e394c3c08 updated 1988-04-06 18:06:23 +00:00
ceriel
93c6adda3c Added modula-2 1988-04-06 18:04:33 +00:00
ceriel
4beb60683f Initial revision 1988-04-06 15:12:11 +00:00
ceriel
56b03adad0 z8000 uses asld, so suffix of targets is .s 1988-04-06 15:10:56 +00:00
ceriel
da052fb6ee Initial revision 1988-04-06 14:49:41 +00:00
ceriel
e25004012b Added an 'all' entry 1988-04-06 14:46:04 +00:00
ceriel
288c4c9a13 Added .distr file, added 'all' entry in Makefile 1988-04-06 14:42:22 +00:00
ceriel
d48f810ef6 Added .distr file 1988-04-06 14:37:14 +00:00
ceriel
04cabf258d Initial revision 1988-04-06 14:24:36 +00:00
ceriel
50cf97a378 Initial revision 1988-04-06 14:13:41 +00:00
ceriel
0320f9c7ba Added an 'all' entry 1988-04-06 14:08:08 +00:00
ceriel
f635588643 Initial revision 1988-04-06 14:03:28 +00:00
ceriel
f687134a38 Added an 'all' entry 1988-04-06 13:56:46 +00:00
ceriel
4afb2f0b23 Initial revision 1988-04-06 13:46:40 +00:00
ceriel
dc24ab8b57 Added an 'all' entry 1988-04-06 13:41:06 +00:00
ceriel
dc547a271a added .distr file 1988-04-06 13:38:42 +00:00
ceriel
6211edb4c6 z8000 uses asld 1988-04-06 13:18:10 +00:00
ceriel
ffff65a8d7 Initial revision 1988-04-06 13:17:21 +00:00
ceriel
6507aa0a73 Added .distr 1988-04-06 13:06:08 +00:00
ceriel
f47d49b1c0 Added cap.c 1988-04-05 15:27:50 +00:00
ceriel
e566fc551d some fixes 1988-03-31 17:58:56 +00:00
ceriel
2be8437d73 identifiers may not contain two consecutive underscores, and a fix 1988-03-31 16:09:53 +00:00
ceriel
702a73b734 identifiers may not contain two consecutive underscores, and a fix 1988-03-31 16:02:20 +00:00
ceriel
92f28ae164 Added another debug statement 1988-03-31 12:50:12 +00:00
ceriel
14d7db7499 remove some of the lint complaints 1988-03-31 11:17:47 +00:00
ceriel
4e419a19cd delinted 1988-03-31 10:38:05 +00:00
ceriel
092292683c 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
35cb47328a modified to generate the clashes table in another form too 1988-03-31 10:00:07 +00:00
ceriel
21f4403fdb Initial revision 1988-03-30 13:06:41 +00:00
ceriel
021619910e changed PascalIO.Get behaviour and used Allocate instead of ALLOCATE 1988-03-28 18:15:50 +00:00
ceriel
9dccd59665 Added patch for bad fseeks 1988-03-23 18:04:08 +00:00
ceriel
36e934583a many minor mods: name changes 1988-03-23 17:55:57 +00:00
ceriel
7f9fd963fd many minor mods 1988-03-23 17:44:25 +00:00
ceriel
9dce6c6b88 Added patterns for loc sbu and loc adu 1988-03-23 16:52:23 +00:00
ceriel
934568dcf4 new translation of BLS, fix in LOF 1988-03-23 16:07:03 +00:00
ceriel
e71df15045 made to fit on PDP-11 again 1988-03-22 17:54:01 +00:00
ceriel
fba9192bbc new version, with 2/4 handling 1988-03-21 18:22:52 +00:00
ceriel
cc64f88964 adapted to new naming scheme 1988-03-21 18:15:59 +00:00
ceriel
cb52407188 Added .distr file 1988-03-21 18:02:45 +00:00
ceriel
dea657a673 too many changes: some cosmetic; some for 2/4; some for added options 1988-03-21 17:43:54 +00:00
ceriel
795a078d08 too many changes: some cosmetic; some for 2/4; some for added options 1988-03-21 17:22:26 +00:00
ceriel
0976dfa3b9 too many changes: some cosmetic; some for 2/4; some for added options 1988-03-21 17:06:20 +00:00
ceriel
bb51d7b0e2 too many changes: some cosmetic; some for 2/4; some for added options 1988-03-21 16:47:51 +00:00
ceriel
759f4738ca too many changes: some cosmetic; some for 2/4; some for added options 1988-03-21 16:36:31 +00:00
ceriel
6a51fac1e4 Initial revision 1988-03-21 13:48:24 +00:00
ceriel
134869ad1a Added an array bound checking procedure 1988-03-18 18:08:20 +00:00
ceriel
33f80c6eef adapted for 2/4 code generation, and also fixed some bugs 1988-03-18 14:23:04 +00:00
ceriel
fd467fd63d removed a cntrl-a character in the comments 1988-03-17 09:39:43 +00:00
ceriel
2c01d45a49 fix in csb: must be able to handle 0 cases 1988-03-17 09:24:01 +00:00
ceriel
0030ddd97f fixed csb so that it also handles 0 cases 1988-03-16 19:38:14 +00:00
ceriel
2f11dce5ef Added a trap number for cardinal underflow 1988-03-16 09:22:53 +00:00
ceriel
987683cf99 Added some comment 1988-03-16 09:20:36 +00:00
ceriel
750c838141 forgot to pop old handler 1988-03-15 17:37:19 +00:00
ceriel
ba7cc5f6fb more sensible values for SIG_DFL and SIG_IGN 1988-03-15 16:58:43 +00:00
ceriel
29b2b389fd added u opcode type 1988-03-15 14:35:45 +00:00
ceriel
bda28533c5 fix in writing of prompt 1988-03-15 13:48:56 +00:00
ceriel
628b9699e8 adapted to new ip_spec.t 1988-03-15 13:17:42 +00:00
ceriel
a739c9a0ff changed location of ip_spec.t 1988-03-15 11:46:42 +00:00
ceriel
f62a5c7157 adapted to new ip_spec.t and changed location 1988-03-15 11:43:36 +00:00
ceriel
f79f368c72 adapted to new ip_spec.t 1988-03-15 11:37:00 +00:00
ceriel
0b8a55c0cf adapted to new ip_spec.t 1988-03-15 11:29:39 +00:00
ceriel
539e01b5bc Adapted for PAREN_OPEN and PAREN_CLOSE, and better adaption for type-setter 1988-03-14 16:37:00 +00:00
ceriel
63a89b7080 modified to use PAREN_OPEN and PAREN_CLOSE 1988-03-14 16:15:23 +00:00
ceriel
ea9e90d785 fixed for operand separators within operands 1988-03-14 15:58:07 +00:00
ceriel
e8f4ce0886 Added the esize program 1988-03-14 14:29:31 +00:00
ceriel
517b1cae36 deleted an #endif, where-ever it came from I dont know 1988-03-14 14:12:49 +00:00
ceriel
bf3cfae610 CMI was translated wrongly; corrected 1988-03-14 13:56:33 +00:00
ceriel
23be652f11 CMI was translated wrongly; corrected 1988-03-14 13:42:20 +00:00
ceriel
eb6a4a95cd deleted some patterns that were wrong, and apparently never used 1988-03-14 13:30:48 +00:00
ceriel
f846c1648b changed definition of BITMAX 1988-03-12 13:47:11 +00:00
ceriel
a24c41e9cf fix in LXA 1988-03-11 16:34:22 +00:00
ceriel
9258a2a3e9 fixes from Nigel Hall 1988-03-10 16:00:58 +00:00
ceriel
1d98b5fd02 bug fix: did not work when procedure descriptors started on block boundary 1988-03-10 13:03:53 +00:00
ceriel
304f03a836 fixes from Nigel Hall 1988-03-09 18:07:05 +00:00
ceriel
41007486bf some compilers (Multimax) did not understand the sizeof constructions used 1988-03-09 11:42:54 +00:00
ceriel
4b79636b8f fixed a problem with #ifdef/#else/#endif 1988-03-08 11:42:00 +00:00
ceriel
1a259744af The Get routine did not work right, fixed 1988-03-08 11:28:00 +00:00
ceriel
ea21b16846 Added dependency 1988-03-08 10:44:09 +00:00
ceriel
78926a5a84 fix typo and parameters of overflow 1988-03-08 10:35:53 +00:00
ceriel
5cf3fc1017 some minor mods, mostly for better line number tracking 1988-03-08 10:18:58 +00:00
ceriel
75aba83724 some fixes 1988-03-07 11:44:39 +00:00
ceriel
653cd869ba deleted cvf.s 1988-03-07 09:47:06 +00:00
ceriel
14997fe479 "deleted -LIB, already in proto makefile" 1988-02-19 17:15:45 +00:00
ceriel
75986f7ac5 deleted -LIB, already in proto makefile 1988-02-19 17:05:26 +00:00
ceriel
d949e3e8c5 some more fixes to fixes 1988-02-19 16:52:54 +00:00
ceriel
dead814781 Of course: fixes to previous mods 1988-02-19 16:36:45 +00:00
ceriel
31ddd5ca12 mainly new comments 1988-02-19 15:54:01 +00:00
ceriel
96fc577b15 new version using the Streams module 1988-02-19 13:05:03 +00:00
ceriel
17921c4b5a Added the ArraySort module 1988-02-19 12:53:15 +00:00
ceriel
835c373123 parsing routine does not return value! 1988-02-18 18:06:28 +00:00
ceriel
41077644d1 fixed 1988-02-18 11:58:10 +00:00
ceriel
fd08220e2b fixes 1988-02-18 11:17:39 +00:00
ceriel
a298b55b95 sbu was replaced by sbu; is now replaced by sbi 1988-02-18 11:09:11 +00:00
ceriel
0058f45243 corrected 1988-02-18 10:36:22 +00:00
ceriel
25e21494f1 corrected 1988-02-18 10:22:15 +00:00
ceriel
3ccbd9cdc7 Initial revision 1988-02-18 10:22:14 +00:00
ceriel
083404fc90 corrected 1988-02-18 10:12:10 +00:00
ceriel
bab801171f Initial revision 1988-02-18 10:08:42 +00:00
ceriel
07a378fffe corrected 1988-02-18 10:06:46 +00:00
ceriel
02db417d31 Initial revision 1988-02-18 09:48:35 +00:00
ceriel
642acd5cbe Added .distr file 1988-02-18 09:32:26 +00:00
ceriel
ccf7ef96b5 Initial revision 1988-02-18 09:20:09 +00:00
ceriel
4e0c9a780a fixes and other mods 1988-02-17 17:21:51 +00:00
ceriel
31ed7f7e30 Added .distr file 1988-02-17 15:52:20 +00:00
ceriel
e9271376dc Initial revision 1988-02-17 15:44:54 +00:00
ceriel
83d7633503 a minor improvement 1988-02-17 15:41:27 +00:00
ceriel
d04dce377a 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
d034f5145c 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
7bc8ed1270 fixed: returned wrong value 1988-02-16 17:48:28 +00:00
ceriel
b54a58e93c 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
3e01918c57 fixed: for some reason some back-quotes disappeared 1988-02-16 13:50:24 +00:00
ceriel
5d861a3399 made to work 1988-02-15 18:08:46 +00:00
ceriel
d6c52e0fef make to work with new em_code interface 1988-02-15 18:04:27 +00:00
ceriel
d7d501d43a made to fit on a PDP-11 again 1988-02-10 14:06:34 +00:00
ceriel
78de25b639 New baseline for distribution 1988-02-09 11:45:30 +00:00
ceriel
6217293e23 some fixes:
- always remove imports from definition modules
- minor improvement in error messages
1988-02-09 11:41:08 +00:00
ceriel
8fc22f0db7 allow assembler to read from STDIN 1988-02-05 15:10:08 +00:00
ceriel
f2dc30c912 modified to use Streams module 1988-02-03 14:34:40 +00:00
kaashoek
60278f1c52 ';' forgotten. 1988-02-03 12:55:36 +00:00
kaashoek
b3f21c47fc CODE_EXPANDER must be defined before including <em.h>. 1988-02-03 12:48:58 +00:00
kaashoek
990080cc04 create_ofiles must be executed in directory ce. 1988-02-03 11:40:29 +00:00
kaashoek
4ec4554fa5 Syntax error in shell command 1988-02-03 10:58:52 +00:00
kaashoek
474b2eb453 Previous version saw C_INSTR CONDITION as CALL ( e.g. C_asp ( $1 == 1) ). 1988-02-03 10:47:08 +00:00
kaashoek
e8f2566542 Don't generate pseudo instructions. 1988-02-03 10:20:58 +00:00
ceriel
eb2ce1f30b This version fixes many problems in older versions 1988-02-02 16:27:54 +00:00
kaashoek
64b4812664 RCS filenames should end with ,v 1988-02-02 15:59:40 +00:00
kaashoek
0ea2930de7 Error in pathnames 1988-02-02 15:53:47 +00:00
kaashoek
a0802dce05 Error in pathnames 1988-02-02 15:50:10 +00:00
ceriel
d70a20ae4c updated 1988-02-01 11:26:16 +00:00
ceriel
e130b1991f some corrections, added modula-2 docs 1988-02-01 10:45:43 +00:00
ceriel
da3c00aeac compare pointers with CMP 1988-02-01 10:17:51 +00:00
ceriel
9d83605ccd Added the Streams module 1988-01-29 11:35:45 +00:00
ceriel
a22ab5c7b7 better error message 1988-01-28 16:54:33 +00:00
ceriel
99611d287b conversion routinew now initialize whole array, Epilogue module changed slightly 1988-01-28 16:37:55 +00:00
ceriel
355fa2c764 Added some runtime trap numbers 1988-01-28 16:34:41 +00:00
ceriel
16e381031b improved filename and linenumber generation 1988-01-28 16:15:16 +00:00
ceriel
72e13f3a5a 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
7bb1897e98 minor fixes 1988-01-27 15:10:16 +00:00
ceriel
e67e59e56a bug fix in LONGINT constants 1988-01-26 13:54:24 +00:00
ceriel
e5b9c564af Added the Epilogue module 1988-01-25 16:14:48 +00:00
ceriel
b19a178e2e fixed a bug with string-initializers 1988-01-25 16:14:01 +00:00
ceriel
a7cdd16125 Allow the checking of definition modules 1988-01-22 12:04:27 +00:00
ceriel
9dfa2f6979 Added a test that at some point failed for the new CEMCOM 1988-01-19 11:45:43 +00:00
ceriel
ad2d61154b fixed some minor problems 1988-01-15 16:55:01 +00:00
kaashoek
bab6cd29ce Comments added 1988-01-15 16:09:52 +00:00
kaashoek
31efd16916 Comments added 1988-01-15 15:57:35 +00:00
ceriel
ea4b32d326 parameterize archiver used 1988-01-14 14:10:51 +00:00
ceriel
b5d320392c parameterize archiver used 1988-01-14 13:58:44 +00:00
ceriel
e873fd637d try to free mem as soon as possible 1988-01-14 13:53:58 +00:00
ceriel
fb65cda40f make separate lib for code-expander 1988-01-14 13:50:43 +00:00
ceriel
1f3ad61fd5 parameterize archiver used 1988-01-14 13:44:36 +00:00
ceriel
bf37d48ac5 Some minor corrections 1988-01-14 13:40:56 +00:00
ceriel
1ee5101ba7 Some corrections to make it work on small machines 1988-01-14 13:34:42 +00:00
ceriel
629fc3f824 adapted to new em_code module 1988-01-14 13:19:32 +00:00
ceriel
d5c423adaf better check if a block was already freed 1988-01-14 11:35:07 +00:00
ceriel
a726f7d49e adapted to use new em_code module, and a minor fix 1988-01-14 10:52:36 +00:00
ceriel
b90cc5ceb9 make it more K&R C 1988-01-13 11:06:06 +00:00
ceriel
31757c1935 output of id.c was wrong 1988-01-12 15:56:42 +00:00
ceriel
bdc37d879e Added some patterns 1988-01-12 13:27:11 +00:00
ceriel
d4e2dcfb67 prevent some 'bombed out of codegen' crashes 1988-01-12 11:48:38 +00:00
ceriel
a58740c4ee some fixes 1988-01-11 18:24:34 +00:00
ceriel
538896f0a3 improved some code for floating point 1988-01-11 17:06:11 +00:00
ceriel
897b86cba2 prevent a voluntary crash and generate better code 1988-01-11 14:06:20 +00:00
ceriel
85348f653d cas instruction was encoded wrong 1988-01-11 13:25:28 +00:00
kaashoek
055635d63d Comments added. 1988-01-07 16:09:30 +00:00
kaashoek
a92a93bc54 Comments added 1988-01-07 15:52:52 +00:00
kaashoek
dcf14f338b Comments added 1988-01-07 15:25:34 +00:00
kaashoek
41d9465e89 Made consistent with the file in ../common 1988-01-07 15:15:08 +00:00
kaashoek
ed4cfa01c5 Made consistent with file in ../common 1988-01-07 15:12:09 +00:00
kaashoek
544f59b0ea Comment added 1988-01-07 14:52:08 +00:00
kaashoek
dc88d56345 Made consistent with the file in directory ../common 1988-01-07 14:49:57 +00:00
kaashoek
31ba9c1471 Made consistent with the file in the directory ../common 1988-01-07 14:48:23 +00:00
kaashoek
79718501d6 Comments added. 1988-01-07 14:40:43 +00:00
kaashoek
9b1533a69b Some routines moved to 'help.c' 1987-12-18 16:23:42 +00:00
kaashoek
d69f0ef861 Initial revision 1987-12-18 16:22:16 +00:00
kaashoek
69040a2ae0 File 'assem.c' is changed to 'help.c' 1987-12-18 16:17:29 +00:00
kaashoek
572f8ec9c4 Comment added 1987-12-18 12:17:56 +00:00
kaashoek
ecabf96c86 Made consistent with 'arg_type.h' and 'decl.h' 1987-12-18 12:12:50 +00:00
kaashoek
9f510b9172 Comments added.
Made consistent with 'arg_type.h' and 'em_parser.h'
1987-12-18 12:11:58 +00:00
kaashoek
a6de718152 Made consistent with 'em_parser.h' and 'decl.h' 1987-12-18 12:10:50 +00:00
ceriel
d98394f0cf Added a test for casts 1987-12-04 12:53:18 +00:00
ceriel
a8703841b2 changed typing of constants, to be more compatible with PCC
and future standard
1987-12-03 11:12:02 +00:00
ceriel
3f2a4d9c7c added .distr file 1987-12-02 14:01:26 +00:00
ceriel
f8ede83073 deleted some incorrect patterns 1987-12-02 13:21:20 +00:00
ceriel
a61d36ff49 fixes and squeezing 1987-12-02 10:41:38 +00:00
ceriel
9cc60526b7 Added floating point stuff 1987-12-02 09:04:32 +00:00
ceriel
3627b9a16c added use checking for types and constants, improved overflow checking 1987-11-27 14:24:46 +00:00
ceriel
3e51d4f62f version with better overflow checking 1987-11-27 14:13:11 +00:00
ceriel
db572116e1 Added a flag to not give warnings 1987-11-27 11:04:07 +00:00
ceriel
896fec3fc5 version with better overflow checking 1987-11-26 14:15:24 +00:00
kaashoek
900e979035 *** empty log message *** 1987-11-26 12:14:32 +00:00
kaashoek
4b540c6d7e Initial revision 1987-11-26 12:14:26 +00:00
kaashoek
8202444413 *** empty log message *** 1987-11-26 12:00:32 +00:00
kaashoek
79457dabd1 Initial revision 1987-11-26 12:00:22 +00:00
ceriel
c27082938b fix to fix 1987-11-26 10:26:06 +00:00
ceriel
e3501a00dc handle rounding of floating point constants 1987-11-25 16:58:31 +00:00
ceriel
048eac2d67 fixed to also read from standard input 1987-11-25 16:55:51 +00:00
kaashoek
f1a897cec0 Comments added 1987-11-25 14:41:10 +00:00
kaashoek
5ef24f6923 Comments added 1987-11-25 14:22:15 +00:00
kaashoek
dcc3eb63c4 Initial revision 1987-11-25 14:18:23 +00:00
kaashoek
1240849cda *** empty log message *** 1987-11-25 14:03:48 +00:00
kaashoek
5865536463 Comments added 1987-11-25 13:55:12 +00:00
kaashoek
152faf2b36 *** empty log message *** 1987-11-25 13:54:01 +00:00
kaashoek
7af2561a91 1987-11-25 13:52:01 +00:00
kaashoek
67ab00564f n 1987-11-25 13:51:25 +00:00
kaashoek
a057f8e72c Comments added 1987-11-25 11:49:48 +00:00
kaashoek
f1aba7c217 Initial revision 1987-11-25 11:19:38 +00:00
ceriel
b2824fe796 check number of locals and parameters 1987-11-24 14:21:35 +00:00
ceriel
ea2c86ef0c do not allow reals as case labels, check size of array's 1987-11-24 13:22:04 +00:00
ceriel
067eace890 fixed a bug: a numeric label now kills condition codes 1987-11-24 11:43:51 +00:00
ceriel
70403f62d9 fixed a bug: casts to short or char did not work right 1987-11-23 13:48:09 +00:00
ceriel
2e932ba803 fixed: used wrong index in em_flag 1987-11-23 13:35:34 +00:00
ceriel
c41f63a4c8 %[...] did not work 1987-11-20 12:57:51 +00:00
kaashoek
ee3e8ed07e *** empty log message *** 1987-11-20 12:07:51 +00:00
kaashoek
02b72945f1 *** empty log message *** 1987-11-20 11:24:45 +00:00
kaashoek
58b70cc7dd *** empty log message *** 1987-11-20 11:15:42 +00:00
kaashoek
75e0c5f7ed Initial revision 1987-11-20 11:12:07 +00:00
kaashoek
9947059dcc Initial revision 1987-11-20 10:41:03 +00:00
ceriel
bffdad9cdc improved a bit 1987-11-17 16:22:13 +00:00
ceriel
619f6bb893 Fixed bug: subranges of subranges did not work right 1987-11-17 14:29:14 +00:00
ceriel
f00951f788 replaced some move.w by move.l 1987-11-16 15:52:57 +00:00
ceriel
046dc3d5a9 use $(CC) instead of cc 1987-11-16 10:35:32 +00:00
ceriel
7bbfcac62b generate CSA for empty case statement, replaced an #ifdef that was on the wrong spot 1987-11-13 16:21:33 +00:00
ceriel
808e5d8c7d generate CSA for empty case statement 1987-11-13 16:19:51 +00:00
ceriel
57b1a2757e some cosmetic changes+fix in calculator 1987-11-13 15:11:37 +00:00
ceriel
4359c699dc completely new version 1987-11-12 12:26:36 +00:00
ceriel
0baf75f779 completely new version 1987-11-12 11:59:31 +00:00
ceriel
f9281be252 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
603c65950c 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
b434cd85a0 Added a test that LOI does not sign-extend 1987-11-11 10:08:05 +00:00
ceriel
c998623932 Some more adaptions to new semantics of ncgg 1987-11-10 13:49:04 +00:00
ceriel
2f37e8d600 Some more adaptions to new semantics of ncgg 1987-11-10 13:37:19 +00:00
ceriel
ae6e2acb87 Some more adaptions to new semantics of ncgg 1987-11-10 13:26:40 +00:00
ceriel
4489526a11 fixed some minor problems 1987-11-09 16:11:04 +00:00
ceriel
7b317f79e2 The 'ahead' mechanism was not right 1987-11-09 11:45:39 +00:00
ceriel
b6d6c4ee57 changed mechanism for for-loop checking, added some trap numbers 1987-11-09 11:36:45 +00:00
ceriel
785e174cbb 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
e1a3a1c136 made to fit on a PDP-11 1987-11-09 10:17:20 +00:00
ceriel
028beaf5e6 corrected con_float 1987-11-06 13:12:21 +00:00
ceriel
7d0a77821c fixed bug in reading of longs in archive header 1987-11-05 11:55:28 +00:00
ceriel
734d549473 corrected signal.s 1987-11-05 10:34:04 +00:00
ceriel
cf0852c846 print initializer expression before call to code_declaration 1987-11-04 16:30:02 +00:00
ceriel
9dd87881e1 fixed a minor problem with unstacking 1987-11-04 15:55:23 +00:00
ceriel
50b73dc023 corrected 1987-11-04 10:54:02 +00:00
ceriel
f05d6fb70e improved alignments, and added libfp 1987-11-04 10:48:25 +00:00
ceriel
77bcd64f03 improved the alilgnment checking somewhat 1987-11-04 10:41:32 +00:00
ceriel
4d67ee1150 improved alignments, and added libfp 1987-11-04 10:28:01 +00:00
ceriel
bad6246b59 improved the alilgnment checking somewhat 1987-11-04 10:26:41 +00:00
ceriel
9e9a6d4575 improved ffp.s 1987-11-04 10:07:57 +00:00
ceriel
086a086d12 included floating point code in table 1987-11-04 09:44:00 +00:00
ceriel
4b265a4f0a improved alignment checking 1987-11-03 16:43:24 +00:00
ceriel
80af6ce214 improved previous improvements 1987-11-03 16:17:37 +00:00
ceriel
b236a708e2 improved the checking of sections 1987-11-03 16:09:55 +00:00
ceriel
2682c42a9e fixed alignments, and added floating point lib 1987-11-03 16:03:18 +00:00
ceriel
2b3f059c55 Added fakfp.s 1987-11-03 15:56:44 +00:00
ceriel
e2037c2e4b fixed some problems, and added floating point library 1987-11-03 15:35:43 +00:00
ceriel
ad65ffcf9b Added floating point lib 1987-11-03 15:33:28 +00:00
ceriel
1387926fdd align sections on long boundaries, add floating point 1987-11-03 15:13:57 +00:00
ceriel
2837aa68a7 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
9ae4e7924a Added Xstat.c, to convert between different alignments 1987-11-03 14:50:32 +00:00
ceriel
72ab7b68b8 Added Xstat.c 1987-11-03 14:43:40 +00:00
ceriel
6e5f3632c6 fixed some minor problems 1987-11-03 12:44:09 +00:00
ceriel
867232a244 fixed some minor problems 1987-11-02 17:59:18 +00:00
ceriel
ab5a0efd48 fixed some bugs 1987-11-02 14:23:38 +00:00
ceriel
017871b025 deleted debugging writes 1987-11-02 11:25:13 +00:00
ceriel
b24e6763c3 changed trap messages somewhat, corrected bug in InOut, undone changes
to confarray.c
1987-11-02 11:22:06 +00:00
ceriel
c41fae1f8a avoid *REG constructions because of bug in assembler 1987-11-02 10:52:40 +00:00
ceriel
bc6a9fbf66 Added handling of cardinal overflow 1987-10-30 18:32:14 +00:00
ceriel
e61d8f6356 made to work 1987-10-30 15:35:50 +00:00
ceriel
a93d4a1e29 corrected alignments in tbl 1987-10-30 11:30:17 +00:00
ceriel
f7c479d40b fixed typo 1987-10-30 10:49:35 +00:00
ceriel
e0c73d5195 Added fake floating point routines 1987-10-30 10:42:36 +00:00
ceriel
5cd95d47b2 Now detects use before declaration, f.i. in
VAR k: REAL;
REAL : INTEGER;
1987-10-30 09:19:23 +00:00
ceriel
032e9ebda5 fixed some problems with 1 and 2 byte compares 1987-10-29 15:10:30 +00:00
ceriel
3c63f1b656 sets now allowed for all subranges 1987-10-28 16:10:02 +00:00
ceriel
b668810351 sets now allowed for all subranges 1987-10-28 16:03:56 +00:00
ceriel
d80b501829 Fixed some problems, and improved range-checking 1987-10-28 11:10:30 +00:00
ceriel
98e6c244da CIU should not cause conversion errors! 1987-10-27 15:54:14 +00:00
ceriel
7de7b0c7ec CIU should not cause conversion errors! 1987-10-27 15:43:06 +00:00
ceriel
4974cd17eb Added new files to do range checks 1987-10-27 11:55:59 +00:00
ceriel
04f0550f1d 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
3ea6d40b4c fixed a typo. Case errors gave wrong trap number 1987-10-26 09:30:26 +00:00
ceriel
7df117128c fixed for very large numbers 1987-10-22 15:26:36 +00:00
ceriel
cf330f732c increased buffer size 1987-10-22 14:07:54 +00:00
ceriel
b75744f0d4 replace 10 by 10.0, so that the conversion is not done at runtime 1987-10-22 13:58:48 +00:00
ceriel
245397491a increased buffer size, check for end 1987-10-22 13:35:05 +00:00
ceriel
16a335ab42 removed some IMPORTS that were never used 1987-10-21 11:49:14 +00:00
ceriel
015e1b776e Some corrections and additions to improve the mechanism for
generating warnings on unused/uninitialized variables
1987-10-21 11:29:52 +00:00
ceriel
71df6e6cb8 removed the relative pathnames in #include's 1987-10-20 16:21:44 +00:00
ceriel
0ad68bdb66 fix to Lindseys changes 1987-10-20 16:09:39 +00:00
ceriel
688567a532 fix in reference counts for sets 1987-10-20 13:32:18 +00:00
ceriel
a24c90f5a9 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
e2c9a1a96f fix: there was a problem when more than 2 alternatives started with the same token 1987-10-19 15:35:28 +00:00
ceriel
503edee161 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
211d2bcfff 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
67cf9c4933 some fixes 1987-10-19 10:06:24 +00:00
ceriel
bf0ee1f16c some fixes 1987-10-16 17:57:09 +00:00
ceriel
f25570dd4e replaced calls to NEW by calls to ALLOCATE 1987-10-15 15:41:00 +00:00
ceriel
5c7379738b Some minor adaptions 1987-10-15 12:59:03 +00:00
ceriel
93e08cb946 Some minor adaptions 1987-10-15 12:42:55 +00:00
ceriel
5f35f2b26b parameterized archiver used 1987-10-15 10:32:12 +00:00
ceriel
772ead2f9e adapted fakfp.s 1987-10-14 13:22:57 +00:00
ceriel
8d35578ad2 Parameterized the archiver used 1987-10-14 12:41:38 +00:00
ceriel
4695d966ee next version 1987-10-14 12:38:01 +00:00
ceriel
fc6a8c5aa8 some minor fixes 1987-10-14 12:34:47 +00:00
ceriel
11e1b3ce15 fixed a bug in a LOS test 1987-10-08 16:54:38 +00:00
ceriel
2401ca127e Initial revision 1987-10-08 11:34:19 +00:00
ceriel
f19ffa5328 Initial revision 1987-10-06 16:58:10 +00:00
ceriel
4043036e27 Initial revision 1987-10-06 16:39:14 +00:00
ceriel
e61b887e31 improved previous fix 1987-10-05 16:17:51 +00:00
ceriel
38f70a3a06 new version for distr 1987-10-05 15:52:02 +00:00
ceriel
5d5e497d22 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
4c7dc7eb20 did not work with CASE statements with large difference between lower
and upper bound
1987-10-05 15:40:53 +00:00
ceriel
efcb9468f4 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
8fb2664584 Also recognize m68020 as machine name 1987-10-05 09:59:16 +00:00
ceriel
158d0505ea Added unmount, now unmount as well as umount exist 1987-10-05 09:17:42 +00:00
ceriel
d4a31af34d set section alignments to 4 1987-10-05 09:01:56 +00:00
ceriel
31b2f7d9e0 take care of GTO 1987-10-02 12:53:04 +00:00
ceriel
102a2b1061 don't optimize when ms_gto 1987-10-02 12:52:29 +00:00
ceriel
1ac5d9c95a Handle GTO, LOR/STR 0 also use local base 1987-10-02 12:43:54 +00:00
ceriel
d2006b19af do not replace LAR/SAR by AAR LOI/STI, when the descriptor is not available 1987-10-02 10:48:38 +00:00
ceriel
c0dd8055c2 make variables that are assigned to alive, at least for a short while 1987-10-02 10:41:13 +00:00
ceriel
7f400e5073 print identifier name when multiple declared 1987-10-02 09:55:16 +00:00
ceriel
149a2abd07 some fixes 1987-09-29 16:07:10 +00:00
ceriel
7114bf47ec Adapted to new ncgg 1987-09-29 11:32:45 +00:00
ceriel
876026bedf Some improvements 1987-09-29 09:03:49 +00:00
ceriel
9d2bfee634 some fixes 1987-09-28 13:45:24 +00:00
ceriel
8c6981f642 ran 'make depend' again 1987-09-28 10:18:02 +00:00
ceriel
a4c02d15c6 new version 1987-09-24 13:42:50 +00:00
ceriel
c5674041bf Some minor mods and a bug fix with type transfer functions 1987-09-24 13:07:31 +00:00
ceriel
e30234fce8 Initial revision 1987-09-24 13:01:27 +00:00
ceriel
a830d68fae Added DO_TOSTACK 1987-09-24 10:26:39 +00:00
ceriel
fd817d4dbc Minor adaptions in order to reduce the size 1987-09-23 16:39:43 +00:00
ceriel
1eda133f01 Added register decl, re-arranged some code 1987-09-23 14:22:39 +00:00
ceriel
1655b2521f Added a register decl 1987-09-22 16:14:38 +00:00
ceriel
45c7ab1938 fix in error reporting 1987-09-21 13:21:50 +00:00
ceriel
6db64e924c several fixes 1987-09-17 16:57:03 +00:00
ceriel
8d2afe1103 some more fixes 1987-09-14 12:41:08 +00:00
ceriel
74c758e503 some more fixes 1987-09-14 11:24:12 +00:00
ceriel
617f210cf8 Added FORchk.c 1987-09-10 15:56:28 +00:00
ceriel
286acd933c make sure argument to open is terminated by a 0-byte 1987-09-08 15:35:34 +00:00
ceriel
1ce6abf3de replaced printfs by fputs where possible 1987-09-08 09:00:29 +00:00
ceriel
8120857c5b disabled listing facilities 1987-09-08 08:59:03 +00:00
ceriel
4059840c43 some fixes/improvements 1987-09-07 19:05:29 +00:00
ceriel
3ea0fc0fe6 deleted some unused variables 1987-09-03 09:32:21 +00:00
ceriel
c9e52b65d4 some minor fixes, and one important 2/4 one in the sbreak function 1987-09-02 18:42:21 +00:00
ceriel
18996b9698 brk must return pointer size 1987-09-02 14:54:32 +00:00
ceriel
93eba2874d previous fix was wrong; added another 1987-09-02 12:52:44 +00:00
ceriel
c93f6d9fb1 yet another fix in freopen: re-opening for reading did not work properly 1987-09-02 12:43:23 +00:00
ceriel
a1ae336247 first arg to putc must be int or char, not long 1987-09-01 18:31:42 +00:00
ceriel
f00c143b28 added declaration for fopen 1987-09-01 15:58:30 +00:00
ceriel
cb16212a09 declared freopen; apparently it is not declared in stdio.h
on some systems
1987-09-01 15:24:15 +00:00
ceriel
dd320002c2 time must be called with a 0-pointer, not with 0! Erikje toch! 1987-09-01 14:18:20 +00:00
ceriel
7e2c3130b0 dont count when USE_TMP is not defined 1987-09-01 10:41:35 +00:00
ceriel2
adce53f009 fix for statics in nested blocks 1987-08-28 09:56:00 +00:00
ceriel
c5d9d997b0 Added .globl, fix in Xfit call 1987-08-26 14:45:27 +00:00
cvs2hg
8d7ceb6d6c fixup commit for tag 'distr2' 1987-08-26 13:58:31 +00:00
ceriel
f4336d6f9d adapted to new semantics of STACK 1987-08-26 13:58:30 +00:00
ceriel
dfbbf1e5d8 adapted table to new semantics of STACK 1987-08-26 13:54:20 +00:00
ceriel
12d731dfcf adapted table to new semantics of STACK 1987-08-26 13:47:37 +00:00
ceriel
c1ffb28416 improved the c-flag, and corrected a bug in the produced relocation info 1987-08-26 13:22:44 +00:00
ceriel
7de2968629 added return.s 1987-08-26 13:06:09 +00:00
ceriel
99f8e49e93 FLOAT did not work 1987-08-24 14:23:13 +00:00
ceriel
6fdd5b6a6d FLOAT did not work 1987-08-24 13:59:06 +00:00
ceriel
f0fc857cb4 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
469b3cc1e1 a fix: UID and GID were sign-extended 1987-08-24 09:13:31 +00:00
ceriel
18b7250736 Added a DO_TOSTACK command, and put set number of ALL in tables.c 1987-08-20 19:04:18 +00:00
ceriel
754f9ce45d fixed a problem with the ifdef-stack 1987-08-20 18:12:31 +00:00
ceriel
831cdc7580 fix to previous one. The previous one did not help, this one does 1987-08-20 16:00:18 +00:00
ceriel
c8afae83c9 fixed bug with quotes 1987-08-20 15:44:45 +00:00
ceriel
fd4f548d6e fixed addition, better patterns for SDL, SDE 1987-08-20 15:30:01 +00:00
ceriel
86b6fe60ea corrected option handling 1987-08-20 13:12:43 +00:00
ceriel
cbcde9a311 told ncg that jsr kills the scratch registers 1987-08-19 19:51:13 +00:00
ceriel
d8370d797b do not accept p flag 1987-08-19 18:13:19 +00:00
ceriel
0983b7700f changed code for loops a bit, and fixed an error in MkCoercion 1987-08-19 18:07:41 +00:00
ceriel
19b0c2a0b0 disabled range-checks 1987-08-19 18:07:01 +00:00
ceriel
9bcd5473ad minor adaption: index array with int, not long 1987-08-19 15:27:15 +00:00
ceriel
7dc04a3207 some minor corrections 1987-08-19 15:23:41 +00:00
ceriel
cc524c3d9a fixed bugs in tzset and ttyslot, adapted malloc to allocate in bigger chunks 1987-08-19 14:44:54 +00:00
ceriel
d747651237 improved -c option 1987-08-19 14:10:39 +00:00
ceriel
d35035fab8 bug fixes: ifval must be an arith, not an int 1987-08-19 10:36:37 +00:00
ceriel
d7b2998ebe LLsymb was declared twice 1987-08-19 10:12:34 +00:00
ceriel
1c85c44fad 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
b53309f9f6 fixed: resulted in memory faults in rare cases 1987-08-17 20:32:00 +00:00
ceriel
939cc2432e fix 1987-08-17 19:39:30 +00:00
ceriel
b3e649e463 fixes to additions 1987-08-17 18:09:31 +00:00
ceriel
ddecd62870 minor fix 1987-08-17 16:30:14 +00:00
ceriel
b3a30acb30 some more additions 1987-08-17 16:24:56 +00:00
ceriel
46589d5798 not finding an include file is fatal 1987-08-17 14:36:55 +00:00
ceriel
c7990b3d31 some fixes to freopen 1987-08-17 14:23:16 +00:00
ceriel
76d34a00e6 fix in LDC CMS 1987-08-17 14:18:40 +00:00
ceriel
b8fb8a57fa fixed setbuf. count field was set wrong 1987-08-14 20:32:08 +00:00
ceriel
a2d921040d 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
07a8c48171 fix in one of those tricky addressing modes 1987-08-14 00:15:49 +00:00
ceriel
538f21b781 some fixes to additions 1987-08-13 15:30:48 +00:00
ceriel
a0e4cd23cc signed compares were just wrong, added a few patterns 1987-08-13 11:22:59 +00:00
ceriel
e571911b1b added cmi4.s 1987-08-13 11:09:24 +00:00
ceriel
3d90e41a7f fixed a fix, which did not fix a bug after all 1987-08-13 10:18:25 +00:00
ceriel
4769a76ca0 corrected 1987-08-12 21:36:30 +00:00
ceriel
a0f89188b9 fixed 1987-08-12 20:51:23 +00:00
ceriel
ab341e1c93 fixed EXG instruction 1987-08-12 18:37:20 +00:00
ceriel
a6bf3e8892 yet another fix, this time to divu/divul/divs/divsl 1987-08-12 18:32:15 +00:00
ceriel
0ba64871f6 added many patterns 1987-08-12 16:19:02 +00:00
ceriel
9338e4e97d revised some patterns that could lead to NO REGS AVAILABLE 1987-08-12 15:58:54 +00:00
ceriel
887f6d16c9 some adaptions undone 1987-08-12 14:51:58 +00:00
ceriel
33d6860d36 stdio.h should not define BMASK 1987-08-12 09:24:57 +00:00
ceriel
123bcfc5e2 fix + some more statistics 1987-08-11 15:31:09 +00:00
ceriel
c3fec1f112 take alignments into account 1987-08-11 15:28:06 +00:00
ceriel
0300bbf5cb adapted sizes somewhat, made facility to print memory statistics 1987-08-11 14:42:15 +00:00
ceriel
a7b7fa4162 Added the possibility to disable range-checks 1987-08-11 10:50:30 +00:00
ceriel
d0b452373b yet another fix in those tricky FOR-loops 1987-08-11 08:58:20 +00:00
ceriel
51169956dc some more fixes, and tried to make smaller 1987-08-10 21:43:47 +00:00
ceriel
3de7f959d3 fix to fix 1987-08-10 14:06:37 +00:00
ceriel
abf9c71fa9 Generated code for FOR-loops was wrong 1987-08-10 13:01:54 +00:00
ceriel
e5af61151e nestlevel count per file 1987-08-10 11:17:20 +00:00
ceriel
b630da3424 nestlevel count per file 1987-08-10 10:43:51 +00:00
ceriel
7d2f8e4d3e dynamic table sizes, commons in ranlib table 1987-08-10 10:20:52 +00:00
ceriel
16082b9056 some fixes 1987-08-07 19:54:45 +00:00
ceriel
4623ed60b0 fixes to preprocessor part 1987-08-07 19:53:54 +00:00
ceriel
3ea06a4a2a ran out of another static list; made length dynamic 1987-08-07 14:35:21 +00:00
ceriel
fec5feef77 deleted a warning 1987-08-06 19:15:40 +00:00
ceriel
34bcf4786b make two versions: one for new peephole optimizer 1987-08-06 19:00:21 +00:00
ceriel
a5e33acf51 fixed manual page 1987-08-06 18:59:07 +00:00
ceriel
a9392483b1 Added files for new peephole optimizer 1987-08-06 18:58:39 +00:00
ceriel
60b336dd34 use newer read_em module, + checking library 1987-08-06 18:56:36 +00:00
ceriel
45264c9c25 align sizes 1987-08-06 18:40:02 +00:00
ceriel
fe67243700 generate commons for bss 1987-08-06 15:11:09 +00:00
ceriel
6cdc7b47cf OUTTRACE was doubly defined 1987-08-06 14:29:16 +00:00
ceriel
12fe5ce838 fix in font-change 1987-08-06 14:26:45 +00:00
ceriel
88eaeed762 code improvement 1987-08-06 14:24:08 +00:00
ceriel
5f6b6651e1 fixes 1987-08-06 14:21:01 +00:00
ceriel
912e362f11 minor mods 1987-08-06 14:20:11 +00:00
ceriel
bfd6e2061f fixed a bug with setjmp.
Fixed a bug with non-struct pointers referring to structs
1987-08-06 14:19:06 +00:00
ceriel
c24f960d82 moved the FCONST moves, so that they are found before the source moves 1987-08-06 13:08:02 +00:00
ceriel
16c73e6654 use malloc instead of sbrk 1987-08-06 13:04:20 +00:00
ceriel
6d85667761 bigger define for MAXSTAB 1987-08-06 13:00:47 +00:00
ceriel
e516b1e321 added end.s 1987-08-06 12:56:11 +00:00
ceriel
b80ad3f9b3 added missing patterns 1987-08-06 12:48:27 +00:00
ceriel
832066b81f use our own assembler instead of /bin/as 1987-08-06 11:36:47 +00:00
ceriel
7f7f9b36cd some nofits are actually errors 1987-08-06 11:17:30 +00:00
ceriel
ce6a1b9cfc many re-arrangements 1987-08-06 10:48:14 +00:00
ceriel
759026de6a to .m instead of .k 1987-08-06 10:27:10 +00:00
ceriel
0b8262a167 handle returns better 1987-08-06 09:55:00 +00:00
ceriel
285654f044 some minor improvements 1987-08-05 18:24:31 +00:00
ceriel
c9f7d845a2 temporary fix for commas within operands 1987-08-05 13:09:37 +00:00
ceriel
6439f09220 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
040495ff56 fixed another bug with header blocks, and modified to use existing header
block when possible
1987-08-05 09:46:38 +00:00
ceriel
3c6a9b2b96 use malloc, made more robust against errors in line directives 1987-08-04 19:30:14 +00:00
ceriel
bcb04a1a76 fix 1987-08-04 19:29:28 +00:00
ceriel
159b84ef68 bug fixes: put header block at end of procedure 1987-08-04 14:13:24 +00:00
ceriel
d34064d660 resulted in 32768 instead of -32768 on a PDP-11 1987-08-04 08:59:50 +00:00
ceriel
956fa21b89 fix: variable sets were handled wrong 1987-08-03 18:20:55 +00:00
ceriel
3883f47fd0 fix in check 1987-08-03 18:03:23 +00:00
ceriel
3ce2cee0a5 Added a break, so that an error message is only given once 1987-08-03 18:00:22 +00:00
ceriel
af3e759da2 fix blocks.c 1987-08-03 14:40:49 +00:00
ceriel
1640b8cad8 fix: may no address more memory than is present blocks.c 1987-08-03 14:04:44 +00:00
ceriel
116a0f81f5 check name offset 1987-08-03 13:22:30 +00:00
ceriel
c37193b667 some cosmetic changes 1987-08-03 11:01:19 +00:00
ceriel
d10dd029b5 updated 1987-08-03 09:47:46 +00:00
ceriel
a203a029cb some cosmetic changes 1987-08-03 09:16:20 +00:00
ceriel
9c014b9e64 some fixes and cosmetic changes 1987-08-03 09:09:07 +00:00
ceriel
3b038786ad removed the limitation of the next field 1987-08-03 09:07:25 +00:00
ceriel
84bce837a0 fix in a call to record 1987-07-30 16:04:29 +00:00
ceriel
064f2b6a8b new version that passes current tests 1987-07-30 14:21:19 +00:00
ceriel
0e397f09f3 many changes; some cosmetic; coercions now explicit in tree 1987-07-30 13:37:39 +00:00
bruce
48a4d04b61 Corrected EMHOME in Makefile (yet again) 1987-07-30 09:42:39 +00:00
ceriel
aa5ab51147 do better bad-pointer testing 1987-07-30 09:20:59 +00:00
ceriel
0e9f072917 yet another fix: outoperand must do nothing with ps_end 1987-07-30 08:59:40 +00:00
ceriel
580bb15076 externals were not handled right 1987-07-29 19:49:15 +00:00
bruce
bf63b12a93 Added removal of dead code patterns 1987-07-29 16:10:27 +00:00
ceriel
3b0057625d did not handle HOL names right (null names) 1987-07-29 10:43:43 +00:00
ceriel
3cd5074594 fix: did not handle externals with big HOL offsets right 1987-07-29 10:39:02 +00:00
ceriel
300623ac88 changed order in LIST, ReadString from InOut still did not work right 1987-07-28 13:46:13 +00:00
bruce
9e55f02c3b Parser outputs some stats and fixed error is pseudo.r 1987-07-28 11:22:59 +00:00
bruce
ac20a570cd Updated nopt.doc for dfa encoded using row displacement 1987-07-28 10:56:44 +00:00
bruce
545bed355d Converted dfa to use row displacement compaction 1987-07-28 09:37:09 +00:00
ceriel
ead2873ab5 fixed the 'too many hits' complaint of refer 1987-07-28 09:06:53 +00:00
ceriel
05831b3438 System V has no ftime systemcall 1987-07-24 13:24:19 +00:00
ceriel
1d7814737d correction: had deleted a line by accident 1987-07-24 11:58:51 +00:00
ceriel
690a4cfbc6 characters were treated as unsigneds, lines with quotes in them
where not treated correctly
1987-07-24 09:21:24 +00:00
ceriel
3af275f8d6 A different way of detecting conformant arrays 1987-07-22 17:02:54 +00:00
ceriel
a1772be47d some cosmetic changes 1987-07-22 16:35:09 +00:00
ceriel
d502a17312 added docs about -Xi flag 1987-07-22 13:42:46 +00:00
ceriel
c550150071 pass -i flag to modula-2 compiler, via -Xi 1987-07-22 13:30:06 +00:00
ceriel
4600a65f07 did not export cerror, did not define _errno 1987-07-22 12:46:07 +00:00
ceriel
0aea30473c some small fixes and additions 1987-07-22 12:42:10 +00:00
bruce
85053cf283 Remove strings library from Makefile 1987-07-22 12:41:46 +00:00
ceriel
0bffe65c24 some more fixes 1987-07-22 10:59:24 +00:00
ceriel
03c5092815 fixed a bug: constant sets were not handled right on 4-byte machines 1987-07-22 09:21:00 +00:00
ceriel
19e580bdc9 fixed a typo 1987-07-22 09:12:47 +00:00
bruce
f5681a4234 Update for single buffer rather that queues 1987-07-21 14:28:11 +00:00
ceriel
6614384f3c fixes, changes to make smaller on PDP 1987-07-21 13:54:33 +00:00
bruce
1c1eed4fd8 Major change: All queues now in same buffer 1987-07-21 13:23:09 +00:00
ceriel
3929b47776 deleted useless tst.b instruction 1987-07-20 14:31:46 +00:00
ceriel
36a5618dc8 do not generate mes 11 AND mes 3! 1987-07-17 14:30:30 +00:00
ceriel
96957f398a call .trp instead of jmp to it 1987-07-17 14:16:39 +00:00
ceriel
5331d4d232 set _buf to 0 on open 1987-07-17 14:04:14 +00:00
ceriel
de55f34bbd name changes, fix in computation of set sizes 1987-07-17 13:50:04 +00:00
ceriel
e0f737c293 include <sys/time.h> on 4.2 systems 1987-07-17 09:38:18 +00:00
ceriel
e04230a126 bug fixes, name changes 1987-07-16 19:51:40 +00:00
ceriel
4804ab14b8 fix: wrong free 1987-07-16 16:08:13 +00:00
ceriel
0619d27b8d use new C_insertpart mechanism, other minor changes 1987-07-16 13:27:37 +00:00
ceriel
2381b2e136 disabled assertions, fixed bug with pack/unpk 1987-07-16 09:44:44 +00:00
ceriel
d843ec9f7a fixes with error_type, make "type" struct more compact. 1987-07-16 09:34:44 +00:00
bruce
287a122d85 remove a couple pieces of trivial lint 1987-07-14 09:15:10 +00:00
ceriel
59e3fd6c2c Added NOFL to Makefile, to pass NOFLOAT. Also improved the clean entry 1987-07-13 16:50:57 +00:00
bruce
ea247567ba Added optimser document 1987-07-13 15:14:13 +00:00
bruce
40b9920f8f dfa.c now a routine for each state rather than nested switch statement 1987-07-13 15:03:27 +00:00
ceriel
b93dc94cdb Added and corrected some comments 1987-07-13 13:34:56 +00:00
ceriel
6a8547cca0 version for installation 1987-07-13 12:53:21 +00:00
ceriel
a1b08c5ee3 compute some expressions in "int" instead of "arith" 1987-07-13 12:46:46 +00:00
ceriel
8dfafeb4e3 fixes 1987-07-13 11:49:32 +00:00
ceriel
c66066a91f fixes 1987-07-13 10:30:37 +00:00
bruce
dc8d6ce37b Remove free queue and use st_alloc/free from alloc module 1987-07-13 10:07:33 +00:00
bruce
c8aaa59e1c New patterns, man page changes, other little fixes 1987-07-10 14:16:32 +00:00
ceriel
a8e086dbc3 yet another bug fix: the brk systemcall destroyed d1 1987-07-10 11:57:45 +00:00
bruce
1b28d14dcb added manual pages for library and stand alone program 1987-07-10 09:08:31 +00:00
ceriel
fbf67d7a29 some fixes 1987-07-10 09:06:19 +00:00
ceriel
f12358bfb0 fix: sbu was wrong for 4-4 1987-07-09 17:46:31 +00:00
ceriel
d61fe61b66 added m2_traps.h 1987-07-09 15:17:56 +00:00
ceriel
c7d4d35200 changed random function, added CSP module 1987-07-09 15:15:22 +00:00
bruce
e5dd1249b2 Added lint entry to Makefile and removed some things lint complained about 1987-07-09 15:04:03 +00:00
bruce
65aab404ba Corrected clean option in Makefile 1987-07-09 09:14:43 +00:00
bruce
64578a3afd 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
74ea5e0bd7 latest changes to PascalIO: Reset and Rewrite have their parameters switched 1987-07-08 16:37:23 +00:00
ceriel
9d66bc3258 fix: sometimes the index mode was used in the wrong way 1987-07-08 16:36:45 +00:00
bruce
466637933a 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
85421efb19 Bug fix: ch7sel should call any2opnd 1987-07-06 18:24:46 +00:00
ceriel
69843cf9ce Added -DNDEBUG to Makefile, table now kills regvars 1987-07-06 15:28:59 +00:00
ceriel
8c10914e78 added Realloc, split into separate files 1987-07-06 14:46:00 +00:00
ceriel
d120b2b73a tried to make faster 1987-07-06 13:03:14 +00:00
ceriel
d6593abd5e bug fix: sometimes register variables were treated as scratch regs! 1987-07-06 10:24:51 +00:00
ceriel
5ca1be74b8 bug fix: did not check externals right 1987-07-03 16:41:45 +00:00
ceriel
5838d4899d name changes 1987-07-03 16:07:18 +00:00
ceriel
54a85f705b fix: errmod --> errmon 1987-07-03 15:50:38 +00:00
ceriel
10caf5c785 The em_argtype sometimes was not set right 1987-07-03 10:35:55 +00:00
ceriel
1310910b23 BASE only used when INCORE 1987-07-01 18:27:00 +00:00
ceriel
83bc77ad51 Added C_insertpart mechanism 1987-07-01 17:24:10 +00:00
ceriel
19897803d4 pass EMHOME on to nested make 1987-07-01 13:15:52 +00:00
ceriel
1487265556 Added seek.c, an interface to the lseek systemcall 1987-07-01 13:00:43 +00:00
ceriel
6161b898cd use proper selector names 1987-07-01 09:52:17 +00:00
ceriel
0e4defe032 again, more consistent naming 1987-06-30 18:59:51 +00:00
ceriel
db6c8a8b79 updated 1987-06-30 18:44:08 +00:00
ceriel
d41028a664 pass EMHOME to nested make 1987-06-30 18:30:45 +00:00
ceriel
d473c8b1df Added some register decls 1987-06-30 18:24:27 +00:00
ceriel
87c67b8c5f EM --> EMHOME 1987-06-30 18:20:25 +00:00
ceriel
480e58cc9f more consistent naming 1987-06-30 17:02:45 +00:00
ceriel
a7cb540ae3 [ek]/C_failed.c removed. Now called failed.c 1987-06-30 16:11:19 +00:00
ceriel
dce90d9491 all external names start with C_ 1987-06-30 16:09:36 +00:00
ceriel
19ffd2c1f2 all external names start with C_, output buffered 1987-06-30 16:09:18 +00:00
ceriel
329cc47ca6 putbyte --> C_putbyte 1987-06-30 15:24:02 +00:00
ceriel
d3031b22b7 fix 1987-06-30 13:17:53 +00:00
ceriel
53d5e42603 minor changes, consistent naming of variables 1987-06-30 13:11:16 +00:00
ceriel
0c5b54219e new version, different interface 1987-06-30 12:55:30 +00:00
ceriel
f6a828b183 fix: ReadREAL did not work, because ok was'nt initialized 1987-06-29 19:33:01 +00:00
ceriel
9179494c16 fix: rck must call trp, not jmp to it. Return is possible. 1987-06-29 18:13:47 +00:00
ceriel
7d26d60bd4 Added the modifications that were made to the Minix code generator 1987-06-29 15:57:48 +00:00
ceriel
7bb843eb0f fixed a bug in a name-changing routine 1987-06-29 14:41:23 +00:00
ceriel
efafb68f00 - 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
b93c1cb093 fixes 1987-06-29 12:27:50 +00:00
ceriel
ea69982a26 fixes, different traps, new files 1987-06-26 15:59:52 +00:00
ceriel
8e013368b3 fix: ConvertInteger was wrong for MIN(INTEGER) 1987-06-23 17:38:18 +00:00
ceriel
1ae2bd256e map -Xs flag to -s for modula-2 compiler 1987-06-23 17:15:56 +00:00
ceriel
43a6aed45c fixes, made more consistent 1987-06-23 17:12:42 +00:00
ceriel
746f94368d fixes, added 's' option 1987-06-23 17:12:25 +00:00
ceriel
ef7fd61029 enabled range checks 1987-06-19 09:47:53 +00:00
ceriel
ea590431d8 fixes 1987-06-19 09:25:08 +00:00
ceriel
befe7be9de Added a kind of range-check for assignments between cards and ints 1987-06-18 17:42:47 +00:00
ceriel
c839c01680 some fixes, and changed priority of unary minus 1987-06-18 15:46:08 +00:00
ceriel
9c01340900 fix: Read did not set "Done" in the "unread" case 1987-06-16 09:04:27 +00:00
ceriel
02044d1d3f fixed bug 1987-06-12 19:10:12 +00:00
ceriel
1e5688a10e exg instruction translated wrong 1987-06-11 14:44:48 +00:00
ceriel
ee3a80c6e5 ReadString did not skip leading spaces 1987-06-11 13:07:27 +00:00
ceriel
a33bd07a3d fix in asp -2 1987-06-11 10:47:13 +00:00
ceriel
278eca6c56 modified print to use _write 1987-06-10 14:52:39 +00:00
ceriel
91bdfb9a12 some more fixes 1987-06-10 14:06:14 +00:00
ceriel
130abb7e3b bug fixes 1987-06-10 13:46:21 +00:00
ceriel
e43a1b00f6 bug fix 1987-06-10 10:33:19 +00:00
ceriel
85023f4c14 some fixes 1987-06-09 15:15:18 +00:00
ceriel
7698c135be corrected some errors 1987-06-09 11:05:09 +00:00
ceriel
7f64ff28c0 added some routines 1987-06-09 10:50:47 +00:00
ceriel
33bd1f17af corrected syntax error 1987-06-09 10:35:22 +00:00
ceriel
f751192942 many changes because of introduction of register variables si/di 1987-06-09 10:22:50 +00:00
ceriel
798261d992 pass EMHOME to nested make 1987-06-09 10:19:47 +00:00
ceriel
470dcc3d11 Added register variables: registers si and di 1987-06-09 09:47:02 +00:00
ceriel
3997e07366 removed printf.s 1987-06-09 09:24:05 +00:00
ceriel
25dd5857c2 minor changes to many files 1987-06-03 19:05:14 +00:00
ceriel
1fb8da7a02 bug fix in local extern-declarations, some other minor changes 1987-06-01 10:17:29 +00:00
ceriel
ed7105e2cf fixed Makefile 1987-06-01 08:59:07 +00:00
ceriel
e3ce64b2a2 fixed Makefile 1987-06-01 08:56:50 +00:00
ceriel
bb9b16ab50 fixes, added some standard functions to handle LONGREAL, LONGINT 1987-05-27 10:16:03 +00:00
ceriel
86c5c56a38 Added Mathlib; MathLib0 now uses Mathlib 1987-05-27 10:05:01 +00:00
ceriel
791ec39e57 fix to fix 1987-05-26 15:35:17 +00:00
ceriel
ac3c871ff8 yet another fix: conditional jumps did not work when exactly 256 bytes away 1987-05-26 15:31:43 +00:00
ceriel
312fe96bbd lseek was not declared 1987-05-25 17:45:57 +00:00
ceriel
5696478540 Added some 'register' to declarations 1987-05-25 09:13:12 +00:00
ceriel
981e5b206b Added .distr 1987-05-22 17:24:46 +00:00
ceriel
9294fb9b8c Added RealConversion 1987-05-22 17:15:09 +00:00
ceriel
61a5c8ce08 divided time costs by 10, because of overflow 1987-05-21 13:59:55 +00:00
ceriel
02ae5e4d7c bug fix, and made more robust 1987-05-21 13:43:56 +00:00
ceriel
6ac092bf38 core_alloc changed to old one 1987-05-21 10:10:27 +00:00
ceriel
4caf71f5b5 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
ed2d6ab75b some changes to make smaller 1987-05-21 09:37:28 +00:00
ceriel
dd2cf6bbaa Fix in wrong assertion 1987-05-21 09:28:33 +00:00
ceriel
1d213e28c4 use stdio to do output 1987-05-20 17:17:42 +00:00
ceriel
1b47f26e4b Some more adaptions to new assembler 1987-05-20 17:15:59 +00:00
ceriel
a8db0ab298 Fixed some bugs 1987-05-20 17:15:22 +00:00
ceriel
479d45d2d9 Added modula, -L was passed twice to peephole optimizer 1987-05-20 14:51:02 +00:00
ceriel
e0694e88a2 Added 'loc slu' pattern 1987-05-20 14:13:29 +00:00
ceriel
0fff5cc80f transfer made to work on pdp/11 EM intrpreter 1987-05-20 14:11:22 +00:00
ceriel
72e27e7dab put mes 2 in front 1987-05-20 14:09:21 +00:00
ceriel
231841bcfe Added some patterns, generate mes 8 after mes 2 1987-05-20 13:56:26 +00:00
ceriel
10e1c10bcf some bug fixes: filename and unintialized data descriptor 1987-05-19 15:13:57 +00:00
ceriel
9eaf539e98 string compare must be on unsigned chars 1987-05-19 08:51:48 +00:00
ceriel
643dee0ab6 Added a pattern for better *p++ operation 1987-05-19 08:50:17 +00:00
ceriel
6731de5286 some bug fixes with 'bisb' 1987-05-18 18:34:59 +00:00
ceriel
946006fb08 many minor corrections 1987-05-18 15:57:33 +00:00
ceriel
e0c3807b29 -1 is now represented as such 1987-05-18 15:54:52 +00:00
ceriel
45f384c870 improved ROM handling 1987-05-18 15:50:42 +00:00
ceriel
66bcbd7d66 declare mktemp and strcpy 1987-05-18 14:27:06 +00:00
ceriel
6a52ce38f9 botch and clear have an unsigned as second arg 1987-05-18 14:16:41 +00:00
ceriel
e938380cb8 Added lintlib 1987-05-18 13:49:59 +00:00
ceriel
869e3bdc9a Added lintlib 1987-05-18 13:37:44 +00:00
ceriel
b14dd671b5 Added lintlib, minor fixes 1987-05-18 13:34:06 +00:00
ceriel
32a436bab4 handle ROM's better 1987-05-18 13:29:32 +00:00
ceriel
cdf0fa6d6b Added lintlib, minor optim 1987-05-18 13:11:50 +00:00
ceriel
ff505d48ed Added lintlib 1987-05-18 13:10:25 +00:00
ceriel
46a07e1da5 Added conversion program 1987-05-18 11:37:18 +00:00
ceriel
d2c6f22e32 Added *REG addressing mode, fixed a bug 1987-05-18 10:40:19 +00:00
ceriel
9e72c25a0f deleted FORMAT, fixed con_float 1987-05-15 16:32:14 +00:00
ceriel
decfd1ce9c bug fix in jmp instruction 1987-05-15 16:31:00 +00:00
ceriel
0679596d4d bug fix in RMI 1987-05-15 15:46:50 +00:00
ceriel
98da0bbffb added end.s 1987-05-15 12:55:51 +00:00
ceriel
3077cb6610 libraries can now be made on any machine 1987-05-15 09:30:47 +00:00
ceriel
4888f39b05 use aal 1987-05-15 09:28:57 +00:00
ceriel
212a9e04ce addd .distr 1987-05-15 09:22:54 +00:00
ceriel
04dc83c149 converted to ACK assembler format 1987-05-15 09:11:10 +00:00
ceriel
7abf78f452 converted to ACK assembler format 1987-05-14 17:45:41 +00:00
ceriel
680e0c347c document zero-initialization 1987-05-14 16:51:53 +00:00
ceriel
5053f2a183 generate code for ACK assembler, including floats 1987-05-14 14:58:21 +00:00
ceriel
235871bf4b minor fix; generate code for ACK assembler 1987-05-14 14:41:16 +00:00
ceriel
731edd0940 Initial revision 1987-05-14 14:32:55 +00:00
ceriel
d1e9f4e811 tell modula-2 compiler about the word-size! 1987-05-14 11:33:24 +00:00
ceriel
d85e43545b fix 1987-05-13 16:38:31 +00:00
ceriel
de8aceeeb4 use aal 1987-05-13 16:32:57 +00:00
ceriel
55e82ef0dc Bug fix: negative integers had the sign at the end 1987-05-13 16:30:06 +00:00
ceriel
b8b798706f fix 1987-05-13 16:19:49 +00:00
ceriel
2f729a1c05 added modula-2 1987-05-13 16:18:17 +00:00
ceriel
c20940b631 added modula-2 1987-05-13 16:16:57 +00:00
ceriel
43c8fb156b Initial revision 1987-05-13 16:13:52 +00:00
ceriel
5f67f1ad64 Added SYSTEM.h 1987-05-13 15:31:21 +00:00
ceriel
b630dc458f install manual pages, standard entries 1987-05-13 15:09:11 +00:00
ceriel
b98c031192 minor adaptions 1987-05-13 14:55:34 +00:00
ceriel
bbb0f99495 added modula-2 1987-05-13 14:41:31 +00:00
ceriel
0cc5442188 Initial revision 1987-05-13 14:36:45 +00:00
ceriel
28bbb40835 bug fix in getarea/freearea 1987-05-13 14:10:11 +00:00
ceriel
6fc7d0f866 bug fix in constant set computations 1987-05-13 13:04:28 +00:00
ceriel
e4cc45b56f fixed problem with em_last file for int24 1987-05-13 10:18:42 +00:00
ceriel
985a52b415 some bug fixes 1987-05-12 18:23:09 +00:00
ceriel
debba57b43 made to work with Modula-2 again 1987-05-12 18:20:10 +00:00
ceriel
e91a85cbec minor fix 1987-05-12 12:34:04 +00:00
ceriel
48acbe27bb fixed a minor bug in cstoper.c: computation of mach_long_sign was wrong 1987-05-12 11:15:55 +00:00
ceriel
46ad9ff041 Added a Giant size 1987-05-12 09:16:15 +00:00
ceriel
927a5636bd 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
b3d24d4ec2 removed the limitation on number of include directories 1987-05-11 14:30:12 +00:00
ceriel
aab8234e55 bug fix in cstoper.c: max_long_sign was computed wrong 1987-05-11 14:19:13 +00:00
ceriel
b6e994767c removed the limitation on number of include directories 1987-05-11 14:08:58 +00:00
ceriel
7df184a5ec previous fix was wrong; corrected 1987-05-11 12:47:59 +00:00
ceriel
63ebea7540 small fix: -I flag was passed twice 1987-05-11 12:31:51 +00:00
ceriel
35fa794781 Fixes to return sequence 1987-05-11 10:24:36 +00:00
ceriel
85f491555f now generates "uninitialized data" descriptors 1987-04-29 14:54:16 +00:00
ceriel
1dba69eb38 bug fix in lseek.e 1987-04-29 13:36:52 +00:00
ceriel
ed582b0752 Added some patterns replacing divides by shifts (done by bruce) 1987-04-29 11:35:00 +00:00
ceriel
fbc0415761 make to work on sun, added copyright, etc 1987-04-29 10:22:07 +00:00
ceriel
8482d6776b Another error in the test 1987-04-28 15:09:39 +00:00
ceriel
d08b6d58ef removed some defines from tunable.h. They were not used. 1987-04-27 15:57:43 +00:00
ceriel
2d8e5089f4 vfork was wrong 1987-04-27 13:11:17 +00:00
ceriel
be4da756bc new LIST file; order was wrong 1987-04-27 12:28:28 +00:00
ceriel
5f533a35ce Thos long footnote marks were ugly. improved. 1987-04-24 13:46:59 +00:00
ceriel
bd90b8aba9 minor correction to sgtty.h, the 4.2 codes where wrong again 1987-04-23 16:24:39 +00:00
ceriel
3fbe8fa7c1 minor correction to sgtty.h, the 4.2 codes where wrong 1987-04-23 16:14:13 +00:00
ceriel
08ad853ac5 sleep sometimes hangs. This is corrected 1987-04-23 15:20:41 +00:00
ceriel
913a1f0b8f Fix for small machines 1987-04-23 14:52:34 +00:00
ceriel
2b9292bc38 Some fixes 1987-04-23 14:49:49 +00:00
ceriel
90c699f418 Fixed wrong mlu4.s 1987-04-23 14:47:28 +00:00
ceriel
41da733a19 minor bug fix: dumped core when called with more than one arg 1987-04-23 12:53:54 +00:00
ceriel
4cbff1975f bug fix: decode did not handle quotes within strings right 1987-04-21 19:34:52 +00:00
ceriel
a142d31a56 Initial revision 1987-04-16 16:04:55 +00:00
ceriel
22961f13af Initial revision 1987-04-16 15:57:16 +00:00
ceriel
23a4c5d7d6 Initial revision 1987-04-16 15:48:27 +00:00
ceriel
f206110cd2 Initial revision 1987-04-16 15:28:46 +00:00
ceriel
25d8e847a7 *** empty log message *** 1987-04-16 15:06:18 +00:00
ceriel
52f733988e Initial revision 1987-04-16 14:32:50 +00:00
ceriel
856935a3f6 usr --> proj 1987-04-16 13:57:54 +00:00
ceriel
2ab263265b Initial revision 1987-04-16 13:27:42 +00:00
ceriel
24aeb4ac0d Added line_prefix.h 1987-04-15 09:30:37 +00:00
ceriel
8123ac83f5 Updated "onerror" docs to current situation 1987-04-14 16:02:37 +00:00
ceriel
cbb10e3b1b I forgot 1987-04-14 11:11:03 +00:00
ceriel
8f1fba2b7b Initial revision 1987-04-13 17:10:33 +00:00
ceriel
161c523488 Added execle.c and ececv.c 1987-04-13 17:09:38 +00:00
ceriel
7158b3a1f6 different "onerror" handling 1987-04-13 16:34:46 +00:00
ceriel
4805d67ca1 -only generate warnings when there are conflict resolvers but no conflicts,
-handle "onerror" differently
1987-04-13 16:11:50 +00:00
ceriel
218c1c46c4 Bug fix, program was not partable. it assumed same byte order as i86. 1987-04-13 15:57:33 +00:00
ceriel
3433445bbb Bug fix: did not accept loc 1 loc 4 cii 1987-04-13 12:52:38 +00:00
ceriel
81b1d21c35 Initial revision 1987-04-13 10:32:47 +00:00
ceriel
5fde79eab8 3rd distribution 1987-04-13 10:31:48 +00:00
ceriel
d94970b0ed bug fix 1987-04-13 08:22:22 +00:00
ceriel
ecf8a9b28f Allow for cumulative -V flags. 1987-04-10 18:03:12 +00:00
ceriel
5fbe427853 variable length names 1987-04-09 14:15:25 +00:00
ceriel
9ff877dce5 final update before distribution 3! 1987-04-09 10:08:52 +00:00
ceriel
0177bf59ff Bug fixes and made faster on PDP-11 1987-04-08 17:15:30 +00:00
ceriel
53a6ded473 fix; %ld is not proper for an int 1987-04-08 15:10:26 +00:00
ceriel
651e3d05e4 don't use $?, it does not work properly (?) 1987-04-08 08:56:34 +00:00
ceriel
bfa97d2311 *** empty log message *** 1987-04-07 11:00:10 +00:00
ceriel
7a8485f425 correction for access systemcall 1987-04-07 10:01:57 +00:00
ceriel
924d580670 yet another bug fix 1987-04-07 09:57:50 +00:00
ceriel
e98dffbb1d undid a fix. Actually, the fix was wrong 1987-04-07 09:08:28 +00:00
ceriel
8ebc170ec0 st_blksize does only exist on 4.2 systems 1987-04-07 08:46:15 +00:00
ceriel
a71813b911 Some more bug fixes 1987-04-06 17:59:57 +00:00
ceriel
a30cbae14d Ported to sun 1987-04-06 13:03:05 +00:00
ceriel
6f1166bcce bug fix 1987-04-06 12:33:28 +00:00
ceriel
e04b39f7a2 Added Pascal library 1987-04-06 07:56:49 +00:00
ceriel
7af2ecb17f minor bug fix 1987-04-03 20:13:08 +00:00
ceriel
a85ecb6719 use LDFLAGS, not LFLAGS 1987-04-03 19:58:39 +00:00
ceriel
aad62add90 Bug fix: a character was compared to op_lab, which is >= 128. 1987-04-03 16:48:53 +00:00
ceriel
80ff3e60c4 2 last minute-additions (oh dear ...) 1987-04-03 16:21:24 +00:00
ceriel
4fd846804a 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
e8bc890c10 improved somewhat 1987-04-03 15:06:25 +00:00
ceriel
f31c9f2a67 target optimizer must be installed before trying to install libraries! 1987-04-03 13:24:20 +00:00
ceriel
e4758a2c48 -K becomes -KR 1987-04-03 13:18:38 +00:00
ceriel
86b0bd5df3 Added some more documentation on the global optimizer 1987-04-03 13:14:37 +00:00
ceriel
96d15a6c05 minor mod 1987-04-03 11:18:49 +00:00
ceriel
4b30a95d7a minor mods 1987-04-03 11:16:46 +00:00
ceriel
e0c5bb9ffe some more fixes 1987-04-03 10:51:37 +00:00
ceriel
924f463126 some more corrections 1987-04-02 16:59:27 +00:00
ceriel
5f0802bd2c correct interpreter description files on SYStem V or Sun machines 1987-04-02 14:26:58 +00:00
ceriel
c42541c99b Added declaration for malloc 1987-04-02 14:12:21 +00:00
ceriel
8675bc2b01 bug fixes 1987-04-02 14:09:21 +00:00
ceriel
75a8a6cc64 some bug fixes 1987-04-02 14:04:17 +00:00
ceriel
1fdfb2b738 improved call to C_lin 1987-04-02 13:02:16 +00:00
ceriel
c73f576314 "word" is always a long 1987-04-02 10:26:42 +00:00
ceriel
d2734bbdd9 "word" is always a long 1987-04-02 10:17:06 +00:00
ceriel
5889533297 "word" now is always a long 1987-04-02 10:07:10 +00:00
ceriel
410bfa3cb2 "word" is always a "long" 1987-04-02 10:04:25 +00:00
ceriel
af7b083fd8 "word" is now always a "long" 1987-04-02 09:54:41 +00:00
ceriel
ab6816c074 Allow "|" in "system" lines, must be in quotes 1987-04-02 09:07:05 +00:00
ceriel
22c23521a3 corrected for 4.2 bsd 1987-04-01 15:37:14 +00:00
ceriel
f76127e364 updated for 3rd distribution 1987-04-01 13:50:18 +00:00
ceriel
75cd05c50e Adapted for distribution 3 1987-04-01 13:47:09 +00:00
ceriel
11db9b8fdc Added EMHOME 1987-04-01 08:54:00 +00:00
ceriel
d9f3663dcc Initial revision 1987-04-01 08:28:20 +00:00
ceriel
395b1bc424 Changed strategy somewhat 1987-04-01 08:20:39 +00:00
ceriel
6eee593f31 Initial revision 1987-03-31 22:17:51 +00:00
ceriel
dec576c89d improved "clean" entry 1987-03-31 13:11:31 +00:00
ceriel
1da25fb7a5 minor change to manual page 1987-03-31 12:44:15 +00:00
ceriel
82f042ba98 Also install manual page 1987-03-31 12:33:23 +00:00
ceriel
e97f144bf4 Initial revision 1987-03-31 12:14:08 +00:00
ceriel
8b90e3480a Added Rcs Id 1987-03-31 11:09:18 +00:00
ceriel
e80b36ded2 Added copyright notice 1987-03-31 11:06:20 +00:00
ceriel
b46981f4ce converted to 4-4 1987-03-31 10:58:30 +00:00
ceriel
5d32d4987e Added copyright notice 1987-03-31 10:50:20 +00:00
ceriel
94f87e3557 replaced copyright notice 1987-03-31 10:45:54 +00:00
ceriel
400c036c67 Added Rcs Id 1987-03-31 10:45:53 +00:00
ceriel
9dbda2e573 *** empty log message *** 1987-03-31 10:34:14 +00:00
ceriel
2fba4e5e99 made more portable 1987-03-31 10:05:26 +00:00
ceriel
bc6486d7b0 Ported to other m68000 systems 1987-03-31 09:23:20 +00:00
ceriel
526d769271 *** empty log message *** 1987-03-31 08:42:07 +00:00
ceriel
f67bfc485c moer robust version 1987-03-31 08:16:41 +00:00
ceriel
b53a5e2540 more robust version 1987-03-31 08:15:22 +00:00
ceriel
23aff10b83 Made to work on system V and SUN 1987-03-31 08:05:50 +00:00
ceriel
f18ec81394 *** empty log message *** 1987-03-31 08:02:40 +00:00
ceriel
0bf8f8ce34 layout improvements 1987-03-31 07:56:14 +00:00
ceriel
ceb3fb4ed3 dispatch tables generated now, layout improvements 1987-03-31 07:54:43 +00:00
ceriel
8e4718c760 modified to generate dispatch tables automatically 1987-03-31 07:51:34 +00:00
ceriel
b578202876 minor layout improvements 1987-03-31 07:45:17 +00:00
ceriel
7a583a86ef don't use /usr/lib/ditroff 1987-03-31 07:43:56 +00:00
ceriel
838e83c1f3 minor improvement in layout 1987-03-31 07:42:10 +00:00
ceriel
49e292676e Some improvements 1987-03-31 07:40:45 +00:00
ceriel
2e3f2a4a62 tail_em must be scanned twice, because tail_mon contains C-routines 1987-03-31 07:30:44 +00:00
ceriel
2e948de48c *** empty log message *** 1987-03-31 07:28:06 +00:00
ceriel
8d209d8e01 umount, NOT unmount! 1987-03-31 07:28:05 +00:00
ceriel
2cc1d41f57 Pass preprocessor flags 1987-03-30 13:20:05 +00:00
ceriel
8d5be706a8 No line directives 1987-03-30 13:18:10 +00:00
ceriel
18e5f78f21 Don't use reghp 1987-03-30 12:40:09 +00:00
ceriel
e07da4cad3 don't use reghp 1987-03-30 12:35:46 +00:00
ceriel
3233aaf5a5 renamed systemcalls 1987-03-30 09:39:38 +00:00
ceriel
3f4f469489 moved the mantra part to another place, because it now
also contains the interpreter part.
1987-03-30 09:19:00 +00:00
ceriel
0036c7bd8a Added interpreter 1987-03-30 09:18:03 +00:00
ceriel
db437cbda8 moved interpreter to another place 1987-03-30 09:05:14 +00:00
ceriel
6c84dcbf80 Initial revision 1987-03-30 08:02:43 +00:00
ceriel
44089a20ab Added occam 1987-03-30 08:00:59 +00:00
ceriel
8e8b8c27d7 use own occam library 1987-03-30 07:59:57 +00:00
ceriel
70c76be920 Use own occam library 1987-03-30 07:55:12 +00:00
ceriel
0170bb504b Added Occam 1987-03-30 07:51:20 +00:00
ceriel
0adc61842f Added ICRNL 1987-03-30 07:48:19 +00:00
ceriel
a0542acab4 removed ".byte" 1987-03-29 13:39:14 +00:00
ceriel
9c0aa5e7a3 updated 1987-03-29 13:33:37 +00:00
ceriel
4f41981cd8 modified to do more in the presence of errors 1987-03-29 13:07:44 +00:00
ceriel
a7c65b091b use print library 1987-03-29 13:00:40 +00:00
ceriel
c6cf0725d0 bug fixes 1987-03-29 12:55:25 +00:00
ceriel
de8fb5d489 Minor fixes 1987-03-27 16:39:57 +00:00
ceriel
5458134efb *** empty log message *** 1987-03-27 15:13:05 +00:00
ceriel
e3043b7dcb minor adaption, to close filedescriptor immediatelym if possible 1987-03-27 15:11:06 +00:00
ceriel
19d29e4018 changd values somewhat, added values for small machines 1987-03-27 13:56:50 +00:00
ceriel
1d443b6b4b bug fix 1987-03-27 13:34:46 +00:00
ceriel
ecc1b3b971 .fat --> .fatal 1987-03-27 12:43:17 +00:00
ceriel
dc44540ee8 *** empty log message *** 1987-03-27 12:27:17 +00:00
ceriel
fa4dfdf813 minor fix to LLlex.h 1987-03-27 10:37:58 +00:00
ceriel
46a405c131 *** empty log message *** 1987-03-27 10:06:59 +00:00
ceriel
129343dc94 Franks version 1987-03-27 10:05:53 +00:00
ceriel
0cc30a7e49 franks version 1987-03-27 09:58:03 +00:00
ceriel
2aa64be3a6 Franks version 1987-03-27 09:55:28 +00:00
ceriel
13c208de3b Fraks version 1987-03-27 09:50:57 +00:00
ceriel
ac395ba4a6 Initial revision 1987-03-27 09:47:16 +00:00
ceriel
3177072e2f Frans doodemans version 1987-03-27 09:33:02 +00:00
ceriel
2febff1a79 Frans Doodemans version 1987-03-27 09:28:16 +00:00
ceriel
f4fb73386e fixed 1987-03-27 09:21:14 +00:00
ceriel
cf8d769c73 fixed 1987-03-27 09:06:28 +00:00
ceriel
9c8b34c47d remainder now returned in d0 1987-03-27 08:57:38 +00:00
ceriel
ea63596eb3 remainder now is returned in d0. 1987-03-27 08:49:14 +00:00
ceriel
db5b8614f3 *** empty log message *** 1987-03-26 17:54:45 +00:00
ceriel
e190db8128 Initial revision 1987-03-26 17:36:49 +00:00
ceriel
da28bdd2f0 Adapted for system V 1987-03-26 17:33:23 +00:00
ceriel
21e0bd5996 Initial revision 1987-03-26 17:30:29 +00:00
ceriel
4e19ece566 another fix for an illegal initialisation struct 1987-03-26 16:16:21 +00:00
ceriel
bac2a42c82 added estack.str, minor fix 1987-03-26 15:32:26 +00:00
ceriel
044587ec57 added index 1987-03-26 15:28:08 +00:00
ceriel
32d12a9c7a Another adaption for small machines 1987-03-26 12:45:16 +00:00
ceriel
f37189ba9b modification to make it easier to edit 1987-03-26 12:44:04 +00:00
ceriel
1cfa4a7bec Don't use ranges in the "tr" command. They work differently on
System V
1987-03-26 11:16:28 +00:00
ceriel
4eb84b928b align parameters on word_size, not word_align 1987-03-26 11:05:28 +00:00
ceriel
2f74f819d4 Use "myecho" when using -n option 1987-03-26 10:33:30 +00:00
ceriel
09125cce6b redesign of ival, other minor changes 1987-03-25 23:14:43 +00:00
ceriel
db666da35a improved the "clean" entry 1987-03-25 22:48:25 +00:00
ceriel
8c20d513fd updated 1987-03-25 22:43:09 +00:00
ceriel
c65803b306 made a bit more verbose 1987-03-25 22:26:46 +00:00
ceriel
0cd2bbdc09 updated 1987-03-25 18:52:04 +00:00
ceriel
8a5f7d09c9 minor mods 1987-03-25 17:54:24 +00:00
ceriel
528ec8869b install a smaller malloc 1987-03-25 17:39:18 +00:00
ceriel
e5116f86dc Fixed a problem with SRU: no regs available 1987-03-25 16:26:58 +00:00
ceriel
3e694c1b9d made names of dynamically varying length 1987-03-25 16:24:41 +00:00
ceriel
eeb5148f29 BMASK was unsigned, which caused problems with some C compilers (ours) 1987-03-25 15:57:22 +00:00
ceriel
7f60f6f8c1 Added possibility to pass -V option to compilers 1987-03-25 12:42:12 +00:00
ceriel
032929c22c changed IDL 1987-03-25 10:53:47 +00:00
ceriel
9748f946ce Allow ANY to be used in a constraint 1987-03-25 08:35:01 +00:00
ceriel
a0897e2ed3 Generated illegal initialization constants. 1987-03-25 07:53:57 +00:00
ceriel
f408948925 description of asopt apparently has to be in front of the one for as. 1987-03-25 07:49:59 +00:00
ceriel
1dd241938c replaced cc by $(CC) 1987-03-24 11:10:23 +00:00
ceriel
34f41d7bf1 bug fix 1987-03-24 08:41:44 +00:00
ceriel
43c55159d6 more porting to pdp 11 1987-03-23 23:27:03 +00:00
ceriel
e67b672727 more porting to vu45 1987-03-23 23:22:54 +00:00
ceriel
91b39c7df7 Replaced comment char '#' with '!'.
Some shells use # as a comment char.
1987-03-23 21:01:36 +00:00
ceriel
1694c10f39 Adapted for new distribution 1987-03-23 21:00:02 +00:00
ceriel
391f6cc9ea could not be handled by MINIX pre-processor 1987-03-23 14:48:56 +00:00
ceriel
375b5e9182 Bug fix in BLM 1987-03-20 19:21:23 +00:00
ceriel
4e03fc78dd many minor fixes and modifications 1987-03-20 08:30:31 +00:00
ceriel
73818f1a53 bug fix 1987-03-19 11:21:54 +00:00
ceriel
bcd037018f still does not fit. Delete bitfields 1987-03-19 10:51:40 +00:00
ceriel
878cbab737 deleted "unsigned chars" 1987-03-19 10:20:40 +00:00
ceriel
b86dc9f84d adapted for 7 character significance 1987-03-19 10:16:56 +00:00
ceriel
8829d77144 made name shorter 1987-03-19 10:15:58 +00:00
ceriel
88db8b43da Added distr entry 1987-03-19 10:12:51 +00:00
ceriel
fd1682052d contained a switch on a long 1987-03-19 10:08:31 +00:00
ceriel
74a1a176c5 em?.o and C_failed.o must be at the end of the archive 1987-03-18 19:20:38 +00:00
ceriel
dcf7aa2723 Also install manual page 1987-03-18 19:15:56 +00:00
ceriel
80fd06aa6a Added LDFLAGS 1987-03-18 09:50:46 +00:00
ceriel
bede819e42 Made the dummy ranlib more verbose 1987-03-18 09:44:56 +00:00
ceriel
5fe6bf0fcd made to work on pdp-11 1987-03-18 09:35:31 +00:00
ceriel
8e9f1f781c changed some names of field selectors 1987-03-18 09:29:56 +00:00
ceriel
50a71251a1 contained calls of non-functions 1987-03-17 22:54:16 +00:00
ceriel
717af548d5 improved userhook handling, requiring a change in LLnext and LLskip 1987-03-17 22:50:40 +00:00
ceriel
451c0d6679 improved userhook handling, This required some changes in the semantics
of LLnext and LLskip.
1987-03-17 22:41:18 +00:00
ceriel
78303cdc07 improved storage allocation 1987-03-17 22:31:43 +00:00
ceriel
10080ca0f2 deleted exit.c 1987-03-17 22:28:15 +00:00
ceriel
f95c97b38c Use LDFLAGS 1987-03-17 16:37:04 +00:00
ceriel
bbce3bd894 use LDFLAGS 1987-03-17 16:33:55 +00:00
ceriel
15382edbd6 *** empty log message *** 1987-03-17 16:24:42 +00:00
ceriel
b7cd38ab12 Use LDFLAGS 1987-03-17 16:18:08 +00:00
ceriel
2d9f4d8c03 LDFLAGS: -i 1987-03-17 16:15:32 +00:00
ceriel
ee4d170525 Made constants dependant on size of machine 1987-03-17 14:42:12 +00:00
ceriel
a6b6375985 Don't switch on longs! 1987-03-17 11:12:09 +00:00
ceriel
e203ddb7b6 Don't use the -n option! 1987-03-17 11:02:37 +00:00
ceriel
321fa30a5f bug fix 1987-03-17 10:44:16 +00:00
ceriel
d676a5df2a Bug fix 1987-03-17 10:39:18 +00:00
ceriel
58923cbcc0 prevent use of ranlib on pdp-11's 1987-03-17 00:33:41 +00:00
ceriel
2e7ca940c2 many changes for installing 3rd distribution 1987-03-17 00:14:10 +00:00
ceriel
49714af3e6 *** empty log message *** 1987-03-17 00:13:03 +00:00
ceriel
c5b11f6ad3 Initial revision 1987-03-16 23:53:04 +00:00
ceriel
89c7440c0d Initial revision 1987-03-16 23:32:34 +00:00
ceriel
c41f370421 Added LEXLIB 1987-03-16 22:35:21 +00:00
ceriel
52cc95b957 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
9a07fc841f Default paths were computed wrong. This is corrected. 1987-03-16 22:26:03 +00:00
ceriel
d52e25949a Indirect function calls should be just that! 1987-03-16 15:14:52 +00:00
ceriel
e140a87a6b bug fix 1987-03-16 15:11:51 +00:00
ceriel
617303659c Deleted reference to unused varaibles 1987-03-16 15:09:36 +00:00
ceriel
2135ccd420 %c does not work with null-bytes on some systems (BSD 2.9) 1987-03-16 08:56:31 +00:00
ceriel
909a82d2d7 updated 1987-03-12 23:46:19 +00:00
ceriel
dbfe40a080 The updated installation guide for distribution 3 1987-03-12 23:44:29 +00:00
ceriel
3f75d2b08f Added -Dvoid=int to CFLAGS 1987-03-12 22:50:03 +00:00
ceriel
21b427d4df made just a little bit more robust 1987-03-12 22:29:25 +00:00
ceriel
4549b5129d don't use "void"! 1987-03-12 22:24:19 +00:00
ceriel
60f9d1b6c6 don't use void! 1987-03-12 22:23:17 +00:00
ceriel
9ab7bf2408 Bug fixes 1987-03-12 19:18:59 +00:00
ceriel
755ea27d46 Added room for data, made room for rom smaller 1987-03-12 17:53:32 +00:00
ceriel
3f566164c2 Bug fixed that prevented "aal x" from working properly 1987-03-12 17:16:04 +00:00
ceriel
dbac04eb47 removed the "void" stuff. Some compilers just don't digest it. 1987-03-12 11:33:24 +00:00
ceriel
991c568ee4 moved the definition of sys_filesize. It had a funny place. 1987-03-12 09:30:03 +00:00
ceriel
9d744c31c3 Replaced the comment character by a !.
The #-character caused problems.
1987-03-12 08:46:58 +00:00
ceriel
7ae0622730 replaced copyright notice 1987-03-12 08:25:15 +00:00
ceriel
e0aa93de4c replaced copyright 1987-03-12 08:23:08 +00:00
ceriel
d8463c9bc4 it's --> its 1987-03-11 21:47:25 +00:00
ceriel
4bbe1cfa65 Added ashow 1987-03-11 17:12:38 +00:00
ceriel
9a3d983659 Initial revision 1987-03-11 17:12:23 +00:00
ceriel
1452a26361 minor mod 1987-03-11 16:15:16 +00:00
ceriel
bdebe50836 *** empty log message *** 1987-03-11 15:55:51 +00:00
ceriel
edcea8f6db Updated for 3rd distribution 1987-03-11 15:51:35 +00:00
ceriel
50b2140d46 Adapted to current situation 1987-03-11 15:41:52 +00:00
ceriel
e2eeea5162 remove regnoglob.c and regglob.c before copying to them 1987-03-11 15:39:01 +00:00
ceriel
35f5f8e187 *** empty log message *** 1987-03-11 15:16:01 +00:00
ceriel
f8e02e5d4c Added arch.5 1987-03-11 15:09:25 +00:00
ceriel
32fa870855 Initial revision 1987-03-11 15:07:29 +00:00
ceriel
b99a714497 minor changes 1987-03-11 14:54:29 +00:00
ceriel
778948b661 Working version 1987-03-11 14:30:13 +00:00
ceriel
f6083608f9 minor change 1987-03-11 14:19:02 +00:00
ceriel
f694435063 minor change 1987-03-11 13:56:17 +00:00
ceriel
e86b8463ea minor change 1987-03-11 13:34:07 +00:00
ceriel
9d24b2a46b *** empty log message *** 1987-03-11 13:13:49 +00:00
ceriel
9e0913d6e4 Initial revision 1987-03-11 13:13:36 +00:00
ceriel
e03d11afa2 Bug fix. 1987-03-11 11:13:55 +00:00
ceriel
7aa7619c4e *** empty log message *** 1987-03-11 11:05:32 +00:00
ceriel
9db939f74e Added sun2 1987-03-11 09:50:23 +00:00
ceriel
96fd613e89 Added a "distr" entry 1987-03-11 09:49:33 +00:00
ceriel
8a9b2379dc Bug fixed that was introduced by Kees Visser's modifications 1987-03-11 09:23:23 +00:00
ceriel
07f5d3cce4 Fixed a bug with line-directives, added copyright notice 1987-03-10 17:51:10 +00:00
ceriel
94ff96cf1f bug fix 1987-03-10 17:41:37 +00:00
ceriel
fb775d4ead Bug fix 1987-03-10 17:38:55 +00:00
ceriel
12f56d6501 Initial revision 1987-03-10 16:49:13 +00:00
ceriel
b234851f00 Deleted -DUSG 1987-03-10 15:55:39 +00:00
ceriel
6338348877 Added __USG 1987-03-10 15:54:32 +00:00
ceriel
c6dee66c71 Deleted -DBSD4_2 1987-03-10 15:45:38 +00:00
ceriel
4cf6acb1e2 *** empty log message *** 1987-03-10 15:44:25 +00:00
ceriel
8fb04a83bc Removed -DBSD4_2 1987-03-10 15:41:20 +00:00
ceriel
587c766673 Added CC_ALIGN 1987-03-10 15:40:20 +00:00
ceriel
76fea1fbca __USG and __BSD4_2 introduced, dysize added 1987-03-10 15:07:26 +00:00
ceriel
6852a8ef39 use __BSD4_2 1987-03-10 14:50:48 +00:00
ceriel
517baed1b1 use __BSD4_2 and __USG 1987-03-10 14:49:29 +00:00
ceriel
2e4cf6fe8c Added a define for __BSD4_2 1987-03-10 14:14:38 +00:00
ceriel
85d5cf1407 ino_t is a long on 4.2 systems 1987-03-10 14:10:34 +00:00
ceriel
053564d9e9 Added Rcs Id 1987-03-10 11:58:22 +00:00
ceriel
6eaf182cee Added Rcs Id 1987-03-10 11:49:39 +00:00
ceriel
16687889e3 *** empty log message *** 1987-03-10 10:27:24 +00:00
ceriel
32ca133da5 Initial revision 1987-03-10 10:23:19 +00:00
ceriel
a18b0fbcff Initial revision 1987-03-10 10:09:07 +00:00
ceriel
4f0cb4abe1 Added Rcs Id 1987-03-10 09:24:02 +00:00
ceriel
6c812387fd Added copyright notice 1987-03-10 01:42:07 +00:00
ceriel
5537abbdfb Added copyright notice 1987-03-10 01:26:51 +00:00
ceriel
7649bba8f5 Added copyright notice 1987-03-10 00:12:40 +00:00
ceriel
0772a09303 *** empty log message *** 1987-03-09 23:50:41 +00:00
ceriel
b43fed4fbc Added copyright notice 1987-03-09 23:47:46 +00:00
ceriel
7270bbb7f0 Added copyright notice 1987-03-09 22:11:47 +00:00
ceriel
a0eea34497 Added copyright notice 1987-03-09 22:06:21 +00:00
ceriel
49ac6c4e07 Added copyright notice 1987-03-09 21:59:22 +00:00
ceriel
462cb0421f Added copyright notice 1987-03-09 21:33:18 +00:00
ceriel
d6e4d5a18c Added copyright notice 1987-03-09 21:20:21 +00:00
ceriel
815166e421 Added copyright notice 1987-03-09 19:15:41 +00:00
ceriel
7880748ecd Added copyright notice 1987-03-09 16:02:32 +00:00
ceriel
aae2cebccd Initial revision 1987-03-09 15:53:04 +00:00
ceriel
f43b2cb2bd Adapted for new version 1987-03-09 15:48:43 +00:00
ceriel
4e5611ac7b Added copyright notice 1987-03-09 15:22:58 +00:00
ceriel
b8835cee3f Added copyright notice 1987-03-09 15:15:03 +00:00
ceriel
c428b33acc replaced return by exit 1987-03-09 14:22:45 +00:00
ceriel
262490efaa Replaced return from main by exit 1987-03-09 13:29:04 +00:00
ceriel
11af9f9716 replaced returns from main by exits (bloody SUN) 1987-03-09 13:25:44 +00:00
ceriel
bb787ae7cb Added exit from main 1987-03-09 13:22:45 +00:00
ceriel
2fba9c579e Added exit to main program of tab.c 1987-03-09 13:19:38 +00:00
ceriel
1583b4191a Added an exit from main 1987-03-09 13:14:32 +00:00
ceriel
1fdc5a5fe6 replaced returns from main by exits (bloody SUN) 1987-03-09 13:07:42 +00:00
ceriel
717baa8bd8 Added exit to main 1987-03-09 13:04:58 +00:00
ceriel
0bec865e32 Added an exit from main 1987-03-09 13:01:51 +00:00
ceriel
29a4a0266b exit from main, instead of return (bloody SUN) 1987-03-09 12:59:18 +00:00
ceriel
40424d5864 exit from main instead of return (bloody SUN) 1987-03-09 12:55:24 +00:00
ceriel
ead0c95f43 Added an exit form main 1987-03-09 12:54:03 +00:00
ceriel
839be66f85 exit from main instead of return 1987-03-09 12:52:10 +00:00
ceriel
8fc79aa735 to3dig did not give a return value 1987-03-09 12:47:23 +00:00
ceriel
c094aebd80 Select did not handle these HOL's 1987-03-09 12:42:42 +00:00
ceriel
dea6cc76e3 exits instead of returns from main (bloody SUN) 1987-03-09 11:45:49 +00:00
ceriel
236c6c40f0 Added a warning for floating point constants 1987-03-09 11:25:28 +00:00
ceriel
49fc462ee5 *** empty log message *** 1987-03-09 10:43:44 +00:00
ceriel
fa0f6cd0c6 Lindseys fix to a bug with nested procedures 1987-03-09 10:15:51 +00:00
ceriel
539c95237e remove dummy when cleaning 1987-03-06 16:40:56 +00:00
ceriel
eef81c09bb Initial revision 1987-03-06 16:36:16 +00:00
ceriel
742a4d91d4 Initial revision 1987-03-06 14:41:52 +00:00
ceriel
1be18e9a48 Initial revision 1987-03-06 09:02:15 +00:00
ceriel
3c9b5ad0bd deleted idepth 1987-03-06 08:38:29 +00:00
ceriel
5f15b0bce0 Now really NOFLOAT 1987-03-06 00:00:34 +00:00
ceriel
f1f98288e0 Handle NOFLOAT 1987-03-05 19:55:40 +00:00
ceriel
4539fd3e09 bug fix 1987-03-05 19:27:53 +00:00
ceriel
a39c668bab *** empty log message *** 1987-03-05 19:24:35 +00:00
ceriel
1a5d5ddec2 procentry/procexit were not called properly 1987-03-05 19:22:33 +00:00
ceriel
f36ee6de55 could loop again 1987-03-05 17:40:48 +00:00
ceriel
7559525e48 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
a1c73c0335 main exits instead of returns. Bloody SUNs 1987-03-05 15:22:05 +00:00
ceriel
1ac5d646cf *** empty log message *** 1987-03-05 15:04:44 +00:00
ceriel
6ac8c31b76 Improved installation procedure 1987-03-05 15:00:13 +00:00
ceriel
8fbd81a884 A wrong flag is no longer fatal 1987-03-05 14:57:15 +00:00
ceriel
11ef9eed01 divu.l, etc where encoded wrong. 1987-03-05 11:21:34 +00:00
ceriel
66c5ebf42f 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
3e68ea031b Bug fix in LIM instruction 1987-03-05 11:02:05 +00:00
ceriel
bb51b8f4c0 *** empty log message *** 1987-03-05 10:59:57 +00:00
ceriel
f87e83c697 ??? 1987-03-05 10:57:33 +00:00
ceriel
a3426ca0e2 *** empty log message *** 1987-03-04 16:43:03 +00:00
ceriel
8c3fc983bc Also remove "main" when making clean 1987-03-04 15:46:02 +00:00
ceriel
5380ae4768 Set "saveemp" before calling compute. compute might need it. 1987-03-04 10:34:57 +00:00
ceriel
0b92bc0cd7 Set saveemp before calling "compute". "compute" might need it! 1987-03-04 10:32:22 +00:00
ceriel
48296556f5 fixed typo 1987-03-04 10:14:13 +00:00
ceriel
55b3557f22 *** empty log message *** 1987-03-04 10:01:01 +00:00
ceriel
25dfa91caa *** empty log message *** 1987-03-04 09:54:23 +00:00
ceriel
bb6058feaa Remove .c files after making "all" 1987-03-03 15:52:36 +00:00
ceriel
a2da7ad5f8 Don't remove .c files 1987-03-03 15:52:09 +00:00
ceriel
b7ee0bf85e *** empty log message *** 1987-03-03 11:22:29 +00:00
ceriel
652354e59d Replaced returns from main by exits (bloody suns!) 1987-03-03 11:13:52 +00:00
ceriel
48cc05ccf2 *** empty log message *** 1987-03-03 11:11:39 +00:00
ceriel
004f017550 Initial revision 1987-03-03 10:59:52 +00:00
ceriel
4d4c8b45fb *** empty log message *** 1987-03-03 10:49:10 +00:00
ceriel
295380491f Initial revision 1987-03-03 10:44:56 +00:00
ceriel
2d362c2274 Added Henri's article 1987-03-03 10:43:03 +00:00
ceriel
fcaf807aed Initial revision 1987-03-03 10:25:25 +00:00
ceriel
2f9ab80205 Initial revision 1987-03-03 09:46:29 +00:00
ceriel
c32da75ccd Initial revision 1987-03-03 09:37:26 +00:00
ceriel
1194f5f28c Initial revision 1987-03-03 08:48:53 +00:00
ceriel
c4a8f2371d *** empty log message *** 1987-03-03 08:43:46 +00:00
ceriel
c5f0e41be9 clean up the mess after compiling 1987-03-02 19:30:24 +00:00
ceriel
154bb5df06 Now uses BIGMACHINE from local.h 1987-03-02 17:30:37 +00:00
ceriel
30d1a948c8 Added "BIGMACHINE" 1987-03-02 17:28:50 +00:00
ceriel
5097663cb8 Bug foix 1987-03-02 17:18:11 +00:00
ceriel
04618dbe64 Don't pass -O to lint. 1987-03-02 16:48:46 +00:00
ceriel
721de974ee Bug fix 1987-03-02 16:43:19 +00:00
ceriel
70a459a112 Be a bit more tolerant about line directives. 1987-03-02 16:40:14 +00:00
ceriel
cc70e683c7 Adapted for new framework. 1987-03-02 16:22:15 +00:00
ceriel
eb5d7ef3fe Improved userhooks 1987-03-02 16:15:07 +00:00
ceriel
b457c3dc09 Adapted to current situation 1987-03-02 13:30:52 +00:00
ceriel
27a779e535 Adapted to current situation and format 1987-03-02 13:13:24 +00:00
ceriel
e41a9f5b9c Added manual pages 1987-03-02 13:08:51 +00:00
ceriel
f9b1523794 Initial revision 1987-03-02 13:06:23 +00:00
ceriel
033000c4e1 Added manaul page 1987-03-02 13:03:17 +00:00
ceriel
a08ef0e369 *** empty log message *** 1987-03-02 12:54:52 +00:00
ceriel
bc1fb58cd6 SHARE --> SHR 1987-03-02 12:42:38 +00:00
ceriel
a584a04f03 fixed typo 1987-03-02 12:31:44 +00:00
ceriel
b0d2a7c913 Initial revision 1987-03-02 11:28:52 +00:00
ceriel
e4af749931 Adapted to current situation 1987-03-02 10:35:44 +00:00
ceriel
611c948140 reordering, becaiuseuse "cmisc" utilities were needed before "modules" 1987-03-02 09:09:16 +00:00
ceriel
f1fc51c85c Sun defines tmpfile in stdio.h. Renamed Tmpfile 1987-03-02 09:06:26 +00:00
ceriel
1e10c0cf98 maxchunk definition made static 1987-03-02 08:55:23 +00:00
ceriel
b10452c2dc Forced first linedirective with source filename 1987-03-02 08:50:08 +00:00
ceriel
8ed274e96e *** empty log message *** 1987-03-02 08:48:36 +00:00
ceriel
3115fb5402 Initial revision 1987-02-27 17:11:54 +00:00
ceriel
a40c4a87ba 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
2f204ff2ca Initial revision 1987-02-27 16:04:07 +00:00
ceriel
d0103bd7d9 *** empty log message *** 1987-02-27 13:07:49 +00:00
ceriel
a3d34a0e63 *** empty log message *** 1987-02-27 12:54:03 +00:00
ceriel
13a3574979 used to dump core on empty files 1987-02-27 09:54:23 +00:00
ceriel
f5099e7d9a *** empty log message *** 1987-02-26 19:54:57 +00:00
ceriel
f8204dc8a9 newer version 1987-02-26 19:49:42 +00:00
ceriel
7932234ed8 Added Occam 1987-02-26 19:47:01 +00:00
ceriel
59de9303c5 Initial revision 1987-02-26 19:46:35 +00:00
ceriel
e10e56542d *** empty log message *** 1987-02-26 19:41:49 +00:00
ceriel
474d2fb2c6 Ported to System V 1987-02-26 17:58:55 +00:00
ceriel
45bae5569b Deleed mantra4 1987-02-26 16:31:26 +00:00
ceriel
eee1d86fc3 *** empty log message *** 1987-02-26 16:22:08 +00:00
ceriel
d35866d832 Added cv 1987-02-26 16:18:39 +00:00
ceriel
5939ce9331 Added the cv program 1987-02-26 16:05:00 +00:00
ceriel
a7329c38e3 Updated 1987-02-26 15:44:00 +00:00
ceriel
0e0071d790 Added another pattern 1987-02-26 15:40:44 +00:00
ceriel
8c0d727dc1 Bug fix in strswap 1987-02-26 14:08:16 +00:00
ceriel
509439d906 Added ocm, m2, ego, opt2, . 1987-02-26 12:45:37 +00:00
ceriel
63f1aea871 Added the SUFFIX variable 1987-02-26 12:44:11 +00:00
ceriel
c4e1e516ee Adapted to current situation 1987-02-26 10:29:12 +00:00
ceriel
690cd32023 Initial revision 1987-02-26 10:26:19 +00:00
ceriel
00b8ca7b58 Added Occam 1987-02-26 10:24:07 +00:00
ceriel
f06b2707b9 Added Occam 1987-02-26 10:06:50 +00:00
ceriel
51eff14456 Initial revision 1987-02-26 09:55:46 +00:00
ceriel
84e04a4859 Added Occam 1987-02-25 19:45:49 +00:00
ceriel
cfd7ba8bbb *** empty log message *** 1987-02-25 19:45:18 +00:00
ceriel
4922093f24 Initial revision 1987-02-25 19:45:17 +00:00
ceriel
897d312a1d Adeded Occam 1987-02-25 19:44:22 +00:00
ceriel
457e3f6033 Added OPccam 1987-02-25 19:40:22 +00:00
ceriel
59e9948aac Initial revision 1987-02-25 19:16:28 +00:00
ceriel
3ab2228a8b *** empty log message *** 1987-02-25 19:10:01 +00:00
ceriel
992a6a39c5 Added occam 1987-02-25 19:05:21 +00:00
ceriel
b66b1b1965 adapted for new C-compiler 1987-02-25 19:00:04 +00:00
ceriel
3b2e80225a *** empty log message *** 1987-02-25 18:54:14 +00:00
ceriel
1fddbd0ee3 Initial revision 1987-02-25 18:30:22 +00:00
ceriel
32be4760cd Initial revision 1987-02-25 17:14:10 +00:00
ceriel
cc60420184 *** empty log message *** 1987-02-25 16:58:32 +00:00
ceriel
a5d96ae90f my version (CJ) 1987-02-25 16:56:31 +00:00
ceriel
cf04776017 *** empty log message *** 1987-02-25 16:42:41 +00:00
ceriel
0d6d5ff541 Initial revision 1987-02-25 16:41:54 +00:00
ceriel
362378a94a my version (CJ) 1987-02-25 16:41:09 +00:00
ceriel
59fd6b0334 *** empty log message *** 1987-02-25 13:47:15 +00:00
ceriel
a2c18875f6 *** empty log message *** 1987-02-25 11:04:30 +00:00
ceriel
c57a723546 *** empty log message *** 1987-02-24 18:41:53 +00:00
ceriel
2eeacf071a Initial revision 1987-02-24 18:36:02 +00:00
ceriel
bc94559e4d Initial revision 1987-02-24 17:05:53 +00:00
ceriel
a731f979b0 many new things 1987-02-24 16:41:01 +00:00
ceriel
7dc1c84031 Adapted to new distr3 1987-02-24 16:36:22 +00:00
ceriel
c05eb0a5c7 *** empty log message *** 1987-02-24 16:07:04 +00:00
ceriel
3edd0994c6 Added ncgg.6 1987-02-24 15:47:05 +00:00
ceriel
e51bf3a056 *** empty log message *** 1987-02-24 15:44:46 +00:00
ceriel
3a91ff6da5 renamed a parameters because a local had the same name 1987-02-24 15:41:16 +00:00
ceriel
ac7976eea9 *** empty log message *** 1987-02-24 15:36:34 +00:00
ceriel
40a36c570e vi Ma 1987-02-24 15:32:48 +00:00
ceriel
0d6f436e2f *** empty log message *** 1987-02-24 13:47:23 +00:00
ceriel
9cab0b0105 *** empty log message *** 1987-02-24 13:10:59 +00:00
ceriel
5817719a7c An #endif was missing 1987-02-24 12:38:21 +00:00
ceriel
c24b0dad86 Initial revision 1987-02-24 11:17:50 +00:00
ceriel
fef3cce6e0 solved some problems with include files 1987-02-24 10:54:20 +00:00
ceriel
45bffe9e26 solved a problem with include files 1987-02-24 10:49:54 +00:00
ceriel
141753d598 still referred to BadAssertion.c instead of BadAssert.c 1987-02-24 10:45:54 +00:00
ceriel
4c11fded37 4/4, new C compiler 1987-02-24 10:15:46 +00:00
ceriel
bbcf72b0e4 4/4, new C cmpiler 1987-02-24 10:00:37 +00:00
ceriel
ea8fd6991c *** empty log message *** 1987-02-23 23:35:42 +00:00
ceriel
aa2add89cd *** empty log message *** 1987-02-23 23:28:06 +00:00
ceriel
780c7ba10d *** empty log message *** 1987-02-23 22:49:20 +00:00
em
eb02375ee5 do not generate .c files when cleaninmg up 1987-02-23 22:38:45 +00:00
em
7a946c5bf4 cleanup --> clean 1987-02-23 22:35:21 +00:00
ceriel
98654d6c0f *** empty log message *** 1987-02-23 19:48:17 +00:00
ceriel
47d61c3ae9 Initial revision 1987-02-23 19:47:00 +00:00
ceriel
4fe6ea9c8a *** empty log message *** 1987-02-23 19:39:57 +00:00
ceriel
f8b59e9308 Initial revision 1987-02-23 19:38:14 +00:00
ceriel
3baea33f46 *** empty log message *** 1987-02-23 19:18:57 +00:00
ceriel
d640f098b9 updated to current situation 1987-02-23 19:15:33 +00:00
ceriel
75cfdc06c6 Initial revision 1987-02-23 19:14:34 +00:00
ceriel
a8ef006163 *** empty log message *** 1987-02-23 19:08:18 +00:00
ceriel
5bb235c02a Initial revision 1987-02-23 19:04:27 +00:00
ceriel
4ffb6fe8bd Initial revision 1987-02-23 18:58:58 +00:00
ceriel
318e1bfec8 *** empty log message *** 1987-02-23 18:28:42 +00:00
ceriel
925ec7555f bug fix 1987-02-23 15:48:27 +00:00
ceriel
e2ab98dea0 *** empty log message *** 1987-02-23 14:22:16 +00:00
ceriel
3ce0d62f83 Initial revision 1987-02-23 14:14:35 +00:00
ceriel
96f6adb74b *** empty log message *** 1987-02-23 14:06:17 +00:00
ceriel
ca1655c25e 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
af2b497fdf Initial revision 1987-02-23 11:38:21 +00:00
ceriel
398021e77a Added No_Mem 1987-02-23 11:38:15 +00:00
ceriel
f98832f587 *** empty log message *** 1987-02-23 11:23:46 +00:00
ceriel
35e75e3d55 Added a dependency 1987-02-23 11:02:31 +00:00
ceriel
6f9a14000c Some minor improvements 1987-02-23 11:01:13 +00:00
ceriel
74be3a448f *** empty log message *** 1987-02-23 10:50:15 +00:00
ceriel
c6b3fb3aef Initial revision 1987-02-23 09:22:33 +00:00
ceriel
a7c40760cd Current results 1987-02-23 09:21:29 +00:00
ceriel
2d34e6f839 Delete temporary 1987-02-23 09:18:41 +00:00
ceriel
8a407d5ee9 remove temporary 1987-02-22 15:56:31 +00:00
ceriel
0c7c379d46 better versions, bug fixes in compiler 1987-02-22 15:28:26 +00:00
ceriel
0a70c8f525 Initial revision 1987-02-21 22:26:39 +00:00
ceriel
f2a77335b0 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
d493ffcfde bug fix 1987-02-20 17:35:08 +00:00
ceriel
a3c78bffe6 Bug fix 1987-02-20 17:33:06 +00:00
ceriel
8612a70ea3 Initial revision 1987-02-20 14:36:01 +00:00
ceriel
429502815f Added description of strzero 1987-02-19 11:28:14 +00:00
ceriel
80fe557cf3 *** empty log message *** 1987-02-18 16:41:57 +00:00
ceriel
3e3ebc6b8b cardinality of sets was wrong! 1987-02-18 10:47:55 +00:00
ceriel
c3ae096e67 *** empty log message *** 1987-02-17 15:07:15 +00:00
ceriel
a08f3c3e9c Added doc on %onerror, and some other minor mods 1987-02-16 21:42:18 +00:00
ceriel
3f6a8abe1b adapted to allow for user intervention before error recovery 1987-02-16 21:38:52 +00:00
ceriel
255884b3fb Another adaption to allow for user intervention BEFORE error recovery 1987-02-16 21:36:05 +00:00
ceriel
e796cb0f27 Prevented looping of the code generator on illegal zer instructions 1987-02-16 09:49:32 +00:00
ceriel
428b24d51b minor update 1987-02-13 15:30:27 +00:00
ceriel
2238500f22 Added "standard" entries, rerun mkdep 1987-02-13 15:27:35 +00:00
ceriel
b9be625e9b Added a "-f" flag to the "rm" 1987-02-13 14:20:10 +00:00
ceriel
90cae7c6a5 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
04d031d33d Added some buffering for writes 1987-02-13 12:44:33 +00:00
ceriel
629c0a315c Some extra patterns added. 1987-02-13 12:41:31 +00:00
ceriel
3378831ba5 Made to work with some other compilers 1987-02-13 09:40:08 +00:00
ceriel
0905b2ba25 forgot a continue. 1987-02-12 13:54:37 +00:00
ceriel
a2f665de76 exporting EODDZ, etc 1987-02-12 13:36:55 +00:00
ceriel
71e01b58c0 Initial revision 1987-02-12 10:56:16 +00:00
ceriel
1706552f25 bug fix: csa descriptors contained upb instead of upb - lwb. 1987-02-11 16:05:25 +00:00
ceriel
55abae9d4f *** empty log message *** 1987-02-11 15:41:09 +00:00
ceriel
063bfe6cb7 other place for include files 1987-02-11 14:49:14 +00:00
ceriel
a6d90aaeec many bug fixes 1987-02-11 14:29:27 +00:00
ceriel
f18da9078c when printing floats in "e"-format, trailing zeros are significant! 1987-02-11 12:47:45 +00:00
ceriel
0f49b18986 *** empty log message *** 1987-02-10 17:18:16 +00:00
ceriel
9a64c052cc Added some code to handle -Oego,opt,asopt etc 1987-02-10 16:51:57 +00:00
ceriel
2295cd130a 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
5ab4d1d2f8 removed some %0's 1987-02-10 12:49:08 +00:00
ceriel
cd1007a972 removed some %0 stuff 1987-02-10 09:49:50 +00:00
ceriel
9a7949c79d Removed some more "%...D"s 1987-02-10 09:39:40 +00:00
ceriel
7cf87cb2a3 *** empty log message *** 1987-02-10 09:34:45 +00:00
ceriel
e04aa9639e Initial revision 1987-02-10 09:27:44 +00:00
ceriel
ad72edfa49 many changes: fixes and efficiency-oriented 1987-02-09 23:19:42 +00:00
ceriel
2f8580c380 replaced some more %D's 1987-02-09 22:48:14 +00:00
bruce
25a7b2ae22 Added local optimization of lin to lni. 1987-02-09 17:55:46 +00:00
ceriel
ced0ffabbd removed some %0 stuff 1987-02-09 17:41:25 +00:00
ceriel
522039cb60 replaced a %D 1987-02-09 17:31:25 +00:00
ceriel
17ddf81681 replaced some %D's 1987-02-09 17:28:22 +00:00
ceriel
8b15b193a2 replaced a %04x 1987-02-09 17:10:29 +00:00
ceriel
4793d80775 replaced some %D's by %ld 1987-02-09 17:06:20 +00:00
ceriel
1e0aef10d8 made to work on system V 1987-02-09 17:00:23 +00:00
ceriel
2556a95c48 make to work on System V 1987-02-09 16:57:40 +00:00
ceriel
0d1c90a23e Adapted to new assembler 1987-02-09 16:49:13 +00:00
ceriel
4d10540d8d removed %0 stuff 1987-02-09 16:47:04 +00:00
ceriel
e83991f533 *** empty log message *** 1987-02-09 16:39:05 +00:00
ceriel
78a60d9959 %03x --> %x_, because the former does not work on System V 1987-02-09 16:35:24 +00:00
ceriel
cea6f4751e removed something that would not work on System V 1987-02-09 16:33:49 +00:00
ceriel
6d0a4a9ce0 changed directory: nas --> as 1987-02-09 16:29:15 +00:00
ceriel
4be7b3dfa5 Removed a %03x, which does not work on USG systems 1987-02-09 16:26:56 +00:00
ceriel
3588a1599f Initial revision 1987-02-09 15:26:16 +00:00
ceriel
fa59fc325e changed so that it prints a separate line for each dependancy 1987-02-09 15:06:09 +00:00
ceriel
375e023d8b Initial revision 1987-02-09 14:55:59 +00:00
ceriel
97e0fbea33 *** empty log message *** 1987-02-09 14:54:29 +00:00
ceriel
21fbc5d6a6 belonging to new version of pascal compiler 1987-02-09 10:46:18 +00:00
ceriel
8f4a99cc24 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
13d59d1427 Added cpp to the "clean" entry 1987-02-07 02:58:47 +00:00
ceriel
8360226526 Added "opt2" to the clean entry 1987-02-07 02:57:09 +00:00
ceriel
2c29e9f07c Changed an assertion that was no longer valid 1987-02-07 01:50:48 +00:00
ceriel
7dfb3c92ba target optimizer directory name is "top", not "opt" 1987-02-07 00:56:42 +00:00
ceriel
6d1f518209 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
3fc90a8000 Added some patterns, and avoided a bug in the VAX assembler 1987-02-07 00:45:06 +00:00
ceriel
729490c212 *** empty log message *** 1987-02-07 00:35:16 +00:00
ceriel
a1c7298f9d changed hash function 1987-02-07 00:14:51 +00:00
ceriel
622530ae68 Changed hash function, added "registers" 1987-02-07 00:13:56 +00:00
ceriel
4d92d60469 Added some "registers" 1987-02-07 00:04:05 +00:00
ceriel
ce47e41665 Another one. 1987-02-06 23:40:25 +00:00
ceriel
bdef113184 Bug fix (INPUT, not STDIN !!!) 1987-02-06 23:38:35 +00:00
ceriel
254364ca11 bug fix 1987-02-06 14:50:57 +00:00
ceriel
77f33b6762 did not work with bloody vax assemblerr 1987-02-06 14:44:56 +00:00
bruce
dd673a426f Changed name from .c to .r and now in format required by awk. 1987-02-06 14:21:04 +00:00
bruce
8248a41994 Initial revision 1987-02-06 14:15:49 +00:00
bruce
d5e9250405 Use awk program to generate distinct C_xxx routines in separate files. 1987-02-06 14:13:22 +00:00
ceriel
102790400d bug fix 1987-02-06 13:28:01 +00:00
ceriel
63af2a556b bug fix 1987-02-06 11:09:26 +00:00
ceriel
17a2c4977e bug fix 1987-02-06 10:37:09 +00:00
ceriel
e60f0f3981 bug fix 1987-02-06 10:27:57 +00:00
ceriel
d3f3afa6e7 bug fix 1987-02-06 10:03:18 +00:00
ceriel
010a311ab7 bug fixes 1987-02-05 21:36:42 +00:00
ceriel
3cddcb4482 typo 1987-02-05 21:07:09 +00:00
ceriel
775e473fb0 *** empty log message *** 1987-02-05 21:04:40 +00:00
ceriel
c6a224a6d1 output buffer is now called _sobuf 1987-02-05 20:56:06 +00:00
ceriel
c4b53d0710 buffer names: _sibuf and _sobuf 1987-02-05 20:54:27 +00:00
ceriel
060a309f82 array bound check added 1987-02-05 20:47:30 +00:00
ceriel
ac77d6c7fe Bug fix 1987-02-05 20:39:11 +00:00
ceriel
e0b23bbaea Added code to kill regvar(...) 1987-02-05 19:20:54 +00:00
ceriel
b11e35b7d4 Adapted some constants 1987-02-05 19:19:01 +00:00
ceriel
74b078c3f1 just for fun: do not call empty rules. 1987-02-05 19:14:55 +00:00
ceriel
4860deacf8 another bug fix 1987-02-05 18:37:12 +00:00
ceriel
d5d4c551c5 bug fix 1987-02-05 18:33:44 +00:00
ceriel
f5f7a6cb2a *** empty log message *** 1987-02-05 17:02:16 +00:00
ceriel
70fb5304d0 new dependencies 1987-02-05 17:01:12 +00:00
ceriel
a40ec68883 Added another structure for improved recursion detection 1987-02-05 17:00:14 +00:00
ceriel
d0d5c84689 bug fix 1987-02-05 16:39:39 +00:00
ceriel
46cfcbdf43 bug fix 1987-02-05 16:22:42 +00:00
ceriel
75e9a65bcd Added line_prefix.h 1987-02-05 14:58:24 +00:00
ceriel
78aae09a09 Initial revision 1987-02-05 14:47:47 +00:00
ceriel
467f680968 Adapted to the use of "convert.c" 1987-02-05 14:47:22 +00:00
ceriel
862e62b9e4 *** empty log message *** 1987-02-05 14:47:04 +00:00
ceriel
10f6d88ba1 *** empty log message *** 1987-02-05 14:11:46 +00:00
ceriel
49b619cec2 Added manual page 1987-02-05 13:20:03 +00:00
ceriel
439bf558cc *** empty log message *** 1987-02-05 13:17:00 +00:00
ceriel
5afc7363f0 *** empty log message *** 1987-02-04 17:43:20 +00:00
ceriel
45105f16c6 Added a few "nocoercions :" 1987-02-04 17:22:08 +00:00
ceriel
5627bb850e Initial revision 1987-02-04 16:44:15 +00:00
ceriel
b6a56fb7e8 *** empty log message *** 1987-02-04 16:21:03 +00:00
ceriel
6ce38d28ae fixed error in call of C_con_scon 1987-02-04 16:03:54 +00:00
ceriel
694f7dfee4 Added asopt 1987-02-04 15:55:32 +00:00
ceriel
59a5eb4591 Added libsys, top 1987-02-04 15:51:35 +00:00
ceriel
199f9d38ea archive name change 1987-02-04 15:47:57 +00:00
ceriel
2ca7e7e2b3 Added definition for ASAR 1987-02-04 15:41:00 +00:00
ceriel
827f3da238 Name change of archive 1987-02-04 15:39:00 +00:00
ceriel
41cdf11b46 *** empty log message *** 1987-02-04 15:31:50 +00:00
ceriel
fe3fe78538 Added some neccessary NC's 1987-02-04 15:11:51 +00:00
ceriel
a0dad9f908 adapted to new assembler syntax 1987-02-04 15:09:31 +00:00
ceriel
6dcf1995c1 Initial revision 1987-02-04 13:10:17 +00:00
ceriel
b5d0c2797b *** empty log message *** 1987-02-04 13:09:02 +00:00
ceriel
a3aa9aac88 removed the lflag, added check for '/' in filenames 1987-02-04 13:04:51 +00:00
ceriel
60cf3639ce Added "pr" and "opr" entries 1987-02-04 12:54:03 +00:00
ceriel
3c387987ed Added "cmp" entry 1987-02-04 12:51:31 +00:00
ceriel
b536e4101d Initial revision 1987-02-04 12:45:43 +00:00
ceriel
1b071fe5a2 Initial revision 1987-02-04 10:40:32 +00:00
ceriel
0cf7165841 *** empty log message *** 1987-02-04 10:39:27 +00:00
ceriel
23bbc93a92 Initial revision 1987-02-04 10:35:30 +00:00
ceriel
85830c5f63 Strings and character constants now stop at end-of-line, unless escaped
by a backslash
1987-02-03 23:28:09 +00:00
ceriel
f3b298586f Initial revision 1987-02-03 14:59:54 +00:00
ceriel
9b2329a49b *** empty log message *** 1987-02-03 14:57:24 +00:00
ceriel
eab8db26fe new include directories 1987-02-03 14:55:15 +00:00
ceriel
73e1381194 *** empty log message *** 1987-02-03 14:50:30 +00:00
ceriel
755170f752 Added pascal lib 1987-02-03 14:47:45 +00:00
ceriel
3a75a34c31 *** empty log message *** 1987-02-03 14:36:29 +00:00
ceriel
b69fd5feb8 adapted to new assembler syntax 1987-02-03 13:32:24 +00:00
ceriel
fe53d6ed3f adapted to new assembler syntax 1987-02-03 13:23:38 +00:00
ceriel
2ed0d80be5 lock ??? 1987-02-03 13:09:27 +00:00
ceriel
ea78c81da9 int --> int22 1987-02-03 09:57:57 +00:00
ceriel
6f1f0ef1bf int --> int44 1987-02-03 09:55:47 +00:00
ceriel
4ed7c62cca int22 --> int44 1987-02-03 09:55:06 +00:00
ceriel
5ac74e31e0 int22 --> int24 1987-02-03 09:53:20 +00:00
ceriel
6b753378bc int --> int24 1987-02-03 09:52:40 +00:00
ceriel
40dd8e2702 *** empty log message *** 1987-02-03 09:50:31 +00:00
ceriel
74114081ef ??? 1987-02-02 21:49:57 +00:00
ceriel
d76349f200 pdp instead of pdp11 1987-02-02 21:01:10 +00:00
ceriel
a8820459d5 obeyed a warning 1987-02-02 20:54:56 +00:00
ceriel
d70c1e2149 ASP with negative argument wasn't accepted 1987-02-02 20:48:02 +00:00
ceriel
1672c06a36 backend must accept .g files 1987-02-02 20:40:59 +00:00
ceriel
9abc993f08 back-end must accept .g files 1987-02-02 20:40:04 +00:00
ceriel
f5c1d53512 added asopt 1987-02-02 20:36:15 +00:00
ceriel
04a416828b *** empty log message *** 1987-02-02 20:31:55 +00:00
ceriel
836fc810b3 Added target optimizer 1987-02-02 20:23:42 +00:00
ceriel
3515a1818a Initial revision 1987-02-02 20:14:16 +00:00
ceriel
f67cdb8e44 Initial revision 1987-02-02 19:18:49 +00:00
ceriel
22a6938332 *** empty log message *** 1987-02-02 17:40:30 +00:00
ceriel
e471d036d1 Added pc 1987-02-02 17:37:18 +00:00
ceriel
319d1508c2 Initial revision 1987-02-02 16:57:13 +00:00
ceriel
0a4b847f50 new definition of ISALNUM 1987-02-02 16:37:59 +00:00
ceriel
78a61585ce *** empty log message *** 1987-02-02 16:27:36 +00:00
ceriel
19a0a9b769 *** empty log message *** 1987-02-02 16:21:59 +00:00
ceriel
3c210cae1e Name change in library 1987-02-02 16:19:04 +00:00
ceriel
d80d2a4c35 Initial revision 1987-02-02 16:12:55 +00:00
ceriel
563a799de2 Initial revision 1987-02-02 16:06:51 +00:00
ceriel
93ac463920 *** empty log message *** 1987-02-02 16:04:52 +00:00
ceriel
9ce25b36c4 library name change 1987-02-02 16:04:16 +00:00
ceriel
14138da395 bug fix 1987-02-02 15:28:31 +00:00
ceriel
ca1654eae2 Initial revision 1987-02-02 13:36:33 +00:00
ceriel
1ac26f9b67 new version for .o 1987-02-02 13:30:20 +00:00
ceriel
9cd6325ee1 Initial revision 1987-02-02 13:11:35 +00:00
ceriel
3feb7454c5 Added clean-entry, tail_mon --> tail_sys 1987-02-02 13:09:17 +00:00
ceriel
b96babed0a generating .o files 1987-02-02 13:07:28 +00:00
ceriel
345609b5ac version for new assembler 1987-02-02 12:44:39 +00:00
ceriel
d8e018a044 *** empty log message *** 1987-02-02 11:22:47 +00:00
ceriel
c51a2b3a6c *** empty log message *** 1987-02-02 11:15:48 +00:00
ceriel
60c746ed21 *** empty log message *** 1987-02-02 11:07:21 +00:00
ceriel
8ac474583b New version with new assembler, link editor 1987-02-02 10:55:41 +00:00
em
dc6b14760d *** empty log message *** 1987-02-02 10:52:23 +00:00
ceriel
8340d30d77 new version for new assembler and new c library 1987-02-02 10:50:09 +00:00
ceriel
b7477f4654 Initial revision 1987-02-02 10:45:26 +00:00
ceriel
e024792e68 Initial revision 1987-02-02 10:25:38 +00:00
ceriel
e41a2618f8 Made floating point stuff depend on a #define: FPPSIM 1987-02-02 10:16:40 +00:00
ceriel
ae3c81e0a6 Made floating point stuff depend on a #define: FPPSIM 1987-02-02 09:59:02 +00:00
ceriel
237d56ac16 *** empty log message *** 1987-02-01 22:32:23 +00:00
ceriel
60f9744253 Adapted to current situation 1987-02-01 22:13:26 +00:00
ceriel
ec29d3b4a1 Initial revision 1987-02-01 21:53:24 +00:00
ceriel
7ab43d62db *** empty log message *** 1987-02-01 21:27:52 +00:00
ceriel
e08ea100a4 Initial revision 1987-02-01 21:04:49 +00:00
ceriel
e5238c6fcf *** empty log message *** 1987-01-30 20:50:31 +00:00
ceriel
496bba9475 New version 1987-01-30 20:48:31 +00:00
ceriel
923a85f5cc *** empty log message *** 1987-01-30 20:39:45 +00:00
ceriel
2b9c2283db *** empty log message *** 1987-01-30 20:27:28 +00:00
ceriel
095367ac29 machine name change: l68k2 --> m68k2 1987-01-30 20:24:35 +00:00
ceriel
47a1e91c19 name change of lib 1987-01-30 20:23:09 +00:00
ceriel
f648d5d0ab Name change of lib, added head_em 1987-01-30 20:22:52 +00:00
ceriel
f88e8c3ba4 1987-01-30 20:06:04 +00:00
ceriel
471884cdf4 *** empty log message *** 1987-01-30 19:58:55 +00:00
ceriel
9dd16696ef *** empty log message *** 1987-01-30 19:31:26 +00:00
ceriel
c03c2ef9f2 Adapted to new assembler syntax 1987-01-30 19:20:31 +00:00
ceriel
1b09e55129 new assembler syntax 1987-01-30 18:41:42 +00:00
ceriel
5e36fd3351 Made more like other Makefiles 1987-01-30 18:24:42 +00:00
ceriel
7e68455893 *** empty log message *** 1987-01-30 18:15:22 +00:00
ceriel
076354168e error exit when compilation fails 1987-01-30 18:12:57 +00:00
ceriel
9390536d79 Error exit when compilation failes 1987-01-30 18:11:08 +00:00
ceriel
4b489cd254 Initial revision 1987-01-30 17:10:51 +00:00
ceriel
3c60c1918e changed #define m68020 to TBL68020.
Could otherwize cause problems when translated with ack
1987-01-30 10:57:17 +00:00
ceriel
4fb87d7c87 Initial revision 1987-01-30 10:49:21 +00:00
ceriel
0adac61dad *** empty log message *** 1987-01-30 10:18:40 +00:00
ceriel
ae504890c7 bug fix 1987-01-30 09:45:41 +00:00
ceriel
0452b7c326 *** empty log message *** 1987-01-29 23:30:46 +00:00
ceriel
e9d7db6f61 Initial revision 1987-01-29 23:25:01 +00:00
ceriel
0a279ebbbd Initial revision 1987-01-29 22:45:44 +00:00
ceriel
153e30bb1c Initial revision 1987-01-29 22:36:35 +00:00
ceriel
945d6a0188 Initial revision 1987-01-29 22:10:18 +00:00
ceriel
31b5e111bf Initial revision 1987-01-29 20:15:14 +00:00
ceriel
62746ef4ff Initial revision 1987-01-29 20:03:43 +00:00
ceriel
d0894b8c33 deleted NOFLOAT 1987-01-29 19:58:10 +00:00
ceriel
39bc96fbd1 Deleted NOFLOAT 1987-01-29 19:56:16 +00:00
ceriel
27e48672bb no F_DUM in dummy float 1987-01-29 19:49:35 +00:00
ceriel
536611f0a2 Initial revision 1987-01-29 19:42:53 +00:00
ceriel
c5897a8f81 Initial revision 1987-01-29 19:37:49 +00:00
ceriel
bfb89ae937 Added a check for unresolved references 1987-01-29 17:13:37 +00:00
ceriel
59a08bb733 Changed to handle new ack object format 1987-01-29 15:54:46 +00:00
ceriel
c9fce4aff9 typo fix 1987-01-29 14:54:26 +00:00
ceriel
91463b5a4e Initial revision 1987-01-29 14:17:23 +00:00
ceriel
3d00f0ea37 Adapted to current situation 1987-01-29 13:20:23 +00:00
ceriel
bc8229b952 don't use a sgttyb struct 1987-01-29 13:01:28 +00:00
ceriel
ef85335f8f name change of lib, moved head_em.s to libsys 1987-01-29 11:03:30 +00:00
ceriel
9871983602 Name change of lib 1987-01-29 11:01:27 +00:00
ceriel
7c658fff27 Name change of lib, added head_em 1987-01-29 10:47:27 +00:00
ceriel
de343361e5 Name change. 1987-01-29 10:46:53 +00:00
ceriel
1bbe040688 PC/IX is system 3, not V7 1987-01-29 10:33:53 +00:00
ceriel
c6f26eff9e Corrected syntax error 1987-01-29 09:43:40 +00:00
ceriel
0331b0a1e2 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
7be94f7d44 more corrections 1987-01-28 22:54:52 +00:00
ceriel
eb0030af45 generate .o files 1987-01-28 22:26:27 +00:00
ceriel
e69ccee1f7 syntax error correction 1987-01-28 22:23:14 +00:00
ceriel
beaaa19ada generate .o files 1987-01-28 22:17:36 +00:00
ceriel
6aa3769e9f generating .o files 1987-01-28 22:14:40 +00:00
ceriel
1e5253e9e5 For generating .o files, aal archives 1987-01-28 22:14:12 +00:00
ceriel
f35c426e26 .byte --> .data1 1987-01-28 19:02:25 +00:00
ceriel
0bbda61037 adapted to new assembler 1987-01-28 18:57:04 +00:00
ceriel
eb703a6d80 Initial revision 1987-01-28 18:52:12 +00:00
ceriel
3bb50c7b8a endbss - begbss is no longer computable by the assembler 1987-01-28 18:49:59 +00:00
ceriel
de51d1ee8e Improvement of conversions 1987-01-28 17:36:21 +00:00
ceriel
a5c0f64d5e return exit status 1 when compilation failes 1987-01-28 17:26:52 +00:00
ceriel
160770d979 Bug fix: the STR instruction caused a translation with syntax errors 1987-01-28 17:22:25 +00:00
ceriel
f3a6d7c3ce correction of syntax error 1987-01-28 17:05:02 +00:00
ceriel
fc2e88758f declaration of gmtime added 1987-01-28 17:02:56 +00:00
ceriel
d35a16c30f Bug fix: %f did not work, if no width was specified 1987-01-28 16:52:16 +00:00
ceriel
f78cbc818f Avoid bug in VAX assembler. But i don't know what is happening. 1987-01-28 16:22:30 +00:00
bruce
9e61390e78 Corrected clean option to remove libopt.a 1987-01-28 15:39:10 +00:00
ceriel
aeacaeb08f Initial revision 1987-01-28 15:29:13 +00:00
ceriel
7cfd88dab7 Adapted to new assembler producing .o files 1987-01-28 15:27:59 +00:00
ceriel
187b008eb2 archive name change: tail --> libem_s.a 1987-01-28 15:23:22 +00:00
ceriel
aab8668d4b Bug fix 1987-01-28 15:15:28 +00:00
ceriel
50b2d9f4b8 Initial revision 1987-01-28 15:06:28 +00:00
ceriel
c996384000 Adapted for new assembler syntax 1987-01-28 15:06:01 +00:00
ceriel
0930a80dd3 adapted to new assembler syntax 1987-01-28 15:03:39 +00:00
ceriel
212579440e bug fix 1987-01-28 14:38:38 +00:00
ceriel
132ed11e0e _doprint -->_doprnt 1987-01-28 14:28:45 +00:00
ceriel
ce561e5f3a made stdin, stdout, and stderr into compile time constants 1987-01-28 14:21:56 +00:00
ceriel
fb8fc4e07c Fixed introduced bug 1987-01-28 13:00:33 +00:00
ceriel
ebd44261fe cc --> $(CC), added -O flag to CFLAGS 1987-01-28 12:49:42 +00:00
ceriel
77e82ac376 floating point constants are no longer fatal 1987-01-28 00:11:28 +00:00
ceriel
5f7937dd33 Added action for pc runtime library 1987-01-27 23:38:02 +00:00
ceriel
ca796567f3 errno was'nt exported 1987-01-27 22:58:33 +00:00
ceriel
c5fe8ce4dc new version for assembler producing .o files 1987-01-27 20:37:46 +00:00
ceriel
c69f56bd2f By default only install tail_cc.1s and tail_cc.2g 1987-01-27 20:09:55 +00:00
ceriel
846f27eebc Added some system V things 1987-01-27 16:51:19 +00:00
ceriel
846d9a0c2d Initial revision 1987-01-27 16:44:28 +00:00
ceriel
3ea542769f Initial revision 1987-01-27 16:33:21 +00:00
ceriel
c1bae75a85 Initial revision 1987-01-27 16:21:02 +00:00
ceriel
b5c4cd7a00 Initial revision 1987-01-27 15:57:55 +00:00
bruce
6fb688f882 Ported code to Mantra and general clean up. 1987-01-27 14:15:23 +00:00
bruce
bbd5b115dd Changed to reflect location of EMHOME and conform to standard syntax. 1987-01-27 11:42:08 +00:00
ceriel
884a281dd4 Improved "clean" entry" 1987-01-27 10:52:09 +00:00
ceriel
89bbe4c782 correction of syntax errors 1987-01-27 10:50:43 +00:00
ceriel
e969c006b7 Contained syntax errors 1987-01-27 10:45:01 +00:00
ceriel
cfb3324b6f Better "clean" entry" 1987-01-27 10:41:19 +00:00
ceriel
145326b368 Adaption to new assembler generating .o files 1987-01-26 22:35:41 +00:00
ceriel
5abd614e01 Initial revision 1987-01-26 22:33:58 +00:00
ceriel
55f63a8a12 system call numbers are longwords 1987-01-26 22:15:21 +00:00
ceriel
4133a3cbc3 Initial revision 1987-01-26 21:51:58 +00:00
ceriel
6db629db4d Added stty, gtty 1987-01-26 21:47:59 +00:00
ceriel
0b484452fd Initial revision 1987-01-26 21:43:12 +00:00
ceriel
2c2688a680 adapted to new assembler syntax 1987-01-26 21:22:23 +00:00
ceriel
0991948d3e Removed all those ../../.. references 1987-01-26 16:35:04 +00:00
ceriel
640f958d26 Improved "element size" handling. 1987-01-26 16:16:12 +00:00
ceriel
edae1fc950 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
88ea6fb11d new dependency 1987-01-26 15:01:25 +00:00
ceriel
74d48b9b91 bug fix for EM_MESARG 1987-01-26 14:04:33 +00:00
ceriel
80d363eac5 bug fixes in RMI and EXG 1987-01-26 13:36:40 +00:00
ceriel
8116e3181f now uses alloc module, bug fixes, -N option under USE_TMP, to not do so 1987-01-24 00:25:56 +00:00
ceriel
b4e4250144 added EM_wordsize, EM_pointersize 1987-01-23 16:15:57 +00:00
ceriel
df1b8c8f71 corrected typo 1987-01-23 16:04:20 +00:00
ceriel
872cd52f99 Bug fix: EM_MESARG gives em_arg, not em_args! 1987-01-23 16:00:37 +00:00
bruce
f4e7c2f6ce Fixed up indentation of trans.c output. 1987-01-22 14:27:02 +00:00
bruce
819136660e 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
9acc354608 adapted to new assembler syntax 1987-01-21 15:21:49 +00:00
bruce
959800d9b5 Version that implements a C_XXX to O_XXX library interface. 1987-01-21 14:27:04 +00:00
ceriel
93c2a95860 new assembler producing .o files 1987-01-20 14:53:11 +00:00
ceriel
4f94fb9ea0 Bug fix (?) 1987-01-20 14:47:49 +00:00
ceriel
32f1fc504c new assembler producing .o files 1987-01-20 14:20:33 +00:00
ceriel
3a2030f3b6 assembler now produces .o format 1987-01-20 14:14:19 +00:00
ceriel
6c762a19e7 Changed /lib/cpp to ../../../lib/cpp 1987-01-20 13:09:56 +00:00
ceriel
feea5a269f Adapted to new assembler syntax 1987-01-20 10:04:32 +00:00
ceriel
a410519ff5 Bug fix
Under the '-x' option, the archive was opened in "APPEND" mode.
1987-01-20 09:53:32 +00:00
ceriel
9f47676fa3 Bug fix in translation of "cms" 1987-01-20 09:31:31 +00:00
ceriel
ba75d4c907 end.s separate from libem_s.a 1987-01-19 15:20:49 +00:00
ceriel
08ca9ba4a4 *** empty log message *** 1987-01-19 10:53:45 +00:00
ceriel
bd56763235 Added exit in case of compilation failure 1987-01-19 10:52:25 +00:00
ceriel
433346583e new version for new assembler syntax 1987-01-19 10:51:50 +00:00
ceriel
d899835b31 bug fix 1987-01-19 10:42:34 +00:00
ceriel
4d4854d610 ASAR=aal 1987-01-19 10:37:38 +00:00
ceriel
4dda9a5183 exit on compilation error 1987-01-19 10:36:27 +00:00
ceriel
035c115ca8 exit when compilation fails 1987-01-19 10:33:24 +00:00
ceriel
4e17f5b9a5 Initial revision 1987-01-19 10:32:32 +00:00
ceriel
f72b739e21 Initial revision 1987-01-19 10:26:43 +00:00
ceriel
6de2acea83 Improved "make clean" 1987-01-19 10:19:56 +00:00
ceriel
fcd2e936b4 Improved the "make clean" 1987-01-19 10:17:58 +00:00
ceriel
41622dc2a9 Added c-flag 1987-01-19 09:41:49 +00:00
ceriel
0efc7ae07d Added 'c'-flag 1987-01-19 09:36:35 +00:00
ceriel
4489801c4f New version 1987-01-16 19:25:44 +00:00
ceriel
faa0c191a4 minor bug fix 1987-01-16 19:20:58 +00:00
ceriel
f9f1db874f conversion to new assembler syntax 1987-01-16 17:17:12 +00:00
ceriel
c6ace07201 new archive name. 1987-01-16 17:04:03 +00:00
ceriel
649a32fa82 conversion to new assembler syntax 1987-01-16 16:59:41 +00:00
ceriel
8dc5f90a88 new name for archive 1987-01-16 16:51:14 +00:00
ceriel
08cc79e513 new version for generating .o files 1987-01-16 16:50:50 +00:00
ceriel
d2014ff946 conversion to new assembler format 1987-01-16 16:49:46 +00:00
ceriel
d5148e0b0f Initial revision 1987-01-16 16:49:12 +00:00
ceriel
a3b0f08d57 conversion to new assembler format 1987-01-16 16:34:45 +00:00
ceriel
8f27f92269 Bug fix with WorkingDir 1987-01-16 16:14:22 +00:00
ceriel
e346f6fc74 version generating .o files 1987-01-16 15:40:01 +00:00
ceriel
3e2d693b37 as --> nas 1987-01-16 15:21:51 +00:00
ceriel
e4a90bc417 Bug fix. 1987-01-16 13:59:02 +00:00
ceriel
0b941ef495 Bug fixes 1987-01-16 13:51:45 +00:00
ceriel
45238eea0f Some bug fixes and minor extensions 1987-01-16 13:51:42 +00:00
ceriel
382c88eb17 Using object library 1987-01-15 22:06:16 +00:00
bruce
97cd4953b0 Initial revision 1987-01-15 18:12:26 +00:00
ceriel
ece95a2ee4 Some bug fixes 1987-01-15 17:36:26 +00:00
ceriel
8af94099a3 Replaced an occurrence of EOI by EOF. 1987-01-14 21:37:22 +00:00
ceriel
324cbd8327 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
9877db53d9 Fixed a minor problem with off_fmt, when this format would not
produce the '-' sign.
1987-01-14 17:47:31 +00:00
ceriel
493efb1bf7 added EX_SIDEEFFECTS, options['p'] --> ! options['L'], fixed some bugs 1987-01-14 09:58:51 +00:00
ceriel
0ffdfb4f76 Added rd_fd and wr_fd. 1987-01-13 15:10:23 +00:00
ceriel
b2c0f64992 *** empty log message *** 1987-01-13 13:13:50 +00:00
ceriel
e6f18b2838 Initial revision 1987-01-13 11:31:24 +00:00
ceriel
630e5d8082 Initial revision 1987-01-13 11:01:26 +00:00
ceriel
6d499785be Initial revision 1987-01-13 10:53:33 +00:00
ceriel
424337507d Added standard entries 1987-01-13 10:43:12 +00:00
ceriel
876369b2f1 Added standard entries 1987-01-13 10:30:06 +00:00
ceriel
692d3702a1 Added "standard" entries 1987-01-13 10:08:47 +00:00
ceriel
3cb30fa873 Added a "clean" entry. 1987-01-13 10:07:25 +00:00
ceriel
673b1d79e2 Initial revision 1987-01-13 10:01:07 +00:00
ceriel
28b3286e21 Added "standard" entries install, cmp, opr 1987-01-13 09:56:17 +00:00
ceriel
177e335cad Initial revision 1987-01-13 09:24:13 +00:00
ceriel
3c7511780b Initial revision 1987-01-12 17:21:59 +00:00
ceriel
6adc4ef78b Added documentation on EM_wordsize and EM_pointersize. 1987-01-12 15:54:16 +00:00
ceriel
9639f0a87b Also export EM_wordsize and EM_pointersize. 1987-01-12 15:42:38 +00:00
ceriel
e77bde5e75 Added TABLEFLAGS and CGGFLAGS. 1987-01-12 15:10:49 +00:00
ceriel
031d26deb4 Preprocess table. 1987-01-12 14:50:25 +00:00
ceriel
9e528bef6f Allow reading from standard input 1987-01-12 14:38:45 +00:00
ceriel
5ddf83ab5a force first line directive 1987-01-12 14:21:14 +00:00
ceriel
281f83968c This one works. 1987-01-12 14:06:47 +00:00
ceriel
cb2b167849 New Makefile, also generating opt2 (t.i. peephole optimizer after global ..) 1987-01-12 14:01:26 +00:00
ceriel
896de3243e Corrected the "install" entry. 1987-01-12 12:30:16 +00:00
ceriel
961d298b3f In some cases, the number after a HOL was'nt accurate. 1987-01-09 15:16:22 +00:00
ceriel
77f4f0f0c9 Bug fix. 1987-01-09 14:11:59 +00:00
ceriel
7d4d9c5c34 %c did not work on systems that have their bytes or their words reversed. 1987-01-08 17:40:25 +00:00
ceriel
5a0140cf3a Bug fix: order in archive longs is PDP-11 order! 1987-01-08 17:39:37 +00:00
ceriel
3ca2fcad1c added doc for C_init 1987-01-08 16:35:00 +00:00
ceriel
6f5afaa410 Added C_init 1987-01-08 16:20:59 +00:00
ceriel
0a8436a862 Added C_init. 1987-01-08 16:19:16 +00:00
ceriel
a26a4f7c9d arhdr --> ar_hdr.
updated docs on rd_arhdr.
1987-01-08 16:05:52 +00:00
ceriel
4219306f55 rd_arhdr now returns 1 if it succeeds, and 0 at end-of-file. 1987-01-08 16:04:20 +00:00
ceriel
ecf93dbf4f made error in macro parameter count into a warning 1987-01-08 14:57:18 +00:00
ceriel
3245258560 Added exclusive or operator 1987-01-08 14:27:07 +00:00
ceriel
e5820bdbaa Added bitwise operators 1987-01-08 14:22:32 +00:00
ceriel
0a237df13d Added xor-oprator 1987-01-08 14:21:56 +00:00
ceriel
ceee24a4cd Added bitwise and and or operators 1987-01-08 14:11:23 +00:00
ceriel
01ac83b971 fix to prevent loop resulting in stack overflow 1987-01-08 14:10:02 +00:00
ceriel
bfb60b8a33 small adaption to "awayreg". 1987-01-08 14:09:14 +00:00
ceriel
1239449207 Added bitwise EX_OR and EX_AND. 1987-01-08 14:03:43 +00:00
ceriel
cfc9f38ccd Generate line directives that are similar to the ones generated
by the Reiser preprocessor.
1987-01-08 12:42:44 +00:00
ceriel
0c5feb7493 wrong number of parameters no longer is an error. 1987-01-08 12:38:05 +00:00
ceriel
61158d4693 New description file, using LED. 1987-01-08 11:22:44 +00:00
ceriel
97f8083ee0 adapted to get .o files 1987-01-08 11:09:06 +00:00
ceriel
8f8e0242d8 "l86" --> "i86". 1987-01-08 11:04:25 +00:00
ceriel
c2805a25bd Initial revision 1987-01-08 10:41:08 +00:00
ceriel
037c2426ab Adapted to get .o files. 1987-01-08 10:29:45 +00:00
ceriel
669c5cf23f use "compare" shell script 1987-01-08 10:28:26 +00:00
ceriel
1a6f092a39 Initial revision 1987-01-08 10:21:35 +00:00
ceriel
9c50da1e82 changed name back: libem_s.a --> tail_em.a 1987-01-08 10:19:47 +00:00
ceriel
c754f6ca69 adapted to new assembler syntax 1987-01-08 10:13:48 +00:00
ceriel
5cc2c0ccfc Initial revision 1987-01-08 10:07:43 +00:00
ceriel
11695db3e3 I don't know! but it was changed. 1987-01-08 09:56:17 +00:00
ceriel
0fd6417833 Adapted to new assembler syntax. 1987-01-08 09:39:54 +00:00
ceriel
18376b38cf Initial revision 1987-01-07 17:13:41 +00:00
ceriel
be68581019 *** empty log message *** 1987-01-07 11:10:33 +00:00
ceriel
debef378c9 3 --> 3ACK 1987-01-06 18:54:48 +00:00
ceriel
ceff6f834a Removed a bug that led to infinite looping in obscure cases. 1987-01-06 18:49:00 +00:00
ceriel
300ac178de Initial revision 1987-01-06 18:45:35 +00:00
ceriel
70f8f5e921 Initial revision 1987-01-06 18:31:02 +00:00
ceriel
143b2531bb Initial revision 1987-01-06 15:16:53 +00:00
ceriel
56c9ada9e0 Initial revision 1987-01-06 14:04:26 +00:00
ceriel
ec678ff800 removed the Xmalloc entry 1987-01-06 13:46:48 +00:00
ceriel
9cb5c80981 Initial revision 1987-01-06 13:42:33 +00:00
ceriel
0f42cf1bd9 Added a "pr" and an "opr" entry. 1987-01-06 12:59:16 +00:00
ceriel
3d5a9bc78c Added a "pr" and an "opr" entry. 1987-01-06 12:42:31 +00:00
ceriel
a7aa5d93ff Initial revision 1987-01-06 11:41:50 +00:00
ceriel
3788350d7c Initial revision 1987-01-06 11:25:09 +00:00
ceriel
56a28240ff Initial revision 1987-01-06 11:05:35 +00:00
ceriel
cb96da9bfa Initial revision 1987-01-05 17:37:37 +00:00
ceriel
b63bf2720c Initial revision 1987-01-05 17:31:38 +00:00
ceriel
eb28fd80f9 Initial revision 1987-01-05 17:20:13 +00:00
ceriel
0de3e4a0af Initial revision 1987-01-05 14:56:11 +00:00
ceriel
2254b35256 Initial revision 1987-01-05 14:44:25 +00:00
ceriel
26326c178e Initial revision 1987-01-05 13:26:29 +00:00
ceriel
8addf6e9a5 Initial revision 1987-01-05 12:59:41 +00:00
ceriel
da3976277f Extended for new read_em module. 1987-01-05 12:51:37 +00:00
ceriel
0329b9ef9a added cleanup.c 1987-01-05 11:12:55 +00:00
ceriel
e32480406f Initial revision 1987-01-05 11:08:47 +00:00
ceriel
caeb6b311d Initial revision 1987-01-05 10:58:34 +00:00
ceriel
a92c8bf067 D_BUSY added, to check recursive deps in def modules 1986-12-16 15:22:33 +00:00
ceriel
33a89a8684 bug fix in LLlex.c, "string_token" 1986-12-16 14:30:33 +00:00
ceriel
9919cc1ba6 Introduced EMHOME. 1986-12-16 13:50:54 +00:00
ceriel
974e2f7d4a Added exit.c stty.c gtty.c 1986-12-16 10:25:44 +00:00
ceriel
7e78bd904d Initial revision 1986-12-16 10:23:21 +00:00
dick
78aaf2fd9d some small changes, asm() yields error message 1986-12-13 20:57:40 +00:00
ceriel
5bbac46b88 No longer use the "system-independant" tail_mon. 1986-12-12 17:56:05 +00:00
ceriel
70df23f6f8 head_em now resides in system dependant library. 1986-12-12 17:54:21 +00:00
ceriel
595cc41d9c Removed almost the whole file, as we now use assembly routines to
interface the systemcalls.
1986-12-12 17:51:03 +00:00
ceriel
184f06453a Initial revision 1986-12-12 16:12:19 +00:00
ceriel
cb19bd1dd4 Bloody assembler does not recognize ',' in .globl 1986-12-12 14:45:20 +00:00
ceriel
980953f861 .globl does not accept comma's 1986-12-12 14:40:25 +00:00
ceriel
d62336a718 Initial revision 1986-12-12 13:43:06 +00:00
ceriel
4c956c400e Initial revision 1986-12-12 12:49:50 +00:00
ceriel
9e6fe01229 Improved testing for 0-strings in the routine "mycat". 1986-12-11 17:04:40 +00:00
ceriel
e98c02b831 Corrected a typo. 1986-12-11 17:03:11 +00:00
ceriel
c6a49a018f Entry for "top", different entry for "LLgen". 1986-12-10 16:53:24 +00:00
ceriel
7d1822d04e Added EMHOME. 1986-12-10 15:30:42 +00:00
ceriel
19477f95a9 Adapted to typesetter and added a reference for LLgen. 1986-12-10 15:28:30 +00:00
ceriel
fcaf1a73b4 Added a reference for LLgen. 1986-12-10 15:28:06 +00:00
ceriel
0159b3297d Adapted to possible use of troff 1986-12-10 15:27:36 +00:00
ceriel
9ddde1cf40 Documented LLmessage(-1). 1986-12-10 15:26:10 +00:00
ceriel
cb6b68a05f added nmclash.c, mods to Makefile/Resolve 1986-12-10 15:13:04 +00:00
ceriel
42162f7b37 simplified 0-padding, minor cosmetic changes 1986-12-10 12:00:55 +00:00
ceriel
df86573d4c Initial revision 1986-12-10 11:40:00 +00:00
ceriel
96d9890d86 minor mods. 1986-12-10 11:31:35 +00:00
ceriel
1335534aae Initial revision 1986-12-10 10:38:42 +00:00
ceriel
c501c762cf 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
fe2e67d1c6 minor fixes 1986-12-09 17:41:06 +00:00
ceriel
7752bb27f6 Adapted to new assembler 1986-12-09 11:13:14 +00:00
erikb
8a95b29c86 added: file_info.h 1986-12-09 08:19:55 +00:00
ceriel
a6ecac6f1d Only call "newrelo" when needed. 1986-12-08 10:39:13 +00:00
ceriel
6bf947ee6e *** empty log message *** 1986-12-08 09:24:58 +00:00
erikb
ad5c92044c corrected basename() 1986-12-08 08:58:21 +00:00
ceriel
8702a522d8 *** empty log message *** 1986-12-05 17:18:54 +00:00
ceriel
4b3e6a8ab6 Working version. 1986-12-05 17:17:03 +00:00
ceriel
8fd1977ab0 *** empty log message *** 1986-12-05 17:12:24 +00:00
ceriel
b2f0b281cd Initial revision 1986-12-05 17:10:12 +00:00
ceriel
555c29971f initial version 1986-12-05 17:09:41 +00:00
ceriel
9aac83a83e *** empty log message *** 1986-12-05 16:59:51 +00:00
ceriel
28036b3741 Initial revision 1986-12-05 16:58:29 +00:00
ceriel
13a63ae5fe ??? 1986-12-05 16:36:40 +00:00
ceriel
947461e31f Removed DUK 1986-12-04 16:35:04 +00:00
ceriel
53d6dfcb6b version using input module and detecting preprocessor loops 1986-12-04 16:29:44 +00:00
ceriel
91aad0b28e Improved relocation reading code for the !incore strategy. 1986-12-03 13:09:15 +00:00
ceriel
24b7ad602a 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
db43d1d8a7 Added definitions for "alloc", "hard_alloc". 1986-12-03 13:02:37 +00:00
ceriel
3e4629b077 made to work on small machines. 1986-12-02 16:16:08 +00:00
ceriel
abc2ba9a3c bug fix: size 0 error messages also appeared for labels 1986-12-02 11:39:34 +00:00
ceriel
149c764ca1 Added -i to LDFLAGS. 1986-12-02 11:25:51 +00:00
ceriel
e188fe0956 Version that uses libobject.a 1986-12-01 15:41:29 +00:00
ceriel
b44e39cce8 Version that uses libobject.a. 1986-12-01 15:35:28 +00:00
ceriel
c57d4ff268 some minor bug fixes 1986-12-01 10:06:53 +00:00
ceriel
ad40a77afd handle void properly, avoid 0-alignments, handle #if defined(..) 1986-12-01 10:00:23 +00:00
ceriel
36adbe54a5 Removed some signal handling stuff. The Ack-program should do that. 1986-12-01 09:43:00 +00:00
sater
59861f883b added support for modhead 1986-11-28 13:47:44 +00:00
sater
17f5bc21e7 debugging stuff happened to end up on stdout instead of stderr. 1986-11-28 13:41:09 +00:00
ceriel
a0c21bf820 many bug fixes, and added flexibility in alignments 1986-11-28 11:59:08 +00:00
ceriel
da54801353 newer version 1986-11-26 16:40:45 +00:00
ceriel
552f5a3f61 Initial revision 1986-11-24 21:52:09 +00:00
ceriel
8b718ee54b Initial revision 1986-11-24 21:45:03 +00:00
ceriel
dbb351f078 Handled gen.c wrong. This is corrected. 1986-11-24 21:30:57 +00:00
ceriel
00a2314999 make to work with newer version of LLgen. 1986-11-24 21:24:42 +00:00
ceriel
7c5553640e Added -DNDEBUG 1986-11-24 21:01:42 +00:00
ceriel
5ced6d6aef Initial revision 1986-11-24 20:58:35 +00:00
ceriel
3b2d51a96b Initial revision 1986-11-24 20:42:13 +00:00
ceriel
eba14fa801 Bug fix in "inc loc adi" patterns and the like. 1986-11-24 10:42:29 +00:00
ceriel
596c631a71 Check more, when an error occurred 1986-11-17 13:08:18 +00:00
ceriel
9d0ee46068 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
22d4d72ef4 adapted default IDEPTH value 1986-11-14 08:16:38 +00:00
ceriel
86018d09e1 changed sizes of labstr and argstr to accomodate longer identifiers. 1986-11-12 21:14:05 +00:00
ceriel
f7a6dc503c Changed sizes of "argstr" and "labstr", to accomodate longer
identifiers.
1986-11-12 21:04:38 +00:00
erikb
ed106b7feb removed the debug message for encountering STRING-type Values 1986-11-12 09:55:28 +00:00
erikb
d51281b576 updated the manual pages 1986-11-12 09:53:18 +00:00
erikb
f784236908 merged the vax and mantra versions 1986-11-11 13:47:58 +00:00
ceriel
45f608bac0 Initial revision 1986-11-11 13:44:58 +00:00
ceriel
fb16148641 Adapted to use of GCIPM. 1986-11-11 13:44:13 +00:00
ceriel
3bc3818955 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
3860ab6f68 Adapted to new versions of programs 1986-11-11 13:42:16 +00:00
ceriel
94634ace27 Initial revision 1986-11-11 13:34:20 +00:00
erikb
6f8b72bfb3 corrected the treatment of static functions declared on non-global level 1986-11-10 09:16:27 +00:00
erikb
3ebe2a7176 use programs and modules from ACK instead of local versions 1986-11-10 09:14:29 +00:00
ceriel
87af36724b Avoid a bug in the C-optimizer of 4.1 BSD. 1986-11-07 17:54:30 +00:00
ceriel
7fd4e395da Constants changed to more sensible values. 1986-11-07 16:20:33 +00:00
ceriel
981bea82f4 Added "register" to a declaration. 1986-11-07 16:01:45 +00:00
ceriel
a761166dfa *** empty log message *** 1986-11-05 21:31:23 +00:00
ceriel
9291d87dab Several bug fixes 1986-11-05 14:33:00 +00:00
ceriel
97e027db33 Added some code to skip to EOF with LL_NEWMESS. 1986-11-03 14:09:28 +00:00
ceriel
7d2ee932e9 That was: LL_NEWMESS, not LL_NEWMESSAGE! 1986-11-03 10:28:21 +00:00
sater
79a736a9f6 Output was wrong with maxmembers<2 1986-11-03 09:13:32 +00:00
ceriel
541f3caf50 Removed the integer overflow check, as it is'nt checked by
"cg".
1986-10-30 15:44:25 +00:00
ceriel
162eb9bb70 forgot to restore return address in case ".trp" is called. 1986-10-30 15:01:16 +00:00
ceriel
a0a3f2d2b6 Added code that calls LLmessage(-1) when needed, and when LL_NEWMESS is
defined.
1986-10-29 11:30:50 +00:00
ceriel
eedc332a04 Added "nflag". 1986-10-29 11:29:47 +00:00
ceriel
ee27adc926 Added nflag, that allows the LLmessage(-1) call, to indicate garbage
at end of program.
1986-10-29 11:27:47 +00:00
ceriel
de5ac65dd6 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
200034075d Some name changes in ../../modules/lib. 1986-10-28 17:04:40 +00:00
ceriel
f793e823ec Made the trap message more readable. 1986-10-27 10:17:36 +00:00
ceriel
3d016f7385 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
02ff84337a Typo corrected 1986-10-24 16:58:46 +00:00
ceriel
ca44bfc681 newer version with some bug fixes 1986-10-22 15:38:24 +00:00
ceriel
aac1207beb Error messages are printed differently now. A '%' in an error message
used to cause difficulties.
1986-10-22 15:30:46 +00:00
ceriel
c19358ee50 Bug fix involving '\\'. 1986-10-22 13:36:22 +00:00
ceriel
0595f74596 minor simplification. 1986-10-22 13:36:04 +00:00
ceriel
f932863ee1 minor fix to LLlex.c 1986-10-21 14:45:43 +00:00
ceriel
5f638d7aac newer version 1986-10-20 17:40:41 +00:00
ceriel
697ea6d946 Added an entry for the util/cmisc directory. 1986-10-20 15:00:14 +00:00
ceriel
cb2543df8a Improved the "clean"-entry 1986-10-20 14:58:25 +00:00
ceriel
8129bf95a4 Initial revision 1986-10-20 14:56:37 +00:00
ceriel
991df05826 *** empty log message *** 1986-10-20 14:42:41 +00:00
ceriel
83e08e04d7 Added "Modules" 1986-10-20 14:09:09 +00:00
ceriel
d8ba814b26 Adapted to the use of ../../modules/lib/libstr.a 1986-10-20 13:59:14 +00:00
ceriel
11d442c0a0 Use our own string-routines "strindex" and "strrindex". At least we
know their name!
1986-10-20 13:52:16 +00:00
ceriel
784bd9ec54 Use our own string routines strindex and strrindex. At least we know
their name!
1986-10-20 13:48:26 +00:00
ceriel
84f0869fde 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
3a076895bb 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
b8bb269c72 Replaced a few "bss 2" by "bss EM_WSIZE". 1986-10-20 11:28:29 +00:00
ceriel
baf5b74da2 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
8ffde3c86a I don't really know why, but the file was changed. 1986-10-20 09:35:51 +00:00
ceriel
e0926981a4 Deleted the #ifdef JOHAN stuff, and
added a #define MAXSECT.
1986-10-16 16:36:00 +00:00
ceriel
908eeaf9cd Removed some ridiculous code. 1986-10-15 13:58:51 +00:00
ceriel
b40489973e 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
256847556e Added a NOFLOAT define. (Taken from Koen Langendoen) 1986-10-13 14:42:31 +00:00
ceriel
36ef5b504b Apparently, ex_ap disappeared. Put it in again. 1986-10-10 15:21:35 +00:00
ceriel
1d0f716a4e Oops, forgot to remove the id_first definition. 1986-10-10 15:09:34 +00:00
ceriel
a43d257715 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
2672c87f68 empty string was returned when it was not so good. 1986-10-09 16:15:00 +00:00
sater
ae2f236663 nullpointer and empty string were confused.
Long live the PDP and VAX
1986-10-09 16:12:24 +00:00
ceriel
703eb4e7a0 Added RANLIB 1986-10-09 13:21:33 +00:00
ceriel
591a0db767 Removed the "wordsize" variable. it was'nt needed, as we also have
EM_WSIZE.
1986-10-09 11:44:28 +00:00
ceriel
ec2b3e61c6 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
9d54fe57f8 Changed a test that was word_size and alignment dependant. 1986-10-09 10:37:56 +00:00
ceriel
3030eb8cae newer version 1986-10-06 20:36:30 +00:00
ceriel
f3bf7cd5bc 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
5af21dfc79 modified the treatment of op=, ++ and -- operators 1986-09-29 14:01:34 +00:00
erikb
42112db262 modified the treatment of op=, ++ and -- operators 1986-09-29 13:16:11 +00:00
dick
66c247ba9c some very minor changes 1986-09-28 20:33:15 +00:00
ceriel
c3d4d40d1b many bug fixes 1986-09-25 19:39:06 +00:00
erikb
c967d1ab3a put heavily used pointer variables in registers 1986-09-24 13:53:16 +00:00
ceriel
bfad7d30f0 Added a pattern for "ldc ads". 1986-09-24 12:17:25 +00:00
ceriel
6a4a13d041 Initial revision 1986-09-24 11:24:37 +00:00
ceriel
a2599744f0 Addition of new patterns. 1986-09-23 09:41:47 +00:00
sater
9092e509c6 changed ad2str function not to add +0 at labels 1986-09-22 13:15:15 +00:00
sater
b5009c57b4 made debiug output better 1986-09-22 13:14:54 +00:00
erikb
f21743e213 if NOPP: made #line directives treated correctly 1986-09-22 13:04:04 +00:00
erikb
dad1ab3b22 some minor fixes 1986-09-17 12:31:45 +00:00
erikb
a968ce8437 changed some large static data structures into STATIC 1986-09-15 08:47:53 +00:00
erikb
225f1fb724 added one byte to ibuf 1986-09-12 12:58:22 +00:00
erikb
c6a51a39f0 built in the compile time flag NOFLOAT to get rid of the float stuff 1986-09-12 09:16:07 +00:00
ceriel
b6dde9472f Bug fix: The "cmp.l" instruction was sometimes used in an illegal way. 1986-09-10 16:03:11 +00:00
erikb
ecf5219493 corrected the treatment of the <<= and >>= operators 1986-09-10 10:23:26 +00:00
erikb
b9bce39f1e simplified the return expression in loadbuf() 1986-09-09 13:49:46 +00:00
em
c685aa11b5 set limit on optimization passes to prevent loop
in optimizer in case of bad table.
1986-09-09 13:10:15 +00:00
erikb
d7716c5e5a corrected the compile-time evaluation of ~<unsigned value> 1986-09-09 09:47:43 +00:00
ceriel
9dbd1060ad An improvement to prevent calls to the .cuu routine. 1986-09-05 16:35:12 +00:00
erikb
5927f264a8 various null-dereference problems fixed 1986-09-02 15:22:54 +00:00
erikb
c84c57be67 added some LINT facilities 1986-09-02 15:00:50 +00:00
sater
14b982346f Error fixed where w==2 was assumed 1986-08-28 10:28:42 +00:00
erikb
361613bb23 first operand to intexpr is arith typed 1986-08-26 14:59:36 +00:00
ceriel
a0db745586 newer version with bug fixes 1986-08-26 14:33:24 +00:00
erikb
e1c67b1fba unknown-sized locals retain their type 1986-08-26 10:30:39 +00:00
erikb
901d1b3af8 generate a con instruction for each character in a string constant 1986-08-25 08:47:07 +00:00
erikb
fc9f365b47 some minor bugs 1986-08-22 09:20:13 +00:00
erikb
06c0a20b4d made less environ and machine dependent 1986-08-22 09:10:12 +00:00
erikb
a7e97524e4 revised the treatment of "e op= f" expression 1986-08-13 10:05:39 +00:00
erikb
8217bef1eb added some #ifdef USE_TMP lines 1986-07-29 12:49:38 +00:00
erikb
7f74cabf12 added -T<path> option: create temporary file(s) in directory <path> 1986-07-29 11:46:00 +00:00
ceriel
cf8e8a5b96 Added a test for BLS with a blockmove of wordsize bytes. 1986-07-25 16:08:56 +00:00
ceriel
023073b422 Bug fix: the BLS instruction did'nt work with block moves of one word. 1986-07-25 15:57:03 +00:00
ceriel
6dd1a052d3 inn and set must be word-orientated, not byte-orientated. 1986-07-25 15:01:15 +00:00
ceriel
c422c4e130 Bug fix 1986-07-25 14:17:23 +00:00
ceriel
37320faecc Bug fix 1986-07-25 13:19:51 +00:00
ceriel
f68d0ffb7d Made tail_mon dependant on tail_mon.a 1986-07-23 11:06:29 +00:00
ceriel
79eab3513d Added a ".sect .text". The text "landed" in the bss segment. 1986-07-23 11:04:40 +00:00
ceriel
5d188dee44 Bug fix. It just did'nt work. 1986-07-22 15:11:09 +00:00
ceriel
729774d6f8 *** empty log message *** 1986-07-22 14:49:46 +00:00
ceriel
a067d1bc0d Adapted to the use of the new assembler. 1986-07-22 13:42:21 +00:00
ceriel
399a46eb92 Adapted to new assembler and made re-entrant. 1986-07-22 13:37:16 +00:00
ceriel
f514411cea Adapted to use of new assembler. 1986-07-22 13:23:14 +00:00
ceriel
aee6a1648a Initial revision 1986-07-22 11:07:48 +00:00
ceriel
f45f393b71 replaced all occurrences of "cc" by "$(CC)". 1986-07-22 11:01:54 +00:00
ceriel
2acc260239 Adapted so that anybody can do "make install". 1986-07-22 10:47:51 +00:00
ceriel
a184032321 Changed default machine to "vax4". 1986-07-22 10:36:04 +00:00
ceriel
4f3b82565f Added code to use different integer constants when compiled with
word_size >= 4.
1986-07-21 12:26:38 +00:00
ceriel
2934d628b5 Added -Vi... flag to Pascal compiler options. 1986-07-21 09:58:19 +00:00
ceriel
3c76cbaa1e Some changes needed for the new 4-4 Pascal compiler. 1986-07-21 09:53:44 +00:00
ceriel
83d21d8076 Added instructions to make pem44.m 1986-07-21 09:40:20 +00:00
ceriel
d0fdcb18db 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
5fd9c608ed 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
3434e1c53f some leaks plugged (as detected by the leak detector) 1986-07-18 22:23:23 +00:00
dick
824293a681 some leaks plugged (as detected by the leak detector) 1986-07-18 21:10:42 +00:00
dick
c9a188825d option NORCSID for lint in Makefile is nonsense 1986-07-17 22:17:59 +00:00
ceriel
d5a95fcac0 Some bug fixes 1986-07-14 15:00:08 +00:00
ceriel
832bdeb3be better compatibility between CARDINAL and ADDRESS 1986-07-10 16:27:26 +00:00
ceriel
965e75761d newer version 1986-07-08 14:59:02 +00:00
ceriel
bcfca75b56 newer version 1986-06-26 09:39:36 +00:00
ceriel
9932033365 newer version 1986-06-20 14:36:49 +00:00
ceriel
a9dfdc494b newer version 1986-06-17 12:04:05 +00:00
sater
f1a0c90fb1 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
4398053245 Conversions from 1 byte integers were wrong.
Only discovered after new C-frontend.
1986-06-16 11:35:12 +00:00
ceriel
ec528b797e newer version 1986-06-10 13:18:52 +00:00
ceriel
966213238a There was a bug in the printing of the trap number.
This is corrected.
1986-06-06 23:35:42 +00:00
ceriel
7a9d436a56 newer version 1986-06-06 09:35:11 +00:00
ceriel
caf99ea472 newer version 1986-06-06 02:22:09 +00:00
ceriel
db258b68ea Increased the size of the expression node table. 1986-06-05 13:56:31 +00:00
ceriel
f12ea12eda 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
9e0ab0029b first, almost complete, version 1986-06-04 09:01:48 +00:00
ceriel
db795bc07a newer version 1986-05-30 18:48:00 +00:00
ceriel
6382054ae5 newer version 1986-05-28 18:36:51 +00:00
erikb
441ba991fa revised the type checking of expr in "switch (expr)" 1986-05-28 08:40:06 +00:00
ceriel
f56f8f56f3 newer version 1986-05-23 19:25:21 +00:00
ceriel
1cfe2b5dac newer version 1986-05-23 09:46:31 +00:00
ceriel
0f04bc72bd newer version 1986-05-21 18:32:20 +00:00
sater
5a84f07281 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
a4887558b8 newer version 1986-05-16 17:15:36 +00:00
ceriel
15896e422c newer version 1986-05-14 09:03:51 +00:00
ceriel
0bf57a9c64 newer version 1986-05-01 19:06:53 +00:00
ceriel
53e3cd60d0 newer version 1986-04-28 18:06:58 +00:00
erikb
dd5b8dfabf various small layout corrections 1986-04-28 09:56:33 +00:00
ceriel
4173e3c487 newer version 1986-04-25 10:14:08 +00:00
ceriel
a254a8acb1 newer version 1986-04-23 22:12:22 +00:00
ceriel
ce160b4f1a newer version 1986-04-22 23:22:19 +00:00
ceriel
fef8659bf1 newer version 1986-04-22 22:36:16 +00:00
keie
de21842485 Added EODDZ to the exported externals.
It should have been there from the start.
1986-04-22 10:40:29 +00:00
ceriel
674791bf91 newer version 1986-04-21 17:27:06 +00:00
ceriel
6715e3b171 newer version 1986-04-18 17:53:47 +00:00
erikb
53255dcf48 various small corrections 1986-04-17 14:42:54 +00:00
ceriel
d3d6e637d6 newer version 1986-04-17 09:28:09 +00:00
ceriel
426c273de8 newer version 1986-04-15 17:51:53 +00:00
ceriel
7d76f2829a newer version 1986-04-12 02:21:24 +00:00
ceriel
64a9f1e5d7 newer version 1986-04-11 11:57:19 +00:00
ceriel
ba47f9fe7c newer version 1986-04-10 01:08:49 +00:00
ceriel
d1a2112163 safety commit 1986-04-09 18:14:49 +00:00
ceriel
b853ce1546 newer version 1986-04-08 23:51:11 +00:00
ceriel
6ff4d852e1 newer version 1986-04-08 23:34:10 +00:00
ceriel
629b8fdb88 newer version 1986-04-08 18:15:46 +00:00
ceriel
3de71150a6 newer version 1986-04-07 22:15:08 +00:00
ceriel
f2b68c8261 newer version 1986-04-07 17:40:38 +00:00
ceriel
376c47c98f newer version, partial parse trees 1986-04-06 17:42:56 +00:00
ceriel
0e4311490c A newer version 1986-04-04 13:47:04 +00:00
erikb
b5e1097890 corrected the treatment of PREDEF-ed macros 1986-04-04 11:31:03 +00:00
erikb
bb8d6b5143 revised the treatment of strings in initialisations 1986-04-04 09:54:50 +00:00
ceriel
c8453bb3f7 newer version, safety commit 1986-04-03 17:41:26 +00:00
erikb
4c75213caa adapted to print(3L) module 1986-04-03 14:32:56 +00:00
erikb
725d3fa6ea revised check_ival() (among some other small changes) 1986-04-03 11:33:32 +00:00
ceriel
52d743f223 Newer version, safety commit 1986-04-03 00:44:39 +00:00
ceriel
b89155a64a newer version, safety commit 1986-04-02 17:34:21 +00:00
erikb
66c571d217 revised the administration of Value expressions 1986-04-02 08:37:17 +00:00
ceriel
fac31cce07 Newer version, safety commit 1986-03-29 01:04:49 +00:00
dick
ad1feaf35c expression nodes now can have a flag EX_ERROR 1986-03-27 18:17:48 +00:00
ceriel
f2764393be safety commit, newer version 1986-03-27 17:37:41 +00:00
sater
851a68883c repaired inreg() pseudofunction, it delivered total nonsense 1986-03-27 15:49:16 +00:00
erikb
5bdb108e47 modified the string-constant printing routines; bts2str() is invoked 1986-03-27 11:01:12 +00:00
ceriel
f2ff7661e4 safety commit, newer version 1986-03-26 22:46:48 +00:00
ceriel
4a91a6bf4b newer version, safety commit 1986-03-26 17:53:13 +00:00
erikb
e8505e4434 introduced the string(3L) module 1986-03-26 16:58:43 +00:00
ceriel
7f174a46c3 A newer version, safety commit 1986-03-26 15:11:02 +00:00
dick
8546fbe868 identifier pfd_type renamed to fdtpp 1986-03-26 14:01:10 +00:00
erikb
80155f7b4c introduced the em_code(3L) and em_mes(3L) modules 1986-03-25 16:40:43 +00:00
erikb
1afbf0e20f adapted to the system(3L) interface 1986-03-25 10:39:23 +00:00
ceriel
0e39681621 some improvements 1986-03-24 17:29:57 +00:00
erikb
0d63470af3 fixed a garbage collection problem 1986-03-21 13:26:28 +00:00
ceriel
b683a21217 Initial version 1986-03-20 14:52:03 +00:00
erikb
9f8f8c1a9c fixed a bug in check_*_expr() 1986-03-20 13:09:47 +00:00
sater
5c71bad6e1 Relaxed input syntax for from STACK coercions
No gen clause is necessary anymore.
1986-03-19 16:14:12 +00:00
erikb
ea73b04ef3 improved lay-out 1986-03-19 16:07:32 +00:00
erikb
f14b5ead0e Added C_init(), an empty-bodied routine 1986-03-19 12:36:02 +00:00
erikb
48cbb00cbe Recovered from some inconsistencies. 1986-03-19 12:31:05 +00:00
erikb
fe073353c0 last modifications in order to introduce the EM library mechanism 1986-03-18 09:01:59 +00:00
dick
5880700ab4 some long lines split 1986-03-17 17:47:04 +00:00
dick
021d8d1fec more calls of expr_error() for better error reporting 1986-03-15 18:16:30 +00:00
dick
c80f2c0817 improved error reporting for initialization expressions
miscellaneous changes
1986-03-14 16:15:16 +00:00
erikb
6e53274b6a simplified the EM con/rom functions (86/03/13) 1986-03-13 13:27:44 +00:00
erikb
43e75cec60 renamed some EM code functions according to the 86/03/11 EMCODE definition 1986-03-11 15:21:30 +00:00
erikb
4b2ac75e94 added the possibility to prepend your own libc.a before the default 1986-03-11 14:46:46 +00:00
erikb
5f734a6210 removed a reference to declarator.str 1986-03-10 15:59:43 +00:00
erikb
c0becb6dc7 Introduced the ALLOCDEF mechanism 1986-03-10 15:20:30 +00:00
erikb
3dbb828d82 Introduction of ALLOCDEF 1986-03-10 15:18:00 +00:00
erikb
69e7c2d0ae introduced the ALLOCDEF mechanism 1986-03-10 15:16:33 +00:00
erikb
5d1e9f0c86 renamed declarator.h as declar.h 1986-03-10 15:10:56 +00:00
erikb
787061ffd4 *** empty log message *** 1986-03-10 13:15:40 +00:00
erikb
bc296e2dcc *** empty log message *** 1986-03-10 13:07:55 +00:00
em
c21def03db updated 1986-03-05 17:12:39 +00:00
dick
916a65f5d6 generated itables no longer in RCS; avoid overflow in app.codes.pr 1986-03-05 16:58:40 +00:00
em
c2dc6da49f 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
0f84a92306 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
f0cb9591ec adapting to phototypesetter 1986-03-04 15:30:45 +00:00
ceriel
249314e586 Bug fix: The "calls" instruction could be called with
first argument > 255. This is corrected.
1986-03-04 11:39:22 +00:00
dick
10569743c8 adapting to phototypesetter 1986-02-28 18:02:00 +00:00
dick
1cd71875ac small adjustments 1986-02-28 17:46:09 +00:00
dick
43fd3df629 entry clean added 1986-02-27 14:57:35 +00:00
keie
7592c2cb1a Adapted to our ack environment. 1986-02-11 11:22:43 +00:00
keie
7606d347a0 Added a warning message. 1986-02-11 11:18:57 +00:00
keie
9c10e17f06 Ack is using good old cpp again. 1986-02-11 11:15:19 +00:00
keie
2d429613e6 *** empty log message *** 1986-02-11 11:14:11 +00:00
keie
2ff183fd2a Too long ago. 1986-02-11 11:13:41 +00:00
bal
b48d45c38d increased STACK_DEPTH from 50 to 250 1986-02-10 11:04:33 +00:00
ceriel
e2cfecffe3 Added some new patterns involving multiplies with 0, 1 etc. 1986-02-10 10:14:41 +00:00
ceriel
847de065d6 A minor improvement. 1986-02-10 10:08:27 +00:00
dick
9694054674 updated for photo-typesetter 1986-02-04 17:37:41 +00:00
em
f3e2248cc4 fixed bug in number() -- hex letters mistreated 1986-02-03 14:30:19 +00:00
sater
ef48465b2a Hex numbers didn't work. Corrected bug in myatoi(). 1986-01-24 16:08:34 +00:00
dick
d112eb710c adapted to phototypesetter 1986-01-20 20:39:09 +00:00
sater
144ef77113 Some old changes by keie, plus added tbl to ncg.doc 1985-12-04 16:08:21 +00:00
sater
5c0660793d Changed to be printed on laserprinter.
Removed paragraph about bug, since bug is now solved
1985-12-04 15:52:51 +00:00
sater
a91e33ce96 Corrected error in otime of initialisation of booleans 1985-12-02 13:55:06 +00:00
ceriel
5b09f4211d A minor change in the LL.output format. 1985-11-26 13:27:51 +00:00
ceriel
4b31842ecc Remove targets before installing new ones 1985-11-25 16:26:59 +00:00
ceriel
7e978197d2 New manual page for a completely new version of LLgen. 1985-11-25 16:00:18 +00:00
ceriel
1284cf0187 Changed dependancies 1985-11-25 15:57:43 +00:00
ceriel
fb36b6b633 New version of LLgen, new version of this Makefile ... 1985-11-25 15:52:56 +00:00
ceriel
8b48512de7 New version, with a much faster parser. 1985-11-25 15:50:51 +00:00
ceriel
70a5d416d1 New version, much faster 1985-11-25 15:50:19 +00:00
ceriel
42d0e056fb Completely new version, generating a much faster parser 1985-11-25 15:48:42 +00:00
ceriel
f055d610d3 Completely new version, generating a much faster parser. 1985-11-25 15:47:51 +00:00
bal
5ac646f89f Yet another bug reported by sater. 1985-11-18 16:55:53 +00:00
keie
b493f98f39 The extra BSD4.2 code caused two branches to be out of range. 1985-10-15 15:53:48 +00:00
keie
2e947a5e91 BSD4.3 size returns an error when it cannot find one of
its arguments.
1985-10-15 15:47:12 +00:00
bal
c9c168d853 Several optimization patterns for DAS (Delftse Ada Subset) frontend added. 1985-10-14 09:27:24 +00:00
ceriel
e494e09063 Initial revision 1985-10-03 18:31:47 +00:00
ceriel
aab6140bfa different interface. 1985-10-03 17:19:14 +00:00
bal
98d06cffb2 0 / -1 confusion for properties (bug reported by sater). 1985-10-03 14:47:28 +00:00
bal
de79024451 0 / -1 confusion for properties (2 bugs reported by sater). 1985-10-03 14:45:53 +00:00
bal
dcb4b71a3d 0 / -1 confusion for properties (bug reported by sater). 1985-10-03 14:41:44 +00:00
ceriel
d07e8114c6 More safety, also after terms and nonterminals. 1985-10-03 12:38:55 +00:00
ceriel
67beb0c4d5 *** empty log message *** 1985-10-03 10:36:07 +00:00
ceriel
ca4cc6fe80 Initial revision 1985-10-03 10:35:55 +00:00
ceriel
4ed4dab397 *** empty log message *** 1985-10-03 10:25:40 +00:00
ceriel
6b74749c12 Initial revision 1985-10-03 10:25:23 +00:00
ceriel
b83ab7873e A more precise safety after a term. 1985-10-02 22:49:16 +00:00
ceriel
73153b484b Initial revision 1985-10-02 22:20:04 +00:00
ceriel
40915d76c6 Name change : tail_em.vend -> end_em.s 1985-09-19 14:03:13 +00:00
bal
8668e313f8 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
a18c5dd9c4 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
53f6b51cde 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
6a4d9703cc exit(0) added (trouble with make) 1985-09-06 11:38:00 +00:00
bal
0d9459bdd6 MAXSTAB set to 2500 (problem with argument list of ROM for new C front-end). 1985-09-06 11:06:32 +00:00
bal
57a2371a16 bug fixed: null-pointer dereference. 1985-08-13 14:03:23 +00:00
em
cd5fb7ea8c Added str0 and str 1. 1985-07-26 17:38:22 +00:00
em
8ebd47f7d7 The identifier ns occurs in C programs. 1985-07-26 17:15:15 +00:00
em
bccc87a808 Annita's versie 1985-07-26 17:14:13 +00:00
em
478209a840 This one works correctly for programs failing to translate. 1985-07-26 17:04:31 +00:00
em
1c5cb87985 removed a superfluous line. 1985-07-26 15:37:11 +00:00
em
83103c314b Initial revision 1985-07-26 12:52:13 +00:00
em
bc759a2903 *** empty log message *** 1985-07-26 12:51:45 +00:00
em
6bdc39213b Initial revision 1985-07-26 11:56:24 +00:00
em
0e7eb937b4 Not using libmon. 1985-07-26 11:47:54 +00:00
em
e63968056e Added RCSID 1985-07-26 11:45:49 +00:00
em
9ef57888fa Initial revision 1985-07-26 11:38:59 +00:00
em
6710f21388 *** empty log message *** 1985-07-26 11:29:08 +00:00
em
b5efab645f Initial revision 1985-07-26 11:05:30 +00:00
ceriel
5d86ead6c0 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
7b4b53af21 bugs for ngf 8 and fif 4 fixed (asp 16 --> asp 8). 1985-07-19 18:02:25 +00:00
bal
2e5bf801a0 patterns for "loc loc cii/cui/ciu/cuu $1==$2" added. 1985-07-19 17:58:34 +00:00
bal
04cee55976 .sect .text added 1985-07-19 13:43:03 +00:00
bal
479827380c .sect .text added 1985-07-18 14:52:56 +00:00
keie
6f22e5b7d9 %D => %ld 1985-06-21 12:55:17 +00:00
keie
6de8b41da2 *** empty log message *** 1985-06-19 13:42:49 +00:00
keie
3e6e781c8d Now using AALMAG instead of ARMAG for led libraries. 1985-06-12 10:31:28 +00:00
keie
57acada057 *** empty log message *** 1985-06-10 16:57:01 +00:00
keie
68e92c8319 *** empty log message *** 1985-06-10 16:05:04 +00:00
keie
1b972eff60 *** empty log message *** 1985-06-10 15:32:18 +00:00
keie
b11d9ce683 *** empty log message *** 1985-06-10 14:52:43 +00:00
keie
1c19000977 *** empty log message *** 1985-06-10 13:55:48 +00:00
keie
eea5656df7 *** empty log message *** 1985-06-10 13:50:36 +00:00
keie
8749fb1da8 Using new magic number for 'aal' archives. 1985-06-10 12:41:51 +00:00
keie
a90254c045 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
dacde83aae Removed debugging printout. 1985-06-10 11:23:22 +00:00
keie
42c2a9754f Adapted by Sjoerd to amoeba. 1985-06-10 10:53:15 +00:00
keie
44ccf469d9 Changed to get led working under amoeba.
Author: K.S. Mullender.
1985-06-10 10:48:49 +00:00
keie
1c9723afd7 Using new assembler & linker. 1985-06-04 11:43:01 +00:00
keie
23bf60a80e Adapated to use of new linker & assembler. 1985-06-04 11:30:54 +00:00
keie
04e97ce36b *** empty log message *** 1985-06-04 11:18:43 +00:00
keie
0370ea6d61 Adapted to use of the new assembler & linker 1985-06-04 11:18:09 +00:00
keie
a9bbf81f93 Adapted to use of new assembler & linker 1985-06-04 10:57:42 +00:00
keie
fa2547ddf7 Adapted to use of new linker & assembler. 1985-06-04 10:44:10 +00:00
keie
a26a8318da Adapted to using the new assembler & linker. 1985-06-04 10:40:50 +00:00
keie
206c33b6bc Added a module for fake floating point. 1985-06-04 10:39:45 +00:00
keie
5acb12ebe0 Now prevents inclusion of failed compilations into libraries. 1985-06-04 10:32:27 +00:00
keie
040aa7115c Adapted to use of new assmbler and linker. 1985-06-04 10:32:07 +00:00
keie
531353e14d More adapted to use by march. 1985-06-04 10:30:18 +00:00
keie
3f83d34dd9 Adapted to use of the new assembler and linker. 1985-06-04 10:29:56 +00:00
keie
5fc5b3c32d 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
227a684c70 Adapted tu use new assembler & linker. 1985-06-04 10:25:30 +00:00
keie
be932f0f5b 1 - Changed %D into %ld.
2 - Adapted to the new linker.
1985-06-04 10:21:15 +00:00
em
37c3bced4b Adapted to using the new linker. 1985-06-04 09:48:00 +00:00
em
4eed0fe226 Added one remark intended for bug circumvention. 1985-05-28 15:57:52 +00:00
em
4d183a3757 *** empty log message *** 1985-05-23 13:56:24 +00:00
keie
177af75c93 *** empty log message *** 1985-05-13 11:19:24 +00:00
keie
f90babad30 Adapted to installation in the EM tree. 1985-05-13 11:09:53 +00:00
keie
8cbd17b1ba *** empty log message *** 1985-05-13 11:06:30 +00:00
bal
0db1db10b8 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
eb025dae5c Added a message to the effect that 'local commons' can not be handled. 1985-04-29 11:55:30 +00:00
keie
cec503a1b4 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
5472fafa56 Add hoc solution of .align problem. 1985-04-23 12:55:01 +00:00
em
a0a7a48c3b The reading of the input is now machine independent. 1985-04-22 15:13:24 +00:00
em
89a37681fc *** empty log message *** 1985-04-22 14:12:26 +00:00
keie
7b6ed6733f Added assignment for debuuging info. 1985-04-19 13:28:56 +00:00
keie
78961d37c1 Now using out.h from ../../h 1985-04-18 15:22:22 +00:00
keie
b391be598b Now using arch.h, out.h and ranlib.h from ../../h 1985-04-18 15:21:16 +00:00
bal
d0e857ddb2 Initial revision 1985-04-18 15:14:37 +00:00
bal
928e341f16 Bug fixed: incorrect return value
New version adapted from m68k4 version.
1985-04-18 15:12:29 +00:00
bal
3759de23eb Extra systems calls added 1985-04-18 15:12:06 +00:00
ceriel
9c9976c121 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
eb3fc1d43e 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
7b745d6fb2 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
d10d14acac Initial revision 1985-04-15 00:05:45 +00:00
em
ca5599714b Initial revision 1985-04-14 23:26:24 +00:00
keie
f337b8df6d Removed RANLIB . 1985-04-14 14:27:04 +00:00
keie
7cd58cabab Added m68k4, pmds4
Removed one superfluous line.
1985-04-14 13:59:14 +00:00
em
8b4f21bd95 Added libraries needed after installation of cg. 1985-04-14 13:57:31 +00:00
em
ab820d3083 8080->i80. 1985-04-14 13:54:33 +00:00
em
fb23d440f0 Removed a superfluous line. 1985-04-14 13:46:54 +00:00
em
f70b857d1b Added pmds4. 1985-04-14 13:22:26 +00:00
em
bd07643039 To prevent a (incorrrect) error message from distr/mktree. 1985-04-12 20:32:06 +00:00
keie
686e5af1bb *** empty log message *** 1985-04-12 20:07:13 +00:00
keie
34ccddfc2d The library name was incorrect. 1985-04-12 17:21:52 +00:00
keie
b6f73fdc29 Initial revision 1985-04-12 17:08:56 +00:00
keie
c19324dfea *** empty log message *** 1985-04-12 17:06:38 +00:00
keie
772b64fabd *** empty log message *** 1985-04-12 16:56:43 +00:00
keie
ef92740400 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
ee9c5be180 Initial revision 1985-04-12 16:40:22 +00:00
bal
ca9a6feeb0 floating point stuff added 1985-04-12 15:47:30 +00:00
keie
022cb596be *** empty log message *** 1985-04-12 15:06:05 +00:00
keie
9eb53c3d47 *** empty log message *** 1985-04-12 14:59:45 +00:00
keie
dfcfa9883b Initial revision 1985-04-12 14:55:00 +00:00
em
fb6d291d38 *** empty log message *** 1985-04-12 14:33:09 +00:00
em
e4e29ae837 Added flp.s, contains subroutines for all EM fp instructions.
They trap.
1985-04-12 14:29:07 +00:00
em
94534b7c15 1- Floating point routines now call routines instead of calling trp. 1985-04-12 14:25:59 +00:00
em
491040b2c7 *** empty log message *** 1985-04-12 14:01:20 +00:00
keie
b4adc21f19 Putting some dots on some i's. 1985-04-12 11:32:41 +00:00
keie
bae4084355 *** empty log message *** 1985-04-12 11:25:21 +00:00
keie
d394fe5dda Just newer. 1985-04-12 11:20:15 +00:00
keie
dcfe4e8a97 *** empty log message *** 1985-04-09 13:48:55 +00:00
keie
be9e253a2f Added 1)libsys 2)end_em.
Changed handling of -i flag.
1985-04-02 11:21:33 +00:00
keie
620216fb26 Error code 0 was returned when the installation failed! 1985-04-02 10:55:02 +00:00
keie
70d71f4355 Copy of ../libbc/compmodule. 1985-04-02 10:50:53 +00:00
keie
6b87f1082e Removed -DCPM. 1985-04-02 10:46:43 +00:00
em
fd44c34a61 *** empty log message *** 1985-04-01 17:02:55 +00:00
keie
6c247029bd *** empty log message *** 1985-04-01 14:44:26 +00:00
keie
6bbdb92784 Adapted after installation of backend. 1985-04-01 14:02:58 +00:00
keie
22182c0d7f *** empty log message *** 1985-04-01 14:00:00 +00:00
keie
87f66789de Some minor cleaning up. 1985-04-01 13:20:42 +00:00
em
1879c8e724 *** empty log message *** 1985-03-29 21:44:50 +00:00
em
693830b09a *** empty log message *** 1985-03-29 21:10:43 +00:00
keie
e3fa99632e Corrected parameter name usage from i to d. 1985-03-26 17:03:30 +00:00
keie
b3d11b1fa5 Removed pascal library. 1985-03-26 16:27:23 +00:00
keie
2b6187a009 *** empty log message *** 1985-03-26 16:23:21 +00:00
keie
a8fc6009f7 The dl programs is replaced by a more general cv. 1985-03-26 16:20:11 +00:00
keie
92141b52ce Installed backend and libraries. 1985-03-26 16:18:24 +00:00
keie
b63f304db1 Or's are not allowed on a-registers, add's are. 1985-03-26 16:09:07 +00:00
keie
ec3e755168 Adapted to Unisoft signal handling. 1985-03-26 16:08:09 +00:00
keie
a41ff68078 *** empty log message *** 1985-03-26 15:04:46 +00:00
keie
244e172413 Added head_em. 1985-03-26 15:04:02 +00:00
keie
da936740a6 Added head_em to libsys. 1985-03-26 15:00:09 +00:00
keie
35fae90a9d Fetch head_em from pmds4.
Short size is 2 not 4!
1985-03-26 14:58:54 +00:00
keie
c5a739c68f Moved head_em to libsys. 1985-03-26 14:53:00 +00:00
keie
dc92fe358e *** empty log message *** 1985-03-26 14:48:32 +00:00
keie
59996174b6 Added some more system calls.
Moved errno to a separate file.
1985-03-21 14:13:55 +00:00
keie
84f9364d4c errno is moved to a sfile of its own. 1985-03-21 14:05:03 +00:00
keie
a635fb0203 *** empty log message *** 1985-03-21 14:04:45 +00:00
em
e3e1c5ac20 *** empty log message *** 1985-03-18 17:27:42 +00:00
em
e3e9add8b1 Initial revision 1985-03-18 17:24:31 +00:00
em
ffd0d165a7 *** empty log message *** 1985-03-18 15:52:00 +00:00
em
c1d5a0c721 Changed 8080 into i80. 1985-03-18 14:44:15 +00:00
em
3e743d78f3 *** empty log message *** 1985-03-18 14:39:26 +00:00
em
90c847ca59 *** empty log message *** 1985-03-18 14:32:46 +00:00
em
1b162c577e *** empty log message *** 1985-03-18 13:46:31 +00:00
em
a5f4b01d82 Initial revision 1985-03-18 13:15:00 +00:00
em
c5508c7c0b *** empty log message *** 1985-03-18 13:12:07 +00:00
garde
80e349860b Added RCS id. 1985-03-18 12:55:07 +00:00
em
157b243956 *** empty log message *** 1985-03-18 12:46:51 +00:00
em
eabf214312 *** empty log message *** 1985-03-18 11:11:44 +00:00
garde
d52117c8dd Some less important changes 1985-03-18 10:00:30 +00:00
keie
d457c50945 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
b294ab5042 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
9d0812746b 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
9f203c9a17 Expressions are now always calculated in long.
Some backends needed that.
1985-03-12 10:41:29 +00:00
em
0c92039ba4 Expression are always evaluated in longs.
Some 2-4 backends needed long expressions.
1985-03-12 10:39:24 +00:00
em
cf6d084155 Use of the Pascal library will not occur.
/.
1985-03-12 10:24:51 +00:00
keie
7e6a6f6de2 Now also testing for availability of /tmp and /usr/tmp. 1985-03-11 13:10:52 +00:00
bal
954d3a0326 Argument is 4 bytes (pointer), not 2 bytes. 1985-03-05 12:33:29 +00:00
keie
6f6356e0b4 Initial revision 1985-03-05 00:17:40 +00:00
keie
9e26d0e0c0 *** empty log message *** 1985-03-05 00:15:40 +00:00
keie
bf3ba84e92 Adapted to 4-4. 1985-03-04 17:26:31 +00:00
keie
7a790e48fb Bleasdale only. 1985-03-04 16:47:56 +00:00
keie
32bc0f2982 Initial revision 1985-03-04 16:44:32 +00:00
keie
fb4a3fd479 *** empty log message *** 1985-03-04 16:35:40 +00:00
keie
ccdb8693ee Now using 4-byte integers and clearing D1 for double size
instruction pointers.
1985-03-04 16:12:10 +00:00
keie
a8c5699241 Now returns correct values. 1985-03-04 16:11:56 +00:00
keie
e0c4e4b686 Added execv and execle. 1985-03-04 16:11:41 +00:00
keie
8a40c25069 Now using .reghp. 1985-03-04 16:11:26 +00:00
keie
0fd729951a Removed superfluous instruction. 1985-03-04 16:10:47 +00:00
keie
7a30dc4868 *** empty log message *** 1985-03-04 16:08:41 +00:00
keie
4b1965afbc *** empty log message *** 1985-03-04 15:55:28 +00:00
keie
b2b281f525 To force the first part of a circular ring of modules in from
tail_em.
/.
1985-03-04 15:37:38 +00:00
keie
d2a6847715 The previous version still assumed two-byte integers. 1985-03-04 15:33:28 +00:00
keie
2690f07cbd Incorrect alignment caused odd _end, which caused
failures of malloc().
1985-03-04 15:30:44 +00:00
keie
aa82964563 Now also prints stack height. 1985-03-04 15:29:36 +00:00
keie
c636aba734 Alignment now also works when the alignment ended on odd boundaries. 1985-03-04 15:28:02 +00:00
keie
ce92663b0a Initial revision 1985-03-04 15:27:09 +00:00
keie
a89ba7074f Always returned non-zero value. 1985-03-04 15:25:33 +00:00
keie
a71e706aa4 *** empty log message *** 1985-03-04 15:14:01 +00:00
garde
736a2d1022 Many things improved and extended 1985-03-04 13:42:38 +00:00
keie
17e13e9e71 Adapted to single cv for all machines. 1985-03-01 22:11:46 +00:00
keie
9d7b94ba34 Adapted to a single cv for all machines. 1985-03-01 22:10:44 +00:00
keie
218f7ed718 Corrected a horrible typing mistake. 1985-03-01 20:08:45 +00:00
keie
cb0b2e08cf 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
c2a990768d 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
36537eccc0 Also clear D1 (for static link). 1985-03-01 16:00:23 +00:00
keie
6cdcb391fb Added RCS ID. 1985-03-01 10:34:00 +00:00
keie
9d9c9ae97b *** empty log message *** 1985-03-01 10:30:23 +00:00
bal
c478b62711 bug fixed in kill_much():
for ( .. ; i != (Lindex) i; ..  ) should be
for ( .. ; i != (Lindex) 0; ..  ).
1985-02-28 10:35:57 +00:00
keie
e7f7f33f60 cg tried to stack register parameters of moves, when
these registers were killed.
1985-02-26 16:31:38 +00:00
keie
c1f3dbba33 1 - Removed PMDS from selection list.
2 - Joined two line, that should have been one.
1985-02-26 11:56:57 +00:00
bal
d5098fe70f Bug fixed: co_lfirst received wrong value for multiply-optimization. 1985-02-25 14:03:09 +00:00
bal
469d075e77 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
2a4b3fd616 Removed nascom/z80a from the distribution. 1985-02-19 13:59:17 +00:00
keie
408dacc2aa 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
7397122695 p_use->u_ext field deleted from showptable() 1985-02-19 11:16:11 +00:00
bal
abcbc93b5d Dependencies for .m files added. 1985-02-19 11:13:13 +00:00
keie
de6ce0fe74 Added a default in the ANY case for system type. 1985-02-19 10:31:20 +00:00
keie
b449b94b48 Removed nascom from linked list. 1985-02-18 23:06:13 +00:00
keie
7d85a4c0b3 Added link to 6805. 1985-02-18 23:01:05 +00:00
bal
66ab97d2b0 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
241a7de970 The PDP 11 needs -i, Vax'en ignore it. 1985-02-18 12:45:31 +00:00
keie
41d580c9cf Added some comment. 1985-02-18 01:06:58 +00:00
keie
ec46d547c4 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
daa47964a5 Changed "name of system" into "type of system". 1985-02-18 00:12:12 +00:00
keie
ee63833f41 Basic also needs libc.a. 1985-02-17 22:47:40 +00:00
keie
445d52de66 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
b82c00e153 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
972692cb1c Further refinement. 1985-02-17 22:01:03 +00:00
em
bbfb511322 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
3f3bddef8f fixup commit for tag 'dist2' 1985-02-17 00:57:20 +00:00
keie
9f45dd0650 Added .align 2.
Especially important for malloc.
1985-02-17 00:57:19 +00:00
keie
43a2b60360 *** empty log message *** 1985-02-16 22:09:05 +00:00
keie
14875e6ca5 *** empty log message *** 1985-02-16 16:48:18 +00:00
em
d32de5df93 Now chooses between Vax and Pdp conversion. 1985-02-16 15:58:34 +00:00
keie
eeb944f6e3 The assembler is used for both 2/4 and 4/4. 1985-02-16 15:49:03 +00:00
em
ca28f34c8e *** empty log message *** 1985-02-15 23:13:04 +00:00
em
625c309fa6 1985-02-15 23:12:16 +00:00
em
9f3928cd3a Adapted to -DNOFLOAT. 1985-02-15 23:11:30 +00:00
em
a65f05f29f Adapted to NOFLOAT. 1985-02-15 23:10:04 +00:00
em
6a6a84a274 *** empty log message *** 1985-02-15 23:00:46 +00:00
em
4f80e81ee7 *** empty log message *** 1985-02-15 22:53:13 +00:00
em
eb2b9d0bac Removed one error. 1985-02-15 14:37:35 +00:00
em
792d315beb Program was adapted with NOFLOAT flag. 1985-02-15 14:23:34 +00:00
em
04e454d3c6 Added RCS id.
Adapted to use the NOFLOAT cpp flag.
1985-02-15 14:20:04 +00:00
bal
a1c2dadb2a Compare group (cmp,cmi,cmu,cms,cmf) added as cheap operators. 1985-02-15 13:18:57 +00:00
em
b6381fad79 The cho worked incorrectly, thereby causing the whole test to fail. 1985-02-13 00:41:16 +00:00
em
c9eb48d373 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
67d635ccd4 1985-02-12 23:07:22 +00:00
em
f37307bc06 A slightly different message. 1985-02-12 23:07:05 +00:00
keie
2a4335787e Adfded RCS id. 1985-02-12 14:37:52 +00:00
keie
1b5278f3d4 As left by Hans v. Staveren. 1985-02-12 14:32:20 +00:00
keie
815b0e0f0f *** empty log message *** 1985-02-12 14:20:30 +00:00
keie
70c000b03e 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
f59262745e Initial revision 1985-02-12 12:54:44 +00:00
keie
cc4f8a793a Initial revision 1985-02-12 12:28:49 +00:00
keie
52fee02e94 Adapted to run on 4/4 machines. 1985-02-11 14:33:04 +00:00
keie
fee336890b Placed a few dot on e few i's. 1985-02-11 14:32:02 +00:00
keie
0b6744bb91 The default for any machine is without, double length
integer arithmetic and without floating point.
1985-02-11 11:17:35 +00:00
bal
e704ddc158 restructured. 1985-02-11 10:52:49 +00:00
bal
f7699474b8 The binaries of the phases of ego are now put in a single directory. 1985-02-11 10:07:47 +00:00
bal
6909adbf9c Macros newcflpx and oldcflpx added. 1985-02-11 09:52:11 +00:00
bal
156775643e Include files and declaration of em_flag added. 1985-02-11 09:51:02 +00:00
bal
d41c902b12 Memory allocation/deallocation for extends changed. 1985-02-11 09:48:32 +00:00
keie
43f003e959 Removed a few typos. 1985-02-08 16:54:34 +00:00
keie
ba1e51e914 Deleted a line with a statement unknown to this compiler. 1985-02-08 15:41:19 +00:00
keie
66875f1bde Looks more reasonanle now. 1985-02-08 13:21:23 +00:00
keie
8a7ee2ea50 Now calling trace with the current line number as parameter. 1985-02-08 13:18:26 +00:00
keie
e9850f2691 Improved. 1985-02-08 13:12:51 +00:00
keie
0122bc2dd7 *** empty log message *** 1985-02-07 22:59:50 +00:00
keie
c0085c2dd4 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
00d75279e7 d2 contains the remainder of dvu i.s.o. d3. 1985-02-07 22:26:11 +00:00
keie
c0d87aaa16 *** empty log message *** 1985-02-07 22:06:32 +00:00
keie
3c7fcfe81a Initial revision 1985-02-07 17:43:43 +00:00
keie
4ff7e05f7e Initial revision 1985-02-07 17:18:06 +00:00
keie
3df42a584c *** empty log message *** 1985-02-07 15:58:40 +00:00
keie
9c93cbdfaa *** empty log message *** 1985-02-07 15:33:13 +00:00
em
1b36afae36 Added a line about the presence of out.std 1985-02-06 21:31:51 +00:00
em
0ff3a17f5e Initial revision 1985-02-06 21:25:27 +00:00
keie
d7abe0e8b6 Initial revision 1985-02-06 21:06:03 +00:00
garde
20986fd6ea monitor calls open, close and ioctl removed. 1985-02-06 16:56:41 +00:00
garde
293dfd2c64 Initial revision 1985-02-06 16:50:52 +00:00
em
e1b8023da1 *** empty log message *** 1985-02-05 14:52:52 +00:00
em
52d0f32e32 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
c8e426ffb8 This one is made with lorder|tsort. 1985-02-05 14:51:17 +00:00
em
b70b6ba980 The first one, Duk's order. 1985-02-05 14:50:24 +00:00
em
c90c70bb84 Now fetching sedf from this directory instead of
from the cg source directory.
1985-02-05 11:44:40 +00:00
keie
a50f8ebe1c Placed the include files in {EM_HOME}/h/bc_..... 1985-02-04 22:18:16 +00:00
keie
da898f1325 *** empty log message *** 1985-02-04 14:31:17 +00:00
keie
1e38fa0573 *** empty log message *** 1985-02-04 14:26:13 +00:00
keie
5a6676cc53 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
987ed39adb Added an entry "distr" to make tables1.c and tables1.h. 1985-02-03 23:50:51 +00:00
keie
3d4a5efe99 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
46f5004866 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
df168727a6 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
2cc4735151 Added libmon to libraries to be translated. 1985-02-02 18:06:37 +00:00
em
dd7e9436a2 *** empty log message *** 1985-02-01 22:12:31 +00:00
garde
8e154eb826 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
ca219d89e9 Now using ../../proto/libg/Makefile. 1985-02-01 12:38:08 +00:00
keie
26999bb517 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
103659cd7b 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
626ae9760f 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
dcd8451347 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
882906b3c3 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
f586956618 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
6459b0bf5f 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
1f56b2aa4c 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
d1c0d1db13 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
b99ce86e16 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
bec394f7bd Entry for LOI changed from CLASS1 to CLASS12. 1985-01-30 14:49:03 +00:00
bal
db19d06f61 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
e936aea1e1 Added -DCPM to the flags. 1985-01-30 12:37:10 +00:00
bal
31eab814f2 Debugging procedure print_allocs now writes to stderr. 1985-01-30 10:52:33 +00:00
bal
7f9dd27dc8 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
387191a2c7 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
cf3d3ad287 Also remove all *.e and *.d files when cleaning up. 1985-01-25 16:19:13 +00:00
keie
1bc30e42eb 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
e271d9bbb8 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
a49f2d23f7 Number of address registers decreased from 5 to 4. 1985-01-25 13:24:12 +00:00
keie
3c5d3c55af 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
6d344b6702 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
8fa5a7b668 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
d12fef6c05 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
ed1ee8a3b4 Removed test18 because it is in essence a busy loop. 1985-01-24 22:34:31 +00:00
em
3bb153d6bb Added executable files to list of those to cleanup. 1985-01-24 21:27:32 +00:00
em
df08133a04 Added entry "clean" for cleanup. 1985-01-24 21:25:57 +00:00
keie
06087a6bc3 *** empty log message *** 1985-01-24 17:39:54 +00:00
keie
fd4d46036a Added ranlib commends. 1985-01-24 16:16:32 +00:00
keie
1e3ec09984 Some minor changes. 1985-01-24 15:34:23 +00:00
em
58c5d2d8ac 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
410800127c *** empty log message *** 1985-01-24 11:27:36 +00:00
bal
1732114593 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
66eabbcddf parameter of fscanf changed from "%d" to "%hd" to read a short. 1985-01-23 16:28:58 +00:00
bal
468401cb81 core allocation macros added. 1985-01-23 16:27:47 +00:00
bal
cac6ffd8c2 ovfl_harmful and arrbound_harmful turned into ints 1985-01-23 16:25:29 +00:00
bal
d32d4e6ba0 Interface of tmplocal() changed: second parameter is a long now 1985-01-23 16:23:15 +00:00
bal
5cad6f6aa7 interface with tmplocal() changed: second parameter is a long now. 1985-01-23 16:18:33 +00:00
bal
e46c49e291 bug fixed in get_instrs(): instr should be an int rather than a Celem_t. 1985-01-23 16:16:49 +00:00
bal
5a95c31414 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
f487f26e00 bug fixed in last_line() : assert(l!=0) should be assert(lines!=0). 1985-01-23 16:12:21 +00:00
bal
e95492dfb0 bug fixed in routine get_ca_lines(): test on nil-pointer. 1985-01-23 16:10:43 +00:00
bal
fefe15a844 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
3d2c33e277 rules for itemtab.h and makeitems added. 1985-01-23 15:50:17 +00:00
bal
2ea3be322d 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
a849b751a9 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
ea337060ec 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
33c81637db Added `movl r3,ap' to restore the argument pointer before returning
vi jmp (r0).
1985-01-22 13:10:35 +00:00
em
8bdec01d71 Now using opder recommanded by 'lorder'. 1985-01-22 02:17:13 +00:00
keie
7556180ab3 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
09000449a4 Added declaration of _newstr. 1985-01-21 23:57:44 +00:00
keie
68644410fb 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
c2e988c3d5 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
d4a597912f Tests for EOF returned by stdio routines need the full int width. 1985-01-21 23:53:41 +00:00
keie
682e5d9b8a Removed casts made superfluous by adding newstr to string.h 1985-01-21 23:53:01 +00:00
keie
f7027ba7e4 Test for EOF returned by stdio routines have to use the full int width. 1985-01-21 23:52:19 +00:00
keie
52a627589a Removed cast made superfluous by added newstr to string.h 1985-01-21 23:51:33 +00:00
keie
5fc9fdf795 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
08c8edf314 Changed #define's of newlbss of cst_fmt. 1985-01-21 16:40:02 +00:00
em
603f82a578 Bug fix: redefined a Local local causing an INTERNAL ERROR from as. 1985-01-21 15:49:22 +00:00
keie
8f81c858f8 Due to an 8 character identifier length limitation the identifier
"strcompare" is changed into "strcomp".
1985-01-21 14:52:34 +00:00
keie
6a21488f0c 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
374ac8b21c 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
770f321ea8 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
decda89fba Added a few /*NOSTRICT*/ comments to indicate awareness of lint complaints. 1985-01-21 14:30:55 +00:00
keie
ff46181ae0 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
dbb0d46ac2 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
d53ef52028 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
a91ff9e04b Added a declaration of gosublabel. 1985-01-21 14:21:52 +00:00
keie
56a8cd53b6 Added a few comments to indicate awareness of lint complaints. 1985-01-21 14:20:11 +00:00
keie
0c2aee4835 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
cd78a1a27a case 8 and case 6 deleted in switch of function 'prolog' 1985-01-21 14:17:11 +00:00
keie
309bbef3ea 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
71cbd2c92f 1 added lint entry.
2 changed calls to cc into $(CC)
1985-01-21 14:14:22 +00:00
em
cb49888304 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
9479f61318 Now using correct RCS identification 1985-01-21 12:47:04 +00:00
em
8d02182e12 Renaming due to 8 character C compiler limit. 1985-01-21 12:37:26 +00:00
em
aef211ad4e Used a correct definition of malloc. 1985-01-21 12:35:53 +00:00
em
a33d0e8e14 Replaced RCSid so that file starts with # in column 0 so it gets preprocessed. 1985-01-21 12:28:59 +00:00
em
4f40987ff0 Corrected type; forgot closing ". 1985-01-21 12:14:59 +00:00
em
ccfa0db0de Removed #define IDFIRST because fmt_id() replaces it. 1985-01-21 12:09:44 +00:00
em
6ac5841c7f Initial revision 1985-01-18 16:06:21 +00:00
em
f9c86fc6f6 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
a4ca3054f0 Changed label generators and added fmt_id(). 1985-01-18 15:36:51 +00:00
em
10ce06ff2b 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
8d87404836 Initial revision 1985-01-18 14:30:03 +00:00
bal
2d8dcaa2df Initial revision 1985-01-18 09:59:09 +00:00
garde
d8d2068664 Initial revision 1985-01-17 14:31:34 +00:00
duk
e1ef16649c Initial revision 1985-01-17 14:20:52 +00:00
em
6512a304a0 Checking in Martin's changes. 1985-01-17 14:10:27 +00:00
keie
e75b8772ca 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
d19105ef78 Added the test program for the C<=>Pascal interface. 1985-01-17 12:43:51 +00:00
keie
f9b105e07a *** empty log message *** 1985-01-17 12:43:04 +00:00
bal
218ce4596e 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
8f7a447719 Bug fixed: a0 is changed by call to _brk, so it should be saved & restored. 1985-01-17 10:33:23 +00:00
keie
14a9b13fd3 Added RCS id. 1985-01-11 17:03:53 +00:00
keie
d72ad93216 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
081413cfda 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
f0d34942e3 Added RCS id. 1985-01-11 16:28:30 +00:00
keie
959138af97 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
c61ea7ee53 *** empty log message *** 1985-01-11 13:20:36 +00:00
keie
22e4268cc7 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
e2c5191f0c *** empty log message *** 1985-01-11 13:13:56 +00:00
sater
7f0def8861 RREMOVE section updated. 1985-01-11 09:44:34 +00:00
sater
dac2f97109 extra define added to aid in generation of DO_RREMOVE 1985-01-11 09:42:17 +00:00
sater
3a528a7324 code was added to generate DO_RREMOVE 1985-01-11 09:41:47 +00:00
sater
3534869cb5 code was added to cause generation of DO_RREMOVE in some cases 1985-01-11 09:41:13 +00:00
sater
e9b6045b5a diffs were applied to make default register property at stacking rule
-1 instead of 0.
1985-01-11 09:40:40 +00:00
sater
a1a8fd99a0 Optional register property in stacking rules must be -1 when absent.
Fixed this.
1985-01-10 16:30:09 +00:00
duk
d7fb9edfe2 Maybe some minor changes. 1985-01-10 13:35:39 +00:00
duk
58126396af Added call to trap signals. 1985-01-10 13:24:36 +00:00
duk
55017702e2 Header and section table now allocated statically. 1985-01-10 13:22:04 +00:00
duk
7d312abd59 Inline expansion of index_adjust() and compute_origins().
Section table now allocated statically.
1985-01-10 13:19:47 +00:00
duk
ba826bad5c Added routine to check signals. 1985-01-10 13:17:22 +00:00
sater
4ba6e7a39c *** empty log message *** 1985-01-08 15:34:54 +00:00
sater
f838dd1047 Initial revision 1985-01-08 15:28:26 +00:00
keie
6aaff51b39 *** empty log message *** 1985-01-08 13:52:58 +00:00
duk
f532b58045 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
576688fc10 *** empty log message *** 1985-01-08 11:48:43 +00:00
sater
72b83cca59 *** empty log message *** 1985-01-08 09:59:28 +00:00
keie
5edf93d2de *** empty log message *** 1985-01-07 15:54:38 +00:00
keie
dd0951f114 *** empty log message *** 1985-01-07 15:43:50 +00:00
keie
5779a88371 *** empty log message *** 1985-01-07 14:39:27 +00:00
keie
22c95138aa *** empty log message *** 1985-01-07 14:26:46 +00:00
keie
d0268a4ec1 *** empty log message *** 1985-01-07 14:15:47 +00:00
keie
112211eb3b *** empty log message *** 1985-01-07 13:57:25 +00:00
keie
d0444e3a04 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
9beb72e69b *** empty log message *** 1985-01-07 13:49:31 +00:00
keie
5fedca22ad *** empty log message *** 1985-01-07 13:37:12 +00:00
keie
b4ad7c46da *** empty log message *** 1985-01-07 13:08:48 +00:00
sater
c2229e5c60 Initial revision 1985-01-04 14:05:25 +00:00
sater
11b3f3aa8a added entries for cg,ncg and cgg 1985-01-04 14:04:10 +00:00
sater
79411cb4b3 added entry for ncg.doc 1985-01-04 13:57:11 +00:00
sater
dd8505531b Initial revision 1985-01-04 13:55:07 +00:00
keie
26f38cada3 *** empty log message *** 1985-01-01 22:33:43 +00:00
keie
c235c1a93d *** empty log message *** 1985-01-01 22:27:02 +00:00
keie
d16efbab98 *** empty log message *** 1985-01-01 22:19:09 +00:00
keie
57115f49cc Take precautions against an already existing march. 1985-01-01 21:32:02 +00:00
keie
5e8a571801 *** empty log message *** 1985-01-01 19:56:08 +00:00
keie
006c4b7a49 *** empty log message *** 1985-01-01 19:42:53 +00:00
keie
5662050ad3 Initial revision 1985-01-01 19:30:24 +00:00
keie
6a08d40d15 1 - Added void.
2 - Data and function pointers have the same size.
1985-01-01 19:24:34 +00:00
keie
fe6eed6c76 Added RCS identification. 1985-01-01 18:35:40 +00:00
keie
0ebd337637 *** empty log message *** 1985-01-01 18:34:12 +00:00
bal
ffb167e8b2 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
6860747f3e Adapted to new tree structure. 1984-12-21 14:23:10 +00:00
sater
18dbfc024e 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
e129db8343 1 - Added RCS id.
2 - Used two argument [feature] of install.
1984-12-20 14:26:14 +00:00
keie
b2b1167d7a See the logfile of mach/m68k2/libem/Makefile. 1984-12-20 14:21:35 +00:00
keie
6c9e4c84f0 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
6b38714690 Added line for m68k interpreters manual. 1984-12-18 17:26:42 +00:00
keie
80d385c291 *** empty log message *** 1984-12-18 17:22:29 +00:00
keie
37d01caabd 1 - signal did not clear the stack properly.
2 - lseek did not return correct.
1984-12-18 17:12:12 +00:00
keie
7b39ce2cfa Traps now work as documented. 1984-12-18 17:11:35 +00:00
keie
53a88ccd69 1 - Human readable profile and count.
2 - Length of last table is now 64.
1984-12-18 17:09:36 +00:00
keie
2d4614ca5a Profile, count, flow in non-local goto corrected. 1984-12-18 17:08:54 +00:00
keie
246f45c867 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
b544d3b401 Replaced clr by the faster mov #0, (for d registers). 1984-12-18 17:06:36 +00:00
keie
5f41dcd958 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
9ea83d0838 Finishing profile tables. 1984-12-18 16:59:51 +00:00
keie
45e2eea414 1 - length of last table
2 - human readable profile and count output.
1984-12-18 16:58:30 +00:00
keie
8b60227186 Added pointer checks. 1984-12-18 16:58:11 +00:00
keie
f0a6c2fbcf Altered 1980 in 1984. 1984-12-18 16:57:56 +00:00
keie
8636bd025e Added machines to be sent with the second distribution to the LNTABLES. 1984-12-18 15:28:19 +00:00
keie
4d8c88e7b1 The first version, copied from 6800. 1984-12-18 15:13:56 +00:00
keie
b4faacec8c The first version, copied from 6809. 1984-12-18 15:13:55 +00:00
keie
eb15231cf4 Don't rely on cpp to be in the $PATH, call it from em/lib. 1984-12-18 13:12:30 +00:00
keie
cf947cedd3 Added Ack distribution Makefile names. 1984-12-18 13:12:03 +00:00
keie
e3bf7b5dc7 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
a5e9c4f8d1 *** empty log message *** 1984-12-17 15:52:04 +00:00
keie
8c874d4632 Run $RANLIB if the shell variable is set. 1984-12-17 15:50:02 +00:00
sater
d267037189 *** empty log message *** 1984-12-17 15:13:39 +00:00
sater
ea8e311e5a Changed descr to use recently developed 8080/cg. 1984-12-17 14:36:16 +00:00
keie
3ab2889451 Added 6500 documentation. 1984-12-17 11:38:36 +00:00
keie
c693044013 *** empty log message *** 1984-12-17 11:35:39 +00:00
keie
3b3d3f16b4 Adapted to new library. 1984-12-17 11:21:11 +00:00
keie
4f071008c8 *** empty log message *** 1984-12-17 11:11:37 +00:00
keie
d77b2081c0 Now using LIST. 1984-12-17 11:06:48 +00:00
keie
b097fe72a7 *** empty log message *** 1984-12-17 11:03:13 +00:00
keie
66d68121c8 Added F_DUM(Author of change-- Henry Bal). 1984-12-17 10:45:27 +00:00
keie
5060a9fcd6 *** empty log message *** 1984-12-17 10:44:08 +00:00
bal
523457f6ee Initial revision 1984-12-14 15:57:39 +00:00
bal
6babe9fccd Initial revision 1984-12-14 15:52:15 +00:00
bal
ad815f1061 Initial revision 1984-12-14 15:41:14 +00:00
keie
aa0f76a6cd Removed entries for pmds. 1984-12-14 13:45:42 +00:00
keie
c39e619032 Added Basic library and Revision number. 1984-12-10 15:14:00 +00:00
keie
4a2c2d89a0 Added revision number. 1984-12-10 14:57:51 +00:00
keie
468cdfd3eb 1 - Added Basic library.
2 - Added revision number.
1984-12-10 14:41:49 +00:00
keie
83f3de1555 Initial revision 1984-12-10 14:41:30 +00:00
keie
ef7ea116cd Added Basic library. 1984-12-10 14:29:51 +00:00
keie
f4ab1bb6e6 Initial revision 1984-12-10 14:28:41 +00:00
bal
98989fd9ca Initial revision 1984-12-10 13:36:12 +00:00
keie
9932e38ab2 Removed the definition of the NEEDS variable. 1984-12-10 12:49:56 +00:00
keie
0b9b183085 *** empty log message *** 1984-12-08 00:50:27 +00:00
keie
4cc2986757 This makefile was copied from ../../m68k2/dl.
The now irrelevant entries are removed.
1984-12-08 00:45:55 +00:00
keie
9f850cbb2d Comparing shouldn't stop when one compare fails. 1984-12-08 00:40:04 +00:00
keie
24204bca9f Added entries for pr and opr. 1984-12-08 00:28:16 +00:00
keie
1e651a534a Adapted to new install + compare, added anties for cmp, clean, opr and pr. 1984-12-08 00:17:39 +00:00
keie
1b210a8104 *** empty log message *** 1984-12-07 17:32:33 +00:00
keie
a0f184e3d1 Improved "make pr". 1984-12-07 17:14:43 +00:00
keie
9b6c26ad14 An efficiency change only. 1984-12-07 16:52:09 +00:00
keie
89a757d6f9 Added cmp entry. 1984-12-07 16:45:26 +00:00
keie
518e817345 This one works, the previous one didn't. 1984-12-07 16:42:59 +00:00
keie
f9fa5df654 install now allows a source and destination name. 1984-12-07 16:38:13 +00:00
keie
9e4b9fddab Now use prototype makefile from ../../proto. 1984-12-07 15:22:22 +00:00
ceriel
7f12f20be6 Removed a reference to a non existing Makefile ( in the lib directory). 1984-12-07 15:21:25 +00:00
bal
9019141137 Bug fixed in optimizing two adjacent basic blocks. 1984-12-07 14:19:53 +00:00
keie
af75a28622 Changed access path of em h directory. 1984-12-07 14:01:33 +00:00
keie
c744b44b48 Changed access path of en h directory. 1984-12-07 14:01:11 +00:00
keie
80d4c7ca2f Initial revision 1984-12-07 13:41:58 +00:00
keie
c2d3d6ce4a Initial revision 1984-12-07 10:42:27 +00:00
keie
47f5e79d96 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
2c7c97051b 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
0d5c765070 Repaired a few minor bugs. 1984-12-04 21:57:22 +00:00
keie
01d4011dd6 I hope this version is correct. 1984-12-04 21:48:14 +00:00
keie
7f3328678f Initial revision 1984-12-04 21:38:13 +00:00
sater
d9fe7e9cf0 Initial revision 1984-12-04 15:33:28 +00:00
bal
4e461a9860 Initial revision 1984-12-04 15:04:44 +00:00
bal
3cdaf9f4ba WORDLENGTH now defined in automatically generated file wordlen.h
Generate this file from makewlen.c
1984-12-04 15:04:01 +00:00
bal
0d0e2d2d22 WORDLENGTH now defined in automatically generated file worlen.h 1984-12-04 15:03:22 +00:00
bal
8d659c015f Bug fixed: fill_item() should initialize item->it_desirable to TRUE. 1984-12-04 14:41:20 +00:00
keie
695a914eb3 Added tail_m and tail_ln. 1984-12-04 13:31:03 +00:00
bal
9b72991e27 regsave_cost() return void instead of short. 1984-12-04 13:04:27 +00:00
bal
8db2c12881 regsave_cost() returns void instead of short. 1984-12-04 13:03:49 +00:00
keie
7e8d898bcb Initial revision 1984-12-03 23:20:13 +00:00
keie
550e4d3cee Adapted to use the files in the library directory dedicated to the pmds. 1984-12-03 22:55:26 +00:00
keie
271b83ecb3 Initial revision 1984-12-03 22:02:45 +00:00
bal
ee3ef338db Comment closer ("*/") added to description of getlines(). 1984-12-03 12:12:37 +00:00
ceriel
7e3e49082c Increased MAXPATLEN to 8000. 1984-11-30 11:14:18 +00:00
bal
0778ce4a9a 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
7351e38ed5 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
bac0efbedb Declaration of items[] made static to avoid name conflict with ra.c 1984-11-30 10:49:09 +00:00
bal
302608566a 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
c814b9523d several data structures added (moved from types.h).
core allocation macros added.
1984-11-30 10:28:35 +00:00
bal
39891edd12 Declarations for iv and code_info added (moved from types.h).
core allocation macros added.
1984-11-30 10:27:05 +00:00
bal
90df1e5b9a core allocation macros added 1984-11-30 10:25:21 +00:00
bal
1e69d3458c declaration for sym,num and prc added (moved from types.h) 1984-11-30 10:24:21 +00:00
bal
6988358e29 ic.h included before ic_lookup.h 1984-11-30 10:23:34 +00:00
bal
49137da06b 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
594a5bb49b Lots of data structures removed and made local to one specific phase. 1984-11-30 10:14:30 +00:00
bal
e5a282c621 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
4ab54c85a8 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
7ac377c750 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
ad104f9164 I removed the unused integer deftype.
Its name collided with an array in symbols.c.
1984-11-29 17:27:00 +00:00
em
1b8f41d3b2 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
b532117b2b -O flag removed 1984-11-29 16:25:08 +00:00
bal
bda5c8409c macros newlvbx and oldlvbx added. 1984-11-29 15:10:11 +00:00
em
f6da80afd8 The first line should contain the distribution library name. 1984-11-29 15:03:41 +00:00
bal
8a15a3f597 macros newlocal() and oldlocal() moved to alloc.h 1984-11-29 14:40:31 +00:00
em
ae1e81adb1 *** empty log message *** 1984-11-29 14:22:02 +00:00
bal
0c0c3b7892 -O flag removed from CFLAGS 1984-11-29 13:33:33 +00:00
bal
b0de601d5b -O removed from CFLAGS 1984-11-29 13:31:22 +00:00
bal
7767012a6e 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
bd06330739 stdio.h included (required by new interface to get.h). 1984-11-29 11:06:23 +00:00
bal
84ed8ee7ef 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
f3e35f5432 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
edcb838b98 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
c17a52c09d 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
0032ebfeda 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
582a0cc2aa 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
dd5ceb7b97 putcall an putcc removed,
curoutp, outbyte,outshort and outoff exported.
1984-11-29 10:11:37 +00:00
bal
470826f0c9 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
1cb39eff7e cleaned up 1984-11-28 09:26:44 +00:00
em
90c1dc7c06 Installed basic compiler in ACK tree. 1984-11-27 23:59:28 +00:00
em
39c37e9571 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
3ceada5482 Added basic.doc. 1984-11-27 23:51:07 +00:00
em
3cab14d65e Added RCS identification. 1984-11-27 23:48:38 +00:00
em
7efc02574d *** empty log message *** 1984-11-27 23:46:32 +00:00
em
9f872a7ea0 Removed conflict between rcs_id in basic.yacc and lex.c. 1984-11-27 23:41:46 +00:00
em
ea5498cd99 Now using ACK default tmp directory from em_path.h. 1984-11-27 23:21:41 +00:00
em
455cd930ec Added RCS identification. 1984-11-27 23:13:28 +00:00
em
335d55ff4a The version of basic copied from Martin Kerstens directory. 1984-11-27 22:23:55 +00:00
em
4301dfb7bf The version of basic copied from Martin Kerstens directory. 1984-11-27 22:11:59 +00:00
bal
502a7a86af Initial revision 1984-11-27 16:16:36 +00:00
bal
30ca0afe49 cleaned up 1984-11-27 15:52:23 +00:00
bal
ad383cbdc0 stack_change was renamed stack_chg 1984-11-27 15:43:14 +00:00
bal
165965eadc Initial revision 1984-11-27 15:40:13 +00:00
bal
a6d53a6bcd "ivars" was renamed "ivvars" to avoid name conflict with sr_expr.c 1984-11-27 15:30:34 +00:00
bal
df200afd46 cleaned up 1984-11-27 15:04:04 +00:00
bal
9c3a416acd cleaned up; dependecies added. 1984-11-27 14:53:00 +00:00
bal
9e38bfa060 cleaned up. 1984-11-27 14:25:02 +00:00
bal
2d6eff961f cleaned up. use CC. 1984-11-27 14:23:20 +00:00
bal
0981b8857b 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
69bdddd9ba "cc" replaced by $(CC) 1984-11-27 12:59:18 +00:00
keie
4a36e98f5c 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
3c2c03165b 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
c4b4a08720 Initial revision 1984-11-26 15:15:07 +00:00
bal
6d481ce4d6 Initial revision 1984-11-26 15:04:22 +00:00
bal
6a9e49f683 Initial revision 1984-11-26 14:51:59 +00:00
bal
1833451151 Initial revision 1984-11-26 14:35:32 +00:00
bal
9f778655a6 Initial revision 1984-11-26 14:14:55 +00:00
bal
f01e1431b0 Initial revision 1984-11-26 14:07:17 +00:00
bal
415ae7e922 Initial revision 1984-11-26 13:58:05 +00:00
bal
7b798175ad Initial revision 1984-11-26 13:43:22 +00:00
sater
5481dd47a9 added documentation for the fmt_id and fmt_ilb macros 1984-11-26 11:09:11 +00:00
sater
0a00b80726 Added support for the fmt_id and fmt_ilb macros 1984-11-26 10:50:46 +00:00
sater
6a4dc794a2 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
7c07f91e1c The constant 512 slipped in instead of BUFSIZ.
Changed.
1984-11-20 10:22:12 +00:00
keie
36c1f227ea Added a check for non-ascii characters in the description files. 1984-11-15 14:24:35 +00:00
ceriel
1fe1bc8c09 Forgotten to close a file. This is corrected. 1984-11-12 18:05:20 +00:00
keie
4e7f357a26 Added rcs identification. 1984-11-08 12:08:31 +00:00
keie
9f776924d6 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
cb84476be0 Added a check. Minis & shorties need an N or P argument. 1984-11-08 11:09:56 +00:00
bal
d07b17ca5c 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
58c679c94c 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
e2e78ccd0a The line with the user message for failure missed the call to echo. 1984-11-06 10:02:25 +00:00
bal
0d5a4693a7 make install also make a tail_mon now. 1984-11-05 15:58:11 +00:00
bal
95dd252a5b arguments for asld changed. several libraries added. 1984-11-05 15:29:48 +00:00
bal
87c5817216 program for be is {LIB}/cg instead of {LIB}/be 1984-11-05 15:13:20 +00:00
keie
b6cfa32faa *** empty log message *** 1984-11-05 15:11:19 +00:00
bal
b9ebdc1a07 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
73b651052e Added an example with segment prefixes. 1984-11-05 15:02:32 +00:00
em
6913efe107 Adapted to new tree shape for libraries and binaries. 1984-11-05 14:42:17 +00:00
em
3e7b7990f2 *** empty log message *** 1984-11-05 12:05:46 +00:00
em
9c66801439 *** empty log message *** 1984-11-05 11:55:15 +00:00
keie
2976b590af 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
a837112d99 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
13685d4bc0 Initial revision 1984-11-02 10:13:29 +00:00
sater
45887f2b72 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
4d48191bcc 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
fedaa3267a Adapted to make use of ../../compare and ../../install. 1984-10-26 12:58:15 +00:00
keie
3d4feae541 Initial revision 1984-10-26 12:54:35 +00:00
keie
88b487cd7b Adapted to make use of ../../compare and ../../install. 1984-10-26 11:48:51 +00:00
keie
90a899316e Initial revision 1984-10-26 11:48:13 +00:00
keie
08632dc7bd *** empty log message *** 1984-10-26 11:47:56 +00:00
keie
ae27a86236 Adapted to make use of ../../compare and ../../install. 1984-10-26 11:04:10 +00:00
keie
fd0066f3a6 *** empty log message *** 1984-10-26 11:01:40 +00:00
keie
1092994a09 Initial revision 1984-10-26 11:00:08 +00:00
ceriel
da7230a8eb Running makedepend again gave a difference. 1984-10-26 10:31:22 +00:00
ceriel
1ca93d7aa1 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
9d8dd3f989 Adapted to use ../../install and ../../compare and hide knowledge
about final destination of libraries.
1984-10-26 10:25:32 +00:00
ceriel
c5345aaaba Added a "distr" entry, which will be propagated to the src directory. 1984-10-26 10:24:48 +00:00
keie
fd23647c1c Adapted to make use of ../../compare. 1984-10-26 10:21:18 +00:00
keie
4724e96474 Adapted to make use of ../../install and ../../compare. 1984-10-26 10:20:29 +00:00
keie
8df0cf17d6 Initial revision 1984-10-26 10:20:28 +00:00
keie
37730ff9ca *** empty log message *** 1984-10-26 10:19:56 +00:00
keie
a1e7cc26f4 *** empty log message *** 1984-10-26 10:12:57 +00:00
keie
137fa9ebce Adapted to use install in ../.. 1984-10-25 14:28:56 +00:00
keie
0cacc96ed8 Now using the compare script in ../.. 1984-10-25 14:28:19 +00:00
keie
4a20e17a9b Initial revision 1984-10-25 14:28:18 +00:00
keie
3bfc57ecd0 *** empty log message *** 1984-10-25 14:24:43 +00:00
keie
86d96452a3 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
e88028dcb9 Altered to make use of ../../install and ../../compare. 1984-10-25 14:19:58 +00:00
keie
1e1fc36653 Initial revision 1984-10-25 14:19:57 +00:00
keie
cdebe97db8 *** empty log message *** 1984-10-25 14:15:27 +00:00
keie
08545984f4 Now making use of ../../install and ../../compare. 1984-10-25 14:10:00 +00:00
keie
b8e156100f Adapted to make use of compare in ../.. 1984-10-25 11:40:16 +00:00
keie
9109aaaada Adapted to make use of install and compare in ../.. 1984-10-25 11:39:39 +00:00
keie
b51fa518be *** empty log message *** 1984-10-25 11:39:38 +00:00
keie
c2b1975015 Adapted to make use of install and compare in ../.. 1984-10-25 11:27:08 +00:00
keie
ca89e47aa4 *** empty log message *** 1984-10-25 11:25:22 +00:00
keie
26ba8cc8fd Removed the definition of LIBDIR, it is superfluous. 1984-10-25 11:16:31 +00:00
keie
c94c590501 Adapted to make use of install and compare in ../.. 1984-10-25 11:16:30 +00:00
keie
38a943d27a Initial revision 1984-10-25 11:15:20 +00:00
keie
916b1b016e Moved the include directory from mach/ibm/include to lib/ibm/include. 1984-10-25 11:00:06 +00:00
keie
a72cc54578 Adapted to use compare in ../.. 1984-10-25 10:46:32 +00:00
keie
9b6418c324 Adapted to compare in ../.. 1984-10-25 10:45:22 +00:00
keie
e03e8c7607 Initial revision 1984-10-25 10:45:21 +00:00
keie
2cb8aae438 *** empty log message *** 1984-10-23 15:29:53 +00:00
keie
533d2bb940 Initial revision 1984-10-23 15:29:30 +00:00
keie
828b4d62c9 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
7e31dee840 changed EM_WSIZE to TEM_WSIZE 1984-10-23 15:10:15 +00:00
sater
a4a5fc4bfa changed references to EM_?SIZE to TEM_?SIZE 1984-10-23 15:04:24 +00:00
sater
62f42d18f7 changed EM_WSIZE to TEM_WSIZE 1984-10-23 15:02:03 +00:00
sater
be9b72e273 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
79ea4bdea3 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
ab0db1c5fb added rcsid(again). Who took that away? 1984-10-16 13:45:16 +00:00
7445 changed files with 634058 additions and 114 deletions

57
.distr Normal file
View File

@ -0,0 +1,57 @@
README
CHANGES
Copyright
pm
pmfile
config.pm
h
modules/h
first
util/data
util/LLgen
modules/src/alloc
modules/src/assert
modules/src/system
modules/src/string
modules/src/read_em
modules/src/em_code
modules/src/em_mes
modules/src/print
modules/src/object
modules/src/idf
modules/src/input
modules/src/flt_arith
util/amisc
util/cmisc
util/ack
lib/descr/fe
util/arch
#util/cpp
util/cgg
util/ncgg
util/misc
util/opt
util/ego
util/topgen
util/led
lang/cem
lang/pc
lang/m2
#lang/occam
#lang/basic
mach/proto
mach/i80
mach/i86
mach/i386
plat/cpm
plat/pc86
plat/linux386
examples

5
.gitignore vendored Normal file
View File

@ -0,0 +1,5 @@
*~
*.o
.*
-.gitignore
/pattern.c

9
.hgtags Normal file
View File

@ -0,0 +1,9 @@
5a0daa6017c4aa5ae23b870e97eb7431021762bc distr2
15b742c4c278c27029eca0e41f16463bc076de6e distr3
a0686e2ca8d6780ce37b8267b865f60e9317a340 llgen-1-0
d96cd06672c368e8aaa584fead379ce1d343acad oct-1
bf69b3579e8545ecfc03f5e2550586e3c479270d release-6-0-pre-4
e880082b57f12a7df1c33a2da2c7424d6368f185 dist2
fe535e3e8bc859d4a4e4a186f42670f9e588a5aa release-5-6
90102c21c4480102634c6a482d0dd55f2d9ca00f release-6-0-pre-3
ddc0de0e5e7d91b1dcd7c05602c9c2a6adf8d312 release-6-0-pre-1

276
Action Normal file
View File

@ -0,0 +1,276 @@
name "System definition"
dir first
action ack_sys
failure "You have to run the shell script first/first"
fatal
end
name "Manual pages"
dir man
end
! name "EM definition"
! dir etc
! end
name "EM definition library"
dir util/data
end
name "C utilities"
dir util/cmisc
end
name "Yacc parser generator"
dir util/byacc
end
name "Flex lexical analyzer generator"
dir util/flex
action "make firstinstall && make clean"
end
name "Include files for modules"
dir modules/h
end
name "Modules"
dir modules/src
indir
end
! name "LL(1) Parser generator"
! dir util/LLgen
! action "make firstinstall && make clean"
! end
name "C preprocessor"
dir util/cpp
end
name "Peephole optimizer libraries"
dir modules/src/em_opt
end
name "ACK object utilities"
dir util/amisc
end
name "Encode/Decode"
dir util/misc
end
name "Shell files in bin"
dir util/shf
end
name "EM assembler"
dir util/ass
end
name "EM Peephole optimizer"
dir util/opt
end
name "EM Global optimizer"
dir util/ego
indir
end
name "ACK archiver"
dir util/arch
end
name "Program 'ack'"
dir util/ack
end
name "Bootstrap for backend tables"
dir util/cgg
end
name "Bootstrap for newest form of backend tables"
dir util/ncgg
end
name "Bootstrap for code expanders"
dir util/ceg
indir
end
name "LED link editor"
dir util/led
end
name "TOPGEN target optimizer generator"
dir util/topgen
end
name "C frontend"
dir lang/cem/cemcom
end
name "ANSI-C frontend"
dir lang/cem/cemcom.ansi
end
name "ANSI-C preprocessor"
dir lang/cem/cpp.ansi
end
name "ANSI-C header files"
dir lang/cem/libcc.ansi
end
name "LINT C program checker"
dir lang/cem/lint
end
name "EM definition lint-library"
action "make lintlib"
dir util/data
end
name "Modules lint libraries"
dir modules/src
indir "Action.lint"
end
name "Global optimizer lint libraries"
dir util/ego/share
action "make lintlib"
end
name "Pascal frontend"
dir lang/pc/comp
end
name "Basic frontend"
dir lang/basic/src
end
name "Occam frontend"
dir lang/occam/comp
end
name "Modula-2 frontend"
dir lang/m2/comp
end
name "Modula-2 definition modules"
dir lang/m2/libm2
end
name "Modula-2 makefile generator"
dir lang/m2/m2mm
end
name "Fortran to C compiler"
dir lang/fortran/comp
end
name "EM interpreter in C"
dir util/int
end
name "Symbolic debugger"
dir util/grind
end
name "Intel 8086 support"
dir mach/i86
indir
end
name "Intel 80286 support for Xenix"
dir mach/xenix3
indir
end
name "Intel 80386 support for Xenix 386 System V"
dir mach/i386
indir
end
name "MSC6500 support"
dir mach/6500
indir
end
name "Motorola 6800 support"
dir mach/6800
indir
end
name "Motorola 6805 support"
dir mach/6805
indir
end
name "Motorola 6809 support"
dir mach/6809
indir
end
name "Intel 8080 support"
dir mach/i80
indir
end
name "2-2 Interpreter support"
dir mach/em22
indir
end
name "2-4 Interpreter support"
dir mach/em24
indir
end
name "4-4 Interpreter support"
dir mach/em44
indir
end
name "Motorola 68000 2-4 support"
dir mach/m68k2
indir
end
name "Motorola 68000 4-4 support"
dir mach/m68k4
indir
end
name "NS16032 support"
dir mach/ns
indir
end
name "PDP 11 support"
dir mach/pdp
indir
end
name "PMDS support"
dir mach/pmds
indir
end
name "PMDS 4/4 support"
dir mach/pmds4
indir
end
name "Signetics 2650 support"
dir mach/s2650
indir
end
name "Vax 4-4 support"
dir mach/vax4
indir
end
name "M68020 System V/68 support"
dir mach/m68020
indir
end
name "Sun 3 M68020 support"
dir mach/sun3
indir
end
name "Sun 4 SPARC SunOs 4 support"
dir mach/sparc
system "sparc|sparc_solaris"
indir
end
name "Sun 4 SPARC Solaris support"
dir mach/sparc_solaris
system "sparc_solaris"
indir
end
name "Sun 2 M68000 support"
dir mach/sun2
indir
end
name "Mantra M68000 System V.0 support"
dir mach/mantra
indir
end
name "PC Minix support"
dir mach/minix
indir
end
name "Atari ST Minix support"
dir mach/minixST
indir
end
name "Z80 support"
dir mach/z80
indir
end
name "Zilog Z8000 support"
dir mach/z8000
indir
end
name "Acorn Archimedes support"
dir mach/arm
indir
end
name "Documentation"
dir doc
end
name "Motorola 68000 interpreters"
system "m68*|sun*"
dir mach/mantra/int
end
name "Fast compilers"
system "m68020|sun3|i386|vax*"
dir fast
indir
end
name "Fast cc-compatible C compiler"
system "sun3|vax*"
dir fcc
indir
end

35
CHANGES Normal file
View File

@ -0,0 +1,35 @@
# $Source$
# $State$
# $Revision$
6.0pre4
Fixed some minor bit-rotting issues that were preventing compilation on
modern Linux systems.
6.0pre3
Added the cpm platform. Made some optimisations to the i80 code generator,
including getting topgen up and running and adding some peephole optimiser
rules. Fixed loads of bugs in ego so that it now works on platforms that
support it (pc86 and linux386). Made the floating point work on platforms
that support it (pc86 and linux386 again). Made stdint.h work. Lots and lots
of bugfixes and tweaks everywhere.
6.0pre2
Much simplified the syscall interface by disabling libmon and instead
calling the syscalls directly. Disabled the K&R C compiler and libc because
it doesn't actually gain us anything and has a high maintenance load --- the
ANSI C compiler works fine with K&R C. Adapted the rest of the system to
build with the ANSI C compiler. Rewrote the pc86 syscall interface and added
linux386 support, using the i386 code generator. Lots and lots of bugfixes
and tweaks everywhere.
6.0pre1
First working version of the 6.0 release stream. Working frontends: both C
compilers, Pascal, Modula-2, Basic and Occam. Working backends: i86. Working
platforms: pc86, the very noddy testbed setup that produces floppy disk
images.

1
Copyright Symbolic link
View File

@ -0,0 +1 @@
LICENSE

32
LICENSE Normal file
View File

@ -0,0 +1,32 @@
Copyright (c) 1987, 1990, 1993, 2005 Vrije Universiteit, Amsterdam, The Netherlands.
All rights reserved.
Redistribution and use of the Amsterdam Compiler Kit in source and
binary forms, with or without modification, are permitted provided
that the following conditions are met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above
copyright notice, this list of conditions and the following
disclaimer in the documentation and/or other materials provided
with the distribution.
* Neither the name of Vrije Universiteit nor the names of the
software authors or contributors may be used to endorse or
promote products derived from this software without specific
prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS, AUTHORS, AND
CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
IN NO EVENT SHALL VRIJE UNIVERSITEIT OR ANY AUTHORS OR CONTRIBUTORS BE
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

45
NEW Normal file
View File

@ -0,0 +1,45 @@
This is ACK distribution 5.6.
This is a minor update of 5.5, the last public release from Vrije University.
Only minor changes have been made to make the system build on modern
platforms.
The NEW document from the previous release follows.
David Given
dg@cowlark.com 2005-06-24
-----------------------------------------------------------------------------
The only addition with respect to the 5th ACK distribution is the support
for Solaris 2 on SPARCs. It also contains many bug fixes.
Notes for the 5th ACK distribution:
It is not wise to mix files created by the previous version of the Kit
with files belonging to this version, although that might sometimes work.
Many problems with the previous distribution have been fixed.
The major additions are:
- an ANSI C compiler
- a LINT C program checker, both non-ansi and ansi
- an Intel 80386 back-end
- a SPARC code expander
- a source level debugger for Pascal, Modula-2, C, and ANSI C
- an Acorn Archimedes back-end
- code-expanders for VAX, Intel 80386 and Motorola M68020 processors,
and very fast Pascal, Modula-2, ANSI C, and C compilers constructed
using these code expanders
- a cc-compatible very fast C compiler for SUN-3 and VAX.
Also added, but not part of the Kit proper are
- flex: a lexical analyzer generator
- byacc: yacc-clone by UCB
- f2c: a Fortran to C compiler by AT&T.
See the ACK installation manual for their copyright notices.
--
Ceriel Jacobs, Dept. of Mathematics and Computer Science, Vrije Universiteit,
De Boelelaan 1081a, 1081 HV Amsterdam, The Netherlands
Email: ceriel@cs.vu.nl Fax: +31 20 6427705

189
README Normal file
View File

@ -0,0 +1,189 @@
THE AMSTERDAM COMPILER KIT V6.0pre4
===================================
© 1987-2005 Vrije Universiteit, Amsterdam 2010-08-08
© 2013-2014 Manoel Trapier, Paris
INTRODUCTION
============
The Amsterdam Compiler Kit is a complete compiler toolchain consisting of
front end compilers for a number of different languages, code generators,
support libraries, and all the tools necessary to go from source code to
executable on any of the platforms it supports.
This is an early prerelease of the apocryphal version 6.0 release. Not a
lot is supported, the build mechanism needs work, and a lot of things are
probably broken. However, what's there should be sufficient to get things
done and to evaluate how the full 6.0 release should work.
This is a fork from the original repository found on sourceforge. This
fork exist for three reason, the first is I strongly prefere git than
mercurial (this is a personal preference) and second I want to make it
work on Mac OS X but the OSX clang/gcc does not really like the K&R
syntax, so I take into the process of ANSIfy it. The third reason is why
I want to use the ACK, it support old CPU, like the 6502 or i8080, i8086
and it is open source unlike a lot of compiler we can found nowadays for
such targets, and it support more than C that is a wonderfull bonus!
I have plan to add targets like the NES, add support for the 65c816 and
add the SNES target, add the WonderSwan as a target and so on. I see in
this compiler kit a wonderfull project for all sort of old computer that
are still used nowadays and used CPU that are no longuer targeted by
modern compilers.
I plan to push my changes on the original version, at least for the new
targets and cpu.
SUPPORT
=======
Languages:
ANSI C, Pascal, Modula 2. K&R is supported via the ANSI C compiler.
Platforms:
pc86 produces bootable floppy disk images for 8086 PCs
linux386 produces ELF executables for PC Linux systems
cpm produces i80 CP/M .COM files
INSTALLATION
============
The version 6.0 build mechanism has been completely rewritten and is based
around the Prime Mover build tool (see http://primemover.sf.net for more
information). Installation ought to be fairly straightforward.
Requirements:
- an ANSI C compiler. Currently, I'm afraid, it's hard-coded to use gcc.
To change, try changing the variable definitions in first/c.pm. This also
needs to be available as 'cc' from the shell.
- about 20MB free in /tmp (or some other temporary directory).
- about 6MB in the target directory.
Instructions:
- edit config.pm. There's a small section at the top containing some editable
variables. Probably the only one you may want to edit is PREFIX, which
changes where the ACK installs to.
- Run:
./pm configure
...from the command line. This will write out a configuration file.
- Run:
./pm
...from the command line. This will actually do the build. This takes
about two minutes on my 1.6GHz Athlon Linux machine and about 30 on my
166MHz Pentium OpenBSD machine.
- Run:
./pm install
...from the command line (possibly with sudo). This will install the built
ACK into whatever directory you nominated in PREFIX.
The ACK should now be ready to use.
USAGE
=====
Currently I haven't sorted out all the documentation --- it's supplied in the
distribution, but not all of it gets installed yet --- so here is a quickstart
guide.
The main command to use is 'ack'. This invokes the compiler and the linker.
Some useful options include:
-m<platform> build for the specified platform
-o <file> specifies the output file
-c produce a .o file
-c.s produce a .s assembly file
-O enable optimisation
-ansi compile ANSI C (when using the C compiler)
<file> build file
ack figures out which language to use from the file extension:
.c C (ANSI or K&R)
.b Basic
.mod Modula-2
.ocm Occam 1
.p Pascal
.o object files
.s assembly files
For further information, see the man page (which actually does get
installed, but is rather out of date).
There are some (known working) example programs in the 'examples' directory.
A sample command line is:
ack -mlinux386 -O examples/paranoia.c
GOTCHAS
=======
There are some things you should be aware of.
- Look at plat/<PLATFORMNAME>/README for information about the two supported
platforms.
- The library support is fairly limited; for C, it's at roughly the ANSI C
level, and for the other languages it's similar.
- When compiling languages other than C, the ACK will usually look at the
first character of the file. If it's a #, then the file will be run through
the C preprocessor anyway.
- BSD systems may need to up the number of file descriptors (e.g.
'ulimit -n 200') before the ACK will compile.
- The ACK uses its own .o format. You won't be able to mix the ACK's object
files and another compiler's.
DISCLAIMER
==========
The ACK is mature, well-tested software, but the environment in which it was
developed for and tested under is rather different from that available on
today's machines. There will probably be little in the way of logical bugs,
but there may be many compilation and API bugs.
If you wish to use the ACK, *please* join the mailing list. We are interested
in any reports of success and particularly, failure. If it does fail for you,
we would love to know why, in as much detail as possible. Bug fixes are even
more welcome.
The ACK is licensed under a BSD-like license. Please see the 'Copyright' file
for the full text.
You will find this "ANSI Fork" on github:
http://github.com/Godzil/ack
You can find the ACK mailing list and the original project's web site:
http://tack.sourceforge.net/
Please enjoy.
Manoel Trapier (aka godzil) for the ANSI-fication port
David Given (dtrg on Sourceforge)
dg@cowlark.com
2010-08-08

1
README.md Symbolic link
View File

@ -0,0 +1 @@
README

20
TODO Normal file
View File

@ -0,0 +1,20 @@
# $Source$
# $State$
This file contains things that I have noticed need fixing, but have not
yet been fixed. Everything here should be reasonably low priority. Some
bugs have been bodged around to make things work; these are all marked in
the source with FIXME tags.
* util/int needs to be rewritten to emulate sgtty with termios; look for
FIXMEs.
* mach/i80/dl/nascom.c needs to be rewritten to use termios, not sgtty.
# Revision history
# $Log$
# Revision 2.1 2005-06-24 23:20:41 dtrg
# Added some new readmes at the top level.
#

146
TakeAction Executable file
View File

@ -0,0 +1,146 @@
#!/bin/sh
case $# in
0) PAR='make install && make clean' ; CMD=Action ;;
1) PAR="$1" ; CMD=Action ;;
2) PAR="$1" ; CMD="$2" ;;
*) echo Syntax: "$0" [command [file]] ; exit 1 ;;
esac
if test -r "$CMD"
then :
else
case "$CMD" in
Action) echo No Action file present ;;
*) echo No Action file "($CMD)" present ;;
esac
fi
case $0 in
/*) THISFILE=$0
;;
*) if [ -f $0 ]
then
THISFILE=`pwd`/$0
else
THISFILE=$0
fi
;;
esac
SYS=
RETC=0
{ while read LINE
do
eval set $LINE
case x"$1" in
x!*) ;;
xname) SYS="$2"
ACTION='$PAR'
DIR=.
FM=no
FAIL='Failed for $SYS, see $DIR/Out'
SUCC='$SYS -- done'
ATYPE=
FATAL=no
DOIT=yes
;;
xfatal) FATAL=yes ;;
xaction|xindir) case x$ATYPE in
x) ACTION=$2 ; ATYPE=$1
case $ATYPE$FM in
indirno) FAIL='Failed for $SYS' ;;
esac
;;
*) echo Already specified an $ATYPE for this name
RETC=65 ;;
esac ;;
xfailure) FM=yes
FAIL="$2" ;;
xsuccess) SUCC="$2" ;;
xdir) DIR="$2" ;;
xsystem) PAT="$2"
oIFS=$IFS
IFS="|"
eval set $2
case x`ack_sys` in
x$1|x$2|x$3|x$4|x$5|x$6|x$7) ;;
*) echo "Sorry, $SYS can only be made on $PAT systems"
DOIT=no
;;
esac
IFS=$oIFS
;;
xend) case $DOIT in
no) continue ;;
esac
case x$SYS in
x) echo Missing name line; RETC=65 ;;
*) if test -d $DIR
then (
cd $DIR
X=
case $ATYPE in
indir)
if $THISFILE "$PAR" $ACTION
then eval echo $SUCC
else RETC=2 ; eval echo $FAIL
fi ;;
*)
case "$ACTION" in
'$PAR')
ACTION="$PAR"
;;
*) ;;
esac
if [ -f No$CMD ]
then
x=`cat No$CMD`
if [ "$ACTION" = "$x" ]
then
ACTION='echo "No actions performed, No$CMD file present"'
SUCC='$SYS -- skipped'
fi
fi
if eval "{ $ACTION ; } >Out 2>&1 </dev/null"
then eval echo $SUCC
if [ "$SUCC" = '$SYS -- skipped' ]
then :
else echo "$ACTION" > No$CMD 2>/dev/null
fi
else RETC=1 ; X=: ; eval echo $FAIL
fi
;;
esac
(echo ------- `pwd`
cat Out
$X rm -f Out
) 2>/dev/null 1>&- 1>&3
exit $RETC
)
case $? in
0) ;;
*) case $RETC in
0) RETC=$? ;;
esac ;;
esac
else
echo Directory $DIR for $SYS is inaccessible
RETC=66
fi ;;
esac
case $FATAL$RETC in
yes0) ;;
yes*) echo Fatal error, installation stopped.
exit $RETC ;;
esac
SYS=
;;
*) echo Unknown keyword "$1"
RETC=67 ;;
esac
done
exit $RETC
} <$CMD
RETX=$?
case $RETX in
0) exit $RETC ;;
*) exit $RETX ;;
esac

9
bin/.distr Normal file
View File

@ -0,0 +1,9 @@
cc-and-mkdep.ack
cc-and-mkdep.all
cc-and-mkdep.sun
do_deps
do_resolve
lint-lib.ack
lint-lib.unix
mk_manpage
rm_deps

8
bin/cc-and-mkdep.ack Executable file
View File

@ -0,0 +1,8 @@
#!/bin/sh
: '$Id$'
: Compile and make dependencies. First argument is the file on which the
: dependencies must be produced. This version is for ACK.
n=$1
shift
exec $CC -Rcem-A$n -Rcem-m $*

21
bin/cc-and-mkdep.all Executable file
View File

@ -0,0 +1,21 @@
#!/bin/sh
: '$Id$'
: Compile and make dependencies. First argument is the file on which the
: dependencies must be produced. This version is a generic one that should
: work for all Unix systems.
n=$1
shift
cpp_args=
for i in $*
do
case $i in
-I*|-D*|-U*) cpp_args="$cpp_args $i"
;;
-*) ;;
*) cpp_args="$cpp_args $i"
;;
esac
done
$UTIL_HOME/lib.bin/cpp -d -m $cpp_args > $n 2>/dev/null
exec $CC $*

8
bin/cc-and-mkdep.sun Executable file
View File

@ -0,0 +1,8 @@
#!/bin/sh
: '$Id$'
: Compile and make dependencies. First argument is the file on which the
: dependencies must be produced. This version is for the SUN cc.
n=$1
shift
exec $CC -Qpath $UTIL_HOME/lib.bin -Qoption cpp -d$n -Qoption cpp -m $*

19
bin/do_deps Executable file
View File

@ -0,0 +1,19 @@
#!/bin/sh
: '$Id$'
: Produce dependencies for all argument files
for i in $*
do
n=`basename $i .c`
if [ -f $n.dep ]
then
:
else
echo $n.'$(SUF): '$i > $n.dep
echo " head -5 $n.dep > $n.dp1" >> $n.dep
echo ' CC="$(CC)" UTIL_HOME="$(UTIL_HOME)" $(CC_AND_MKDEP) '$n.dp2 '$(CFLAGS)' -c $i >> $n.dep
echo " cat $n.dp1 $n.dp2 > $n.dep" >> $n.dep
echo " rm -f $n.dp1 $n.dp2" >> $n.dep
fi
done

48
bin/do_resolve Executable file
View File

@ -0,0 +1,48 @@
#!/bin/sh
: '$Id$'
: Resolve name clashes in the files on the argument list. If these
: files reside in another directory, a copy is made in the current
: directory. If not, it is overwritten. Never do this in a source
: directory! A list of the new files is produced on standard output.
UTIL_BIN=$UTIL_HOME/bin
trap "rm -f tmp$$ a.out nmclash.* longnames clashes" 0 1 2 3 15
: first find out if we have to resolve problems with identifier significance.
cat > nmclash.c <<'EOF'
/* Accepted if many characters of long names are significant */
abcdefghijklmnopr() { }
abcdefghijklmnopq() { }
main() { }
EOF
if $CC nmclash.c
then : no identifier significance problem
for i in $*
do
echo $i
done
else
$UTIL_BIN/prid -l7 $* > longnames
: remove code generating routines from the clashes list.
: code generating routine names start with C_.
: also remove names starting with flt_.
sed '/^C_/d' < longnames | sed '/^flt_/d' > tmp$$
$UTIL_BIN/cclash -c -l7 tmp$$ > clashes
for i in $*
do
$UTIL_BIN/cid -Fclashes < $i > tmp$$
n=`basename $i .xxx`
if cmp -s $n tmp$$
then
rm -f tmp$$
else
mv tmp$$ $n
fi
echo $n
done
fi

13
bin/lint-lib.ack Executable file
View File

@ -0,0 +1,13 @@
#!/bin/sh
: '$Id$'
: Create a lint library file. The name of the library file is constructed
: from the first argument. The second argument indicates the directory where
: the result is to be placed. This version is for ACK lint.
n=$1
shift
d=$1
shift
lint -L$n $*
mv $n.llb $d

13
bin/lint-lib.unix Executable file
View File

@ -0,0 +1,13 @@
#!/bin/sh
: '$Id$'
: Create a lint library file. The name of the library file is constructed
: from the first argument. The second argument indicates the directory where
: the result is to be placed. This version is for Unix lint.
n=$1
shift
d=$1
shift
/usr/bin/lint -C$n $*
mv llib-l$n.ln $d

20
bin/mk_manpage Executable file
View File

@ -0,0 +1,20 @@
#!/bin/sh
num=`expr $1 : '.*\.\([1-8]\)'`
if [ -d $2/man ] ; then : ; else mkdir $2/man ; fi
if [ -f $2/man/head ] ; then : ; else cat > $2/man/head <<'EOF'
.rn TH yy
.de TH
.di zz
.yy "\\$1" "\\$2" "\\$3" "\\$4"
.ds ]W 5th ACK distribution
.ds ]D Amsterdam Compiler Kit
.ds ]L "\\$3
.di
.rm zz
..
EOF
fi
if [ -d $2/man/man$num ] ; then : ; else mkdir $2/man/man$num ; fi
cat $2/man/head $1 | sed "s!TARGETHOME!$2!" > $2/man/man$num/`expr //$1 : '.*/\([^/]*\)'`

9
bin/rm_deps Executable file
View File

@ -0,0 +1,9 @@
#!/bin/sh
: $Id$
: remove dependencies from a makefile, write result on standard output.
: we cannot do this directly in a makefile because some make versions
: have # start a comment, always.
sed -e '/^#DEPENDENCIES/,$d' $1
echo '#DEPENDENCIES'

71
config.pm Normal file
View File

@ -0,0 +1,71 @@
-- ======================================================================= --
-- ACK CONFIGURATION --
-- (Edit this before building) --
-- ======================================================================= --
-- What platform to build for by default?
DEFAULT_PLATFORM = "pc86"
-- Where should the ACK put its temporary files?
ACK_TEMP_DIR = "/tmp"
-- Where is the ACK going to be installed, eventually?
PREFIX = "/usr/local"
-- ======================================================================= --
-- BROKEN ACK CONFIGURATION --
-- (Currently not editable) --
-- ======================================================================= --
-- FIXME: the following two variables must be set to their Minix variants
-- due to hard-coded references in the descr files.
-- Name of the platform-independent library directory; 'share' on modern
-- systems, 'lib' on Minix-like systems.
PLATIND = "lib"
-- Name of the platform-dependent library directory; 'lib' on modern
-- systems, 'lib.bin' on Minix-like systems.
PLATDEP = "lib.bin"
-- ======================================================================= --
-- BUILD SYSTEM CONFIGURATION --
-- (Not user servicable) --
-- ======================================================================= --
-- Absolute path to the ACK source directory.
ROOTDIR = posix.getcwd().."/"
-- Temporary directory used during the build process.
TEMPDIR = "/tmp/ack-temp/"
-- Directory in which dynamically generated header files will go during
-- the build process.
HEADERDIR = TEMPDIR.."headers/"
-- Directory in which tools used by the build process but which not actually
-- deployed with the ACK will go.
TOOLDIR = TEMPDIR.."tools/"
-- Directory in which the libraries used to build the ACK tools but which are
-- not actually deployed with the ACK will go.
LIBDIR = TEMPDIR.."lib/"
-- Staging area where the installation will be built before actually copying
-- it.
BINDIR = TEMPDIR.."staging/"
-- Directory that the pm cache goes in.
pm.intermediate_cache_dir = TEMPDIR.."pmcache/"

15
distr/Exceptions Normal file
View File

@ -0,0 +1,15 @@
++ ./doc/install.pr made
++ ./doc/int/.distr made
++ ./etc/new_table_done made
++ ./lang/cem/cemcom.ansi/Version.c made
++ ./lang/cem/libcc.ansi/stdlib/malloc.c made
++ ./lang/cem/cemcom/Version.c made
++ ./lang/pc/comp/Version.c made
++ ./lang/m2/comp/Version.c made
++ ./lang/m2/m2mm/Version.c made
++ ./mach/sparc/ce/EM_table made
++ ./mach/sparc_solaris/libem/LIST made
++ ./util/LLgen/src/LLgen.c.dist made
++ ./util/cpp/Version.c made
++ ./util/ego/share/pop_push.h made
++ ./util/grind/ops.c made

90
distr/How_To Normal file
View File

@ -0,0 +1,90 @@
How to make a distribution
--------------------------
I have written a new tool to generate the distributions that does not rely on
having a local CVS server --- distr/mkdist.
To use it, you need to specify your CVS work tree, the destination directory
that the distribution will be written to, plus flags. It should be self-
documenting; use:
mkdist --help
...to get documentation.
It uses .distr files in exactly the same way as the previous mechanism.
The documentation for the old distribution tools follows.
David Given
dg@cowlark.com
2005-06-25
-----------------------------------------------------------------------------
How to make a fresh distribution:
For a distribution you need ".distr" files and RCS files.
The EM home directory contains a file called ".distr". It contains
the names of all the files and directories you want to have in the distribution.
The directories should contain .distr files, the other files should
be placed under CVS.
There are files that derive from other files and yet should be placed
in the distribution.
These files should not be placed under RCS or CVS.
The file "Exceptions" in this directory contains the current list of
these files.
When all this is correct, use the shell script mktree the extract
the distribution from the EM tree.
sh mktree destination_tree repository_tree <distrname> 2>f.attf
Use the "cvs rtag" command to give the distribution a name first!
Make sure that the destination tree exists and is empty!
Failing to do that will almost certainly result in a welter of
error messages.
The file f.attf contains mktree error messages and should be compared
to Exceptions.
The actions of mktree are quite complicated. It starts in the current
directory creating a version in the destination directory.
Then it reads the .distr file.
For each file mentioned there it performes certain actions:
1- Directory Change to that directory and call yourself recursively.
2- File
a- Does a file LIST exist in this directory AND
is the first line of LIST equal to the name of the
destination file? If so, try to extract all the files
named in the rest of the LIST file and call the program
arch to create a library "arch cDr `cat LIST`".
In this manner libraries can be distributed whose members
have their own RCS file.
else
b- Try to run 'make distr'
else
c- Try to run 'make <filename>'
else
d- give message that says "not present" (or some such).
Now, the tree contains all the files in the distribution, but it also contains
files that should not be in the distribution, especially the files created
by CVS.
That is why we now give the command:
dtar cdf distr .
The file distr is the one you should put on tape!
But,.... before doing that: Try it out!
Repeat the process described in the installation manual.
Only if that succeeds you are sure that you included the files needed.
Good Luck,
Ed Keizer, 85/4/15.
Updated for 3rd distribution by Ceriel Jacobs, 87/3/11.
And again,
Good Luck!
Updated for 4th distribution by Ceriel Jacobs, 88/4/08.
And again,
Good Luck!
Updated for 5th distribution by Ceriel Jacobs, 91/19/12.
And again,
Good Luck!
Updated for 1st upgrade to 5th distribution by Ceriel Jacobs, 91/12/11.
And again,
Good Luck!

26
distr/dwalk Executable file
View File

@ -0,0 +1,26 @@
#!/bin/sh
: ${CDIR=.}
${DF-:} $CDIR .distr
if test ! -r $DESTDIR/$CDIR/.distr
then
echo ++ no .distr in $CDIR 1>&2
exit 0
fi
for i in `cat $DESTDIR/$CDIR/.distr`
do
if test -d $i
then
( if cd $i
then
CDIR=$CDIR/$i
export CDIR
exec $DDIR/dwalk $*
else
echo ++ Could not access $CDIR/$i 1>&2
fi
)
else
${DF-:} $CDIR $i
fi
done

1
distr/echod Executable file
View File

@ -0,0 +1 @@
echo $1

10
distr/listall Executable file
View File

@ -0,0 +1,10 @@
case $# in
0) DESTDIR=. ;;
1) DESTDIR=$1 ;;
*) echo $0 [directory] ; exit 1 ;;
esac
DD=`pwd`/listall.d
DW=`pwd`/dwalk
export DD DESTDIR
cd $DESTDIR
$DW

2
distr/listall.d Executable file
View File

@ -0,0 +1,2 @@
echo "<$1>"
ls -bCdx `cat .distr`

10
distr/listdirs Executable file
View File

@ -0,0 +1,10 @@
case $# in
0) DIR=. ;;
1) DIR=$1 ;;
*) echo $0 [directory] ; exit 1 ;;
esac
DD=`pwd`/echod
DW=`pwd`/dwalk
export DD
cd $DIR
$DW

40
distr/mk_distr_syms Executable file
View File

@ -0,0 +1,40 @@
#!/bin/sh
: Utility to make a tree of symbolic links to source tree.
: Mount the source tree read-only, use this script, and then try installation.
case $# in
2) ;;
*) echo "Usage: $0 <source-tree> <symlink-tree>" 1>&2
exit 1
;;
esac
if [ -f $1/.distr ]
then
for i in `cat $1/.distr`
do
if [ -d $1/$i ]
then
if mkdir $2/$i && $0 $1/$i $2/$i
then
:
else
exit 2
fi
else
if [ -f $1/$i ]
then
if ln -s $1/$i $2/$i
then
:
else
exit 3
fi
else
echo "Missing file $1/$i" 1>&2
exit 4
fi
fi
done
else
echo "No .distr file in $1" 1>&2
exit 5
fi

11
distr/mka Executable file
View File

@ -0,0 +1,11 @@
#!/bin/sh
set -e
for i in `tail +2 $DESTDIR/$1/LIST`
do
${DF-false} $1 $i
done
cd $DESTDIR/$1
arch cDr `cat LIST`
: I do not remove the files constituating the library, because
: they might be present in .distr

0
distr/mkd Executable file
View File

177
distr/mkdist Executable file
View File

@ -0,0 +1,177 @@
#!/bin/sh
# $Source$
# $State$
# Set up default variables.
destdir=
srcdir=`pwd`
arch=/usr/local/bin/arch
delete=no
copy="ln"
# --- Options parsing -------------------------------------------------------
while [ "$1" != "" ]; do
case "$1" in
-s|--srcdir)
srcdir="$2"
shift
;;
-d|--destdir)
destdir="$2"
shift
;;
-x|--delete)
delete=yes
;;
-c|--copy)
copy="cp -Rp"
;;
-S|--symlink)
copy="ln -s"
;;
-a|--arch)
arch="$2"
shift
;;
-h|--help)
echo "mkdist [options]"
echo "Options are:"
echo " -s --srcdir <path> The CVS tree to read from. (default: CWD)"
echo " -d --destdir <path> The directory to create the distribution in."
echo " -x --delete Erase the destination directory first."
echo " -c --copy Make physical copies of the files. (default: hardlink)"
echo " -S --symlink Make symbolic links instead of copying or hardlinking."
echo " -a --arch <path> Where the ACK 'arch' tool is."
echo " -h --help Display this message."
exit 0
;;
*)
echo "Unrecognised option. Try --help for help."
exit 1
esac
shift
done
if [ "$destdir" = "" ]; then
echo "You must specify a destination directory. (Try --help for help.)"
exit 1
fi
# --- Main routines ---------------------------------------------------------
# These two routines do the work of traversing the source tree and building
# the distribution tree.
addfile() {
local f
f="${1##$srcdir/}"
mkdir -p $destdir/`dirname $f`
$copy "$1" "$destdir/$f"
}
process_dir() {
local path
local archivename
path=$1
cd $path
echo $PWD
# Look for a LIST file and cache the first line.
archivename=
if [ -f LIST ]; then
archivename=`head -1 LIST`
fi
for i in `cat $path/.distr`; do
case "$i" in
\#*) # Comment. Do nothing.
;;
*)
if [ -d $i ]; then
# This is a directory. Recurse into it.
( process_dir $path/$i )
elif [ -f $i ]; then
# This is a file.
addfile $path/$i
elif [ "$i" = "$archivename" ]; then
# Build the named archive.
$arch cDr `cat LIST`
addfile $path/$archivename
else
echo "Don't know what to do with $i, listed in $PWD/.distr."
exit 1
fi
;;
esac
done
}
# --- Main program ----------------------------------------------------------
# Test to make sure that $arch points to the right thing.
if !(strings $arch | grep archiver > /dev/null); then
echo "$arch does not seem to point at the ACK archiver tool."
echo "(Don't confuse this with the Linux tool for displaying your"
echo "architecture.)"
echo ""
echo "Press RETURN to go ahead anyway, or CTRL+C to abort."
read ignored
fi
# Actually do the work.
echo "Creating distribution from CVS tree: $srcdir"
echo " into destination tree: $destdir"
echo ""
if [ -e $destdir ]; then
if [ "$delete" = "yes" ]; then
echo "Press RETURN to erase $destdir and its contents, or CTRL+C to abort."
read
echo "Erasing..."
rm -rf "$destdir"
else
echo "$destdir exists. Aborting."
exit 1
fi
fi
echo "Working..."
mkdir -p $destdir
process_dir $srcdir
echo "Done."
# Revision history
# $Log$
# Revision 1.5 2007-04-24 19:48:41 dtrg
# Removed bashish.
#
# Revision 1.4 2007/02/25 20:56:41 dtrg
# Performed major renovations to make the script work on OpenBSD.
#
# Revision 1.3 2007/02/24 02:05:56 dtrg
# Removed some bashish; added comment support; removed the make
# distr functionality, as nothing was using it any more and it was
# causing problems.
#
# Revision 1.2 2005/06/24 23:19:23 dtrg
# Added new mkdist tool.
#
# Revision 1.1 2005/06/24 22:13:57 dtrg
# Created new tool to generate distributions.

19
distr/mkf Executable file
View File

@ -0,0 +1,19 @@
#!/bin/sh
if [ -f $DESTDIR/$1/$2 ]
then
:
elif grep LIST $DESTDIR/$1/.distr >/dev/null 2>&1 &&
(test "$2" = "`head -1 $DESTDIR/$1/LIST`") >/dev/null 2>&1 &&
${DA-false} "$1" "$2"
then
: Fetched library contents one by one and put them together
elif ( cd $DESTDIR/$1 ; make distr ) > /dev/null 2>&1
then
echo ++ $1/$2 made 1>&2
elif ( cd $DESTDIR/$1 ; make $2 ) > /dev/null 2>&1
then
echo ++ $1/$2 made 1>&2
else
echo ++ $1/$2 not present 1>&2
fi

42
distr/mktree Normal file
View File

@ -0,0 +1,42 @@
case $# in
2|3) ;;
*) echo Usage: $0 directory repdir [ SVrecord ] 1>&2 ; exit 1 ;;
esac
case $0 in
/*) DDIR=`dirname $0`
;;
*) DDIR=`pwd`/`dirname $0`
;;
esac
case $1 in
/*) DESTDIR=$1 ;;
*) DESTDIR=`pwd`/$1 ;;
esac
case $2 in
/*) REPDIR=$2 ;;
*) REPDIR=`pwd`/$2 ;;
esac
# DD=$DDIR/mkd
# export DD
mkdir -p $DESTDIR
CVSROOT=/usr/proj/em/Repositories
export CVSROOT
cd $DESTDIR
case $# in
3)
cvs checkout world -r $3
;;
2)
cvs checkout world
;;
esac
cd $REPDIR
DF=$DDIR/mkf
DA=$DDIR/mka
export DDIR DESTDIR DF DA REPDIR
$DDIR/dwalk
cd $DESTDIR
find . -type d -print | xargs chmod "uog+rx"
chmod -R "og-w,u+w,uog+r" .

26
distr/todistr Normal file
View File

@ -0,0 +1,26 @@
REV=
FILE=
while :
do
case $# in
0) break ;;
esac
ARG="$1"
shift
case "$ARG" in
-r*) REV=`echo "$ARG"| sed s/-r//` ;;
-*) FLAGS="$FLAGS $ARG" ;;
*) case x$FILE in
x) FILE="$ARG" ;;
*) echo todistr can only be done on one file at the time
exit 1 ;;
esac
esac
done
case x$REV in
x) REV=`rlog -h "$FILE"|sed -n -e '/head/s/^head:[ ]*//p'` ;;
esac
case x$REV in
x) exit 2 ;;
esac
rcs -ndistr4:$REV $FLAGS $FILE

2
distr/ts Executable file
View File

@ -0,0 +1,2 @@
DD=`pwd`/ts
echo OK

32
doc/.distr Normal file
View File

@ -0,0 +1,32 @@
READ_ME
Makefile
proto.make
ack.doc
basic.doc
cg.doc
crefman.doc
ansi_C.doc
em
install.doc
install.pr
ncg.doc
pcref.doc
peep.doc
regadd.doc
toolkit.doc
v7bugs.doc
val.doc
6500.doc
i80.doc
z80.doc
m68020.doc
m2ref.doc
nopt.doc
top
ego
occam
int
ceg
sparc
lint
pascal

1893
doc/6500.doc Normal file

File diff suppressed because it is too large Load Diff

4
doc/LLgen/.distr Normal file
View File

@ -0,0 +1,4 @@
LLgen.n
LLgen_NCER.n
LLgen.refs
proto.make

1077
doc/LLgen/LLgen.n Normal file

File diff suppressed because it is too large Load Diff

54
doc/LLgen/LLgen.refs Normal file
View File

@ -0,0 +1,54 @@
%T An ALL(1) Compiler Generator
%A D. R. Milton
%A L. W. Kirchhoff
%A B. R. Rowland
%B Proc. of the SIGPLAN '79 Symposium on Compiler Construction
%D August 1979
%J SIGPLAN Notices
%N 8
%P 152-157
%V 14
%T Lex - A Lexical Analyser Generator
%A M. E. Lesk
%I Bell Laboratories
%D October 1975
%C Murray Hill, New Jersey
%R Comp. Sci. Tech. Rep. No. 39
%T Yacc: Yet Another Compiler Compiler
%A S. C. Johnson
%I Bell Laboratories
%D 1975
%C Murray Hill, New Jersey
%R Comp. Sci. Tech. Rep. No. 32
%T The C Programming Language
%A B. W. Kernighan
%A D. M. Ritchie
%I Prentice-Hall, Inc.
%C Englewood Cliffs, New Jersey
%D 1978
%A M. Griffiths
%T LL(1) Grammars and Analysers
%E F. L. Bauer and J. Eickel
%B Compiler Construction, An Advanced Course
%I Springer-Verlag
%C New York, N.Y.
%D 1974
%T Make - A Program for Maintaining Computer Programs
%A S. I. Feldman
%J Software - Practice and Experience
%V 10
%N 8
%P 255-265
%D August 1979
%T Methods for the Automatic Construction of Error Correcting Parsers
%A J. R\*:ohrich
%J Acta Informatica
%V 13
%P 115-139
%D 1980

2712
doc/LLgen/LLgen_NCER.n Normal file

File diff suppressed because it is too large Load Diff

15
doc/LLgen/Makefile Normal file
View File

@ -0,0 +1,15 @@
# $Id$
GRAP=grap
PIC=pic
EQN=eqn
REFER=refer
TBL=tbl
all: ../LLgen.doc ../LLgen_NCER.doc
../LLgen.doc: LLgen.n LLgen.refs
$(REFER) -sA+T -p LLgen.refs LLgen.n | $(EQN) | $(TBL) > $@
../LLgen_NCER.doc: LLgen_NCER.n
$(GRAP) LLgen_NCER.n | pic | eqn > $@

20
doc/LLgen/proto.make Normal file
View File

@ -0,0 +1,20 @@
# $Id$
#PARAMS do not remove this line!
SRC_DIR = $(SRC_HOME)/doc/LLgen
GRAP=grap
PIC=pic
EQN=eqn
REFER=refer
TBL=tbl
all: $(TARGET_HOME)/doc/LLgen.doc $(TARGET_HOME)/doc/LLgen_NCER.doc
$(TARGET_HOME)/doc/LLgen.doc: $(SRC_DIR)/LLgen.n $(SRC_DIR)/LLgen.refs
$(REFER) -sA+T -p $(SRC_DIR)/LLgen.refs $(SRC_DIR)/LLgen.n | $(EQN) | $(TBL) > $@
$(TARGET_HOME)/doc/LLgen_NCER.doc: $(SRC_DIR)/LLgen_NCER.n
$(GRAP) $(SRC_DIR)/LLgen_NCER.n | pic | eqn > $@

82
doc/Makefile Normal file
View File

@ -0,0 +1,82 @@
# $Id$
# This Makefile is not supposed to be used in the doc source directory.
# Instead, it is supposed to be copied to the target doc directory.
SUF=dit
PRINT=dis
NROFF=troff
MS=-ms
OPR=dip
RESFILES= \
toolkit.$(SUF) install.$(SUF) em.$(SUF) ack.$(SUF) v7bugs.$(SUF) \
peep.$(SUF) cg.$(SUF) ncg.$(SUF) regadd.$(SUF) LLgen.$(SUF) \
basic.$(SUF) crefman.$(SUF) pascal.$(SUF) pcref.$(SUF) val.$(SUF) \
ansi_C.$(SUF) \
6500.$(SUF) i80.$(SUF) z80.$(SUF) top.$(SUF) ego.$(SUF) \
m68020.$(SUF) occam.$(SUF) m2ref.$(SUF) ceg.$(SUF) nopt.$(SUF) \
sparc.$(SUF) int.$(SUF) lint.$(SUF)
.SUFFIXES: .doc .$(SUF) .lpr .out
.doc.$(SUF):
$(NROFF) $(MS) $< > $@
# directly to the printer:
.doc.lpr:
$(NROFF) $(MS) $< | $(OPR)
# to standard output
.doc.out:
@$(NROFF) $(MS) $<
# Exceptions, to be run without -ms
v7bugs.$(SUF): v7bugs.doc
$(NROFF) v7bugs.doc >$@
v7bugs.lpr: v7bugs.doc
$(NROFF) v7bugs.doc | $(OPR)
v7bugs.out: v7bugs.doc
@$(NROFF) v7bugs.doc
pcref.$(SUF): pcref.doc
$(NROFF) pcref.doc >$@
pcref.lpr: pcref.doc
$(NROFF) pcref.doc | $(OPR)
pcref.out: pcref.doc
@$(NROFF) pcref.doc
val.$(SUF): val.doc
$(NROFF) val.doc >$@
val.lpr: val.doc
$(NROFF) val.doc | $(OPR)
val.out: val.doc
@$(NROFF) val.doc
pr:
@make "SUF="$(SUF) "NROFF="$(NROFF) "MS="$(MS) \
$(RESFILES) >make.pr.out 2>&1
@$(PRINT) $(RESFILES)
# The 'opr' entry creates a lot of paper ... but the user must be able
# to write the doc directory. I hope that this limits the users of
# this entry to persons that know what they are doing.
opr:
@make "SUF="$(SUF) "NROFF="$(NROFF) "MS="$(MS) $(RESFILES)
$(OPR) $(RESFILES)
clean:
-rm -f $(RESFILES)
# The distr entry is only used when making a distribution tree.
# It makes a version of the installation manual, suitable for a simple
# line printer.
distr: install.doc
tbl install.doc | nroff -Tlp $(MS) >install.pr

8
doc/READ_ME Normal file
View File

@ -0,0 +1,8 @@
Some of these documents use a font called CW.
If this font is not available, reference to it can be changed with
a sed-script like
s/\.ft CW/.ft yourfont/
s/\\f(CW/\\fyourfont/g
s/^.fp\(.*\)CW$/.fp\1yourfont/
However, the font must be a constant-width font for the documents to look
reasonable.

444
doc/ack.doc Normal file
View File

@ -0,0 +1,444 @@
.\" $Id$
.nr PD 1v
.tr ~
.TL
Ack Description File
.br
Reference Manual
.AU
Ed Keizer
.AI
Vakgroep Informatica
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 (indicated 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, which is
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 or the front-end call-names,
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 lib/descr/\fIname\fP, then in
lib/\fIname\fP/descr, 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.
.IP
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\fP 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 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
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 occurrences 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,
\fB\-O\fP, \fB\-r\fP, \fB\-v\fP, \fB\-g\fP, \-\fB\-c\fP, \fB\-t\fP,
\fB\-k\fP, \fB\-R\fP and \-\fB\-.\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 of 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\fP 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 \fIstdin\fP
.br
This keyword indicates that the transformation reads from standard input.
.IP \fIstdout\fP
.br
This keyword indicates that the transformation writes on standard output.
.IP \fIoptimizer\fP
.br
The presence of this keyword indicates that this transformation is an optimizer.
It can be followed by a number, indicating the "level" of the
optimizer (see description of the -O option in the ack(1ACK) manual page).
.IP \fIpriority\fP
.br
This \-~optional~\- keyword is followed by a number. Positive priority means
that the transformation is likely to be used, negative priority means that
the transformation is unlikely to be used.
Priorities can also be set with a ack(1ACK) command line option.
Priorities come in handy when there are several implementations of a
certain transformation. They can then be used to select a default one.
.IP \fIlinker\fP
.br
This keyword indicates that this transformation is the linker.
.IP \fIcombiner\fP
.br
This keyword indicates that this transformation is a combiner. A combiner
is a program combining several files into one, but is not a linker.
An example of a combiner is the global optimizer.
.IP \fIprep\fP
.br
This \-~optional~\- keyword is followed an option indicating its relation
to the preprocessor.
The possible options are:
.DS X
always the input files must be preprocessed
cond the input files must be preprocessed when starting with #
is this transformation is the preprocessor
.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 HEAD and TAIL variables.
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 \fIack\fP, 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 useful for debugging.
The variable SUFFIX is set to the suffix of the argument that is
currently being massaged.
.br
The variable M indicates the
directory in lib/{M}/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 used to add directories to
the list of directories containing #include files.
.PP
The variables HEAD, TAIL and RTS are set by \fIack\fP and used
to compose the arguments for the linker.
.NH
Example
.PP
Description for front-end
.DS X
.ta 4n 40n
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} \e
\-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 values finally
# followed by the input file name
stdout # Output on stdout
prep is # 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
stdin # input from stdin
stdout # output on stdout
prep always # 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
stdout # the output comes on stdout
end
.DE
.DS X
.ta 4n 40n
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=em22
var NAME=em22 # for cpp (NAME=em22 results in #define em22 1)
var LIB=lib/{M}/tail_ # part of file name for libraries
var RT=lib/{M}/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} \e
({RTS}:.c={EM}/{RT}cc) ({RTS}:.p={EM}/{RT}pc) \-o > < \e
(.p:{TAIL}={EM}/{LIB}pc) \e
(.c:{TAIL}={EM}/{LIB}cc.1s {EM}/{LIB}cc.2g) \e
(.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
linker
end
.DE
The command \fIack \-mem22 \-v \-v \-I../h \-L \-ly prog.c\fP
would result in the following
calls (with exec(II)):
.DS X
.ta 4n
1) /lib/cpp \-I../h \-I/usr/em/include \-Dem22 \-DEM_WSIZE=2 \-DEM_PSIZE=2 \e
\-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/lib/em22/head_cc \-o e.out prog.k
/usr/em/lib/em22/tail_y /usr/em/lib/em22/tail_cc.1s
/usr/em/lib/em22/tail_cc.2g /usr/em/lib/em22/tail_mon
.DE

365
doc/ansi_C.doc Executable file
View File

@ -0,0 +1,365 @@
.de NS
.sp
.in 0
\\fBANS \\$1:\\fP
..
.TL
Amsterdam Compiler Kit-ANSI C compiler compliance statements
.AU
Hans van Eck
.AI
Dept. of Mathematics and Computer Science
Vrije Universiteit
Amsterdam, The Netherlands
.PP
This document specifies the implementation-defined behaviour of the ANSI-C
front end of the Amsterdam Compiler Kit as required by ANS X3.159-1989. Since
the implementation-defined behaviour sometimes depends on the machine
compiling on or for, some items will be left unspecified in this
document\(dg.
.FS
\(dg when cross-compiling, run-time behaviour may be different from
compile-time behaviour
.FE
The compiler assumes that it runs on a UNIX system.
.NS A.6.3.1
.IP -
Diagnostics are placed on the standard error output. They have the
following specification:
.br
"<file>", line <nr>: [(<class>)] <diagnostic>
.br
There are three classes of diagnostics: "error", "strict" and "warning".
When the class is "error", the <class> is absent.
.br
The class "strict" is used for violations of the standard which are
not severe enough to stop compilation. An example is the the occurrence
of non white-space after an '#else' or '#endif' pre-processing
directive. The class "warning" is used for legal but dubious
constructions. An example is overflow of constant expressions.
.NS A.6.3.2
.IP -
The function 'main' can have two arguments. The first argument is an
integer specifying the number of arguments on the command line. The second
argument is a pointer to an array of pointers to the arguments (as
strings).
.IP -
Interactive devices are terminals.
.NS A.6.3.3
.IP -
The number of significant characters is an option. By default it is 64.
There is a distinction between upper and lower case.
.NS A.6.3.4
.IP -
The compiler assumes ASCII-characters in both the source and execution
character set.
.IP -
There are no multi-byte characters.
.IP -
There 8 bits in a character.
.IP -
Character constants with values that can not be represented in 8 bits
are truncated.
.IP -
Character constants that are more than 1 character wide will have the
first character specified in the least significant byte.
.IP -
The only supported locale is "C".
.IP -
A plain 'char' has the same range of values as 'signed char'.
.NS A.6.3.5
.IP -
The compiler assumes that it works on and compiles for a
2-complement binary-number system. Shorts will use 2 bytes and longs
will use 4 bytes. The size of integers are machine dependent.
.IP -
Converting an integer to a shorter signed integer is implemented by
ignoring the high-order byte(s) of the former.
Converting a unsigned integer to a signed integer of the same type is
only done in administration. This means that the bit-pattern remains
unchanged.
.IP -
The result of bitwise operations on signed integers are what can be
expected on a 2-complement machine.
.IP -
If either operand is negative, whether the result of the / operator is the
largest integer less than or equal to the algebraic quotient or the
smallest integer greater than or equal to the algebraic quotient is machine
dependent, as is the sign of the result of the % operator.
.IP -
The right-shift of a negative value is negative.
.NS A.6.3.6
.IP -
The representation of floating-point values is machine-dependent.
When native floating-point is not present an IEEE-emulation is used.
The compiler uses high-precision floating-point for constant folding.
.IP -
Truncation is always to the nearest floating-point number that can
be represented.
.NS A.6.3.7
.IP -
The type returned by the sizeof-operator (also known as size_t)
is 'unsigned int'. This is done for backward compatibility reasons.
.IP -
Casting an integer to a pointer or vice versa has no effect in
bit-pattern when the sizes are equal. Otherwise the value will be
truncated or zero-extended (depending on the direction of the
conversion and the relative sizes).
.IP -
When a pointer is as large as an integer, the type of a 'ptrdiff_t' will
be 'int'. Otherwise the type will be 'long'.
.NS A.6.3.8
.IP -
Since the front end has only limited control over the registers, it can
only make it more likely that variables that are declared as
registers also end up in registers. The only things that can possibly be
put into registers are : 'int', 'long', 'float', 'double', 'long double'
and pointers.
.NS A.6.3.9
.IP -
When a member of a union object is accessed using a member of a
different type, the resulting value will usually be garbage. The
compiler makes no effort to catch these errors.
.IP -
The alignment of types is a compile-time option. The alignment of
a structure-member is the alignment of its type. Usually, the
alignment is passed on to the compiler by the 'ack' program. When a
user wants to do this manually, he/she should be prepared for trouble.
.IP -
A "plain" 'int' bit-field is taken as a 'signed int'. This means that
a field with a size of 1 bit can only store the values 0 and -1.
.IP -
The order of allocation of bit-fields is a compile-time option. By
default, high-order bits are allocated first.
.IP -
An enum has the same size as a "plain" 'int'.
.NS A.6.3.10
.IP -
An access to a volatile declared variable is done by just mentioning
the variable. E.g. the statement "x;" where x is declared volatile,
constitutes an access.
.S A.6.3.11
.IP -
There is no fixed limit on the number of declarators that may modify an
arithmetic, structure or union type, although specifying too many may
cause the compiler to run out of memory.
.NS A.6.3.12
.IP -
The maximum number of cases in a switch-statement is in the order of
1e9, although the compiler may run out of memory somewhat earlier.
.NS A.6.3.13
.IP -
Since both the pre-processor and the compiler assume ASCII-characters,
a single character constant in a conditional-inclusion directive
matches the same value in the execution character set.
.IP -
The pre-processor recognizes -I... command-line options. The
directories thus specified are searched first. After that, depending on the
command that the preprocessor is called with, machine/system-dependant
directories are searched. After that, ~em/include/_tail_ac and
/usr/include are visited.
.IP -
Quoted names are first looked for in the directory in which the file
which does the include resides.
.IP -
The characters in a h- or q- char-sequence are taken to be UNIX
paths.
.IP -
Neither the compiler nor the preprocessor know any pragmas.
.IP -
Since the compiler runs on UNIX, __DATE__ and __TIME__ will always be
defined.
.NS A.6.3.14
.IP -
NULL is defined as ((void *)0). This in order to flag dubious
constructions like "int x = NULL;".
.IP -
The diagnostic printed by 'assert' is as follows:
.ti +4n
"Assertion "<expr>" failed, file "<file>", line <line>",
.br
where <expr> is the argument to the assert macro, printed as string.
(the <file> and <line> should be clear)
.KS
.IP -
The sets for character test macros.
.TS
l l.
name: set:
isalnum() 0-9A-Za-z
isalpha() A-Za-z
iscntrl() \e000-\e037\e177
islower() a-z
isupper() A-Z
isprint() <space>-~ (== \e040-\e176)
.TE
.KE
As an addition, there is an isascii() macro, which tests whether a character
is an ascii character. Characters in the range from \e000 to \e177 are ascii
characters.
.KS
.IP -
The behaviour of mathematic functions on domain error:
.TS
l c
l n.
name: returns:
asin() 0.0
acos() 0.0
atan2() 0.0
fmod() 0.0
log() -HUGE_VAL
log10() -HUGE_VAL
pow() 0.0
sqrt() 0.0
.TE
.KE
.IP -
Underflow range errors do not cause errno to be set.
.IP -
The function fmod() returns 0.0 and sets errno to EDOM when the second
argument is 0.0.
.IP -
The set of signals for the signal() function depends on the UNIX-system
which the compiler is compiling for. The default handling, semantics
and behaviour of these signals are those specified by the operating
system vendor. The default handling is not reset when SIGILL is
received.
.IP -
A text-stream need not end in a new-line character.
.IP -
White space characters before a new-line appear when read in.
.IP -
There may be any number of null characters appended to a binary
stream.
.IP -
The file position indicator of an append mode stream is initially
positioned at the beginning of the file.
.IP -
A write on a text stream does not cause the associated file to be
truncated beyond that point.
.IP -
The buffering intended by the standard is fully supported.
.IP -
A zero-length file actually exists.
.IP -
A file name can consist of any character, except for the '\e0' and
the '/'.
.IP -
A file can be open multiple times.
.IP -
When a remove() is done on an open file, reading and writing behave
just as can be expected from a non-removed file. When the associated
stream is closed, all written data will be lost.
.IP -
When a file exists prior to a call to rename(), the behaviour is that
of the underlying UNIX system. Normally, the call would fail.
.IP -
The %p conversion in fprintf() has the same effect as %#x or %#lx,
depending on the sizes of pointer and integer.
.IP -
The %p conversion in fscanf() has the same effect as %x or %lx,
depending on the sizes of pointer and integer.
.IP -
A - character that is neither the first nor the last character in the
scanlist for %[ conversion is taken to be a range indicator. When the
first character has a higher ASCII-value than the second, the - will
just be put into the scanlist.
.IP -
The value of errno when fgetpos() or ftell() failed is that of lseek().
This means:
.RS
.IP "EBADF \-" 10
when the stream is not valid
.IP "ESPIPE \-"
when fildes is associated with a pipe (and on some systems: sockets)
.IP "EINVAL \-"
the resulting file pointer would be negative
.RE
.LP
.IP -
The messages generated by perror() depend on the value of errno.
The mapping of errors to strings is done by strerror().
.IP -
When the requested size is zero, malloc(), calloc() and realloc()
return a null-pointer.
.IP -
When abort() is called, output buffers will be flushed. Temporary files
(made with the tmpfile() function) will have disappeared when SIGABRT
is not caught or ignored.
.IP -
The exit() function returns the low-order eight bits of its argument
to the environment.
.IP -
The predefined environment names are controlled by the user.
Setting environment variables is done through the putenv() function.
This function accepts a pointer to char as its argument.
To set f.i. the environment variable TERM to a230 one writes
.ti +4n
putenv("TERM=a230");
.br
The argument to putenv() is stored in an internal table, so malloc'ed
strings can not be freed until another call to putenv() (which sets the
same environment variable) is made. The function returns 1 if it fails,
0 otherwise.
.LP
.IP -
The argument to system is passed as argument to /bin/sh -c.
.IP -
The strings returned by strerror() depend on errno in the following
way:
.TS
l l.
errno string
0 "Error 0",
EPERM "Not owner",
ENOENT "No such file or directory",
ESRCH "No such process",
EINTR "Interrupted system call",
EIO "I/O error",
ENXIO "No such device or address",
E2BIG "Arg list too long",
ENOEXEC "Exec format error",
EBADF "Bad file number",
ECHILD "No children",
EAGAIN "No more processes",
ENOMEM "Not enough core",
EACCES "Permission denied",
EFAULT "Bad address",
ENOTBLK "Block device required",
EBUSY "Mount device busy",
EEXIST "File exists",
EXDEV "Cross-device link",
ENODEV "No such device",
ENOTDIR "Not a directory",
EISDIR "Is a directory",
EINVAL "Invalid argument",
ENFILE "File table overflow",
EMFILE "Too many open files",
ENOTTY "Not a typewriter",
ETXTBSY "Text file busy",
EFBUG "File too large",
ENOSPC "No space left on device",
ESPIPE "Illegal seek",
EROFS "Read-only file system",
EMLINK "Too many links",
EPIPE "Broken pipe",
EDOM "Math argument",
ERANGE "Result too large"
.TE
everything else causes strerror() to return "unknown error"
.IP -
The local time zone is per default MET (GMT + 1:00:00). This can be
changed through the TZ environment variable, or by some changes in the
sources.
.IP -
The clock() function returns the number of ticks since process
startup.
.SH
References
.IP [1]
ANS X3.159-1989
.I
American National Standard for Information Systems -
Programming Language C
.R

949
doc/basic.doc Normal file
View File

@ -0,0 +1,949 @@
.\" $Id$
.TL
.de Sy
.LP
.IP \fBsyntax\fR 10
..
.de PU
.IP \fBpurpose\fR 10
..
.de RM
.IP \fBremarks\fR 10
..
The ABC compiler
.AU
Martin L. Kersten
Gert-Jan Akkerman
Marcel Worring
Edo Westerhuis
Frans Kunst
Ronnie Lachniet
.AI
Department of Mathematics and Computer Science.
.br
Free University
.br
Amsterdam
.AB
This manual describes the
programming language BASIC and its compiler
included in the Amsterdam Compiler Kit.
.AE
.SH
INTRODUCTION.
.LP
The BASIC-EM compiler is an extensive implementation of the
programming language BASIC.
The language structure and semantics are modelled after the
BASIC interpreter/compiler of Microsoft (tr), a short comparison
is provided in appendix A.
.LP
The compiler generates code for a virtual machine, the EM machine
[[ACM, etc]].
Using EM as an intermediate machine results in a highly portable
compiler and BASIC code.
.br
The drawback of EM is that it does not directly reflect one particular
hardware design, which means that many of the low level operations available
within BASIC are ill-defined or even inapplicable.
To mention a few, the peek and poke instructions are likely
to be behave errorneous, while line printer and tapedeck
primitives are unknown.
.LP
This manual is divided into three chapters.
.br
Chapter 1 discusses the general language syntax and semantics.
.br
Chapter 2 describes the statements available in BASIC-EM.
.br
Chapter 3 describes the predefined functions, ordered alphabetically.
.LP
Appendix A discusses the differences with Microsoft BASIC.
.br
Appendix B describes all reserved symbols.
.LP
.LP
.SH
SYNTAX NOTATION
.LP
The conventions for syntax presentation are as follows:
.IP CAPS 10
Items are reserved words, must be input as shown.
.IP <> 10
Items in lowercase letters enclosed in angular brackets
are to be supplied by the user.
.IP [] 10
Items are optional.
.IP \.\.\. 10
Items may be repeated any number of times
.IP {} 10
A choice between two or more alternatives. At least one of the entries
must be chosen.
.IP | 10
Vertical bars separate the choices within braces.
.LP
All punctuation must be included where shown.
.bp
.NH 1
GENERAL INFORMATION
.LP
The BASIC-EM compiler is designed for a UNIX based environment.
It accepts a text file with a BASIC program (suffix .b) and generates
an executable file, called a.out.
.NH 2
LINE FORMAT
.LP
A BASIC program consists of a series of lines, starting with a
positive line number in the range 0 to 32767.
A line may consists of more than one physical line on a terminal, but
is limited to 1024 characters.
Multiple BASIC statements may be placed on a single line, provided
they are separated by a colon (:).
.NH 2
CONSTANTS
.LP
The BASIC compiler character set is comprised of alphabetic
characters, numeric characters, and special characters shown below.
.DS
= + - * / ^ ( ) % # $ \\ _
! [ ] , . ; : & ' ? > < \\ (blanc)
.DE
.LP
BASIC uses two different types of constants during processing:
numeric and string constants.
.br
A string constant is a sequence of characters taken from the ASCII
character set enclosed by double quotation marks.
.br
Numeric constants are positive or negative numbers, grouped into
five different classes.
.IP "a) integer constants" 25
.br
Whole numbers in the range of -32768 and 32767. Integer constants do
not contain decimal points.
.IP "b) fixed point constants" 25
.br
Positive or negative real numbers, i.e. numbers with a decimal point.
.IP "c) floating point constants" 25
.br
Real numbers in scientific notation. A floating point constant
consists of an optional signed integer or fixed point number
followed by the letter E (or D) and an optional signed integer
(the exponent).
The allowable range of floating point constants is 10^-38 to 10^+38.
.IP "d) Hex constants" 25
.br
Hexadecimal numbers, denoted by the prefix &H.
.IP "e) Octal constants" 25
.br
Octal numbers, denoted by the prefix &O.
.NH 2
VARIABLES
.LP
Variables are names used to represent values in a BASIC program.
A variable is assigned a value by assigment specified in the program.
Before a variable is assigned its value is assumed to be zero.
.br
Variable names are composed of letters, digits or the decimal point,
starting with a letter. Up to 40 characters are significant.
A variable name can be followed by any of the following type
declaration characters:
.IP % 5
Defines an integer variable
.IP ! 5
Defines a single precision variable (see below)
.IP # 5
Defines a double precision variable
.IP $ 5
Defines a string variable.
.LP
Beside single valued variables, values may be grouped into tables or arrays.
Each element in an array is referenced by the array name and an index,
such a variable is called a subscripted variable.
An array has as many subscripts as there are dimensions in the array,
the maximum of which is 11.
.br
If a variable starts with FN it is assumed to be a call to a user defined
function.
.br
A variable name may not be a reserved word nor the name
of a predefined function.
A list of all reserved identifiers is included as Appendix B.
.LP
NOTES:
.br
Two variables with the same name but different type is
considered illegal.
.br
The type of a variable without typedeclaration-character is set,
at it's first occurence in the program,
to the defaulttype which is (in this implementation) double precision.
.br
Multi-dimensional array's must be declared before use (see
DIM-statement ).
.br
BASIC-EM differs from Microsoft BASIC in supporting floats in one precision
only (due to EM), eg doubles and floats have the same precision.
.NH 2
EXPRESSIONS
.LP
When necessary the compiler will convert a numeric value from
one type to another.
A value is always converted to the precision of the variable it is assigned
to.
When a floating point value is converted to an integer the fractional
portion is rounded.
In an expression all values are converted to the same degree of precision,
i.e. that of the most precise operand.
.br
Division by zero results in the message "Division by zero".
If overflow (or underflow) occurs, the "Overflow (underflow)" message is
displayed and execution is terminated (contrary to Microsoft).
.SH
Arithmetic
.LP
The arithmetic operators in order of precedence,a re:
.DS L
^ Exponentiation
- Negation
*,/,\\\\\\\\,MOD Multiplication, Division, Remainder
+,- Addition, Substraction
.DE
The operator \\\\ denotes integer division, its operands are rounded to
integers before the operator is applied.
Modulus arithmetic is denoted by the operator MOD, which yields the
integer value that is the remainder of an integer division.
.br
The order in which operators are performed can be changed with parentheses.
.SH
Relational
.LP
The relational operators in order of precedence, are:
.DS
= Equality
<> Inequality
< Less than
> Greater than
<= Less than or equal to
>= Greater than or equal to
.DE
The relational operators are used to compare two values and returns
either "true" (-1) or "false" (0) (See IF statement).
The precedence of the relational operators is lower
then the arithmetic operators.
.SH
Logical
.LP
The logical operators performs tests on multiple relations, bit manipulations,
or boolean operations.
The logical operators returns a bitwise result ("true" or "false").
In an expression, logical operators are performed after the relational and
arithmetic operators.
The logical operators work by converting their operands to signed
two-complement integers in the range -32768 to 32767.
.DS
NOT Bitwise negation
AND Bitwise and
OR Bitwise or
XOR Bitwise exclusive or
EQV Bitwise equivalence
IMP Bitwise implies
.DE
.SH
Functional
.LP
A function is used in an expression to call a system or user defined
function.
A list of predefined functions is presented in chapter 3.
.SH
String operations
.LP
Strings can be concatenated by using +. Strings can be compared with
the relational operators. String comparison is performed in lexicographic
order.
.NH 2
ERROR MESSAGES
.LP
The occurence of an error results in termination of the program
unless an ON....ERROR statement has been encountered.
.bp
.NH 1
B-EM STATEMENTS
.LP
This chapter describes the statements available within the BASIC-EM
compiler. Each description is formatted as follows:
.Sy
Shows the correct syntax for the statement. See introduction of
syntax notation above.
.PU
Describes the purpose and details of the instructions.
.RM
Describes special cases, deviation from Microsoft BASIC etc.
.LP
.NH 2
CALL
.Sy
CALL <variable name>[(<argument list>)]
.PU
The CALL statement provides the means to execute procedures
and functions written in another language included in the
Amsterdam Compiler Kit.
The argument list consist of (subscripted) variables.
The BASIC compiler pushes the address of the arguments on the stack in order
of encounter.
.RM
Not yet available.
.NH 2
CLOSE
.Sy
CLOSE [[#]<file number>[,[#]<file number...>]]
.PU
To terminate I/O on a disk file.
<file number> is the number associated with the file
when it was OPENed (See OPEN-statement). Ommission of parameters results in closing
all files.
.sp
The END statement and STOP statement always issue a CLOSE of
all files.
.NH 2
DATA
.Sy
DATA <list of constants>
.PU
DATA statements are used to construct a data bank of values that are
accessed by the program's READ statement.
DATA statements are non-executable,
the data items are assembled in a data file by the BASIC compiler.
This file can be replaced, provided the layout remains
the same (otherwise the RESTORE won't function properly).
.sp
The list of data items consists of numeric and string constants
as discussed in section 1.
Moreover, string constants starting with a letter and not
containing blancs, newlines, commas, colon need not be enclosed with
the string quotes.
.sp
DATA statements can be reread using the RESTORE statement.
.NH 2
DEF FN
.Sy
DEF FN<name> [(<parameterlist>)]=<expression>
.PU
To define and name a function that is written by the user.
<name> must be an identifier and should be preceded by FN,
which is considered integral part of the function name.
<expression> defines the expression to be evaluated upon function call.
.sp
The parameter list is comprised of a comma separated
list of variable names, used within the function definition,
that are to replaced by values upon function call.
The variable names defined in the parameterlist, called formal
parameters, do not affect the definition and use of variables
defined with the same name in the rest of the BASIC program.
.sp
A type declaration character may be suffixed to the function name to
designate the data type of the function result.
.NH 2
DEFINT/SNG/DBL/STR
.Sy
DEF<type> <range of letters>
.PU
Any undefined variable starting with the letter included in the range of
letters is declared of type <type> unless a type declaration character
is appended.
The range of letters is a comma separated list of characters and
character ranges (<letter>-<letter>).
.NH 2
DIM
.Sy
DIM <list of subscripted variable>
.PU
The DIM statement allocates storage for subscripted variables.
If an undefined subscripted variable is used
the maximum value of the array subscript is assumed to be 10.
A subscript out of range is signalled by the program (when ACK works)
The minimum subscript value is 0, unless the OPTION BASE statement has been
encountered.
.sp
All variables in a subscripted variable are initially zero.
.sp
BUGS. Multi-dimensional arrays MUST be defined. Subscript out of range is
left unnotified.
.NH 2
END
.Sy
END
.PU
END terminates a BASIC program and returns to the UNIX shell.
An END statement at the end of the BASIC program is optional.
.NH 2
ERR and ERL
.Sy
<identifier name>= ERR
.br
<identifier name>= ERL
.PU
Whenever an error occurs the variable ERR contains the
error number and ERL the BASIC line where the error occurred.
The variables are usually used in error handling routines
provided by the user.
.NH 2
ERROR
.Sy
ERROR <integer expression>
.PU
To simulate the occurrence of a BASIC error.
To define a private error code a value must be used that is not already in
use by the BASIC runtime system.
The list of error messages currently in use can be found in appendix B.
.NH 2
FIELD
.PU
To be implemented.
.NH 2
FOR...NEXT
.Sy
FOR <variable>= <low>TO<high>[STEP<size>]
.br
......
.br
NEXT [<variable>][,<variable>...]
.PU
The FOR statements allows a series of statements to be performed
repeatedly. <variable> is used as a counter. During the first
execution pass it is assigned the value <low>,
an arithmetic expression. After each pass the counter
is incremented (decremented) with the step size <size>, an expression.
Ommission of the step size is intepreted as an increment of 1.
.br
Execution of the program lines specified between the FOR and the NEXT
statement is terminated as soon as <low> is greater (less) than <high>
.sp
The NEXT statement is labeled with the name(s) of the counter to be
incremented.
.sp
The variables mentioned in the NEXT statement may be ommitted, in which case
the variable of increment the counter of the most recent FOR statement.
If a NEXT statement is encountered before its corresponding FOR statement,
the error message "NEXT without FOR" is generated.
.NH 2
GET
.Sy
GET [#]<file number>[, <record number>]
.PU
To be implemented.
.NH 2
GOSUB...RETURN
.Sy
GOSUB <line number>
...
.br
RETURN
.PU
The GOSUB statement branches to the first statement of a subroutine.
The RETURN statement cause a branch back to the statement following the
most recent GOSUB statement.
A subroutine may contain more than one RETURN statement.
.sp
Subroutines may be called recursively.
Nesting of subroutine calls is limited, upon exceeding the maximum depth
the error message "XXXXX" is displayed.
.NH 2
GOTO
.Sy
GOTO <line number>
.PU
To branch unconditionally to a specified line in the program.
If <line number> does not exists, the compilation error message
"Line not defined" is displayed.
.RM
Microsoft BASIC continues at the first line
equal or greater then the line specified.
.NH 2
IF...THEN
.Sy
.br
IF <expression> THEN {<statements>|<line number>}
[ELSE {<statements>|<line number>}]
.br
.Sy
IF <expression> GOTO <line number>
[ELSE {<statements>|<line number>}]
.PU
The IF statement is used
to make a decision regarding the program flow based on the
result of the expressions.
If the expression is not zero, the THEN or GOTO clause is
executed. If the result of <expression> is zero, the THEN or
GOTO clause is ignored and the ELSE clause, if present is
executed.
.br
IF..THEN..ELSE statements may be nested.
Nesting is limited by the length of the line.
The ELSE clause matches with the closests unmatched THEN.
.sp
When using IF to test equality for a value that is the
result of a floating point expression, remember that the
internal representation of the value may not be exact.
Therefore, the test should be against a range to
handle the relative error.
.RM
Microsoft BASIC allows a comma before THEN.
.NH 2
INPUT
.Sy
INPUT [;][<"prompt string">;]<list of variables>
.PU
An INPUT statement can be used to obtain values from the user at the
terminal.
When an INPUT statement is encountered a question mark is printed
to indicate the program is awaiting data.
IF <"prompt string"> is included, the string is printed before the
the question mark. The question mark is suppressed when the prompt
string is followed by a comma, rather then a semicolon.
.sp
For each variable in the variable a list a value should be supplied.
Data items presented should be separated by a comma.
.sp
The type of the variable in the variable list must aggree with the
type of the data item entered. Responding with too few or too many
data items causes the message "?Redo". No assignment of input values
is made until an acceptable response is given.
.RM
The option to disgard the carriage return with the semicolon after the
input symbol is not yet implemented.
.NH 2
INPUT [#]
.Sy
INPUT #<file number>,<list of variables>
.PU
The purpose of the INPUT# statement is to read data items from a sequential
file and assign them to program variables.
<file number> is the number used to open the file for input.
The variables mentioned are (subscripted) variables.
The type of the data items read should aggree with the type of the variables.
A type mismatch results in the error message "XXXXX".
.sp
The data items on the sequential file are separated by commas and newlines.
In scanning the file, leading spaces, new lines, tabs, and
carriage returns are ignored. The first character encountered
is assumed to be the state of a new item.
String items need not be enclosed with double quotes, provided
it does not contain spaces, tabs, newlines and commas,
.RM
Microsoft BASIC won't assign values until the end of input statement.
This means that the user has to supply all the information.
.NH 2
LET
.Sy
[LET]<variable>=<expression>
.PU
To assign the value of an expression to a (subscribted) variable.
The type convertions as dictated in chapter 1 apply.
.NH 2
LINE INPUT
.Sy
LINE INPUT [;][<"prompt string">;]<string variable>
.PU
An entire line of input is assigned to the string variable.
See INPUT for the meaning of the <"prompt string"> option.
.NH 2
LINE INPUT [#]
.Sy
LINE INPUT #<file number>,<string variable>
.PU
Read an entire line of text from a sequential file <file number>
and assign it to a string variable.
.NH 2
LSET and RSET
.PU
To be implemented
.NH 2
MID$
.Sy
MID$(<string expr1>,n[,m])=<string expr2>
.PU
To replace a portion of a string with another string value.
The characters of <string expr2> replaces characters in <string expr1>
starting at position n. If m is present, at most m characters are copied,
otherwise all characters are copied.
However, the string obtained never exceeds the length of string expr1.
.NH 2
ON ERROR GOTO
.Sy
ON ERROR GOTO <line number>
.PU
To enable error handling within the BASIC program.
An error may result from arithmetic errors, disk problems, interrupts, or
as a result of the ERROR statement.
After printing an error message the program is continued at the
statements associated with <line number>.
.sp
Error handling is disabled using ON ERROR GOTO 0.
Subsequent errors result in an error message and program termination.
.NH 2
ON...GOSUB and ON ...GOTO
.Sy
ON <expression> GOSUB <list of line numbers>
.br
ON <expression> GOTO <list of line numbers>
.PU
To branch to one of several specified line numbers or subroutines, based
on the result of the <expression>. The list of line numbers are considered
the first, second, etc alternative. Branching to the first occurs when
the expression evaluates to one, to the second alternative on two, etc.
If the value of the expression is zero or greater than the number of alternatives, processing continues at the first statement following the ON..GOTO
(ON GOSUB) statement.
.sp
When the expression results in a negative number the
an "Illegal function call" error occurs.
.sp
BUG If the value of the expression is zero or greater than the number of
alternatives, processing does NOT continue at the first statement
following the ON..GOTO (ON GOSUB) statement.
.NH 2
OPEN
.Sy
OPEN {"i" | "o" | "r" } , [#]<file number> , <file-name>
.PU
To open <file-name> (filename should be quoted) for input/reading or output.
If file is not opened for output it has to be existent, otherwise an
"file not found" error will occur.
.NH 2
OPTION BASE
.Sy
OPTION BASE n
.PU
To declare the lower bound of subsequent array subscripts as either
0 or 1. The default lower bound is zero.
.NH 2
POKE
.Sy
POKE <expr1>,<expr2>
.PU
To poke around in memory. The use of this statement is not recommended,
because it requires full understanding of both
the implementation of the Amsterdam
Compiler Kit and the hardware characteristics.
.NH 2
PRINT
.Sy
PRINT <list of variables and/or constants>
.PU
To print constants or the contents of variables on the terminal-device.
If the variables or constants are seperated by comma's the values will
be printed seperated by tabs.
If the variables or constants are seperated by semi-colon's the values
will be printed without spaces in between.
The new-line generated at the end of the print-statement can be suppressed by
a semi-colon at the end of list of variables or constants.
.NH 2
PRINT USING
.PU
To be implemented
.NH 2
PUT
.PU
To be implemented
.NH 2
RANDOMIZE
.Sy
RANDOMIZE [<expression>]
.PU
To reset the random seed. When the expression is ommitted, the system
will ask for a value between -32768 and 32767.
The random number generator returns the same sequence of values provided
the same seed is used.
.NH 2
READ
.Sy
READ <list of variables>
.PU
To read values from the DATA statements and assign them to variables.
The type of the variables should match to the type of the items being read,
otherwise a "Syntax error" occurs. If all data is read the message "Out of
data" will be displayed.
.NH 2
REM
.Sy
REM <remark>
.PU
To include explantory information in a program.
The REM statements are not executed.
A single quote has the same effect as : REM, which
allows for the inclusion of comment at the end of the line.
.RM
Microsoft BASIC does not allow REM statements as part of
DATA lines.
.NH 2
RESTORE
.Sy
RESTORE [<line number>]
.PU
To allow DATA statements to be re-read from a specific line.
After a RESTORE statement is executed, the next READ accesses
the first item of the DATA statements.
If <line number> is specified, the next READ accesses the first
item in the specified line.
.sp
Note that data statements result in a sequential datafile generated
by the compiler, being read by the read statements.
This data file may be replaced using the operating system functions
with a modified version, provided the same layout of items
(same number of lines and items per line) is used.
.NH 2
STOP
.Sy
STOP
.PU
To terminate the execution of a program and return to the operating system
command interpreter. A STOP statement results in the message "Break in line
???"
.NH 2
SWAP
.Sy
SWAP <variable>,<variable>
.PU
To exchange the values of two variables.
.sp
BUG. Strings cannot be swapped !
.NH 2
TRON/TROFF
.Sy
TRON
.Sy
TROFF
.PU
As an aid in debugging the TRON statement results in a program
listing each line being interpreted. TROFF disables generation of
this code.
.NH 2
WHILE...WEND
.Sy
WHILE <expression>
.....
WEND
.PU
To execute a series of BASIC statements as long as a conditional expression
is true. WHILE...WEND loops may be nested.
.NH 2
WRITE
.Sy
WRITE [<list of expressions>]
.PU
To write data at the terminal in DATA statement layout conventions.
The expressions should be separated by commas.
.NH 2
WRITE #
.Sy
WRITE #<file number> ,<list of expressions>
.PU
To write a sequential data file, being opened with the "O" mode.
The values are being writting using the DATA statements layout conventions.
.bp
.NH
FUNCTIONS
.LP
.IP ABS(X) 25
Returns the absolute value of expression X
.IP ASC(X$) 25
Returns the numeric value of the first character of the string.
If X$ is not initialized an "Illegal function call" error
is returned.
.IP ATN(X) 25
Returns the arctangent of X in radians. Result is in the range
of -pi/2 to pi/2.
.IP CDBL(X) 25
Converts X to a double precision number.
.IP CHR$(X) 25
Converts the integer value X to its ASCII character.
X must be in the range of 0 to 257.
It is used for cursor addressing and generating bel signals.
.IP CINT(X) 25
Converts X to an integer by rounding the fractional portion.
If X is not in the range -32768 to 32767 an "Overflow"
error occurs.
.IP COS(X) 25
Returns the cosine of X in radians.
.IP CSNG(X) 25
Converts X to a single precision number.
.IP CVI(<2-bytes>) 25
Convert two byte string value to integer number.
.IP CVS(<4-bytes>) 25
Convert four byte string value to single precision number.
.IP CVD(<8-bytes>) 25
Convert eight byte string value to double precision number.
.IP EOF[(<file-number>)] 25
Returns -1 (true) if the end of a sequential file has been reached.
.IP EXP(X) 25
Returns e(base of natural logarithm) to the power of X.
X should be less then 10000.0.
.IP FIX(X) 25
Returns the truncated integer part of X. FIX(X) is
equivalent to SGN(X)*INT(ABS(X)).
The major difference between FIX and INT is that FIX does not
return the next lower number for negative X.
.IP HEX$(X) 25
Returns the string which represents the hexadecimal value of
the decimal argument. X is rounded to an integer using CINT
before HEX$ is evaluated.
.IP INT(X) 25
Returns the largest integer <= X.
.IP INP$(X[,[#]Y]) 25
Returns the string of X characters read from the terminal or
the designated file.
.IP LEN(X$) 25
Returns the number of characters in the string X$.
Non printable and blancs are counted too.
.IP LOC(<file\ number>) 25
For sequential files LOC returns
position of the read/write head, counted in number of bytes.
For random files the function returns the record number just
read or written from a GET or PUT statement.
If nothing was read or written 0 is returned.
.IP LOG(X) 25
Returns the natural logarithm of X. X must be greater than zero.
.IP MID$(X,I,[J]) 25
Returns first J characters from string X starting at position I in X.
If J is omitted all characters starting of from position I in X are returned.
.IP MKI$(X) 25
Converts an integer expression to a two-byte string.
.IP MKS$(X) 25
Converts a single precision expression to a four-byte string.
.IP MKD$(X) 25
Converts a double precision expression to a eight-byte string.
.IP OCT$(X) 25
Returns the string which represents the octal value of the decimal
argument. X is rounded to an integer using CINT before OCTS is evaluated.
.IP PEEK(I) 25
Returns the byte read from the indicated memory. (Of limited use
in the context of ACK)
.IP POS(I) 25
Returns the current cursor position. To be implemented.
.IP RIGHT$(X$,I)
Returns the right most I characters of string X$.
If I=0 then the empty string is returned.
.IP RND(X) 25
Returns a random number between 0 and 1. X is a dummy argument.
.IP SGN(X) 25
If X>0 , SGN(X) returns 1.
.br
if X=0, SGN(X) returns 0.
.br
if X<0, SGN(X) returns -1.
.IP SIN(X) 25
Returns the sine of X in radians.
.IP SPACE$(X) 25
Returns a string of spaces length X. The expression
X is rounded to an integer using CINT.
.IP STR$(X)
Returns the string representation value of X.
.IP STRING$(I,J) 25
Returns thes string of length Iwhose characters all
have ASCII code J. (or first character when J is a string)
.IP TAB(I) 25
Spaces to position I on the terminal. If the current
print position is already beyond space I,TAB
goes to that position on the next line.
Space 1 is leftmost position, and the rightmost position
is width minus 1. To be used within PRINT statements only.
.IP TAN(X) 25
Returns the tangent of X in radians. If TAN overflows
the "Overflow" message is displayed.
.IP VAL(X$) 25
Returns the numerical value of string X$.
The VAL function strips leading blanks and tabs from the
argument string.
.bp
.SH
APPENDIX A DIFFERENCES WITH MICROSOFT BASIC
.LP
The following list of Microsoft commands and statements are
not recognized by the compiler.
.DS
SPC
USR
VARPTR
AUTO
CHAIN
CLEAR
CLOAD
COMMON
CONT
CSAVE
DELETE
EDIT
ERASE
FRE
KILL
LIST
LLIST
LOAD
LPRINT
MERGE
NAME
NEW
NULL
RENUM
RESUME
RUN
SAVE
WAIT
WIDTH LPRINT
.DE
Some statements are in the current implementation not available,
but will be soon. These include:
.DS
CALL
DEFUSR
FIELD
GET
INKEY
INPUT$
INSTR$
LEFT$
LSET
RSET
PUT
.DE
.bp
.SH
APPENDIX B RESERVED WORDS IN BASIC-EM
.LP
The following list of words/symbols/names/identifiers are reserved, which
means that they can not be used for variable-names.
.DS
ABS AND ASC AS
ATN AUTO BASE CALL
CDBL CHAIN CHR CINT
CLEAR CLOAD CLOSE COMMON
CONT COS CSNG CSAVE
CVI CVS CVD DATA
DEFINT DEFSNG DEFDBL DEFSTR
DEF DELETE DIM EDIT
ELSE END EOF ERASE
ERROR ERR ERL ELSE
EQV EXP FIELD FIX
FOR FRE GET GOSUB
GOTO HEX IF IMP
INKEY INPUT INP INSTR
INT KILL LEFT LEN
LET LINE LIST LLIST
LOAD LOC LOG LPOS
LPRINT LSET MERGE MID
MKI MKS MKD MOD
NAME NEW NEXT NOT
NULL ON OCT OPEN
OPTION OR OUT PEEK
POKE PRINT POS PUT
RANDOMIZE READ REM RENUM
REN RESTORE RESUME RETURN
RIGHT RND RUN SAVE
STEP SGN SIN SPACE
SPC SQR STOP STRING
STR SWAP TAB TAN
THEN TO TRON TROFF
USING USR VAL VARPTR
WAIT WHILE WEND WIDTH
WRITE XOR
.DE

3
doc/ceg/.distr Normal file
View File

@ -0,0 +1,3 @@
proto.make
ceg.ref
ceg.tr

42
doc/ceg/ceg.ref Normal file
View File

@ -0,0 +1,42 @@
%T A Practical Toolkit For Making Compilers
%A A.S. Tanenbaum
%A H. v. Staveren
%A E.G. Keizer
%A J.W. Stevenson
%J Communications of the ACM
%V 26
%N 9
%D September 1983
%T Description of a Machine Architecture for Use with Block Structured Languages
%A A.S. Tanenbuum
%A H. v. Staveren
%A E.G. Keizer
%A J.W. Stevenson
%R IR-81
%I Dept. Mathematics and Computer Science, Vrije Universiteit
%C Amsterdam
%D August 1983
%T EM_CODE(3ACK)
%A ACK Documentation
%I Dept. Mathematics and Computer Science, Vrije Universiteit
%C Amsterdam
%T ACK.OUT(5ACK)
%A ACK Documentation
%I Dept. Mathematics and Computer Science, Vrije Universiteit
%C Amsterdam
%K aout
%T PRINT(3ACK)
%A ACK Documentation
%I Dept. Mathematics and Computer Science, Vrije Universiteit
%C Amsterdam
%T The C Programming Language
%A B.W. Kernighan
%A D.M. Ritchie
%I Prentice-Hall Inc.
%C Englewood Cliffs, New Jersey
%D 1978

1587
doc/ceg/ceg.tr Normal file

File diff suppressed because it is too large Load Diff

12
doc/ceg/proto.make Normal file
View File

@ -0,0 +1,12 @@
# $Id$
#PARAMS do not remove this line!
SRC_DIR = $(SRC_HOME)/doc/ceg
PIC=pic
TBL=tbl
REFER=refer
$(TARGET_HOME)/doc/ceg.doc: $(SRC_DIR)/ceg.tr $(SRC_DIR)/ceg.ref
$(PIC) $(SRC_DIR)/ceg.tr | $(REFER) -e -p $(SRC_DIR)/ceg.ref | $(TBL) > $@

1864
doc/cg.doc Normal file

File diff suppressed because it is too large Load Diff

629
doc/crefman.doc Normal file
View File

@ -0,0 +1,629 @@
\." $Id$
.\" eqn crefman.doc | troff -ms
.EQ
delim $$
.EN
.RP
.TL
ACK/CEM Compiler
.br
Reference Manual
.AU
Erik H. Baalbergen
.AI
Department of Mathematics and Computer Science
Vrije Universiteit
Amsterdam
The Netherlands
.AB no
.AE
.NH
C Language
.PP
This section discusses the extensions to and deviations from the C language,
as described in [1].
The issues are numbered according to the reference manual.
.SH
2.2 Identifiers
.PP
Upper and lower case letters are different.
The number of significant letters
is 32 by default, but may be set to another value using the \fB\-M\fP option.
The identifier length should be set according to the rest of the compilation
programs.
.SH
2.3 Keywords
.SH
\f(CWasm\fP
.PP
The keyword \f(CWasm\fP
is recognized.
However, the statement
.DS
.ft CW
asm(string);
.ft R
.DE
is skipped, while a warning is given.
.SH
\f(CWenum\fP
.PP
The \f(CWenum\fP keyword is recognized and interpreted.
.SH
\f(CWentry\fP, \f(CWfortran\fP
.PP
The words \f(CWentry\fP and \f(CWfortran\fP
are reserved under the restricted option.
The words are not interpreted by the compiler.
.SH
2.4.1 Integer Constants
.PP
The type of an integer constant is the first of the corresponding list
in which its value can be represented. Decimal: \f(CWint, long, unsigned long\fP;
octal or hexadecimal: \f(CWint, unsigned, long, unsigned long\fP; suffixed by
the letter L or l: \f(CWlong, unsigned long\fP.
.SH
2.4.3 Character Constants
.PP
A character constant is a sequence of 1 up to \f(CWsizeof(int)\fP characters
enclosed in single quotes.
The value of a character constant '$c sub 1 c sub 2 ... c sub n$'
is $d sub n + M \(mu d sub {n - 1} + ... + M sup {n - 1} \(mu d sub 2 + M sup n \(mu d sub 1$,
where M is 1 + maximum unsigned number representable in an \f(CWunsigned char\fP,
and $d sub i$ is the signed value (ASCII)
of character $c sub i$.
.SH
2.4.4 Floating Constants
.PP
The compiler does not support compile-time floating point arithmetic.
.SH
2.6 Hardware characteristics
.PP
The compiler is capable of producing EM code for machines with the following
properties
.IP \(bu
a \f(CWchar\fP is 8 bits
.IP \(bu
the size of \f(CWint\fP is equal to the word size
.IP \(bu
the size of \f(CWshort\fP may not exceed the size of \f(CWint\fP
.IP \(bu
the size of \f(CWint\fP may not exceed the size of \f(CWlong\fP
.IP \(bu
the size of pointers is equal to the size of either \f(CWshort\fP, \f(CWint\fP
or \f(CWlong\fP
.LP
.SH
4 What's in a name?
.SH
\f(CWchar\fP
.PP
Objects of type \f(CWchar\fP are taken to be signed.
The combination \f(CWunsigned char\fP is legal.
.SH
\f(CWunsigned\fP
.PP
The type combinations \f(CWunsigned char\fP, \f(CWunsigned short\fP and
\f(CWunsigned long\fP are supported.
.SH
\f(CWenum\fP
.PP
The data type \f(CWenum\fP is implemented as described
in \fIRecent Changes to C\fP (see appendix A).
.I Cem
treats enumeration variables as if they were \f(CWint\fP.
.SH
\f(CWvoid\fP
.PP
Type \f(CWvoid\fP is implemented.
The type specifies an empty set of values, which takes no storage space.
.SH
\fRFundamental types\fP
.PP
The names of the fundamental types can be redefined by the user, using
\f(CWtypedef\fP.
.SH
7 Expressions
.PP
The order of evaluation of expressions depends on the complexity of the
subexpressions.
In case of commutative operations, the most complex subexpression is
evaluated first.
Parameter lists are evaluated from right to left.
.SH
7.2 Unary operators
.PP
The type of a \f(CWsizeof\fP expression is \f(CWunsigned int\fP.
.SH
7.13 Conditional operator
.PP
Both the second and the third expression in a conditional expression may
include assignment operators.
They may be structs or unions.
.SH
7.14 Assignment operators
.PP
Structures may be assigned, passed as arguments to functions, and returned
by functions.
The types of operands taking part must be the same.
.SH
8.2 Type specifiers
.PP
The combinations \f(CWunsigned char\fP, \f(CWunsigned short\fP
and \f(CWunsigned long\fP are implemented.
.SH
8.5 Structure and union declarations
.PP
Fields of any integral type, either signed or unsigned,
are supported, as long as the type fits in a word on the target machine.
.PP
Fields are left adjusted by default; the first field is put into the left
part of a word, the next one on the right side of the first one, etc.
The \f(CW-Vr\fP option in the call of the compiler
causes fields to be right adjusted within a machine word.
.PP
The tags of structs and unions occupy a different name space from that of
variables and that of member names.
.SH
9.7 Switch statement
.PP
The type of \fIexpression\fP in
.DS
.ft CW
\f(CWswitch (\fP\fIexpression\fP\f(CW)\fP \fIstatement\fP
.ft
.DE
must be integral.
A warning is given under the restricted option if the type is \f(CWlong\fP.
.SH
10 External definitions
.PP
See [4] for a discussion on this complicated issue.
.SH
10.1 External function definitions
.PP
Structures may be passed as arguments to functions, and returned
by functions.
.SH
11.1 Lexical scope
.PP
Typedef names may be redeclared like any other variable name; the ice mentioned
in \(sc11.1 is walked correctly.
.SH
12 Compiler control lines
.PP
Lines which do not occur within comment, and with \f(CW#\fP as first
character, are interpreted as compiler control line.
There may be an arbitrary number of spaces, tabs and comments (collectively
referred as \fIwhite space\fP) following the \f(CW#\fP.
Comments may contain newline characters.
Control lines with only white space between the \f(CW#\fP and the line separator
are skipped.
.PP
The #\f(CWinclude\fP, #\f(CWifdef\fP, #\f(CWifndef\fP, #\f(CWundef\fP, #\f(CWelse\fP and
#\f(CWendif\fP control lines and line directives consist of a fixed number of
arguments.
The list of arguments may be followed an arbitrary sequence of characters,
in which comment is interpreted as such.
(I.e., the text between \f(CW/*\fP and \f(CW*/\fP is skipped, regardless of
newlines; note that commented-out lines beginning with \f(CW#\fP are not
considered to be control lines.)
.SH
12.1 Token replacement
.PP
The replacement text of macros is taken to be a string of characters, in which
an identifier may stand for a formal parameter, and in which comment is
interpreted as such.
Comments and newline characters, preceeded by a backslash, in the replacement
text are replaced by a space character.
.PP
The actual parameters of a macro are considered tokens and are
balanced with regard to \f(CW()\fP, \f(CW{}\fP and \f(CW[]\fP.
This prevents the use of macros like
.DS
.ft CW
CTL([)
.ft
.DE
.PP
Formal parameters of a macro must have unique names within the formal-parameter
list of that macro.
.PP
A message is given at the definition of a macro if the macro has
already been #\f(CWdefined\fP, while the number of formal parameters differ or
the replacement texts are not equal (apart from leading and trailing
white space).
.PP
Recursive use of macros is detected by the compiler.
.PP
Standard #\f(CWdefined\fP macros are
.DS
\f(CW__FILE__\fP name of current input file as string constant
\f(CW__DATE__\fP curent date as string constant; e.g. \f(CW"Tue Wed 2 14:45:23 1986"\fP
\f(CW__LINE__\fP current line number as an integer
.DE
.PP
No message is given if \fIidentifier\fP is not known in
.DS
.ft CW
#undef \fIidentifier\fP
.ft
.DE
.SH
12.2 File inclusion
.PP
A newline character is appended to each file which is included.
.SH
12.3 Conditional compilation
.PP
The #\f(CWif\fP, #\f(CWifdef\fP and #\f(CWifndef\fP control lines may be followed
by an arbitrary number of
.DS
.ft CW
#elif \fIconstant-expression\fP
.ft
.DE
control lines, before the corresponding #\f(CWelse\fP or #\f(CWendif\fP
is encountered.
The construct
.DS
.ft CW
#elif \fIconstant-expression\fP
some text
#endif /* corresponding to #elif */
.ft
.DE
is equivalent to
.DS
.ft CW
#else
#if \fIconstant-expression\fP
some text
#endif /* corresponding to #if */
#endif /* corresponding to #else */
.ft
.DE
.PP
The \fIconstant-expression\fP in #\f(CWif\fP and #\f(CWelif\fP control lines
may contain the construction
.DS
.ft CW
defined(\fIidentifier\fP)
.ft
.DE
which is replaced by \f(CW1\fP, if \fIidentifier\fP has been #\f(CWdefined\fP,
and by \f(CW0\fP, if not.
.PP
Comments in skipped lines are interpreted as such.
.SH
12.4 Line control
.PP
Line directives may occur in the following forms:
.DS
.ft CW
#line \fIconstant\fP
#line \fIconstant\fP "\fIfilename\fP"
#\fIconstant\fP
#\fIconstant\fP "\fIfilename\fP"
.ft
.DE
Note that \fIfilename\fP is enclosed in double quotes.
.SH
14.2 Functions
.PP
If a pointer to a function is called, the function the pointer points to
is called instead.
.SH
15 Constant expressions
.PP
The compiler distinguishes the following types of integral constant expressions
.IP \(bu
field-width specifier
.IP \(bu
case-entry specifier
.IP \(bu
array-size specifier
.IP \(bu
global variable initialization value
.IP \(bu
enum-value specifier
.IP \(bu
truth value in \f(CW#if\fP control line
.LP
.PP
Constant integral expressions are compile-time evaluated while an effort
is made to report overflow.
Constant floating expressions are not compile-time evaluated.
.NH
Compiler flags
.IP \fB\-C\fR
Run the preprocessor stand-alone while maintaining the comments.
Line directives are produced whenever needed.
.IP \fB\-D\fP\fIname\fP=\fIstring-of-characters\fP
.br
Define \fIname\fR as macro with \fIstring-of-characters\fR as
replacement text.
.IP \fB\-D\fP\fIname\fP
.br
Equal to \fB\-D\fP\fIname\fP\fB=1\fP.
.IP \fB\-E\fP
Run the preprocessor stand alone, i.e.,
list the sequence of input tokens and delete any comments.
Line directives are produced whenever needed.
.IP \fB\-I\fIpath\fR
.br
Prepend \fIpath\fR to the list of include directories.
To put the directories "include", "sys/h" and "util/h" into the
include directory list in that order, the user has to specify
.DS
.ft CW
-Iinclude -Isys/h -Iutil/h
.ft R
.DE
An empty \fIpath\fP causes the standard include
directory (usually \f(CW/usr/include\fP) to be forgotten.
.IP \fB\-M\fP\fIn\fP
.br
Set maximum significant identifier length to \fIn\fP.
.IP \fB\-n\fP
Suppress EM register messages.
The user-declared variables are not stored into registers on the target
machine.
.IP \fB\-p\fP
Generate the EM \fBfil\fP and \fBlin\fP instructions in order to enable
an interpreter to keep track of the current location in the source code.
.IP \fB\-P\fP
Equivalent with \fB\-E\fP, but without line directives.
.IP \fB\-R\fP
Interpret the input as restricted C (according to the language as
described in [1]).
.IP \fB\-T\fP\fIpath\fP
.br
Create temporary files, if necessary, in directory \fIpath\fP.
.IP \fB\-U\fP\fIname\fP
.br
Get rid of the compiler-predefined macro \fIname\fP, i.e.,
consider
.DS
.ft CW
#undef \fIname\fP
.ft R
.DE
to appear in the beginning of the file.
.IP \fB\-V\fIcm\fR.\fIn\fR,\ \fB\-V\fIcm\fR.\fIncm\fR.\fIn\fR\ ...
.br
Set the size and alignment requirements.
The letter \fIc\fR indicates the simple type, which is one of
\fBs\fR(short), \fBi\fR(int), \fBl\fR(long), \fBf\fR(float), \fBd\fR(double)
or \fBp\fR(pointer).
If \fIc\fR is \fBS\fP or \fBU\fP, then \fIn\fP is taken to be the initial
alignment of structs or unions, respectively.
The effective alignment of a struct or union is the least common multiple
of the initial struct/union alignment and the alignments of its members.
The \fIm\fR parameter can be used to specify the length of the type (in bytes)
and the \fIn\fR parameter for the alignment of that type.
Absence of \fIm\fR or \fIn\fR causes the default value to be retained.
To specify that the bitfields should be right adjusted instead of the
default left adjustment, specify \fBr\fR as \fIc\fR parameter.
.IP \fB\-w\fR
Suppress warning messages
.IP \fB\-\-\fIcharacter\fR
.br
Set debug-flag \fIcharacter\fP.
This enables some special features offered by a debug and develop version of
the compiler.
Some particular flags may be recognized, others may have surprising effects.
.RS
.IP \fBd\fP
Generate a dependency graph, reflecting the calling structure of functions.
Lines of the form
.DS
.ft CW
DFA: \fIcalling-function\fP: \fIcalled-function\fP
.ft
.DE
are generated whenever a function call is encountered.
.IP \fBf\fP
Dump whole identifier table, including macros and reserved words.
.IP \fBh\fP
Supply hash-table statistics.
.IP \fBi\fP
Print names of included files.
.IP \fBm\fP
Supply statistics concerning the memory allocation.
.IP \fBt\fP
Dump table of identifiers.
.IP \fBu\fP
Generate extra statistics concerning the predefined types and identifiers.
Works in combination with \fBf\fP or \fBt\fP.
.IP \fBx\fP
Print expression trees in human-readable format.
.RE
.LP
.SH
References
.IP [1]
Brian W. Kernighan, Dennis M. Ritchie,
.I
The C Programming Language
.R
.IP [2]
L. Rosler,
.I
Draft Proposed Standard - Programming Language C,
.R
ANSI X3J11 Language Subcommittee
.IP [3]
Erik H. Baalbergen, Dick Grune, Maarten Waage,
.I
The CEM Compiler,
.R
Informatica Manual IM-4, Dept. of Mathematics and Computer Science, Vrije
Universiteit, Amsterdam, The Netherlands
.IP [4]
Erik H. Baalbergen,
.I
Modeling global declarations in C,
.R
internal paper
.LP
.bp
.SH
Appendix A - Enumeration Type
.PP
The syntax is
.sp
.RS
.I enum-specifier :
.RS
\&\f(CWenum\fP { \fIenum-list\fP }
.br
\&\f(CWenum\fP \fIidentifier\fP { \fIenum-list\fP }
.br
\&\f(CWenum\fP \fIidentifier\fP
.RE
.sp
\&\fIenum-list\fP :
.RS
\&\fIenumerator\fP
.br
\&\fIenum-list\fP , \fIenumerator\fP
.RE
.sp
\&\fIenumerator\fP :
.RS
\&\fIidentifier\fP
.br
\&\fIidentifier\fP = \fIconstant-expression\fP
.RE
.sp
.RE
The identifier has the same role as the structure tag in a struct specification.
It names a particular enumeration type.
.PP
The identifiers in the enum-list are declared as constants, and may appear
whenever constants are required.
If no enumerators with
.B =
appear, then the values of the constants begin at 0 and increase by 1 as the
declaration is read from left to right.
An enumerator with
.B =
gives the associated identifier the value indicated; subsequent identifiers
continue the progression from the assigned value.
.PP
Enumeration tags and constants must all be distinct, and, unlike structure
tags and members, are drawn from the same set as ordinary identifiers.
.PP
Objects of a given enumeration type are regarded as having a type distinct
from objects of all other types.
.bp
.SH
Appendix B: C grammar in LL(1) form
.PP
The \fBbold-faced\fP and \fIitalicized\fP tokens represent terminal symbols.
.vs 16
.nf
\fBexternal definitions\fP
program: external-definition*
external-definition: ext-decl-specifiers [declarator [function | non-function] | '\fB;\fP'] | asm-statement
ext-decl-specifiers: decl-specifiers?
non-function: initializer? ['\fB,\fP' init-declarator]* '\fB;\fP'
function: declaration* compound-statement
.sp 1
\fBdeclarations\fP
declaration: decl-specifiers init-declarator-list? '\fB;\fP'
decl-specifiers: other-specifier+ [single-type-specifier other-specifier*]? | single-type-specifier other-specifier*
other-specifier: \fBauto\fP | \fBstatic\fP | \fBextern\fP | \fBtypedef\fP | \fBregister\fP | \fBshort\fP | \fBlong\fP | \fBunsigned\fP
type-specifier: decl-specifiers
single-type-specifier: \fItype-identifier\fP | struct-or-union-specifier | enum-specifier
init-declarator-list: init-declarator ['\fB,\fP' init-declarator]*
init-declarator: declarator initializer?
declarator: primary-declarator ['\fB(\fP' formal-list ? '\fB)\fP' | arrayer]* | '\fB*\fP' declarator
primary-declarator: identifier | '\fB(\fP' declarator '\fB)\fP'
arrayer: '\fB[\fP' constant-expression? '\fB]\fP'
formal-list: formal ['\fB,\fP' formal]*
formal: identifier
enum-specifier: \fBenum\fP [enumerator-pack | identifier enumerator-pack?]
enumerator-pack: '\fB{\fP' enumerator ['\fB,\fP' enumerator]* '\fB,\fP'? '\fB}\fP'
enumerator: identifier ['\fB=\fP' constant-expression]?
struct-or-union-specifier: [ \fBstruct\fP | \fBunion\fP] [ struct-declaration-pack | identifier struct-declaration-pack?]
struct-declaration-pack: '\fB{\fP' struct-declaration+ '\fB}\fP'
struct-declaration: type-specifier struct-declarator-list '\fB;\fP'?
struct-declarator-list: struct-declarator ['\fB,\fP' struct-declarator]*
struct-declarator: declarator bit-expression? | bit-expression
bit-expression: '\fB:\fP' constant-expression
initializer: '\fB=\fP'? initial-value
cast: '\fB(\fP' type-specifier abstract-declarator '\fB)\fP'
abstract-declarator: primary-abstract-declarator ['\fB(\fP' '\fB)\fP' | arrayer]* | '\fB*\fP' abstract-declarator
primary-abstract-declarator: ['\fB(\fP' abstract-declarator '\fB)\fP']?
.sp 1
\fBstatements\fP
statement:
expression-statement
| label '\fB:\fP' statement
| compound-statement
| if-statement
| while-statement
| do-statement
| for-statement
| switch-statement
| case-statement
| default-statement
| break-statement
| continue-statement
| return-statement
| jump
| '\fB;\fP'
| asm-statement
;
expression-statement: expression '\fB;\fP'
label: identifier
if-statement: \fBif\fP '\fB(\fP' expression '\fB)\fP' statement [\fBelse\fP statement]?
while-statement: \fBwhile\fP '\fB(\fP' expression '\fB)\fP' statement
do-statement: \fBdo\fP statement \fBwhile\fP '\fB(\fP' expression '\fB)\fP' '\fB;\fP'
for-statement: \fBfor\fP '\fB(\fP' expression? '\fB;\fP' expression? '\fB;\fP' expression? '\fB)\fP' statement
switch-statement: \fBswitch\fP '\fB(\fP' expression '\fB)\fP' statement
case-statement: \fBcase\fP constant-expression '\fB:\fP' statement
default-statement: \fBdefault\fP '\fB:\fP' statement
break-statement: \fBbreak\fP '\fB;\fP'
continue-statement: \fBcontinue\fP '\fB;\fP'
return-statement: \fBreturn\fP expression? '\fB;\fP'
jump: \fBgoto\fP identifier '\fB;\fP'
compound-statement: '\fB{\fP' declaration* statement* '\fB}\fP'
asm-statement: \fBasm\fP '\fB(\fP' \fIstring\fP '\fB)\fP' '\fB;\fP'
.sp 1
\fBexpressions\fP
initial-value: assignment-expression | initial-value-pack
initial-value-pack: '\fB{\fP' initial-value-list '\fB}\fP'
initial-value-list: initial-value ['\fB,\fP' initial-value]* '\fB,\fP'?
primary: \fIidentifier\fP | constant | \fIstring\fP | '\fB(\fP' expression '\fB)\fP'
secundary: primary [index-pack | parameter-pack | selection]*
index-pack: '\fB[\fP' expression '\fB]\fP'
parameter-pack: '\fB(\fP' parameter-list? '\fB)\fP'
selection: ['\fB.\fP' | '\fB\->\fP'] identifier
parameter-list: assignment-expression ['\fB,\fP' assignment-expression]*
postfixed: secundary postop?
unary: cast unary | postfixed | unop unary | size-of
size-of: \fBsizeof\fP [cast | unary]
binary-expression: unary [binop binary-expression]*
conditional-expression: binary-expression ['\fB?\fP' expression '\fB:\fP' assignment-expression]?
assignment-expression: conditional-expression [asgnop assignment-expression]?
expression: assignment-expression ['\fB,\fP' assignment-expression]*
unop: '\fB*\fP' | '\fB&\fP' | '\fB\-\fP' | '\fB!\fP' | '\fB~ \fP' | '\fB++\fP' | '\fB\-\-\fP'
postop: '\fB++\fP' | '\fB\-\-\fP'
multop: '\fB*\fP' | '\fB/\fP' | '\fB%\fP'
addop: '\fB+\fP' | '\fB\-\fP'
shiftop: '\fB<<\fP' | '\fB>>\fP'
relop: '\fB<\fP' | '\fB>\fP' | '\fB<=\fP' | '\fB>=\fP'
eqop: '\fB==\fP' | '\fB!=\fP'
arithop: multop | addop | shiftop | '\fB&\fP' | '\fB^ \fP' | '\fB|\fP'
binop: arithop | relop | eqop | '\fB&&\fP' | '\fB||\fP'
asgnop: '\fB=\fP' | '\fB+\fP' '\fB=\fP' | '\fB\-\fP' '\fB=\fP' | '\fB*\fP' '\fB=\fP' | '\fB/\fP' '\fB=\fP' | '\fB%\fP' '\fB=\fP'
| '\fB<<\fP' '\fB=\fP' | '\fB>>\fP' '\fB=\fP' | '\fB&\fP' '\fB=\fP' | '\fB^ \fP' '\fB=\fP' | '\fB|\fP' '\fB=\fP'
| '\fB+=\fP' | '\fB\-=\fP' | '\fB*=\fP' | '\fB/=\fP' | '\fB%=\fP'
| '\fB<<=\fP' | '\fB>>=\fP' | '\fB&=\fP' | '\fB^=\fP' | '\fB|=\fP'
constant: \fIinteger\fP | \fIfloating\fP
constant-expression: assignment-expression
identifier: \fIidentifier\fP | \fItype-identifier\fP
.fi

18
doc/ego/.distr Normal file
View File

@ -0,0 +1,18 @@
proto.make
bo
ca
cf
cj
cs
ic
il
intro
lv
ov
ra
refs.gen
refs.opt
refs.stat
sp
sr
ud

1
doc/ego/bo/.distr Normal file
View File

@ -0,0 +1 @@
bo1

162
doc/ego/bo/bo1 Normal file
View File

@ -0,0 +1,162 @@
.bp
.NH 1
Branch Optimization
.NH 2
Introduction
.PP
The Branch Optimization phase (BO) performs two related
(branch) optimizations.
.NH 3
Fusion of basic blocks
.PP
If two basic blocks B1 and B2 have the following properties:
.DS
SUCC(B1) = {B2}
PRED(B2) = {B1}
.DE
then B1 and B2 can be combined into one basic block.
If B1 ends in an unconditional jump to the beginning of B2, this
jump can be eliminated,
hence saving a little execution time and object code size.
This technique can be used to eliminate some deficiencies
introduced by the front ends (for example, the "C" front end
translates switch statements inefficiently due to its one pass nature).
.NH 3
While-loop optimization
.PP
The straightforward way to translate a while loop is to
put the test for loop termination at the beginning of the loop.
.DS
while cond loop \kyLAB1: \kxTest cond
body of the loop --->\h'|\nxu'Branch On False To LAB2
end loop\h'|\nxu'code for body of loop
\h'|\nxu'Branch To LAB1
\h'|\nyu'LAB2:
Fig. 10.1 Example of Branch Optimization
.DE
If the condition fails at the Nth iteration, the following code
gets executed (dynamically):
.DS
.TS
l l l.
N * conditional branch (which fails N-1 times)
N-1 * unconditional branch
N-1 * body of the loop
.TE
.DE
An alternative translation is:
.DS
Branch To LAB2
LAB1:
code for body of loop
LAB2:
Test cond
Branch On True To LAB1
.DE
This translation results in the following profile:
.DS
.TS
l l l.
N * conditional branch (which succeeds N-1 times)
1 * unconditional branch
N-1 * body of the loop
.TE
.DE
So the second translation will be significantly faster if N >> 2.
If N=2, execution time will be slightly increased.
On the average, the program will be speeded up.
Note that the code sizes of the two translations will be the same.
.NH 2
Implementation
.PP
The basic block fusion technique is implemented
by traversing the control flow graph of a procedure,
looking for basic blocks B with only one successor (S).
If one is found, it is checked if S has only one predecessor
(which has to be B).
If so, the two basic blocks can in principle be combined.
However, as one basic block will have to be moved,
the textual order of the basic blocks will be altered.
This reordering causes severe problems in the presence
of conditional jumps.
For example, if S ends in a conditional branch,
the basic block that comes textually next to S must stay
in that position.
So the transformation in Fig. 10.2 is illegal.
.DS
.TS
l l l l l.
LAB1: S1 LAB1: S1
BRA LAB2 S2
... --> BEQ LAB3
LAB2: S2 ...
BEQ LAB3 S3
S3
.TE
Fig. 10.2 An illegal transformation of Branch Optimization
.DE
If B is moved towards S the same problem occurs if the block before B
ends in a conditional jump.
The problem could be solved by adding one extra branch,
but this would reduce the gains of the optimization to zero.
Hence the optimization will only be done if the block that
follows S (in the textual order) is not a successor of S.
This condition assures that S does not end in a conditional branch.
The condition always holds for the code generated by the "C"
front end for a switch statement.
.PP
After the transformation has been performed,
some attributes of the basic blocks involved (such as successor and
predecessor sets and immediate dominator) must be recomputed.
.PP
The while-loop technique is applied to one loop at a time.
The list of basic blocks of the loop is traversed to find
a block B that satisfies the following conditions:
.IP 1.
the textually next block to B is not part of the loop
.IP 2.
the last instruction of B is an unconditional branch;
hence B has only one successor, say S
.IP 3.
the textually next block of B is a successor of S
.IP 4.
the last instruction of S is a conditional branch
.LP
If such a block B is found, the control flow graph is changed
as depicted in Fig. 10.3.
.DS
.ft 5
| |
| v
v |
|-----<------| ----->-----|
____|____ | |
| | | |-------| |
| S1 | | | v |
| Bcc | | | .... |
|--| | | | |
| --------- | | ----|---- |
| | | | | |
| .... ^ | | S2 | |
| | | | | |
| --------- | | | | |
v | | | ^ --------- |
| | S2 | | | | |
| | BRA | | | |-----<-----
| | | | | v
| --------- | | ____|____
| | | | | |
| ------>------ | | S1 |
| | | Bnn |
|-------| | | |
| | ----|----
v | |
|----<--|
|
v
.ft R
Fig. 10.3 Transformation of the CFG by Branch Optimization
.DE

1
doc/ego/ca/.distr Normal file
View File

@ -0,0 +1 @@
ca1

65
doc/ego/ca/ca1 Normal file
View File

@ -0,0 +1,65 @@
.bp
.NH 1
Compact assembly generation
.NH 2
Introduction
.PP
The "Compact Assembly generation phase" (CA) transforms the
intermediate code of the optimizer into EM code in
Compact Assembly Language (CAL) format.
In the intermediate code, all program entities
(such as procedures, labels, global variables)
are denoted by a unique identifying number (see 3.5).
In the CAL output of the optimizer these numbers have to
be replaced by normal identifiers (strings).
The original identifiers of the input program are used whenever possible.
Recall that the IC phase generates two files that can be
used to map unique identifying numbers to procedure names and
global variable names.
For instruction labels CA always generates new names.
The reasons for doing so are:
.IP -
instruction labels are only visible inside one procedure, so they can
not be referenced in other modules
.IP -
the names are not very suggestive anyway, as they must be integer numbers
.IP -
the optimizer considerably changes the control structure of the program,
so there is really no one to one mapping of instruction labels in
the input and the output program.
.LP
As the optimizer combines all input modules into one module,
visibility problems may occur.
Two modules M1 and M2 can both define an identifier X (provided that
X is not externally visible in any of these modules).
If M1 and M2 are combined into one module M, two distinct
entities with the same name would exist in M, which
is not allowed.
.[~[
tanenbaum machine architecture
.], section 11.1.4.3]
In these cases, CA invents a new unique name for one of the entities.
.NH 2
Implementation
.PP
CA first reads the files containing the procedure and global variable names
and stores the names in two tables.
It scans these tables to make sure that all names are different.
Subsequently it reads the EM text, one procedure at a time,
and outputs it in CAL format.
The major part of the code that does the latter transformation
is adapted from the EM Peephole Optimizer.
.PP
The main problem of the implementation of CA is to
assure that the visibility rules are obeyed.
If an identifier must be externally visible (i.e.
it was externally visible in the input program)
and the identifier is defined (in the output program) before
being referenced,
an EXA or EXP pseudo must be generated for it.
(Note that the optimizer may change the order of definitions and
references, so some pseudos may be needed that were not
present in the input program).
On the other hand, an identifier may be only internally visible.
If such an identifier is referenced before being defined,
an INA or INP pseudo must be emitted prior to its first reference.

6
doc/ego/cf/.distr Normal file
View File

@ -0,0 +1,6 @@
cf1
cf2
cf3
cf4
cf5
cf6

94
doc/ego/cf/cf1 Normal file
View File

@ -0,0 +1,94 @@
.bp
.NH
The Control Flow Phase
.PP
In the previous chapter we described the intermediate
code of the global optimizer.
We also specified which part of this code
was constructed by the IC phase of the optimizer.
The Control Flow Phase (\fICF\fR) does
the remainder of the job,
i.e. it determines:
.IP -
the control flow graphs
.IP -
the loop tables
.IP -
the calling, change and use attributes of
the procedure table entries
.LP
CF operates on one procedure at a time.
For every procedure it first reads the EM instructions
from the EM-text file and groups them into basic blocks.
For every basic block, its successors and
predecessors are determined,
resulting in the control flow graph.
Next, the immediate dominator of every basic block
is computed.
Using these dominators, any loop in the
procedure is detected.
Finally, interprocedural analysis is done,
after which we will know the global effects of
every procedure call on its environment.
.sp
CF uses the same internal data structures
for the procedure table and object table as IC.
.NH 2
Partitioning into basic blocks
.PP
With regard to flow of control, we distinguish
three kinds of EM instructions:
jump instructions, instruction label definitions and
normal instructions.
Jump instructions are all conditional or unconditional
branch instructions,
the case instructions (CSA/CSB)
and the RET (return) instruction.
A procedure call (CAL) is not considered to be a jump.
A defining occurrence of an instruction label
is regarded as an EM instruction.
.PP
An instruction starts
a new basic block, in any of the following cases:
.IP 1.
It is the first instruction of a procedure
.IP 2.
It is the first of a list of instruction label
defining occurrences
.IP 3.
It follows a jump
.LP
If there are several consecutive instruction labels
(which is highly unusual),
all of them are put in the same basic block.
Note that several cases may overlap,
e.g. a label definition at the beginning of a procedure
or a label following a jump.
.PP
A simple Finite State Machine is used to model
the above rules.
It also recognizes the end of a procedure,
marked by an END pseudo.
The basic blocks are stored internally as a doubly linked
linear list.
The blocks are linked in textual order.
Every node of this list has the attributes described
in the previous chapter (see syntax rule for
basic_block).
Furthermore, every node contains a pointer to its
EM instructions,
which are represented internally
as a linear, doubly linked list,
just as in the IC phase.
However, instead of one list per procedure (as in IC)
there is now one list per basic block.
.PP
On the fly, a table is build that maps
every label identifier to the label definition
instruction.
This table is used for computing the control flow.
The table is stored as a dynamically allocated array.
The length of the array is the number of labels
of the current procedure;
this value can be found in the procedure table,
where it was stored by IC.

50
doc/ego/cf/cf2 Normal file
View File

@ -0,0 +1,50 @@
.NH 2
Control Flow
.PP
A \fIsuccessor\fR of a basic block B is a block C
that can be executed immediately after B.
C is said to be a \fIpredecessor\fR of B.
A block ending with a RET instruction
has no successors.
Such a block is called a \fIreturn block\fR.
Any block that has no predecessors cannot be
executed at all (i.e. it is unreachable),
unless it is the first block of a procedure,
called the \fIprocedure entry block\fR.
.PP
Internally, the successor and predecessor
attributes of a basic block are stored as \fIsets\fR.
Alternatively, one may regard all these
sets of all basic blocks as a conceptual \fIgraph\fR,
in which there is an edge from B to C if C
is in the successor set of B.
We call this conceptual graph
the \fIControl Flow Graph\fR.
.PP
The only successor of a basic block ending on an
unconditional branch instruction is the block that
contains the label definition of the target of the jump.
The target instruction can be found via the LAB_ID
that is the operand of the jump instruction,
by using the label-map table mentioned
above.
If the last instruction of a block is a
conditional jump,
the successors are the target block and the textually
next block.
The last instruction can also be a case jump
instruction (CSA or CSB).
We then analyze the case descriptor,
to find all possible target instructions
and their associated blocks.
We require the case descriptor to be allocated in
a ROM, so it cannot be changed dynamically.
A case jump via an alterable descriptor could in principle
go to any label in the program.
In the presence of such an uncontrolled jump,
hardly any optimization can be done.
We do not expect any front end to generate such a descriptor,
however, because of the controlled nature
of case statements in high level languages.
If the basic block does not end in a jump instruction,
its only successor is the textually next block.

53
doc/ego/cf/cf3 Normal file
View File

@ -0,0 +1,53 @@
.NH 2
Immediate dominators
.PP
A basic block B dominates a block C if every path
in the control flow graph from the procedure entry block
to C goes through B.
The immediate dominator of C is the closest dominator
of C on any path from the entry block.
See also
.[~[
aho compiler design
.], section 13.1.]
.PP
There are a number of algorithms to compute
the immediate dominator relation.
.IP 1.
Purdom and Moore give an algorithm that is
easy to program and easy to describe (although the
description they give is unreadable;
it is given in a very messy Algol60 program full of gotos).
.[
predominators
.]
.IP 2.
Aho and Ullman present a bitvector algorithm, which is also
easy to program and to understand.
(See
.[~[
aho compiler design
.], section 13.1.]).
.IP 3
Lengauer and Tarjan introduce a fast algorithm that is
hard to understand, yet remarkably easy to implement.
.[
lengauer dominators
.]
.LP
The Purdom-Moore algorithm is very slow if the
number of basic blocks in the flow graph is large.
The Aho-Ullman algorithm in fact computes the
dominator relation,
from which the immediate dominator relation can be computed
in time quadratic to the number of basic blocks, worst case.
The storage requirement is also quadratic to the number
of blocks.
The running time of the third algorithm is proportional
to:
.DS
(number of edges in the graph) * log(number of blocks).
.DE
We have chosen this algorithm because it is fast
(as shown by experiments done by Lengauer and Tarjan),
it is easy to program and requires little data space.

93
doc/ego/cf/cf4 Normal file
View File

@ -0,0 +1,93 @@
.NH 2
Loop detection
.PP
Loops are detected by using the loop construction
algorithm of.
.[~[
aho compiler design
.], section 13.1.]
This algorithm uses \fIback edges\fR.
A back edge is an edge from B to C in the CFG,
whose head (C) dominates its tail (B).
The loop associated with this back edge
consists of C plus all nodes in the CFG
that can reach B without going through C.
.PP
As an example of how the algorithm works,
consider the piece of program of Fig. 4.1.
First just look at the program and try to
see what part of the code constitutes the loop.
.DS
loop
if cond then 1
-- lots of simple
-- assignment
-- statements 2 3
exit; -- exit loop
else
S; -- one statement
end if;
end loop;
Fig. 4.1 A misleading loop
.DE
Although a human being may be easily deceived
by the brackets "loop" and "end loop",
the loop detection algorithm will correctly
reply that only the test for "cond" and
the single statement in the false-part
of the if statement are part of the loop!
The statements in the true-part only get
executed once, so there really is no reason at all
to say they're part of the loop too.
The CFG contains one back edge, "3->1".
As node 3 cannot be reached from node 2,
the latter node is not part of the loop.
.PP
A source of problems with the algorithm is the fact
that different back edges may result in
the same loop.
Such an ill-structured loop is
called a \fImessy\fR loop.
After a loop has been constructed, it is checked
if it is really a new loop.
.PP
Loops can partly overlap, without one being nested
inside the other.
This is the case in the program of Fig. 4.2.
.DS
1: 1
S1;
2:
S2; 2
if cond then
goto 4;
S3; 3 4
goto 1;
4:
S4;
goto 1;
Fig. 4.2 Partly overlapping loops
.DE
There are two back edges "3->1" and "4->1",
resulting in the loops {1,2,3} and {1,2,4}.
With every basic block we associate a set of
all loops it is part of.
It is not sufficient just to record its
most enclosing loop.
.PP
After all loops of a procedure are detected, we determine
the nesting level of every loop.
Finally, we find all strong and firm blocks of the loop.
If the loop has only one back edge (i.e. it is not messy),
the set of firm blocks consists of the
head of this back edge and its dominators
in the loop (including the loop entry block).
A firm block is also strong if it is not a
successor of a block that may exit the loop;
a block may exit a loop if it has an (immediate) successor
that is not part of the loop.
For messy loops we do not determine the strong
and firm blocks. These loops are expected
to occur very rarely.

82
doc/ego/cf/cf5 Normal file
View File

@ -0,0 +1,82 @@
.NH 2
Interprocedural analysis
.PP
It is often desirable to know the effects
a procedure call may have.
The optimization below is only possible if
we know for sure that the call to P cannot
change A.
.DS
.TS
l l.
A := 10; A:= 10;
P; -- procedure call --> P;
B := A + 2; B := 12;
.TE
.DE
Although it is not possible to predict exactly
all the effects a procedure call has, we may
determine a kind of upper bound for it.
So we compute all variables that may be
changed by P, although they need not be
changed at every invocation of P.
We can get hold of this set by just looking
at all assignment (store) instructions
in the body of P.
EM also has a set of \fIindirect\fR assignment
instructions,
i.e. assignment through a pointer variable.
In general, it is not possible to determine
which variable is affected by such an assignment.
In these cases, we just record the fact that P
does an indirect assignment.
Note that this does not mean that all variables
are potentially affected, as the front ends
may generate messages telling that certain
variables can never be accessed indirectly.
We also set a flag if P does a use (load) indirect.
Note that we only have to look at \fIglobal\fR
variables.
If P changes or uses any of its locals,
this has no effect on its environment.
Local variables of a lexically enclosing
procedure can only be accessed indirectly.
.PP
A procedure P may of course call another procedure.
To determine the effects of a call to P,
we also must know the effects of a call to the second procedure.
This second one may call a third one, and so on.
Effectively, we need to compute the \fItransitive closure\fR
of the effects.
To do this, we determine for every procedure
which other procedures it calls.
This set is the "calling" attribute of a procedure.
One may regard all these sets as a conceptual graph,
in which there is an edge from P to Q
if Q is in the calling set of P. This graph will
be referred to as the \fIcall graph\fR.
(Note the resemblance with the control flow graph).
.PP
We can detect which procedures are called by P
by looking at all CAL instructions in its body.
Unfortunately, a procedure may also be
called indirectly, via a CAI instruction.
Yet, only procedures that are used as operand of an LPI
instruction can be called indirect,
because this is the only way to take the address of a procedure.
We determine for every procedure whether it does
a CAI instruction.
We also build a set of all procedures used as
operand of an LPI.
.sp
After all procedures have been processed (i.e. all CFGs
are constructed, all loops are detected,
all procedures are analyzed to see which variables
they may change, which procedures they call,
whether they do a CAI or are used in an LPI) the
transitive closure of all interprocedural
information is computed.
During the same process,
the calling set of every procedure that uses a CAI
is extended with the above mentioned set of all
procedures that can be called indirect.

21
doc/ego/cf/cf6 Normal file
View File

@ -0,0 +1,21 @@
.NH 2
Source files
.PP
The sources of CF are in the following files and packages:
.IP cf.h: 14
declarations of global variables and data structures
.IP cf.c:
the routine main; interprocedural analysis;
transitive closure
.IP succ:
control flow (successor and predecessor)
.IP idom:
immediate dominators
.IP loop:
loop detection
.IP get:
read object and procedure table;
read EM text and partition it into basic blocks
.IP put:
write tables, CFGs and EM text
.LP

1
doc/ego/cj/.distr Normal file
View File

@ -0,0 +1 @@
cj1

144
doc/ego/cj/cj1 Normal file
View File

@ -0,0 +1,144 @@
.bp
.NH 1
Cross jumping
.NH 2
Introduction
.PP
The "Cross Jumping" optimization technique (CJ)
.[
wulf design optimizing compiler
.]
is basically a space optimization technique. It looks for pairs of
basic blocks (B1,B2), for which:
.DS
SUCC(B1) = SUCC(B2) = {S}
.DE
(So B1 and B2 both have one and the same successor).
If the last few non-branch instructions are the same for B1 and B2,
one such sequence can be eliminated.
.DS
Pascal:
if cond then
S1
S3
else
S2
S3
(pseudo) EM:
.TS
l l l.
TEST COND TEST COND
BNE *1 BNE *1
S1 S1
S3 ---> BRA *2
BRA *2 1:
1: S2
S2 2:
S3 S3
2:
.TE
Fig. 9.1 An example of Cross Jumping
.DE
As the basic blocks have the same successor,
at least one of them ends in an unconditional branch instruction (BRA).
Hence no extra branch instruction is ever needed, just the target
of an existing branch needs to be changed; neither the program size
nor the execution time will ever increase.
In general, the execution time will remain the same, unless
further optimizations can be applied because of this optimization.
.PP
This optimization is particularly effective,
because it cannot always be done by the programmer at the source level,
as demonstrated by the Fig. 8.2.
.DS
Pascal:
if cond then
x := f(4)
else
x := g(5)
EM:
.TS
l l.
... ...
LOC 4 LOC 5
CAL F CAL G
ASP 2 ASP 2
LFR 2 LFR 2
STL X STL X
.TE
Fig. 9.2 Effectiveness of Cross Jumping
.DE
At the source level there is no common tail,
but at the EM level there is a common tail.
.NH 2
Implementation
.PP
The implementation of cross jumping is rather straightforward.
The technique is applied to one procedure at a time.
The control flow graph of the procedure
is scanned for pairs of basic blocks
with the same (single) successor and with common tails.
Note that there may be more than two such blocks (e.g. as the result
of a case statement).
This is dealt with by repeating the entire process until no
further optimizations can de done for the current procedure.
.sp
If a suitable pair of basic blocks has been found, the control flow
graph must be altered. One of the basic
blocks must be split into two.
The control flow graphs before and after the optimization are shown
in Fig. 9.3 and Fig. 9.4.
.DS
.ft 5
-------- --------
| | | |
| S1 | | S2 |
| S3 | | S3 |
| | | |
-------- --------
| |
|------------------|--------------------|
|
v
.ft R
Fig. 9.3 CFG before optimization
.DE
.DS
.ft 5
-------- --------
| | | |
| S1 | | S2 |
| | | |
-------- --------
| |
|--------------------<------------------|
v
--------
| |
| S3 |
| |
--------
|
v
.ft R
Fig. 9.4 CFG after optimization
.DE
Some attributes of the three resulting blocks (such as immediate dominator)
are updated.
.PP
In some cases, cross jumping might split the computation of an expression
into two, by inserting a branch somewhere in the middle.
Most code generators will generate very poor assembly code when
presented with such EM code.
Therefor, cross jumping is not performed in these cases.

5
doc/ego/cs/.distr Normal file
View File

@ -0,0 +1,5 @@
cs1
cs2
cs3
cs4
cs5

45
doc/ego/cs/cs1 Normal file
View File

@ -0,0 +1,45 @@
.bp
.NH 1
Common subexpression elimination
.NH 2
Introduction
.PP
The Common Subexpression Elimination optimization technique (CS)
tries to eliminate multiple computations of EM expressions
that yield the same result.
It places the result of one such computation
in a temporary variable,
and replaces the other computations by a reference
to this temporary variable.
The primary goal of this technique is to decrease
the execution time of the program,
but in general it will save space too.
.PP
As an example of the application of Common Subexpression Elimination,
consider the piece of program in Fig. 7.1(a).
.DS
.TS
l l l.
x := a * b; TMP := a * b; x := a * b;
CODE; x := TMP; CODE
y := c + a * b; CODE y := x;
y := c + TMP;
(a) (b) (c)
.TE
Fig. 7.1 Examples of Common Subexpression Elimination
.DE
If neither a nor b is changed in CODE,
the instructions can be replaced by those of Fig. 7.1(b),
which saves one multiplication,
but costs an extra store instruction.
If the value of x is not changed in CODE either,
the instructions can be replaced by those of Fig. 7.1(c).
In this case
the extra store is not needed.
.PP
In the following sections we will describe
which transformations are done
by CS and how this phase
was implemented.

86
doc/ego/cs/cs2 Normal file
View File

@ -0,0 +1,86 @@
.NH 2
Specification of the Common Subexpression Elimination phase
.PP
In this section we will describe
the window
through which CS examines the code,
the expressions recognized by CS,
and finally the changes made to the code.
.NH 3
The working window
.PP
The CS algorithm is applied to the
largest sequence of textually adjacent basic blocks
B1,..,Bn, for which
.DS
PRED(Bj) = {Bj-1}, j = 2,..,n.
.DE
Intuitively, this window consists of straight line code,
with only one entry point (at the beginning); it may
contain jumps, which should all have their targets outside the window.
This is illustrated in Fig. 7.2.
.DS
x := a * b; (1)
if x < 10 then (2)
y := a * b; (3)
Fig. 7.2 The working window of CS
.DE
Line (2) can only be executed after line (1).
Likewise, line (3) can only be executed after
line (2).
Both a and b have the same values at line (1) and at line (3).
.PP
Larger windows were avoided.
In Fig. 7.3, the value of a at line (4) may have been obtained
at more than one point.
.DS
x := a * b; (1)
if x < 10 then (2)
a := 100; (3)
y := a * b; (4)
Fig. 7.3 Several working windows
.DE
.NH 3
Recognized expressions.
.PP
The computations eliminated by CS need not be normal expressions
(like "a * b"),
but can even consist of a single operand that is expensive to access,
such as an array element or a record field.
If an array element is used,
its address is computed implicitly.
CS is able to eliminate either the element itself or its
address, whichever one is most profitable.
A variable of a textually enclosing procedure may also be
expensive to access, depending on the lexical level difference.
.NH 3
Transformations
.PP
CS creates a new temporary local variable (TMP)
for every eliminated expression,
unless it is able to use an existing local variable.
It emits code to initialize this variable with the
result of the expression.
Most recurrences of the expression
can simply be replaced by a reference to TMP.
If the address of an array element is recognized as
a common subexpression,
references to the element itself are replaced by
indirect references through TMP (see Fig. 7.4).
.DS
.TS
l l l.
x := A[i]; TMP := &A[i];
. . . --> x := *TMP;
A[i] := y; . . .
*TMP := y;
.TE
Fig. 7.4 Elimination of an array address computation
.DE
Here, '&' is the 'address of' operator,
and unary '*' is the indirection operator.
(Note that EM actually has different instructions to do
a use-indirect or an assign-indirect.)

250
doc/ego/cs/cs3 Normal file
View File

@ -0,0 +1,250 @@
.NH 2
Implementation
.PP
.NH 3
The value number method
.PP
To determine whether two expressions have the same result,
there must be some way to determine whether their operands have
the same values.
We use a system of \fIvalue numbers\fP
.[
kennedy data flow analysis
.]
in which each distinct value of whatever type,
created or used within the working window,
receives a unique identifying number, its value number.
Two items have the same value number if and only if,
based only upon information from the instructions in the window,
their values are provably identical.
For example, after processing the statement
.DS
a := 4;
.DE
the variable a and the constant 4 have the same value number.
.PP
The value number of the result of an expression depends only
on the kind of operator and the value number(s) of the operand(s).
The expressions need not be textually equal, as shown in Fig. 7.5.
.DS
.TS
l l.
a := c; (1)
use(a * b); (2)
d := b; (3)
use(c * d); (4)
.TE
Fig. 7.5 Different expressions with the same value number
.DE
At line (1) a receives the same value number as c.
At line (2) d receives the same value number as b.
At line (4) the expression "c * d" receives the same value number
as the expression "a * b" at line (2),
because the value numbers of their left and right operands are the same,
and the operator (*) is the same.
.PP
As another example of the value number method, consider Fig. 7.6.
.DS
.TS
l l.
use(a * b); (1)
a := 123; (2)
use(a * b); (3)
.TE
Fig. 7.6 Identical expressions with the different value numbers
.DE
Although textually the expressions "a * b" in line 1 and line 3 are equal,
a will have different value numbers at line 3 and line 1.
The two expressions will not mistakenly be recognized as equivalent.
.NH 3
Entities
.PP
The Value Number Method distinguishes between operators and operands.
The value numbers of operands are stored in a table,
called the \fIsymbol table\fR.
The value number of a subexpression depends on the
(root) operator of the expression and on the value numbers
of its operands.
A table of "available expressions" is used to do this mapping.
.PP
CS recognizes the following kinds of EM operands, called \fIentities\fR:
.DS
- constant
- local variable
- external variable
- indirectly accessed entity
- offsetted entity
- address of local variable
- address of external variable
- address of offsetted entity
- address of local base
- address of argument base
- array element
- procedure identifier
- floating zero
- local base
- heap pointer
- ignore mask
.DE
.LP
Whenever a new entity is encountered in the working window,
it is entered in the symbol table and given a brand new value number.
Most entities have attributes (e.g. the offset in
the current stackframe for local variables),
which are also stored in the symbol table.
.PP
An entity is called static if its value cannot be changed
(e.g. a constant or an address).
.NH 3
Parsing expressions
.PP
Common subexpressions are recognized by simulating the behaviour
of the EM machine.
The EM code is parsed from left to right;
as EM is postfix code, this is a bottom up parse.
At any point the current state of the EM runtime stack is
reflected by a simulated "fake stack",
containing descriptions of the parsed operands and expressions.
A descriptor consists of:
.DS
(1) the value number of the operand or expression
(2) the size of the operand or expression
(3) a pointer to the first line of EM-code
that constitutes the operand or expression
.DE
Note that operands may consist of several EM instructions.
Whenever an operator is encountered, the
descriptors of its operands are on top of the fake stack.
The operator and the value numbers of the operands
are used as indices in the table of available expressions,
to determine the value number of the expression.
.PP
During the parsing process,
we keep track of the first line of each expression;
we need this information when we decide to eliminate the expression.
.NH 3
Updating entities
.PP
An entity is assigned a value number when it is
used for the first time
in the working window.
If the entity is used as left hand side of an assignment,
it gets the value number of the right hand side.
Sometimes the effects of an instruction on an entity cannot
be determined exactly;
the current value and value number of the entity may become
inconsistent.
Hence the current value number must be forgotten.
This is achieved by giving the entity a new value number
that was not used before.
The entity is said to be \fIkilled\fR.
.PP
As information is lost when an entity is killed,
CS tries to save as many entities as possible.
In case of an indirect assignment through a pointer,
some analysis is done to see which variables cannot be altered.
For a procedure call, the interprocedural information contained
in the procedure table is used to restrict the set of entities that may
be changed by the call.
Local variables for which the front end generated
a register message can never be changed by an indirect assignment
or a procedure call.
.NH 3
Changing the EM text
.PP
When a new expression comes available,
it is checked whether its result is saved in a local
that may go in a register.
The last line of the expression must be followed
by a STL or SDL instruction
(depending on the size of the result)
and a register message must be present for
this local.
If there is such a local,
it is recorded in the available expressions table.
Each time a new occurrence of this expression
is found,
the value number of the local is compared against
the value number of the result.
If they are different the local cannot be used and is forgotten.
.PP
The available expressions are linked in a list.
New expressions are linked at the head of the list.
In this way expressions that are contained within other
expressions appear later in the list,
because EM-expressions are postfix.
The elimination process walks through the list,
starting at the head, to find the largest expressions first.
If an expression is eliminated,
any expression later on in the list, contained in the former expression,
is removed from the list,
as expressions can only be eliminated once.
.PP
A STL or SDL is emitted after the first occurrence of the expression,
unless there was an existing local variable that could hold the result.
.NH 3
Desirability analysis
.PP
Although the global optimizer works on EM code,
the goal is to improve the quality of the object code.
Therefore some machine-dependent information is needed
to decide whether it is desirable to
eliminate a given expression.
Because it is impossible for the CS phase to know
exactly what code will be generated,
some heuristics are used.
CS essentially looks for some special cases
that should not be eliminated.
These special cases can be turned on or off for a given machine,
as indicated in a machine descriptor file.
.PP
Some operators can sometimes be translated
into an addressing mode for the machine at hand.
Such an operator is only eliminated
if its operand is itself expensive,
i.e. it is not just a simple load.
The machine descriptor file contains a set of such operators.
.PP
Eliminating the loading of the Local Base or
the Argument Base by the LXL resp. LXA instruction
is only beneficial if the difference in lexical levels
exceeds a certain threshold.
The machine descriptor file contains this threshold.
.PP
Replacing a SAR or a LAR by an AAR followed by a LOI
may possibly increase the size of the object code.
We assume that this is only possible when the
size of the array element is greater than some limit.
.PP
There are back ends that can very efficiently translate
the index computing instruction sequence LOC SLI ADS.
If this is the case,
the SLI instruction between a LOC
and an ADS is not eliminated.
.PP
To handle unforseen cases, the descriptor file may also contain
a set of operators that should never be eliminated.
.NH 3
The algorithm
.PP
After these preparatory explanations,
the algorithm itself is easy to understand.
For each instruction within the current window,
the following steps are performed in the given order :
.IP 1.
Check if this instruction defines an entity.
If so, the set of entities is updated accordingly.
.IP 2.
Kill all entities that might be affected by this instruction.
.IP 3.
Simulate the instruction on the fake-stack.
If this instruction is an operator,
update the list of available expressions accordingly.
.PP
The result of this process is
a list of available expressions plus the information
needed to eliminate them.
Expressions that are desirable to eliminate are eliminated.
Next, the window is shifted and the process is repeated.

311
doc/ego/cs/cs4 Normal file
View File

@ -0,0 +1,311 @@
.NH 2
Implementation.
.PP
In this section we will discuss the implementation of the CS phase.
We will first describe the basic actions that are undertaken
by the algorithm, than the algorithm itself.
.NH 3
Partioning the EM instructions
.PP
There are over 100 EM instructions.
For our purpose we partition this huge set into groups of
instructions which can be more or less conveniently handled together.
.PP
There are groups for all sorts of load instructions:
simple loads, expensive loads, loads of an array element.
A load is considered \fIexpensive\fP when more than one EM instructions
are involved in loading it.
The load of a lexical entity is also considered expensive.
For instance: LOF is expensive, LAL is not.
LAR forms a group on its own,
because it is not only an expensive load,
but also implicitly includes the ternary operator AAR,
which computes the address of the array element.
.PP
There are groups for all sorts of operators:
unary, binary, and ternary.
The groups of operators are further partitioned according to the size
of their operand(s) and result.
.\" .PP
.\" The distinction between operators and expensive loads is not always clear.
.\" The ADP instruction for example,
.\" might seem a unary operator because it pops one item
.\" (a pointer) from the stack.
.\" However, two ADP-instructions which pop an item with the same value number
.\" need not have the same result,
.\" because the attributes (an offset, to be added to the pointer)
.\" can be different.
.\" Is it then a binary operator?
.\" That would give rise to the strange, and undesirable,
.\" situation that some binary operators pop two operands
.\" and others pop one.
.\" The conclusion is inevitable:
.\" we have been fooled by the name (ADd Pointer).
.\" The ADP-instruction is an expensive load.
.\" In this context LAF, meaning Load Address of oFfsetted,
.\" would have been a better name,
.\" corresponding to LOF, like LAL,
.\" Load Address of Local, corresponds to LOL.
.PP
There are groups for all sorts of stores:
direct, indirect, array element.
The SAR forms a group on its own for the same reason
as appeared with LAR.
.PP
The effect of the remaining instructions is less clear.
They do not help very much in parsing expressions or
in constructing our pseudo symboltable.
They are partitioned according to the following criteria:
.RS
.IP "-"
They change the value of an entity without using the stack
(e.g. ZRL, DEE).
.IP "-"
They are subroutine calls (CAI, CAL).
.IP "-"
They change the stack in some irreproduceable way (e.g. ASP, LFR, DUP).
.IP "-"
They have no effect whatever on the stack or on the entities.
This does not mean they can be deleted,
but they can be ignored for the moment
(e.g. MES, LIN, NOP).
.IP "-"
Their effect is too complicate too compute,
so we just assume worst case behaviour.
Hopefully, they do not occur very often.
(e.g. MON, STR, BLM).
.IP "-"
They signal the end of the basic block (e.g. BLT, RET, TRP).
.RE
.NH 3
Parsing expressions
.PP
To recognize expressions,
we simulate the behaviour of the EM machine,
by means of a fake-stack.
When we scan the instructions in sequential order,
we first encounter the instructions that load
the operands on the stack,
and then the instruction that indicates the operator,
because EM expressions are postfix.
When we find an instruction to load an operand,
we load on the fake-stack a struct with the following information:
.DS
.TS
l l.
(1) the value number of the operand
(2) the size of the operand
(3) a pointer to the first line of EM-code
that constitutes the operand
.TE
.DE
In most cases, (3) will point to the line
that loaded the operand (e.g. LOL, LOC),
i.e. there is only one line that refers to this operand,
but sometimes some information must be popped
to load the operand (e.g. LOI, LAR).
This information must have been pushed before,
so we also pop a pointer to the first line that pushed
the information.
This line is now the first line that defines the operand.
.PP
When we find the operator instruction,
we pop its operand(s) from the fake-stack.
The first line that defines the first operand is
now the first line of the expression.
We now have all information to determine
whether the just parsed expression has occurred before.
We also know the first and last line of the expression;
we need this when we decide to eliminate it.
Associated with each available expression is a set of
which the elements contains the first and last line of
a recurrence of this expression.
.PP
Not only will the operand(s) be popped from the fake-stack,
but the following will be pushed:
.DS
.TS
l l.
(1) the value number of the result
(2) the size of the result
(3) a pointer to the first line of the expression
.TE
.DE
In this way an item on the fake-stack always contains
the necessary information.
EM expressions are parsed bottum up.
.NH 3
Updating entities
.PP
As said before,
we build our private "symboltable",
while scanning the EM-instructions.
The behaviour of the EM-machine is not only reflected
in the fake-stack,
but also in the entities.
When an entity is created,
we do not yet know its value,
so we assign a brand new value number to it.
Each time a store-instruction is encountered,
we change the value number of the target entity of this store
to the value number of the token that was popped
from the fake-stack.
Because entities may overlap,
we must also "forget" the value numbers of entities
that might be affected by this store.
Each such entity will be \fIkilled\fP,
i.e. assigned a brand new valuenumber.
.PP
Because we lose information when we forget
the value number of an entity,
we try to save as much entities as possible.
When we store into an external,
we don't have to kill locals and vice versa.
Furthermore, we can see whether two locals or
two externals overlap,
because we know the offset from the local base,
resp. the offset within the data block,
and the size.
The situation becomes more complicated when we have
to consider indirection.
The worst case is that we store through an unknown pointer.
In that case we kill all entities except those locals
for which a so-called \fIregister message\fP has been generated;
this register message indicates that this local can never be
accessed indirectly.
If we know this pointer we can be more careful.
If it points to a local then the entity that is accessed through
this pointer can never overlap with an external.
If it points to an external this entity can never overlap with a local.
Furthermore, in the latter case,
we can find the data block this entity belongs to.
Since pointer arithmetic is only defined within a data block,
this entity can never overlap with entities that are known to
belong to another data block.
.PP
Not only after a store-instruction but also after a
subroutine-call it may be necessary to kill entities;
the subroutine may affect global variables or store
through a pointer.
If a subroutine is called that is not available as EM-text,
we assume worst case behaviour,
i.e. we kill all entities without register message.
.NH 3
Additions and replacements.
.PP
When a new expression comes available,
we check whether the result is saved in a local
that may go in a register.
The last line of the expression must be followed
by a STL or SDL instruction,
depending on the size of the result
(resp. WS and 2*WS),
and a register message must be present for
this local.
If we have found such a local,
we store a pointer to it with the available expression.
Each time a new occurrence of this expression
is found,
we compare the value number of the local against
the value number of the result.
When they are different we remove the pointer to it,
because we cannot use it.
.PP
The available expressions are singly linked in a list.
When a new expression comes available,
we link it at the head of the list.
In this way expressions that are contained within other
expressions appear later in the list,
because EM-expressions are postfix.
When we are going to eliminate expressions,
we walk through the list,
starting at the head, to find the largest expressions first.
When we decide to eliminate an expression,
we look at the expressions in the tail of the list,
starting from where we are now,
to delete expressions that are contained within
the chosen one because
we cannot eliminate an expression more than once.
.PP
When we are going to eliminate expressions,
and we do not have a local that holds the result,
we emit a STL or SDL after the line where the expression
was first found.
The other occurrences are simply removed,
unless they contain instructions that not only have
effect on the stack; e.g. messages, stores, calls.
Before each instruction that needs the result on the stack,
we emit a LOL or LDL.
When the expression was an AAR,
but the instruction was a LAR or a SAR,
we append a LOI resp. a STI of the number of bytes
in an array-element after each LOL/LDL.
.NH 3
Desirability analysis
.PP
Although the global optimizer works on EM code,
the goal is to improve the quality of the object code.
Therefore we need some machine dependent information
to decide whether it is desirable to
eliminate a given expression.
Because it is impossible for the CS phase to know
exactly what code will be generated,
we use some heuristics.
In most cases it will save time when we eliminate an
operator, so we just do it.
We only look for some special cases.
.PP
Some operators can in some cases be translated
into an addressing mode for the machine at hand.
We only eliminate such an operator,
when its operand is itself "expensive",
i.e. not just a simple load.
The user of the CS phase has to supply
a set of such operators.
.PP
Eliminating the loading of the Local Base or
the Argument Base by the LXL resp. LXA instruction
is only beneficial when the number of lexical levels
we have to go back exceeds a certain threshold.
This threshold will be different when registers
are saved by the back end.
The user must supply this threshold.
.PP
Replacing a SAR or a LAR by an AAR followed by a LOI
may possibly increase the size of the object code.
We assume that this is only possible when the
size of the array element is greater than some
(user-supplied) limit.
.PP
There are back ends that can very efficiently translate
the index computing instruction sequence LOC SLI ADS.
If this is the case,
we do not eliminate the SLI instruction between a LOC
and an ADS.
.PP
To handle unforeseen cases, the user may also supply
a set of operators that should never be eliminated.
.NH 3
The algorithm
.PP
After these preparatory explanations,
we can be short about the algorithm itself.
For each instruction within our window,
the following steps are performed in the order given:
.IP 1.
We check if this instructin defines an entity.
If this is the case the set of entities is updated accordingly.
.IP 2.
We kill all entities that might be affected by this instruction.
.IP 3.
The instruction is simulated on the fake-stack.
Copy propagation is done.
If this instruction is an operator,
we update the list of available expressions accordingly.
.PP
When we have processed all instructions this way,
we have built a list of available expressions plus the information we
need to eliminate them.
Those expressions of which desirability analysis tells us so,
we eliminate.
The we shift our window and continue.

46
doc/ego/cs/cs5 Normal file
View File

@ -0,0 +1,46 @@
.NH 2
Source files of CS
.PP
The sources of CS are in the following files and packages:
.IP cs.h 14
declarations of global variables and data structures
.IP cs.c
the routine main;
a driving routine to process
the basic blocks in the right order
.IP vnm
implements a procedure that performs
the value numbering on one basic block
.IP eliminate
implements a procedure that does the
transformations, if desirable
.IP avail
implements a procedure that manipulates the list of available expressions
.IP entity
implements a procedure that manipulates the set of entities
.IP getentity
implements a procedure that extracts the
pseudo symboltable information from EM-instructions;
uses a small table
.IP kill
implements several routines that find the entities
that might be changed by EM-instructions
and kill them
.IP partition
implements several routines that partition the huge set
of EM-instructions into more or less manageable,
more or less logical chunks
.IP profit
implements a procedure that decides whether it
is advantageous to eliminate an expression;
also removes expressions with side-effects
.IP stack
implements the fake-stack and operations on it
.IP alloc
implements several allocation routines
.IP aux
implements several auxiliary routines
.IP debug
implements several routines to provide debugging
and verbose output
.LP

5
doc/ego/ic/.distr Normal file
View File

@ -0,0 +1,5 @@
ic1
ic2
ic3
ic4
ic5

57
doc/ego/ic/ic1 Normal file
View File

@ -0,0 +1,57 @@
.bp
.NH
The Intermediate Code and the IC phase
.PP
In this chapter the intermediate code of the EM global optimizer
will be defined.
The 'Intermediate Code construction' phase (IC),
which builds the initial intermediate code from
EM Compact Assembly Language,
will be described.
.NH 2
Introduction
.PP
The EM global optimizer is a multi pass program,
hence there is a need for an intermediate code.
Usually, programs in the Amsterdam Compiler Kit use the
Compact Assembly Language format
.[~[
keizer architecture
.], section 11.2]
for this purpose.
Although this code has some convenient features,
such as being compact,
it is quite unsuitable in our case,
because of a number of reasons.
At first, the code lacks global information
about whole procedures or whole basic blocks.
Second, it uses identifiers ('names') to bind
defining and applied occurrences of
procedures, data labels and instruction labels.
Although this is usual in high level programming
languages, it is awkward in an intermediate code
that must be read many times.
Each pass of the optimizer would have
to incorporate an identifier look-up mechanism
to associate a defining occurrence with each
applied occurrence of an identifier.
Finally, EM programs are used to declare blocks of bytes,
rather than variables. A 'hol 6' instruction may be used to
declare three 2-byte variables.
Clearly, the optimizer wants to deal with variables, and
not with rows of bytes.
.PP
To overcome these problems, we have developed a new
intermediate code.
This code does not merely consist of the EM instructions,
but also contains global information in the
form of tables and graphs.
Before describing the intermediate code we will
first leap aside to outline
the problems one generally encounters
when trying to store complex data structures such as
graphs outside the program, i.e. in a file.
We trust this will enhance the
comprehensibility of the
intermediate code definition and the design and implementation
of the IC phase.

150
doc/ego/ic/ic2 Normal file
View File

@ -0,0 +1,150 @@
.NH 2
Representation of complex data structures in a sequential file
.PP
Most programmers are quite used to deal with
complex data structures, such as
arrays, graphs and trees.
There are some particular problems that occur
when storing such a data structure
in a sequential file.
We call data that is kept in
main memory
.UL internal
,as opposed to
.UL external
data
that is kept in a file outside the program.
.sp
We assume a simple data structure of a
scalar type (integer, floating point number)
has some known external representation.
An
.UL array
having elements of a scalar type can be represented
externally easily, by successively
representing its elements.
The external representation may be preceded by a
number, giving the length of the array.
Now, consider a linear, singly linked list,
the elements of which look like:
.DS
record
data: scalar_type;
next: pointer_type;
end;
.DE
It is significant to note that the "next"
fields of the elements only have a meaning within
main memory.
The field contains the address of some location in
main memory.
If a list element is written to a file in
some program,
and read by another program,
the element will be allocated at a different
address in main memory.
Hence this address value is completely
useless outside the program.
.sp
One may represent the list by ignoring these "next" fields
and storing the data items in the order they are linked.
The "next" fields are represented \fIimplicitly\fR.
When the file is read again,
the same list can be reconstructed.
In order to know where the external representation of the
list ends,
it may be useful to put the length of
the list in front of it.
.sp
Note that arrays and linear lists have the
same external representation.
.PP
A doubly linked, linear list,
with elements of the type:
.DS
record
data: scalar_type;
next,
previous: pointer_type;
end
.DE
can be represented in precisely the same way.
Both the "next" and the "previous" fields are represented
implicitly.
.PP
Next, consider a binary tree,
the nodes of which have type:
.DS
record
data: scalar_type;
left,
right: pointer_type;
end
.DE
Such a tree can be represented sequentially,
by storing its nodes in some fixed order, e.g. prefix order.
A special null data item may be used to
denote a missing left or right son.
For example, let the scalar type be integer,
and let the null item be 0.
Then the tree of fig. 3.1(a)
can be represented as in fig. 3.1(b).
.DS
.ft 5
4
/ \e
9 12
/ \e / \e
12 3 4 6
/ \e \e /
8 1 5 1
.ft R
Fig. 3.1(a) A binary tree
.ft 5
4 9 12 0 0 3 8 0 0 1 0 0 12 4 0 5 0 0 6 1 0 0 0
.ft R
Fig. 3.1(b) Its sequential representation
.DE
We are still able to represent the pointer fields ("left"
and "right") implicitly.
.PP
Finally, consider a general
.UL graph
, where each node has a "data" field and
pointer fields,
with no restriction on where they may point to.
Now we're at the end of our tale.
There is no way to represent the pointers implicitly,
like we did with lists and trees.
In order to represent them explicitly,
we use the following scheme.
Every node gets an extra field,
containing some unique number that identifies the node.
We call this number its
.UL id.
A pointer is represented externally as the id of the node
it points to.
When reading the file we use a table that maps
an id to the address of its node.
In general this table will not be completely filled in
until we have read the entire external representation of
the graph and allocated internal memory locations for
every node.
Hence we cannot reconstruct the graph in one scan.
That is, there may be some pointers from node A to B,
where B is placed after A in the sequential file than A.
When we read the node of A we cannot map the id of B
to the address of node B,
as we have not yet allocated node B.
We can overcome this problem if the size
of every node is known in advance.
In this case we can allocate memory for a node
on first reference.
Else, the mapping from id to pointer
cannot be done while reading nodes.
The mapping can be done either in an extra scan
or at every reference to the node.

431
doc/ego/ic/ic3 Normal file
View File

@ -0,0 +1,431 @@
.NH 2
Definition of the intermediate code
.PP
The intermediate code of the optimizer consists
of several components:
.IP -
the object table
.IP -
the procedure table
.IP -
the em code
.IP -
the control flow graphs
.IP -
the loop table
.LP -
.PP
These components are described in
the next sections.
The syntactic structure of every component
is described by a set of context free syntax rules,
with the following conventions:
.DS
.TS
l l.
x a non-terminal symbol
A a terminal symbol (in capitals)
x: a b c; a grammar rule
a | b a or b
(a)+ 1 or more occurrences of a
{a} 0 or more occurrences of a
.TE
.DE
.NH 3
The object table
.PP
EM programs declare blocks of bytes rather than (global) variables.
A typical program may declare 'HOL 7780'
to allocate space for 8 I/O buffers,
2 large arrays and 10 scalar variables.
The optimizer wants to deal with
.UL objects
like variables, buffers and arrays
and certainly not with huge numbers of bytes.
Therefore the intermediate code contains information
about which global objects are used.
This information can be obtained from an EM program
by just looking at the operands of instruction
such as LOE, LAE, LDE, STE, SDE, INE, DEE and ZRE.
.PP
The object table consists of a list of
.UL datablock
entries.
Each such entry represents a declaration like HOL, BSS,
CON or ROM.
There are five kinds of datablock entries.
The fifth kind,
UNKNOWN, denotes a declaration in a
separately compiled file that is not made
available to the optimizer.
Each datablock entry contains the type of the block,
its size, and a description of the objects that
belong to it.
If it is a rom,
it also contains a list of values given
as arguments to the rom instruction,
provided that this list contains only integer numbers.
An object has an offset (within its datablock)
and a size.
The size need not always be determinable.
Both datablock and object contain a unique
identifying number
(see previous section for their use).
.DS
.UL syntax
.TS
lw(1i) l l.
object_table:
{datablock} ;
datablock:
D_ID -- unique identifying number
PSEUDO -- one of ROM,CON,BSS,HOL,UNKNOWN
SIZE -- # bytes declared
FLAGS
{value} -- contents of rom
{object} ; -- objects of the datablock
object:
O_ID -- unique identifying number
OFFSET -- offset within the datablock
SIZE ; -- size of the object in bytes
value:
argument ;
.TE
.DE
A data block has only one flag: "external", indicating
whether the data label is externally visible.
The syntax for "argument" will be given later on
(see em_text).
.NH 3
The procedure table
.PP
The procedure table contains global information
about all procedures that are made available
to the optimizer
and that are needed by the EM program.
(Library units may not be needed, see section 3.5).
The table has one entry for
every procedure.
.DS
.UL syntax
.TS
lw(1i) l l.
procedure_table:
{procedure}
procedure:
P_ID -- unique identifying number
#LABELS -- number of instruction labels
#LOCALS -- number of bytes for locals
#FORMALS -- number of bytes for formals
FLAGS -- flag bits
calling -- procedures called by this one
change -- info about global variables changed
use ; -- info about global variables used
calling:
{P_ID} ; -- procedures called
change:
ext -- external variables changed
FLAGS ;
use:
FLAGS ;
ext:
{O_ID} ; -- a set of objects
.TE
.DE
.PP
The number of bytes of formal parameters accessed by
a procedure is determined by the front ends and
passed via a message (parameter message) to the optimizer.
If the front end is not able to determine this number
(e.g. the parameter may be an array of dynamic size or
the procedure may have a variable number of arguments) the attribute
contains the value 'UNKNOWN_SIZE'.
.sp 0
A procedure has the following flags:
.IP -
external: true if the proc. is externally visible
.IP -
bodyseen: true if its code is available as EM text
.IP -
calunknown: true if it calls a procedure that has its bodyseen
flag not set
.IP -
environ: true if it uses or changes a (non-global) variable in
a lexically enclosing procedure
.IP -
lpi: true if is used as operand of an lpi instruction, so
it may be called indirect
.LP
The change and use attributes both have one flag: "indirect",
indicating whether the procedure does a 'use indirect'
or a 'store indirect' (indirect means through a pointer).
.NH 3
The EM text
.PP
The EM text contains the EM instructions.
Every EM instruction has an operation code (opcode)
and 0 or 1 operands.
EM pseudo instructions can have more than
1 operand.
The opcode is just a small (8 bit) integer.
.sp
There are several kinds of operands, which we will
refer to as
.UL types.
Many EM instructions can have more than one type of operand.
The types and their encodings in Compact Assembly Language
are discussed extensively in.
.[~[
keizer architecture
.], section 11.2]
Of special interest is the way numeric values
are represented.
Of prime importance is the machine independency of
the representation.
Ultimately, one could store every integer
just as a string of the characters '0' to '9'.
As doing arithmetic on strings is awkward,
Compact Assembly Language allows several alternatives.
The main idea is to look at the value of the integer.
Integers that fit in 16, 32 or 64 bits are
represented as a row of resp. 2, 4 and 8 bytes,
preceded by an indication of how many bytes are used.
Longer integers are represented as strings;
this is only allowed within pseudo instructions, however.
This concept works very well for target machines
with reasonable word sizes.
At present, most ACK software cannot be used for word sizes
higher than 32 bits,
although the handles for using larger word sizes are
present in the design of the EM code.
In the intermediate code we essentially use the
same ideas.
We allow three representations of integers.
.IP -
integers that fit in a short are represented as a short
.IP -
integers that fit in a long but not in a short are represented
as longs
.IP -
all remaining integers are represented as strings
(only allowed in pseudos).
.LP
The terms short and long are defined in
.[~[
ritchie reference manual programming language
.], section 4]
and depend only on the source machine
(i.e. the machine on which ACK runs),
not on the target machines.
For historical reasons a long will often be called an
.UL offset.
.PP
Operands can also be instruction labels,
objects or procedures.
Instruction labels are denoted by a
.UL label
.UL identifier,
which can be distinguished from a normal identifier.
.sp
The operand of a pseudo instruction can be a list of
.UL arguments.
Arguments can have the same type as operands, except
for the type short, which is not used for arguments.
Furthermore, an argument can be a string or
a string representation of a signed integer, unsigned integer
or floating point number.
If the number of arguments is not fully determined by
the pseudo instruction (e.g. a ROM pseudo can have any number
of arguments), then the list is terminated by a special
argument of type CEND.
.DS
.UL syntax
.TS
lw(1i) l l.
em_text:
{line} ;
line:
INSTR -- opcode
OPTYPE -- operand type
operand ;
operand:
empty | -- OPTYPE = NO
SHORT | -- OPTYPE = SHORT
OFFSET | -- OPTYPE = OFFSET
LAB_ID | -- OPTYPE = INSTRLAB
O_ID | -- OPTYPE = OBJECT
P_ID | -- OPTYPE = PROCEDURE
{argument} ; -- OPTYPE = LIST
argument:
ARGTYPE
arg ;
arg:
empty | -- ARGTYPE = CEND
OFFSET |
LAB_ID |
O_ID |
P_ID |
string | -- ARGTYPE = STRING
const ; -- ARGTYPE = ICON,UCON or FCON
string:
LENGTH -- number of characters
{CHARACTER} ;
const:
SIZE -- number of bytes
string ; -- string representation of (un)signed
-- or floating point constant
.TE
.DE
.NH 3
The control flow graphs
.PP
Each procedure can be divided
into a number of basic blocks.
A basic block is a piece of code with
no jumps in, except at the beginning,
and no jumps out, except at the end.
.PP
Every basic block has a set of
.UL successors,
which are basic blocks that can follow it immediately in
the dynamic execution sequence.
The
.UL predecessors
are the basic blocks of which this one
is a successor.
The successor and predecessor attributes
of all basic blocks of a single procedure
are said to form the
.UL control
.UL flow
.UL graph
of that procedure.
.PP
Another important attribute is the
.UL immediate
.UL dominator.
A basic block B dominates a block C if
every path in the graph from the procedure entry block
to C goes through B.
The immediate dominator of C is the closest dominator
of C on any path from the entry block.
(Note that the dominator relation is transitive,
so the immediate dominator is well defined.)
.PP
A basic block also has an attribute containing
the identifiers of every
.UL loop
that the block belongs to (see next section for loops).
.DS
.UL syntax
.TS
lw(1i) l l.
control_flow_graph:
{basic_block} ;
basic_block:
B_ID -- unique identifying number
#INSTR -- number of EM instructions
succ
pred
idom -- immediate dominator
loops -- set of loops
FLAGS ; -- flag bits
succ:
{B_ID} ;
pred:
{B_ID} ;
idom:
B_ID ;
loops:
{LP_ID} ;
.TE
.DE
The flag bits can have the values 'firm' and 'strong',
which are explained below.
.NH 3
The loop tables
.PP
Every procedure has an associated
.UL loop
.UL table
containing information about all the loops
in the procedure.
Loops can be detected by a close inspection of
the control flow graph.
The main idea is to look for two basic blocks,
B and C, for which the following holds:
.IP -
B is a successor of C
.IP -
B is a dominator of C
.LP
B is called the loop
.UL entry
and C is called the loop
.UL end.
Intuitively, C contains a jump backwards to
the beginning of the loop (B).
.PP
A loop L1 is said to be
.UL nested
within loop L2 if all basic blocks of L1
are also part of L2.
It is important to note that loops could
originally be written as a well structured for -or
while loop or as a messy goto loop.
Hence loops may partly overlap without one
being nested inside the other.
The
.UL nesting
.UL level
of a loop is the number of loops in
which it is nested (so it is 0 for
an outermost loop).
The details of loop detection will be discussed later.
.PP
It is often desirable to know whether a
basic block gets executed during every iteration
of a loop.
This leads to the following definitions:
.IP -
A basic block B of a loop L is said to be a \fIfirm\fR block
of L if B is executed on all successive iterations of L,
with the only possible exception of the last iteration.
.IP -
A basic block B of a loop L is said to be a \fIstrong\fR block
of L if B is executed on all successive iterations of L.
.LP
Note that a strong block is also a firm block.
If a block is part of a conditional statement, it is neither
strong nor firm, as it may be skipped during some iterations
(see Fig. 3.2).
.DS
loop
if cond1 then
... \kx-- this code will not
\h'|\nxu'-- result in a firm or strong block
end if;
... -- strong (always executed)
exit when cond2;
... \kx-- firm (not executed on last iteration).
end loop;
Fig. 3.2 Example of firm and strong block
.DE
.DS
.UL syntax
.TS
lw(1i) l l.
looptable:
{loop} ;
loop:
LP_ID -- unique identifying number
LEVEL -- loop nesting level
entry -- loop entry block
end ;
entry:
B_ID ;
end:
B_ID ;
.TE
.DE

83
doc/ego/ic/ic4 Normal file
View File

@ -0,0 +1,83 @@
.NH 2
External representation of the intermediate code
.PP
The syntax of the intermediate code was given
in the previous section.
In this section we will make some remarks about
the representation of the code in sequential files.
.sp
We use sequential files in order to avoid
the bookkeeping of complex file indices.
As a consequence of this decision
we can't store all components
of the intermediate code
in one file.
If a phase wishes to change some attribute
of a procedure,
or wants to add or delete entire procedures
(inline substitution may do the latter),
the procedure table will only be fully updated
after the entire EM text has been scanned.
Yet, the next phase undoubtedly wants
to read the procedure table before it
starts working on the EM text.
Hence there is an ordering problem, which
can be solved easily by putting the
procedure table in a separate file.
Similarly, the data block table is kept
in a file of its own.
.PP
The control flow graphs (CFGs) could be mixed
with the EM text.
Rather, we have chosen to put them
in a separate file too.
The control flow graph file should be regarded as a
file that imposes some structure on the EM-text file,
just as an overhead sheet containing a picture
of a Flow Chart may be put on an overhead sheet
containing statements.
The loop tables are also put in the CFG file.
A loop imposes an extra structure on the
CFGs and hence on the EM text.
So there are four files:
.IP -
the EM-text file
.IP -
the procedure table file
.IP -
the object table file
.IP -
the CFG and loop tables file
.LP
Every table is preceded by its length, in order to
tell where it ends.
The CFG file also contains the number of instructions of
every basic block,
indicating which part of the EM text belongs
to that block.
.DS
.UL syntax
.TS
lw(1i) l l.
intermediate_code:
object_table_file
proctable_file
em_text_file
cfg_file ;
object_table_file:
LENGTH -- number of objects
object_table ;
proctable_file:
LENGTH -- number of procedures
procedure_table ;
em_text_file:
em_text ;
cfg_file:
{per_proc} ; -- one for every procedure
per_proc:
BLENGTH -- number of basic blocks
LLENGTH -- number of loops
control_flow_graph
looptable ;
.TE
.DE

166
doc/ego/ic/ic5 Normal file
View File

@ -0,0 +1,166 @@
.NH 2
The Intermediate Code construction phase
.PP
The first phase of the global optimizer,
called
.UL IC,
constructs a major part of the intermediate code.
To be specific, it produces:
.IP -
the EM text
.IP -
the object table
.IP -
part of the procedure table
.LP
The calling, change and use attributes of a procedure
and all its flags except the external and bodyseen flags
are computed by the next phase (Control Flow phase).
.PP
As explained before,
the intermediate code does not contain
any names of variables or procedures.
The normal identifiers are replaced by identifying
numbers.
Yet, the output of the global optimizer must
contain normal identifiers, as this
output is in Compact Assembly Language format.
We certainly want all externally visible names
to be the same in the input as in the output,
because the optimized EM module may be a library unit,
used by other modules.
IC dumps the names of all procedures and data labels
on two files:
.IP -
the procedure dump file, containing tuples (P_ID, procedure name)
.IP -
the data dump file, containing tuples (D_ID, data label name)
.LP
The names of instruction labels are not dumped,
as they are not visible outside the procedure
in which they are defined.
.PP
The input to IC consists of one or more files.
Each file is either an EM module in Compact Assembly Language
format, or a Unix archive file (library) containing such modules.
IC only extracts those modules from a library that are
needed somehow, just as a linker does.
It is advisable to present as much code
of the EM program as possible to the optimizer,
although it is not required to present the whole program.
If a procedure is called somewhere in the EM text,
but its body (text) is not included in the input,
its bodyseen flag in the procedure table will still
be off.
Whenever such a procedure is called,
we assume the worst case for everything;
it will change and use all variables it has access to,
it will call every procedure etc.
.sp
Similarly, if a data label is used
but not defined, the PSEUDO attribute in its data block
will be set to UNKNOWN.
.NH 3
Implementation
.PP
Part of the code for the EM Peephole Optimizer
.[
staveren peephole toplass
.]
has been used for IC.
Especially the routines that read and unravel
Compact Assembly Language and the identifier
lookup mechanism have been used.
New code was added to recognize objects,
build the object and procedure tables and to
output the intermediate code.
.PP
IC uses singly linked linear lists for both the
procedure and object table.
Hence there are no limits on the size of such
a table (except for the trivial fact that it must fit
in main memory).
Both tables are outputted after all EM code has
been processed.
IC reads the EM text of one entire procedure
at a time,
processes it and appends the modified code to
the EM text file.
EM code is represented internally as a doubly linked linear
list of EM instructions.
.PP
Objects are recognized by looking at the operands
of instructions that reference global data.
If we come across the instructions:
.DS
.TS
l l.
LDE X+6 -- Load Double External
LAE X+20 -- Load Address External
.TE
.DE
we conclude that the data block
preceded by the data label X contains an object
at offset 6 of size twice the word size,
and an object at offset 20 of unknown size.
.sp
A data block entry of the object table is allocated
at the first reference to a data label.
If this reference is a defining occurrence
or a INA pseudo instruction,
the label is not externally visible
.[~[
keizer architecture
.], section 11.1.4.3]
In this case, the external flag of the data block
is turned off.
If the first reference is an applied occurrence
or a EXA pseudo instruction, the flag is set.
We record this information, because the
optimizer may change the order of defining and
applied occurrences.
The INA and EXA pseudos are removed from the EM text.
They may be regenerated by the last phase
of the optimizer.
.sp
Similar rules hold for the procedure table
and the INP and EXP pseudos.
.NH 3
Source files of IC
.PP
The source files of IC consist
of the files ic.c, ic.h and several packages.
.UL ic.h
contains type definitions, macros and
variable declarations that may be used by
ic.c and by every package.
.UL ic.c
contains the definitions of these variables,
the procedure
.UL main
and some high level I/O routines used by main.
.sp
Every package xxx consists of two files.
ic_xxx.h contains type definitions,
macros, variable declarations and
procedure declarations that may be used by
every .c file that includes this .h file.
The file ic_xxx.c provides the
definitions of these variables and
the implementation of the declared procedures.
IC uses the following packages:
.IP lookup: 18
procedures that loop up procedure, data label
and instruction label names; procedures to dump
the procedure and data label names.
.IP lib:
one procedure that gets the next useful input module;
while scanning archives, it skips unnecessary modules.
.IP aux:
several auxiliary routines.
.IP io:
low-level I/O routines that unravel the Compact
Assembly Language.
.IP put:
routines that output the intermediate code
.LP

6
doc/ego/il/.distr Normal file
View File

@ -0,0 +1,6 @@
il1
il2
il3
il4
il5
il6

112
doc/ego/il/il1 Normal file
View File

@ -0,0 +1,112 @@
.bp
.NH 1
Inline substitution
.NH 2
Introduction
.PP
The Inline Substitution technique (IL)
tries to decrease the overhead associated
with procedure calls (invocations).
During a procedure call, several actions
must be undertaken to set up the right
environment for the called procedure.
.[
johnson calling sequence
.]
On return from the procedure, most of these
effects must be undone.
This entire process introduces significant
costs in execution time as well as
in object code size.
.PP
The inline substitution technique replaces
some of the calls by the modified body of
the called procedure, hence eliminating
the overhead.
Furthermore, as the calling and called procedure
are now integrated, they can be optimized
together, using other techniques of the optimizer.
This often leads to extra opportunities for
optimization
.[
ball predicting effects
.]
.[
carter code generation cacm
.]
.[
scheifler inline cacm
.]
.PP
An inline substitution of a call to a procedure P increases
the size of the program, unless P is very small or P is
called only once.
In the latter case, P can be eliminated.
In practice, procedures that are called only once occur
quite frequently, due to the
introduction of structured programming.
(Carter
.[
carter umi ann arbor
.]
states that almost 50% of the Pascal procedures
he analyzed were called just once).
.PP
Scheifler
.[
scheifler inline cacm
.]
has a more general view of inline substitution.
In his model, the program under consideration is
allowed to grow by a certain amount,
i.e. code size is sacrificed to speed up the program.
The above two cases are just special cases of
his model, obtained by setting the size-change to
(approximately) zero.
He formulates the substitution problem as follows:
.IP
"Given a program, a subset of all invocations,
a maximum program size, and a maximum procedure size,
find a sequence of substitutions that minimizes
the expected execution time."
.LP
Scheifler shows that this problem is NP-complete
.[~[
aho hopcroft ullman analysis algorithms
.], chapter 10]
by reduction to the Knapsack Problem.
Heuristics will have to be used to find a near-optimal
solution.
.PP
In the following chapters we will extend
Scheifler's view and adapt it to the EM Global Optimizer.
We will first describe the transformations that have
to be applied to the EM text when a call is substituted
in line.
Next we will examine in which cases inline substitution
is not possible or desirable.
Heuristics will be developed for
chosing a good sequence of substitutions.
These heuristics make no demand on the user
(such as making profiles
.[
scheifler inline cacm
.]
or giving pragmats
.[~[
ichbiah ada military standard
.], section 6.3.2]),
although the model could easily be extended
to use such information.
Finally, we will discuss the implementation
of the IL phase of the optimizer.
.PP
We will often use the term inline expansion
as a synonym of inline substitution.
.sp 0
The inverse technique of procedure abstraction
(automatic subroutine generation)
.[
shaffer subroutine generation
.]
will not be discussed in this report.

93
doc/ego/il/il2 Normal file
View File

@ -0,0 +1,93 @@
.NH 2
Parameters and local variables.
.PP
In the EM calling sequence, the calling procedure
pushes its parameters on the stack
before doing the CAL.
The called routine first saves some
status information on the stack and then
allocates space for its own locals
(also on the stack).
Usually, one special purpose register,
the Local Base (LB) register,
is used to access both the locals and the
parameters.
If memory is highly segmented,
the stack frames of the caller and the callee
may be allocated in different fragments;
an extra Argument Base (AB) register is used
in this case to access the actual parameters.
See 4.2 of
.[
keizer architecture
.]
for further details.
.PP
If a procedure call is expanded in line,
there are two problems:
.IP 1. 3
No stack frame will be allocated for the called procedure;
we must find another place to put its locals.
.IP 2.
The LB register cannot be used to access the actual
parameters;
as the CAL instruction is deleted, the LB will
still point to the local base of the \fIcalling\fR procedure.
.LP
The local variables of the called procedure will
be put in the stack frame of the calling procedure,
just after its own locals.
The size of the stack frame of the
calling procedure will be increased
during its entire lifetime.
Therefore our model will allow a
limit to be set on the number of bytes
for locals that the called procedure may have
(see next section).
.PP
There are several alternatives to access the parameters.
An actual parameter may be any auxiliary expression,
which we will refer to as
the \fIactual parameter expression\fR.
The value of this expression is stored
in a location on the stack (see above),
the \fIparameter location\fR.
.sp 0
The alternatives for accessing parameters are:
.IP -
save the value of the stackpointer at the point of the CAL
in a temporary variable X;
this variable can be used to simulate the AB register, i.e.
parameter locations are accessed via an offset to
the value of X.
.IP -
create a new temporary local variable T for
the parameter (in the stack frame of the caller);
every access to the parameter location must be changed
into an access to T.
.IP -
do not evaluate the actual parameter expression before the call;
instead, substitute this expression for every use of the
parameter location.
.LP
The first method may be expensive if X is not
put in a register.
We will not use this method.
The time required to evaluate and access the
parameters when the second method is used
will not differ much from the normal
calling sequence (i.e. not in line call).
It is not expensive, but there are no
extra savings either.
The third method is essentially the 'by name'
parameter mechanism of Algol60.
If the actual parameter is just a numeric constant,
it is advantageous to use it.
Yet, there are several circumstances
under which it cannot or should not be used.
We will deal with this in the next section.
.sp 0
In general we will use the third method,
if it is possible and desirable.
Such parameters will be called \fIin line parameters\fR.
In all other cases we will use the second method.

164
doc/ego/il/il3 Normal file
View File

@ -0,0 +1,164 @@
.NH 2
Feasibility and desirability analysis
.PP
Feasibility and desirability analysis
of in line substitution differ
somewhat from most other techniques.
Usually, much effort is needed to find
a feasible opportunity for optimization
(e.g. a redundant subexpression).
Desirability analysis then checks
if it is really advantageous to do
the optimization.
For IL, opportunities are easy to find.
To see if an in line expansion is
desirable will not be hard either.
Yet, the main problem is to find the most
desirable ones.
We will deal with this problem later and
we will first attend feasibility and
desirability analysis.
.PP
There are several reasons why a procedure invocation
cannot or should not be expanded in line.
.sp
A call to a procedure P cannot be expanded in line
in any of the following cases:
.IP 1. 3
The body of P is not available as EM text.
Clearly, there is no way to do the substitution.
.IP 2.
P, or any procedure called by P (transitively),
follows the chain of statically enclosing
procedures (via a LXL or LXA instruction)
or follows the chain of dynamically enclosing
procedures (via a DCH).
If the call were expanded in line,
one level would be removed from the chains,
leading to total chaos.
This chaos could be solved by patching up
every LXL, LXA or DCH in all procedures
that could be part of the chains,
but this is hard to implement.
.IP 3.
P, or any procedure called by P (transitively),
calls a procedure whose body is not
available as EM text.
The unknown procedure may use an LXL, LXA or DCH.
However, in several languages a separately
compiled procedure has no access to the
static or dynamic chain.
In this case
this point does not apply.
.IP 4.
P, or any procedure called by P (transitively),
uses the LPB instruction, which converts a
local base to an argument base;
as the locals and parameters are stored
in a non-standard way (differing from the
normal EM calling sequence) this instruction
would yield incorrect results.
.IP 5.
The total number of bytes of the parameters
of P is not known.
P may be a procedure with a variable number
of parameters or may have an array of dynamic size
as value parameter.
.LP
It is undesirable to expand a call to a procedure P in line
in any of the following cases:
.IP 1. 3
P is large, i.e. the number of EM instructions
of P exceeds some threshold.
The expanded code would be large too.
Furthermore, several programs in ACK,
including the global optimizer itself,
may run out of memory if they they have to run
in a small address space and are provided
very large procedures.
The threshold may be set to infinite,
in which case this point does not apply.
.IP 2.
P has many local variables.
All these variables would have to be allocated
in the stack frame of the calling procedure.
.PP
If a call may be expanded in line, we have to
decide how to access its parameters.
In the previous section we stated that we would
use in line parameters whenever possible and desirable.
There are several reasons why a parameter
cannot or should not be expanded in line.
.sp
No parameter of a procedure P can be expanded in line,
in any of the following cases:
.IP 1. 3
P, or any procedure called by P (transitively),
does a store-indirect or a use-indirect (i.e. through
a pointer).
However, if the front-end has generated messages
telling that certain parameters can not be accessed
indirectly, those parameters may be expanded in line.
.IP 2.
P, or any procedure called by P (transitively),
calls a procedure whose body is not available as EM text.
The unknown procedure may do a store-indirect
or a use-indirect.
However, the same remark about front-end messages
as for 1. holds here.
.IP 3.
The address of a parameter location is taken (via a LAL).
In the normal calling sequence, all parameters
are stored sequentially. If the address of one
parameter location is taken, the address of any
other parameter location can be computed from it.
Hence we must put every parameter in a temporary location;
furthermore, all these locations must be in
the same order as for the normal calling sequence.
.IP 4.
P has overlapping parameters; for example, it uses
the parameter at offset 10 both as a 2 byte and as a 4 byte
parameter.
Such code may be produced by the front ends if
the formal parameter is of some record type
with variants.
.PP
Sometimes a specific parameter must not be expanded in line.
.sp 0
An actual parameter expression cannot be expanded in line
in any of the following cases:
.IP 1. 3
P stores into the parameter location.
Even if the actual parameter expression is a simple
variable, it is incorrect to change the 'store into
formal' into a 'store into actual', because of
the parameter mechanism used.
In Pascal, the following expansion is incorrect:
.DS
procedure p (x:integer);
begin
x := 20;
end;
\&...
a := 10; \kxa := 10;
p(a); ---> \h'|\nxu'a := 20;
write(a); \h'|\nxu'write(a);
.DE
.IP 2.
P changes any of the operands of the
actual parameter expression.
If the expression is expanded and evaluated
after the operand has been changed,
the wrong value will be used.
.IP 3.
The actual parameter expression has side effects.
It must be evaluated only once,
at the place of the call.
.LP
It is undesirable to expand an actual parameter in line
in the following case:
.IP 1. 3
The parameter is used more than once
(dynamically) and the actual parameter expression
is not just a simple variable or constant.
.LP

135
doc/ego/il/il4 Normal file
View File

@ -0,0 +1,135 @@
.NH 2
Heuristic rules
.PP
Using the information described
in the previous section,
we can find all calls that can
be expanded in line, and for which
this expansion is desirable.
In general, we cannot expand all these calls,
so we have to choose the 'best' ones.
With every CAL instruction
that may be expanded, we associate
a \fIpay off\fR,
which expresses how desirable it is
to expand this specific CAL.
.sp
Let Tc denote the portion of EM text involved
in a specific call, i.e. the pushing of the actual
parameter expressions, the CAL itself,
the popping of the parameters and the
pushing of the result (if any, via an LFR).
Let Te denote the EM text that would be obtained
by expanding the call in line.
Let Pc be the original program and Pe the program
with Te substituted for Tc.
The pay off of the CAL depends on two factors:
.IP -
T = execution_time(Pe) - execution_time(Pc)
.IP -
S = code_size(Pe) - code_size(Pc)
.LP
The change in execution time (T) depends on:
.IP -
T1 = execution_time(Te) - execution_time(Tc)
.IP -
N = number of times Te or Tc get executed.
.LP
We assume that T1 will be the same every
time the code gets executed.
This is a reasonable assumption.
(Note that we are talking about one CAL,
not about different calls to the same procedure).
Hence
.DS
T = N * T1
.DE
T1 can be estimated by a careful analysis
of the transformations that are performed.
Below, we list everything that will be
different when a call is expanded in line:
.IP -
The CAL instruction is not executed.
This saves a subroutine jump.
.IP -
The instructions in the procedure prolog
are not executed.
These instructions, generated from the PRO pseudo,
save some machine registers
(including the old LB), set the new LB and allocate space
for the locals of the called routine.
The savings may be less if there are no
locals to allocate.
.IP -
In line parameters are not evaluated before the call
and are not pushed on the stack.
.IP -
All remaining parameters are stored in local variables,
instead of being pushed on the stack.
.IP -
If the number of parameters is nonzero,
the ASP instruction after the CAL is not executed.
.IP -
Every reference to an in line parameter is
substituted by the parameter expression.
.IP -
RET (return) instructions are replaced by
BRA (branch) instructions.
If the called procedure 'falls through'
(i.e. it has only one RET, at the end of its code),
even the BRA is not needed.
.IP -
The LFR (fetch function result) is not executed
.PP
Besides these changes, which are caused directly by IL,
other changes may occur as IL influences other optimization
techniques, such as Register Allocation and Constant Propagation.
Our heuristic rules do not take into account the quite
inpredictable effects on Register Allocation.
It does, however, favour calls that have numeric \fIconstants\fR
as parameter; especially the constant "0" as an inline
parameter gets high scores,
as further optimizations may often be possible.
.PP
It cannot be determined statically how often a CAL instruction gets
executed.
We will use \fIloop nesting\fR information here.
The nesting level of the loop in which
the CAL appears (if any) will be used as an
indication for the number of times it gets executed.
.PP
Based on all these facts,
the pay off of a call will be computed.
The following model was developed empirically.
Assume procedure P calls procedure Q.
The call takes place in basic block B.
.DS
.TS
l l l.
ZP \&= # zero parameters
CP \&= # constant parameters - ZP
LN \&= Loop Nesting level (0 if outside any loop)
F \&= \fIif\fR # formal parameters of Q > 0 \fIthen\fR 1 \fIelse\fR 0
FT \&= \fIif\fR Q falls through \fIthen\fR 1 \fIelse\fR 0
S \&= size(Q) - 1 - # inline_parameters - F
L \&= \fIif\fR # local variables of P > 0 \fIthen\fR 0 \fIelse\fR -1
A \&= CP + 2 * ZP
N \&= \fIif\fR LN=0 and P is never called from a loop \fIthen\fR 0 \fIelse\fR (LN+1)**2
FM \&= \fIif\fR B is a firm block \fIthen\fR 2 \fIelse\fR 1
pay_off \&= (100/S + FT + F + L + A) * N * FM
.TE
.DE
S stands for the size increase of the program,
which is slightly less than the size of Q.
The size of a procedure is taken to be its number
of (non-pseudo) EM instructions.
The terms "loop nesting level" and "firm" were defined
in the chapter on the Intermediate Code (section "loop tables").
If a call is not inside a loop and the calling procedure
is itself never called from a loop (transitively),
then the call will probably be executed at most once.
Such a call is never expanded in line (its pay off is zero).
If the calling procedure doesn't have local variables, a penalty (L)
is introduced, as it will most likely get local variables if the
call gets expanded.

446
doc/ego/il/il5 Normal file
View File

@ -0,0 +1,446 @@
.NH 2
Implementation
.PP
A major factor in the implementation
of Inline Substitution is the requirement
not to use an excessive amount of memory.
IL essentially analyzes the entire program;
it makes decisions based on which procedure calls
appear in the whole program.
Yet, because of the memory restriction, it is
not feasible to read the entire program
in main memory.
To solve this problem, the IL phase has been
split up into three subphases that are executed sequentially:
.IP 1.
analyze every procedure; see how it accesses its parameters;
simultaneously collect all calls
appearing in the whole program an put them
in a \fIcall-list\fR.
.IP 2.
use the call-list and decide which calls will be substituted
in line.
.IP 3.
take the decisions of subphase 2 and modify the
program accordingly.
.LP
Subphases 1 and 3 scan the input program; only
subphase 3 modifies it.
It is essential that the decisions can be made
in subphase 2
without using the input program,
provided that subphase 1 puts enough information
in the call-list.
Subphase 2 keeps the entire call-list in main memory
and repeatedly scans it, to
find the next best candidate for expansion.
.PP
We will specify the
data structures used by IL before
describing the subphases.
.NH 3
Data structures
.NH 4
The procedure table
.PP
In subphase 1 information is gathered about every procedure
and added to the procedure table.
This information is used by the heuristic rules.
A proctable entry for procedure p has
the following extra information:
.IP -
is it allowed to substitute an invocation of p in line?
.IP -
is it allowed to put any parameter of such a call in line?
.IP -
the size of p (number of EM instructions)
.IP -
does p 'fall through'?
.IP -
a description of the formal parameters that p accesses; this information
is obtained by looking at the code of p. For every parameter f,
we record:
.RS
.IP -
the offset of f
.IP -
the type of f (word, double word, pointer)
.IP -
may the corresponding actual parameter be put in line?
.IP -
is f ever accessed indirectly?
.IP -
if f used: never, once or more than once?
.RE
.IP -
the number of times p is called (see below)
.IP -
the file address of its call-count information (see below).
.LP
.NH 4
Call-count information
.PP
As a result of Inline Substitution, some procedures may
become useless, because all their invocations have been
substituted in line.
One of the tasks of IL is to keep track which
procedures are no longer called.
Note that IL is especially keen on procedures that are
called only once
(possibly as a result of expanding all other calls to it).
So we want to know how many times a procedure
is called \fIduring\fR Inline Substitution.
It is not good enough to compute this
information afterwards.
The task is rather complex, because
the number of times a procedure is called
varies during the entire process:
.IP 1.
If a call to p is substituted in line,
the number of calls to p gets decremented by 1.
.IP 2.
If a call to p is substituted in line,
and p contains n calls to q, then the number of calls to q
gets incremented by n.
.IP 3.
If a procedure p is removed (because it is no
longer called) and p contains n calls to q,
then the number of calls to q gets decremented by n.
.LP
(Note that p may be the same as q, if p is recursive).
.sp 0
So we actually want to have the following information:
.DS
NRCALL(p,q) = number of call to q appearing in p,
for all procedures p and q that may be put in line.
.DE
This information, called \fIcall-count information\fR is
computed by the first subphase.
It is stored in a file.
It is represented as a number of lists, rather than as
a (very sparse) matrix.
Every procedure has a list of (proc,count) pairs,
telling which procedures it calls, and how many times.
The file address of its call-count list is stored
in its proctable entry.
Whenever this information is needed, it is fetched from
the file, using direct access.
The proctable entry also contains the number of times
a procedure is called, at any moment.
.NH 4
The call-list
.PP
The call-list is the major data structure use by IL.
Every item of the list describes one procedure call.
It contains the following attributes:
.IP -
the calling procedure (caller)
.IP -
the called procedure (callee)
.IP -
identification of the CAL instruction (sequence number)
.IP -
the loop nesting level; our heuristic rules appreciate
calls inside a loop (or even inside a loop nested inside
another loop, etc.) more than other calls
.IP -
the actual parameter expressions involved in the call;
for every actual, we record:
.RS
.IP -
the EM code of the expression
.IP -
the number of bytes of its result (size)
.IP -
an indication if the actual may be put in line
.RE
.LP
The structure of the call-list is rather complex.
Whenever a call is expanded in line, new calls
will suddenly appear in the program,
that were not contained in the original body
of the calling subroutine.
These calls are inherited from the called procedure.
We will refer to these invocations as \fInested calls\fR
(see Fig. 5.1).
.DS
.TS
lw(2.5i) l.
procedure p is
begin .
a(); .
b(); .
end;
.TE
.TS
lw(2.5i) l.
procedure r is procedure r is
begin begin
x(); x();
p(); -- in line a(); -- nested call
y(); b(); -- nested call
end; y();
end;
.TE
Fig. 5.1 Example of nested procedure calls
.DE
Nested calls may subsequently be put in line too
(probably resulting in a yet deeper nesting level, etc.).
So the call-list does not always reflect the source program,
but changes dynamically, as decisions are made.
If a call to p is expanded, all calls appearing in p
will be added to the call-list.
.sp 0
A convenient and elegant way to represent
the call-list is to use a LISP-like list.
.[
poel lisp trac
.]
Calls that appear at the same level
are linked in the CDR direction. If a call C
to a procedure p is expanded,
all calls appearing in p are put in a sub-list
of C, i.e. in its CAR.
In the example above, before the decision
to expand the call to p is made, the
call-list of procedure r looks like:
.DS
(call-to-x, call-to-p, call-to-y)
.DE
After the decision, it looks like:
.DS
(call-to-x, (call-to-p*, call-to-a, call-to-b), call-to-y)
.DE
The call to p is marked, because it has been
substituted.
Whenever IL wants to traverse the call-list of some procedure,
it uses the well-known LISP technique of
recursion in the CAR direction and
iteration in the CDR direction
(see page 1.19-2 of
.[
poel lisp trac
.]
).
All list traversals look like:
.DS
traverse(list)
{
for (c = first(list); c != 0; c = CDR(c)) {
if (c is marked) {
traverse(CAR(c));
} else {
do something with c
}
}
}
.DE
The entire call-list consists of a number of LISP-like lists,
one for every procedure.
The proctable entry of a procedure contains a pointer
to the beginning of the list.
.NH 3
The first subphase: procedure analysis
.PP
The tasks of the first subphase are to determine
several attributes of every procedure
and to construct the basic call-list,
i.e. without nested calls.
The size of a procedure is determined
by simply counting its EM instructions.
Pseudo instructions are skipped.
A procedure does not 'fall through' if its CFG
contains a basic block
that is not the last block of the CFG and
that ends on a RET instruction.
The formal parameters of a procedure are determined
by inspection of
its code.
.PP
The call-list in constructed by looking at all CAL instructions
appearing in the program.
The call-list should only contain calls to procedures
that may be put in line.
This fact is only known if the procedure was
analyzed earlier.
If a call to a procedure p appears in the program
before the body of p,
the call will always be put in the call-list.
If p is later found to be unsuitable,
the call will be removed from the list by the
second subphase.
.PP
An important issue is the recognition
of the actual parameter expressions of the call.
The front ends produces messages telling how many
bytes of formal parameters every procedure accesses.
(If there is no such message for a procedure, it
cannot be put in line).
The actual parameters together must account for
the same number of bytes.A recursive descent parser is used
to parse side-effect free EM expressions.
It uses a table and some
auxiliary routines to determine
how many bytes every EM instruction pops from the stack
and how many bytes it pushes onto the stack.
These numbers depend on the EM instruction, its argument,
and the wordsize and pointersize of the target machine.
Initially, the parser has to recognize the
number of bytes specified in the formals-message,
say N.
Assume the first instruction before the CAL pops S bytes
and pushes R bytes.
If R > N, too many bytes are recognized
and the parser fails.
Else, it calls itself recursively to recognize the
S bytes used as operand of the instruction.
If it succeeds in doing so, it continues with the next instruction,
i.e. the first instruction before the code recognized by
the recursive call, to recognize N-R more bytes.
The result is a number of EM instructions that collectively push N bytes.
If an instruction is come across that has side-effects
(e.g. a store or a procedure call) or of which R and S cannot
be computed statically (e.g. a LOS), it fails.
.sp 0
Note that the parser traverses the code backwards.
As EM code is essentially postfix code, the parser works top down.
.PP
If the parser fails to recognize the parameters, the call will not
be substituted in line.
If the parameters can be determined, they still have to
match the formal parameters of the called procedure.
This check is performed by the second subphase; it cannot be
done here, because it is possible that the called
procedure has not been analyzed yet.
.PP
The entire call-list is written to a file,
to be processed by the second subphase.
.NH 3
The second subphase: making decisions
.PP
The task of the second subphase is quite easy
to understand.
It reads the call-list file,
builds an incore call-list and deletes every
call that may not be expanded in line (either because the called
procedure may not be put in line, or because the actual parameters
of the call do not match the formal parameters of the called procedure).
It assigns a \fIpay-off\fR to every call,
indicating how desirable it is to expand it.
.PP
The subphase repeatedly scans the call-list and takes
the call with the highest ratio.
The chosen one gets marked,
and the call-list is extended with the nested calls,
as described above.
These nested calls are also assigned a ratio,
and will be considered too during the next scans.
.sp 0
After every decision the number of times
every procedure is called is updated, using
the call-count information.
Meanwhile, the subphase keeps track of the amount of space left
available.
If all space is used, or if there are no more calls left to
be expanded, it exits this loop.
Finally, calls to procedures that are called only
once are also chosen.
.PP
The actual parameters of a call are only needed by
this subphase to assign a ratio to a call.
To save some space, these actuals are not kept in main memory.
They are removed after the call has been read and a ratio
has been assigned to it.
So this subphase works with \fIabstracts\fR of calls.
After all work has been done,
the actual parameters of the chosen calls are retrieved
from a file,
as they are needed by the transformation subphase.
.NH 3
The third subphase: doing transformations
.PP
The third subphase makes the actual modifications to
the EM text.
It is directed by the decisions made in the previous subphase,
as expressed via the call-list.
The call-list read by this subphase contains
only calls that were selected for expansion.
The list is ordered in the same way as the EM text,
i.e. if a call C1 appears before a call C2 in the call-list,
C1 also appears before C2 in the EM text.
So the EM text is traversed linearly,
the calls that have to be substituted are determined
and the modifications are made.
If a procedure is come across that is no longer needed,
it is simply not written to the output EM file.
The substitution of a call takes place in distinct steps:
.IP "change the calling sequence" 7
.sp 0
The actual parameter expressions are changed.
Parameters that are put in line are removed.
All remaining ones must store their result in a
temporary local variable, rather than
push it on the stack.
The CAL instruction and any ASP (to pop actual parameters)
or LFR (to fetch the result of a function)
are deleted.
.IP "fetch the text of the called procedure"
.sp 0
Direct disk access is used to to read the text of the
called procedure.
The file offset is obtained from the proctable entry.
.IP "allocate bytes for locals and temporaries"
.sp 0
The local variables of the called procedure will be put in the
stack frame of the calling procedure.
The same applies to any temporary variables
that hold the result of parameters
that were not put in line.
The proctable entry of the caller is updated.
.IP "put a label after the CAL"
.sp 0
If the called procedure contains a RET (return) instruction
somewhere in the middle of its text (i.e. it does
not fall through), the RET must be changed into
a BRA (branch), to jump over the
remainder of the text.
This label is not needed if the called
procedure falls through.
.IP "copy the text of the called procedure and modify it"
.sp 0
References to local variables of the called routine
and to parameters that are not put in line
are changed to refer to the
new local of the caller.
References to in line parameters are replaced
by the actual parameter expression.
Returns (RETs) are either deleted or
replaced by a BRA.
Messages containing information about local
variables or parameters are changed.
Global data declarations and the PRO and END pseudos
are removed.
Instruction labels and references to them are
changed to make sure they do not have the
same identifying number as
labels in the calling procedure.
.IP "insert the modified text"
.sp 0
The pseudos of the called procedure are put after the pseudos
of the calling procedure.
The real text of the callee is put at
the place where the CAL was.
.IP "take care of nested substitutions"
.sp 0
The expanded procedure may contain calls that
have to be expanded too (nested calls).
If the descriptor of this call contains actual
parameter expressions,
the code of the expressions has to be changed
the same way as the code of the callee was changed.
Next, the entire process of finding CALs and doing
the substitutions is repeated recursively.
.LP

27
doc/ego/il/il6 Normal file
View File

@ -0,0 +1,27 @@
.NH 2
Source files of IL
.PP
The sources of IL are in the following files
and packages (the prefixes 1_, 2_ and 3_ refer to the three subphases):
.IP il.h: 14
declarations of global variables and
data structures
.IP il.c:
the routine main; the driving routines of the three subphases
.IP 1_anal:
contains a subroutine that analyzes a procedure
.IP 1_cal:
contains a subroutine that analyzes a call
.IP 1_aux:
implements auxiliary procedures used by subphase 1
.IP 2_aux:
implements auxiliary procedures used by subphase 2
.IP 3_subst:
the driving routine for doing the substitution
.IP 3_change:
lower level routines that do certain modifications
.IP 3_aux:
implements auxiliary procedures used by subphase 3
.IP aux:
implements auxiliary procedures used by several subphases.
.LP

3
doc/ego/intro/.distr Normal file
View File

@ -0,0 +1,3 @@
head
intro1
tail

10
doc/ego/intro/head Normal file
View File

@ -0,0 +1,10 @@
.ND
.\".ll 80m
.\".nr LL 80m
.\".nr tl 78m
.tr ~
.ds >. .
.ds >, ,
.ds [. " [
.ds .] ]
.cs 5 22

79
doc/ego/intro/intro1 Normal file
View File

@ -0,0 +1,79 @@
.TL
The design and implementation of
the EM Global Optimizer
.AU
H.E. Bal
.AI
Vrije Universiteit
Wiskundig Seminarium, Amsterdam
.AB
The EM Global Optimizer is part of the Amsterdam Compiler Kit,
a toolkit for making retargetable compilers.
It optimizes the intermediate code common to all compilers of
the toolkit (EM),
so it can be used for all programming languages and
all processors supported by the kit.
.PP
The optimizer is based on well-understood concepts like
control flow analysis and data flow analysis.
It performs the following optimizations:
Inline Substitution, Strength Reduction, Common Subexpression Elimination,
Stack Pollution, Cross Jumping, Branch Optimization, Copy Propagation,
Constant Propagation, Dead Code Elimination and Register Allocation.
.PP
This report describes the design of the optimizer and several
of its implementation issues.
.AE
.bp
.NH 1
Introduction
.PP
.FS
This work was supported by the
Stichting Technische Wetenschappen (STW)
under grant VWI00.0001.
.FE
The EM Global Optimizer is part of a software toolkit
for making production-quality retargetable compilers.
This toolkit,
called the Amsterdam Compiler Kit
.[
tanenbaum toolkit rapport
.]
.[
tanenbaum toolkit cacm
.]
runs under the Unix*
.FS
*Unix is a Trademark of Bell Laboratories
.FE
operating system.
.sp 0
The main design philosophy of the toolkit is to use
a language- and machine-independent
intermediate code, called EM.
.[
keizer architecture
.]
The basic compilation process can be split up into
two parts.
A language-specific front end translates the source program into EM.
A machine-specific back end transforms EM to assembly code
of the target machine.
.PP
The global optimizer is an optional phase of the
compilation process, and can be used to obtain
machine code of a higher quality.
The optimizer transforms EM-code to better EM-code,
so it comes between the front end and the back end.
It can be used with any combination of languages
and machines, as far as they are supported by
the compiler kit.
.PP
This report describes the design of the
global optimizer and several of its
implementation issues.
Measurements can be found in.
.[
bal tanenbaum global
.]

17
doc/ego/intro/tail Normal file
View File

@ -0,0 +1,17 @@
.SH
Acknowledgements
.PP
The author would like to thank Andy Tanenbaum for his guidance,
Duk Bekema for implementing the Common Subexpression Elimination phase
and writing the initial documentation of that phase,
Dick Grune for reading the manuscript of this report
and Ceriel Jacobs, Ed Keizer, Martin Kersten, Hans van Staveren
and the members of the S.T.W. user's group for their
interest and assistance.
.bp
.SH
References
.LP
.[
$LIST$
.]

1
doc/ego/lv/.distr Normal file
View File

@ -0,0 +1 @@
lv1

95
doc/ego/lv/lv1 Normal file
View File

@ -0,0 +1,95 @@
.bp
.NH 1
Live-Variable analysis
.NH 2
Introduction
.PP
The "Live-Variable analysis" optimization technique (LV)
performs some code improvements and computes information that may be
used by subsequent optimizations.
The main task of this phase is the
computation of \fIlive-variable information\fR.
.[~[
aho compiler design
.] section 14.4]
A variable A is said to be \fIdead\fR at some point p of the
program text, if on no path in the control flow graph
from p to a RET (return), A can be used before being changed;
else A is said to be \fIlive\fR.
.PP
A statement of the form
.DS
VARIABLE := EXPRESSION
.DE
is said to be dead if the left hand side variable is dead just after
the statement and the right hand side expression has no
side effects (i.e. it doesn't change any variable).
Such a statement can be eliminated entirely.
Dead code will seldom be present in the original program,
but it may be the result of earlier optimizations,
such as copy propagation.
.PP
Live-variable information is passed to other phases via
messages in the EM code.
Live/dead messages are generated at points in the EM text where
variables become dead or live.
This information is especially useful for the Register
Allocation phase.
.NH 2
Implementation
.PP
The implementation uses algorithm 14.6 of.
.[
aho compiler design
.]
First two sets DEF and USE are computed for every basic block b:
.IP DEF(b) 9
the set of all variables that are assigned a value in b before
being used
.IP USE(b) 9
the set of all variables that may be used in b before being changed.
.LP
(So variables that may, but need not, be used resp. changed via a procedure
call or through a pointer are included in USE but not in DEF).
The next step is to compute the sets IN and OUT :
.IP IN[b] 9
the set of all variables that are live at the beginning of b
.IP OUT[b] 9
the set of all variables that are live at the end of b
.LP
IN and OUT can be computed for all blocks simultaneously by solving the
data flow equations:
.DS
(1) IN[b] = OUT[b] - DEF[b] + USE[b]
[2] OUT[b] = IN[s1] + ... + IN[sn] ;
where SUCC[b] = {s1, ... , sn}
.DE
The equations are solved by a similar algorithm as for
the Use Definition equations (see previous chapter).
.PP
Finally, each basic block is visited in turn to remove its dead code
and to emit the live/dead messages.
Every basic block b is traversed from its last
instruction backwards to the beginning of b.
Initially, all variables that are dead at the end
of b are marked dead. All others are marked live.
If we come across an assignment to a variable X that
was marked live, a live-message is put after the
assignment and X is marked dead;
if X was marked dead, the assignment may be removed, provided that
the right hand side expression contains no side effects.
If we come across a use of a variable X that
was marked dead, a dead-message is put after the
use and X is marked live.
So at any point, the mark of X tells whether X is
live or dead immediately before that point.
A message is also generated at the start of a basic block
for every variable that was live at the end of the (textually)
previous block, but dead at the entry of this block, or v.v.
.PP
Only local variables are considered.
This significantly reduces the memory needed by this phase,
eases the implementation and is hardly less efficient than
considering all variables.
(Note that it is very hard to prove that an assignment to
a global variable is dead).

1
doc/ego/ov/.distr Normal file
View File

@ -0,0 +1 @@
ov1

374
doc/ego/ov/ov1 Normal file
View File

@ -0,0 +1,374 @@
.bp
.NH 1
Overview of the global optimizer
.NH 2
The ACK compilation process
.PP
The EM Global Optimizer is one of three optimizers that are
part of the Amsterdam Compiler Kit (ACK).
The phases of ACK are:
.IP 1.
A Front End translates a source program to EM
.IP 2.
The Peephole Optimizer
.[
tanenbaum staveren peephole toplass
.]
reads EM code and produces 'better' EM code.
It performs a number of optimizations (mostly peephole
optimizations)
such as constant folding, strength reduction and unreachable code
elimination.
.IP 3.
The Global Optimizer further improves the EM code.
.IP 4.
The Code Generator transforms EM to assembly code
of the target computer.
.IP 5.
The Target Optimizer improves the assembly code.
.IP 6.
An Assembler/Loader generates an executable file.
.LP
For a more extensive overview of the ACK compilation process,
we refer to.
.[
tanenbaum toolkit rapport
.]
.[
tanenbaum toolkit cacm
.]
.PP
The input of the Global Optimizer may consist of files and
libraries.
Every file or module in the library must contain EM code in
Compact Assembly Language format.
.[~[
tanenbaum machine architecture
.], section 11.2]
The output consists of one such EM file.
The input files and libraries together need not
constitute an entire program,
although as much of the program as possible should be supplied.
The more information about the program the optimizer
gets, the better its output code will be.
.PP
The Global Optimizer is language- and machine-independent,
i.e. it can be used for all languages and machines supported by ACK.
Yet, it puts some unavoidable restrictions on the EM code
produced by the Front End (see below).
It must have some knowledge of the target machine.
This knowledge is expressed in a machine description table
which is passed as argument to the optimizer.
This table does not contain very detailed information about the
target (such as its instruction set and addressing modes).
.NH 2
The EM code
.PP
The definition of EM, the intermediate code of all ACK compilers,
is given in a separate document.
.[
tanenbaum machine architecture
.]
We will only discuss some features of EM that are most relevant
to the Global Optimizer.
.PP
EM is the assembly code of a virtual \fIstack machine\fR.
All operations are performed on the top of the stack.
For example, the statement "A := B + 3" may be expressed in EM as:
.DS
.TS
l l.
LOL -4 -- push local variable B
LOC 3 -- push constant 3
ADI 2 -- add two 2-byte items on top of
-- the stack and push the result
STL -2 -- pop A
.TE
.DE
So EM is essentially a \fIpostfix\fR code.
.PP
EM has a rich instruction set, containing several arithmetic
and logical operators.
It also contains special-case instructions (such as INCrement).
.PP
EM has \fIglobal\fR (\fIexternal\fR) variables, accessible
by all procedures and \fIlocal\fR variables, accessible by a few
(nested) procedures.
The local variables of a lexically enclosing procedure may
be accessed via a \fIstatic link\fR.
EM has instructions to follow the static chain.
There are EM instruction to allow a procedure
to access its local variables directly (such as LOL and STL above).
Local variables are referenced via an offset in the stack frame
of the procedure, rather than by their names (e.g. -2 and -4 above).
The EM code does not contain the (source language) type
of the variables.
.PP
All structured statements in the source program are expressed in
low level jump instructions.
Besides conditional and unconditional branch instructions, there are
two case instructions (CSA and CSB),
to allow efficient translation of case statements.
.NH 2
Requirements on the EM input
.PP
As the optimizer should be useful for all languages,
it clearly should not put severe restrictions on the EM code
of the input.
There is, however, one immovable requirement:
it must be possible to determine the \fIflow of control\fR of the
input program.
As virtually all global optimizations are based on control flow information,
the optimizer would be totally powerless without it.
For this reason we restrict the usage of the case jump instructions (CSA/CSB)
of EM.
Such an instruction is always called with the address of a case descriptor
on top the the stack.
.[~[
tanenbaum machine architecture
.] section 7.4]
This descriptor contains the labels of all possible
destinations of the jump.
We demand that all case descriptors are allocated in a global
data fragment of type ROM, i.e. the case descriptors
may not be modifyable.
Furthermore, any case instruction should be immediately preceded by
a LAE (Load Address External) instruction, that loads the
address of the descriptor,
so the descriptor can be uniquely identified.
.PP
The optimizer will work improperly if the user deceives the control flow.
We will give two methods to do this.
.PP
In "C" the notorious library routines "setjmp" and "longjmp"
.[
unix programmer's manual McIlroy
.]
may be used to jump out of a procedure,
but can also be used for a number of other stuffy purposes,
for example, to create an extra entry point in a loop.
.DS
while (condition) {
....
setjmp(buf);
...
}
...
longjmp(buf);
.DE
The invocation to longjmp actually is a jump to the place of
the last call to setjmp with the same argument (buf).
As the calls to setjmp and longjmp are indistinguishable from
normal procedure calls, the optimizer will not see the danger.
No need to say that several loop optimizations will behave
unexpectedly when presented with such pathological input.
.PP
Another way to deceive the flow of control is
by using exception handling routines.
Ada*
.FS
* Ada is a registered trademark of the U.S. Government
(Ada Joint Program Office).
.FE
has clearly recognized the dangers of exception handling,
but other languages (such as PL/I) have not.
.[
ada rationale
.]
.PP
The optimizer will be more effective if the EM input contains
some extra information about the source program.
Especially the \fIregister message\fR is very important.
These messages indicate which local variables may never be
accessed indirectly.
Most optimizations benefit significantly by this information.
.PP
The Inline Substitution technique needs to know how many bytes
of formal parameters every procedure accesses.
Only calls to procedures for which the EM code contains this information
will be substituted in line.
.NH 2
Structure of the optimizer
.PP
The Global Optimizer is organized as a number of \fIphases\fR,
each one performing some task.
The main structure is as follows:
.IP IC 6
the Intermediate Code construction phase transforms EM into the
intermediate code (ic) of the optimizer
.IP CF
the Control Flow phase extends the ic with control flow
information and interprocedural information
.IP OPTs
zero or more optimization phases, each one performing one or
more related optimizations
.IP CA
the Compact Assembly phase generates Compact Assembly Language EM code
out of ic.
.LP
.PP
An important issue in the design of a global optimizer is the
interaction between optimization techniques.
It is often advantageous to combine several techniques in
one algorithm that takes into account all interactions between them.
Ideally, one single algorithm should be developed that does
all optimizations simultaneously and deals with all possible interactions.
In practice, such an algorithm is still far out of reach.
Instead some rather ad hoc (albeit important) combinations are chosen,
such as Common Subexpression Elimination and Register Allocation.
.[
prabhala sethi common subexpressions
.]
.[
sethi ullman optimal code
.]
.PP
In the Em Global Optimizer there is one separate algorithm for
every technique.
Note that this does not mean that all techniques are independent
of each other.
.PP
In principle, the optimization phases can be run in any order;
a phase may even be run more than once.
However, the following rules should be obeyed:
.IP -
the Live Variable analysis phase (LV) must be run prior to
Register Allocation (RA), as RA uses information outputted by LV.
.IP -
RA should be the last phase; this is a consequence of the way
the interface between RA and the Code Generator is defined.
.LP
The ordering of the phases has significant impact on
the quality of the produced code.
In
.[
wulf overview production quality carnegie-mellon
.]
two kinds of phase ordering problems are distinguished.
If two techniques A and B both take away opportunities of each other,
there is a "negative" ordering problem.
If, on the other hand, both A and B introduce new optimization
opportunities for each other, the problem is called "positive".
In the Global Optimizer the following interactions must be
taken into account:
.IP -
Inline Substitution (IL) may create new opportunities for most
other techniques, so it should be run as early as possible
.IP -
Use Definition analysis (UD) may introduce opportunities for LV.
.IP -
Strength Reduction may create opportunities for UD
.LP
The optimizer has a default phase ordering, which can
be changed by the user.
.NH 2
Structure of this document
.PP
The remaining chapters of this document each describe one
phase of the optimizer.
For every phase, we describe its task, its design,
its implementation, and its source files.
The latter two sections are intended to aid the
maintenance of the optimizer and
can be skipped by the initial reader.
.NH 2
References
.PP
There are very
few modern textbooks on optimization.
Chapters 12, 13, and 14 of
.[
aho compiler design
.]
are a good introduction to the subject.
Wulf et. al.
.[
wulf optimizing compiler
.]
describe one specific optimizing (Bliss) compiler.
Anklam et. al.
.[
anklam vax-11
.]
discuss code generation and optimization in
compilers for one specific machine (a Vax-11).
Kirchgaesner et. al.
.[
optimizing ada compiler
.]
present a brief description of many
optimizations; the report also contains a lengthy (over 60 pages)
bibliography.
.PP
The number of articles on optimization is quite impressive.
The Lowry and Medlock paper on the Fortran H compiler
.[
object code optimization Lowry Medlock
.]
is a classical one.
Other papers on global optimization are.
.[
faiman optimizing pascal
.]
.[
perkins sites
.]
.[
harrison general purpose optimizing
.]
.[
morel partial redundancies
.]
.[
Mintz global optimizer
.]
Freudenberger
.[
freudenberger setl optimizer
.]
describes an optimizer for a Very High Level Language (SETL).
The Production-Quality Compiler-Compiler (PQCC) project uses
very sophisticated compiler techniques, as described in.
.[
wulf overview ieee
.]
.[
wulf overview carnegie-mellon
.]
.[
wulf machine-relative
.]
.PP
Several Ph.D. theses are dedicated to optimization.
Davidson
.[
davidson simplifying
.]
outlines a machine-independent peephole optimizer that
improves assembly code.
Katkus
.[
katkus
.]
describes how efficient programs can be obtained at little cost by
optimizing only a small part of a program.
Photopoulos
.[
photopoulos mixed code
.]
discusses the idea of generating interpreted intermediate code as well
as assembly code, to obtain programs that are both small and fast.
Shaffer
.[
shaffer automatic
.]
describes the theory of automatic subroutine generation.
.]
Leverett
.[
leverett register allocation compilers
.]
deals with register allocation in the PQCC compilers.
.PP
References to articles about specific optimization techniques
will be given in later chapters.

64
doc/ego/proto.make Normal file
View File

@ -0,0 +1,64 @@
# $Id$
#PARAMS do not remove this line!
SRC_DIR = $(SRC_HOME)/doc/ego
REFS=-p $(SRC_DIR)/refs.opt -p $(SRC_DIR)/refs.stat -p $(SRC_DIR)/refs.gen
REFFILES = $(SRC_DIR)/refs.opt $(SRC_DIR)/refs.stat $(SRC_DIR)/refs.gen
INTRO=$(SRC_DIR)/intro/intro?
OV=$(SRC_DIR)/ov/ov?
IC=$(SRC_DIR)/ic/ic?
CF=$(SRC_DIR)/cf/cf?
IL=$(SRC_DIR)/il/il?
SR=$(SRC_DIR)/sr/sr?
CS=$(SRC_DIR)/cs/cs?
SP=$(SRC_DIR)/sp/sp?
UD=$(SRC_DIR)/ud/ud?
LV=$(SRC_DIR)/lv/lv?
CJ=$(SRC_DIR)/cj/cj?
BO=$(SRC_DIR)/bo/bo?
RA=$(SRC_DIR)/ra/ra?
CA=$(SRC_DIR)/ca/ca?
EGO=$(INTRO) $(OV) $(IC) $(CF) $(IL) $(SR) $(CS) $(SP) $(CJ) $(BO) \
$(UD) $(LV) $(RA) $(CA)
REFER=refer
TROFF=troff
TBL=tbl
TARGET=-Tlp
HEAD = $(SRC_DIR)/intro/head
TAIL = $(SRC_DIR)/intro/tail
$(TARGET_HOME)/doc/ego.doc: $(REFFILES) $(HEAD) $(TAIL) $(EGO)
$(REFER) -sA+T -l4,2 $(REFS) $(HEAD) $(EGO) $(TAIL) | $(TBL) > $(TARGET_HOME)/doc/ego.doc
ego.f: $(REFFILES) $(HEAD) $(TAIL) $(EGO)
$(REFER) -sA+T -l4,2 $(REFS) $(HEAD) $(EGO) $(TAIL) | $(TBL) | $(TROFF) $(TARGET) -ms > ego.f
intro.f: $(REFFILES) $(HEAD) $(TAIL) $(INTRO)
$(REFER) -sA+T -l4,2 $(REFS) $(HEAD) $(INTRO) $(TAIL) | $(TBL) | $(TROFF) $(TARGET) -ms > intro.f
ov.f: $(REFFILES) $(HEAD) $(TAIL) $(OV)
$(REFER) -sA+T -l4,2 $(REFS) $(HEAD) $(OV) $(TAIL) | $(TBL) | $(TROFF) $(TARGET) -ms > ov.f
ic.f: $(REFFILES) $(HEAD) $(TAIL) $(IC)
$(REFER) -sA+T -l4,2 $(REFS) $(HEAD) $(IC) $(TAIL) | $(TBL) | $(TROFF) $(TARGET) -ms > ic.f
cf.f: $(REFFILES) $(HEAD) $(TAIL) $(CF)
$(REFER) -sA+T -l4,2 $(REFS) $(HEAD) $(CF) $(TAIL) | $(TBL) | $(TROFF) $(TARGET) -ms > cf.f
il.f: $(REFFILES) $(HEAD) $(TAIL) $(IL)
$(REFER) -sA+T -l4,2 $(REFS) $(HEAD) $(IL) $(TAIL) | $(TBL) | $(TROFF) $(TARGET) -ms > il.f
sr.f: $(REFFILES) $(HEAD) $(TAIL) $(SR)
$(REFER) -sA+T -l4,2 $(REFS) $(HEAD) $(SR) $(TAIL) | $(TBL) | $(TROFF) $(TARGET) -ms > sr.f
cs.f: $(REFFILES) $(HEAD) $(TAIL) $(CS)
$(REFER) -sA+T -l4,2 $(REFS) $(HEAD) $(CS) $(TAIL) | $(TBL) | $(TROFF) $(TARGET) -ms > cs.f
sp.f: $(REFFILES) $(HEAD) $(TAIL) $(SP)
$(REFER) -sA+T -l4,2 $(REFS) $(HEAD) $(SP) $(TAIL) | $(TBL) | $(TROFF) $(TARGET) -ms > sp.f
cj.f: $(REFFILES) $(HEAD) $(TAIL) $(CJ)
$(REFER) -sA+T -l4,2 $(REFS) $(HEAD) $(CJ) $(TAIL) | $(TBL) | $(TROFF) $(TARGET) -ms > cj.f
bo.f: $(REFFILES) $(HEAD) $(TAIL) $(BO)
$(REFER) -sA+T -l4,2 $(REFS) $(HEAD) $(BO) $(TAIL) | $(TBL) | $(TROFF) $(TARGET) -ms > bo.f
ud.f: $(REFFILES) $(HEAD) $(TAIL) $(UD)
$(REFER) -sA+T -l4,2 $(REFS) $(HEAD) $(UD) $(TAIL) | $(TBL) | $(TROFF) $(TARGET) -ms > ud.f
lv.f: $(REFFILES) $(HEAD) $(TAIL) $(LV)
$(REFER) -sA+T -l4,2 $(REFS) $(HEAD) $(LV) $(TAIL) | $(TBL) | $(TROFF) $(TARGET) -ms > lv.f
ra.f: $(REFFILES) $(HEAD) $(TAIL) $(RA)
$(REFER) -sA+T -l4,2 $(REFS) $(HEAD) $(RA) $(TAIL) | $(TBL) | $(TROFF) $(TARGET) -ms > ra.f
ca.f: $(REFFILES) $(HEAD) $(TAIL) $(CA)
$(REFER) -sA+T -l4,2 $(REFS) $(HEAD) $(CA) $(TAIL) | $(TBL) | $(TROFF) $(TARGET) -ms > ca.f

4
doc/ego/ra/.distr Normal file
View File

@ -0,0 +1,4 @@
ra1
ra2
ra3
ra4

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