keie [Mon, 24 Sep 1984 14:10:23 +0000 (14:10 +0000)]
Initial revision
em [Fri, 14 Sep 1984 10:25:07 +0000 (10:25 +0000)]
Compile-time option GLOBAL_OPT defined. If set, the resulting
peephole optimizer will be suitable for optimizing the output of
the global optimizer. In particular, it doesn't change the register
messages.
keie [Thu, 13 Sep 1984 14:40:09 +0000 (14:40 +0000)]
1 - The prop keyword with is flags is now obsolete. Its function is
taken over by several other keywords: stdin, stdout, prep, optimizer,
combiner and linker.
2 - The search order is changed. First {EM}/lib/{M}/descr, then
{EM}/lib/ack/{M}, finally {M}.
keie [Thu, 13 Sep 1984 14:35:02 +0000 (14:35 +0000)]
The t_do bits are not set by this module. The t_next entry is used
to see whether the scan for this phase is already done.
t_do is now set in add_inputs(files.c).
keie [Thu, 13 Sep 1984 11:07:46 +0000 (11:07 +0000)]
1 - The t_do flags is now set by add_inputs(files.c).
2 - Recognize the fact that it is possible to start a combiner without
input files.
3 - Removed -d flag. Overflow for -v (>2) now ends up in debug.
-v may be followed by a number indicating the increment.
keie [Thu, 13 Sep 1984 11:04:00 +0000 (11:04 +0000)]
1 - The outfile entry is only used when the output file must not be thrown
away.
2 - If a combiner has no named input file (only libs+flags) then issue
a warning message and make up a name.
bal [Wed, 12 Sep 1984 13:21:43 +0000 (13:21 +0000)]
pem did not generate a register message for var-parameters of
array- or record type. The routine "treewalk" is modified.
It generates a register message for every var-parameter, even
if it has its noreg-flag set.
bal [Tue, 11 Sep 1984 15:44:14 +0000 (15:44 +0000)]
unlk a6 added to restr().
keie [Mon, 10 Sep 1984 17:34:04 +0000 (17:34 +0000)]
Added ego, basic and callname conventions.
keie [Mon, 10 Sep 1984 16:51:02 +0000 (16:51 +0000)]
No comment.
keie [Mon, 10 Sep 1984 16:48:57 +0000 (16:48 +0000)]
Combiners (ego, linkers) now use a list of path's(ack.h) to indicate
their input files.
Unmatched flags are now sent to the linker.
keie [Mon, 10 Sep 1984 16:46:13 +0000 (16:46 +0000)]
1 - A transformation is succesfull when
a - a stopsuffix is indicated and met,
b - the last transformation is included in the transformation path.
2 - Maintains a 'cash' of best paths for all transformation to be executed.
keie [Mon, 10 Sep 1984 16:45:12 +0000 (16:45 +0000)]
The input file names of the linker are to be found in a different place.
keie [Mon, 10 Sep 1984 16:42:55 +0000 (16:42 +0000)]
1 - added keywords callname and outfile. See manual.
2 - multiple combiners are allowed now.
3 - A different search mechanism is used for finding descriptor files.
keie [Mon, 10 Sep 1984 16:37:11 +0000 (16:37 +0000)]
1 - callname recognition is moved to rmach.c.
2 - The overall scheme is altered.
first, all input files are processed until a combining phase is met.
then, all the combining phases are executed, the resulting files
are again processed until a combiner (or final) phase is met.
3 - The EM_DIR shell variable can be used to set ack's idea of the EM
home directory.
keie [Mon, 10 Sep 1984 16:33:03 +0000 (16:33 +0000)]
1 - The names of temporary files are now Ack'hex''unique'.'suffix'.
'hex' is the pid of the current invocation of ack in hex.
'unique' is a tail unique to this invocation.
2 - The outfile field is used to indicate default naming, can be ovrrriden
by the -o flag.
3 - Added handling for phases with multiple inputs (ego, linker).
keie [Mon, 10 Sep 1984 16:30:47 +0000 (16:30 +0000)]
The role of the combiner is -partially- assumed by the linker.
Linker arguments are now part of the transformation structure.
Temp file nameing is changed.
keie [Mon, 10 Sep 1984 16:29:37 +0000 (16:29 +0000)]
Naming of the tempname is changed (see files.c).
keie [Mon, 3 Sep 1984 13:49:40 +0000 (13:49 +0000)]
Initial revision
sater [Thu, 23 Aug 1984 17:07:53 +0000 (17:07 +0000)]
Variable nregvars had a name clash with the array nregvar[] in the
file tables.c. That was different in the 8'th character (!"#$%&'()_).
These variables should actually be static.
keie [Thu, 23 Aug 1984 13:33:11 +0000 (13:33 +0000)]
We do not use the missing " trick anymore.
The root directory of the EM tree is in the name EM_DIR, the
root directory for tempfiles is in TMP_DIR.
All other path's are relative to EM_DIR.
keie [Thu, 23 Aug 1984 13:27:14 +0000 (13:27 +0000)]
The ACK tree on the vax has as default machine 'vax2'.
keie [Thu, 23 Aug 1984 13:26:44 +0000 (13:26 +0000)]
The missing trailing " trick is now also used for TMP_DIR.
keie [Thu, 23 Aug 1984 13:25:44 +0000 (13:25 +0000)]
The ms_gto is added. This is a trick used to indicate procedures
jumped to with gto.
keie [Thu, 23 Aug 1984 13:20:59 +0000 (13:20 +0000)]
*** empty log message ***
keie [Thu, 23 Aug 1984 13:18:14 +0000 (13:18 +0000)]
Initial revision
keie [Thu, 23 Aug 1984 13:00:32 +0000 (13:00 +0000)]
Initial revision
sater [Thu, 23 Aug 1984 12:25:24 +0000 (12:25 +0000)]
increased MAXNODES in small memory mode
sater [Fri, 17 Aug 1984 15:35:28 +0000 (15:35 +0000)]
Increased the amount of information passed through error routines
to printf. The routine badassert, running on a 2/4 machine lost it's
last argument on the way.
Anyone know of a better way to solve this problem?
keie [Fri, 17 Aug 1984 14:57:31 +0000 (14:57 +0000)]
Added comment.
keie [Fri, 17 Aug 1984 14:44:24 +0000 (14:44 +0000)]
Added RCS identification.
sater [Thu, 16 Aug 1984 16:08:39 +0000 (16:08 +0000)]
Revised to include rcsid of pattern file in binary opt
sater [Thu, 16 Aug 1984 13:34:59 +0000 (13:34 +0000)]
enlarged string table in big memory case
sater [Wed, 15 Aug 1984 16:05:54 +0000 (16:05 +0000)]
added patterns to prevent stacking in *p++ cases
sater [Wed, 15 Aug 1984 16:04:19 +0000 (16:04 +0000)]
added patterns to remove some more dup's
sater [Wed, 15 Aug 1984 14:31:54 +0000 (14:31 +0000)]
added patterns for inc/dec/adp of local and external offsetted
This makes the getc() macro from C very efficient, among others
sater [Wed, 15 Aug 1984 14:23:42 +0000 (14:23 +0000)]
added patterns to remove as many dup's as possible.
sater [Wed, 8 Aug 1984 10:54:04 +0000 (10:54 +0000)]
added definition of malloc().
Program crashed on 2/4 machines
sater [Tue, 7 Aug 1984 10:22:49 +0000 (10:22 +0000)]
reworked patterns for autoincrement stores, now that peephole optimizer
rearranged it.
sater [Fri, 3 Aug 1984 16:37:15 +0000 (16:37 +0000)]
added patterns for *p++ local and external p
added pattern to remove some badly placed dups
sater [Fri, 3 Aug 1984 16:33:40 +0000 (16:33 +0000)]
added setcc calls to some incrementing ops
added patterns for indirect local and external increments
added patterns for loe ine and such
sater [Fri, 3 Aug 1984 13:16:59 +0000 (13:16 +0000)]
removed some superfluous patterns.
Were special cases not needed with the general case.
sater [Thu, 2 Aug 1984 16:31:25 +0000 (16:31 +0000)]
A move from a nonreg to a reg did not have the effect that all
registers clashing with the destination were erased. Erase added.
keie [Thu, 2 Aug 1984 14:13:04 +0000 (14:13 +0000)]
The name "unix" is now predefined for preprocessor usage.
sater [Tue, 31 Jul 1984 09:39:35 +0000 (09:39 +0000)]
When building the parameter list for a pf-call, the line number
for the exchanges war remembered at the wrong time.
This caused:
foo(3,'string')
to cause an external identifier for the string. Fixed.
keie [Mon, 30 Jul 1984 14:42:33 +0000 (14:42 +0000)]
String initializer handling is changed.
Strings are now considered to be sequences of xU1's.
No alignment is done before or after the string other than the
alignment done for names and segment type switches.
bal [Mon, 30 Jul 1984 12:47:54 +0000 (12:47 +0000)]
bug fixed: added "fprintf(codefile,"\b"rts\n");" to restr()
bal [Mon, 30 Jul 1984 11:16:41 +0000 (11:16 +0000)]
bugs fixed (syntax errors, patterns moved to front,
"ldl ldl adp sdl sti" requires DATAREG instead of ANY1 on
fakestack)
bal [Fri, 27 Jul 1984 16:53:19 +0000 (16:53 +0000)]
patterns added to generate autoincrement and to generate
a "move X,d0" instead of a "move X,-(sp)" before storing into X
sater [Fri, 27 Jul 1984 10:28:48 +0000 (10:28 +0000)]
added rcsid
sater [Thu, 26 Jul 1984 13:15:21 +0000 (13:15 +0000)]
added PR* routines
sater [Thu, 26 Jul 1984 13:05:22 +0000 (13:05 +0000)]
Changed procedure prolog to use PR* routines.
keie [Mon, 23 Jul 1984 11:49:00 +0000 (11:49 +0000)]
*** empty log message ***
sater [Mon, 23 Jul 1984 11:29:59 +0000 (11:29 +0000)]
removed all calls to blm~ from table
duplicated some patterns for in[lc] to deal with de[lc]
extra rule for adi 2 to deal with source1 cleverly
sater [Fri, 20 Jul 1984 16:20:54 +0000 (16:20 +0000)]
removed blm.s, not used by table anymore
sater [Fri, 20 Jul 1984 16:20:28 +0000 (16:20 +0000)]
edited to make reentrant, no more globals in use
sater [Fri, 20 Jul 1984 13:54:36 +0000 (13:54 +0000)]
added copyright notice
sater [Fri, 20 Jul 1984 11:32:47 +0000 (11:32 +0000)]
added rcsid
adapted to new archive updating style, with LIST and march and all that
sater [Fri, 20 Jul 1984 11:25:31 +0000 (11:25 +0000)]
Initial revision
sater [Fri, 20 Jul 1984 11:25:18 +0000 (11:25 +0000)]
added rcsid
sater [Fri, 20 Jul 1984 11:20:12 +0000 (11:20 +0000)]
added copyright notice
sater [Fri, 20 Jul 1984 11:07:12 +0000 (11:07 +0000)]
removed copyright notice, wasn't really *written* by us.
sater [Fri, 20 Jul 1984 11:03:31 +0000 (11:03 +0000)]
added rcsid
sater [Fri, 20 Jul 1984 10:44:57 +0000 (10:44 +0000)]
Initial revision
sater [Fri, 20 Jul 1984 10:32:48 +0000 (10:32 +0000)]
A sti 8 of a regdef8 token went into panic mode. Fixed.
sater [Thu, 19 Jul 1984 16:50:27 +0000 (16:50 +0000)]
to check long >= 0 or long < 0 it is enough to test high order word. Added.
anding and oring of long constants is much better now
dvu 2 and rmu 2 by positive constants is now done inline.
sater [Thu, 19 Jul 1984 15:03:30 +0000 (15:03 +0000)]
added rcsid
sater [Thu, 19 Jul 1984 15:01:43 +0000 (15:01 +0000)]
Initial revision
sater [Thu, 19 Jul 1984 14:55:12 +0000 (14:55 +0000)]
Archive made with archiver in environment ASAR if set, arch otherwise
sater [Thu, 19 Jul 1984 14:03:49 +0000 (14:03 +0000)]
removed #ifdef UNTESTED around logical instructions without arguments,
seems they were used ( which implicitly means tested ) after all
sater [Thu, 19 Jul 1984 13:52:18 +0000 (13:52 +0000)]
Initial revision
sater [Thu, 19 Jul 1984 13:34:12 +0000 (13:34 +0000)]
added rcsid
sater [Thu, 19 Jul 1984 13:22:36 +0000 (13:22 +0000)]
changed name from comparchentry to compmodule
sater [Thu, 19 Jul 1984 13:20:15 +0000 (13:20 +0000)]
Initial revision
sater [Thu, 19 Jul 1984 13:12:03 +0000 (13:12 +0000)]
old code put back, now register handling is different again
actually old code never was removed, due to a misunderstanding
about comment conventions.
sater [Thu, 19 Jul 1984 13:11:36 +0000 (13:11 +0000)]
makefile adapted to new style archive handling, RCS and all that
sater [Thu, 19 Jul 1984 13:09:53 +0000 (13:09 +0000)]
a setl instruction was changed to a setd
setl was just plain wrong
sater [Thu, 19 Jul 1984 12:51:00 +0000 (12:51 +0000)]
Initial revision
bal [Thu, 19 Jul 1984 11:50:29 +0000 (11:50 +0000)]
rcsid added
bal [Thu, 19 Jul 1984 11:50:28 +0000 (11:50 +0000)]
Initial revision
sater [Thu, 19 Jul 1984 11:50:18 +0000 (11:50 +0000)]
Initial revision
bal [Thu, 19 Jul 1984 11:15:28 +0000 (11:15 +0000)]
New implementation of GTO (without register save masks)
several optimizations added
bal [Thu, 19 Jul 1984 11:07:15 +0000 (11:07 +0000)]
New implementation of GTO (without register save masks)
bal [Thu, 19 Jul 1984 11:02:06 +0000 (11:02 +0000)]
rcsid added
several optimizations added
bal [Thu, 19 Jul 1984 10:57:19 +0000 (10:57 +0000)]
rcsid added
clr.w -(sp) generated in prolog if register save mask is 0
bal [Thu, 19 Jul 1984 10:03:10 +0000 (10:03 +0000)]
Initial revision
bal [Thu, 19 Jul 1984 09:37:24 +0000 (09:37 +0000)]
Initial revision
sater [Wed, 18 Jul 1984 16:47:24 +0000 (16:47 +0000)]
added patterns for ldc adi/ldc sbi with zero high order word
added patterns for *--p with p register
added patterns to generate cmpb to compare two bytes.
added patterns to use regvar to index global array
added patterns for lol inl
added patterns for external pointer increment/decrement
sater [Wed, 18 Jul 1984 15:54:25 +0000 (15:54 +0000)]
The patterns to change a cii to cuu when dealing with a known positive
quantity was technically wrong. Changed to generate a cui.
sater [Wed, 18 Jul 1984 14:14:46 +0000 (14:14 +0000)]
added definition of index, to keep compiler happy
sater [Wed, 18 Jul 1984 13:39:24 +0000 (13:39 +0000)]
removed recursive comments
removed NC with sti rules
added rule to reverse operands of adi 2
added rule to convert loc sbi to loc adi
added loc slu -> loc sli rule
added local++ rule
added rule for asping xsource2
added rule for csb when nothing on stack
sater [Wed, 18 Jul 1984 13:32:11 +0000 (13:32 +0000)]
added rcsid
changed instruction label format to allow more than 256 procedures
sater [Wed, 18 Jul 1984 13:28:01 +0000 (13:28 +0000)]
changed instruction label format to allow more than 256 procedures
sater [Wed, 18 Jul 1984 13:14:18 +0000 (13:14 +0000)]
added rcsid
converted to recognize and generate new 0%o format
sater [Wed, 18 Jul 1984 11:05:28 +0000 (11:05 +0000)]
added patterns for unsigned shifting
added patterns to delay additive operations until after multiplicative,
this can be useful for some register machines
sater [Wed, 18 Jul 1984 11:04:58 +0000 (11:04 +0000)]
Improved error handling on unterminated strings
sater [Mon, 16 Jul 1984 15:29:48 +0000 (15:29 +0000)]
added -f flags to all calls to rm
sater [Mon, 16 Jul 1984 14:39:21 +0000 (14:39 +0000)]
added special patterns for:
1) long compared to constant ( ldc cms 4 zxx )
2) long increments ( ld? ldc adi 4 sd? )
3) autoincrement loads and stores ( lol lol adp stl loi/sti )
keie [Mon, 16 Jul 1984 09:36:12 +0000 (09:36 +0000)]
*** empty log message ***
keie [Mon, 16 Jul 1984 09:32:22 +0000 (09:32 +0000)]
Added z8000 assembler manual.