323 Commits

Author SHA1 Message Date
David Given
1535c43648 Rename branch.
--HG--
branch : unlabeled-2.8.1-branch
2015-06-18 23:39:29 +02:00
keie
102c316142 Re-introduced the possibility of a Varying EM_BSIZE
this to be able to use the latest STABLE m68k2 backend.
All this until the newest m68k2 version has been tested.

--HG--
branch : unlabeled-2.8.1
1985-01-24 16:59:06 +00:00
cvs2hg
3703324c51 fixup commit for branch 'unlabeled-2.8.1'
--HG--
branch : unlabeled-2.8.1
1984-11-30 11:14:19 +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
sater
5d5a09a5d0 added code to generate code for ACK assembler.
Works if ACK_ASS is defined.
1984-10-16 13:31:44 +00:00
ceriel
9eb72b6ee8 Had forgotten to initialise the line number on which a nonterminal
symbol occurred first.
1984-10-12 14:19:34 +00:00
ceriel
f1a2fdaa43 No changes 1984-10-11 21:35:58 +00:00
ceriel
bdc67c3332 The former version gave a fatal error message at the first undefined
nonterminal. The new version checks all nonterminals
1984-10-11 10:35:01 +00:00
ceriel
a33d4cdbba The routine findpath did not work. It used the same static buffer for
several calls. Now it uses alloc.
1984-10-09 11:43:19 +00:00
em
94e069fde1 Initial revision 1984-10-09 10:36:29 +00:00
ceriel
c89acc55c7 added "#ifdef NORCSID" 1984-10-09 10:16:33 +00:00
ceriel
d068cf64b3 Added some comments and removed some Lint complaints 1984-10-09 10:13:46 +00:00
ceriel
774ce1ecc3 Initial revision 1984-10-09 09:47:14 +00:00
ceriel
dd1bcb3f60 The routine LLmessage did not insert tokens properly.
This is corrected now.
1984-10-09 09:33:37 +00:00
ceriel
317ab99ecf Changed RCSid 1984-10-08 17:11:03 +00:00
ceriel
474d9d6e0f Added RCSid. 1984-10-08 16:21:03 +00:00
ceriel
a9a0339ec1 Adapted the libpath routine to use EM_DIR from ../../../h/em_path.h 1984-10-08 15:58:23 +00:00
ceriel
27dcc7efc6 Added entry for LLgen. 1984-10-08 15:20:54 +00:00
ceriel
58b1dd5b6d Initial revision 1984-10-08 15:19:18 +00:00
ceriel
82d5bad777 Added entry for LLgen documentation. 1984-10-08 15:00:23 +00:00
ceriel
a7c0f30307 Initial revision 1984-10-08 14:51:38 +00:00
ceriel
de22c41214 Initial revision 1984-10-08 14:24:19 +00:00
ceriel
a21f936651 Initial revision 1984-10-08 14:14:53 +00:00
keie
6cbb37051b Initial revision 1984-10-08 14:11:42 +00:00
keie
550d1fa79e New installation procedure:
1 - New place for binaries and libraries in the ACK tree.
2 - The ranlib action is moved to ../../install which tries it at
    every action.
1984-10-08 14:09:28 +00:00
bal
46dc90f366 bug fixed: generate "add.l #65536,a1" rather than "lea 65536(a1),a1".
The latter form is only generated for constants that fit in a word.
1984-10-08 12:45:38 +00:00
keie
8958cb6faf Altered the test path lib/n_ack into the normal path ACK_PATH. 1984-10-05 15:07:47 +00:00
keie
b5fa0675b6 Added a priority associated with each phase. Paths with the highest
total priority have preference.
1984-10-05 13:34:38 +00:00
keie
8e680a6467 1 - Added some debugging for linker flags.
2 - Setting of NEEDS and RTS is moved to main.c.
3 - Added recognition of -Rphase:[-]number for dynamic priority setting.
1984-10-05 13:31:40 +00:00
keie
c4434ccbce 1 - Most flags used by ack itself are now also passed to the phases
for recognition with mapflag.
2 - A few bugs are removed in connection with argument passing to the
    linker (unrecognized flags and libraries).
3 - The setting of RTS, HEAD and TAIL is done directly after the
    path determination for each file.
1984-10-05 13:28:56 +00:00
keie
1b251d6ab0 Removed the defines needed by util/ack/em_pc.c.
These defaults are now provided in lib/ack/fe.
1984-10-04 11:11:30 +00:00
keie
5376af0d04 1 - Added RCS identification.
2 - Removed the default for compiler and error file pathname.
    These are now always supplied by the callee.
1984-10-04 11:08:42 +00:00
keie
00bd62d942 Corrected a small bug in the pc mapflags. 1984-10-04 10:54:11 +00:00
keie
0abe5e195e 1- Added RCS identification.
2- The pathnames of the Pascal compiler and Compile time-error file
   are now always explicitly passed to em_pc.
1984-10-04 10:47:03 +00:00
keie
4c0687f68b Altered to reflect the changes in em_path.h.
Now dynamically concatenes EM_DIR and error path.
1984-10-04 10:42:13 +00:00
keie
42be23b631 Altered the description of EM_HOME in em_path.h to that of
EM_DIR.
1984-10-02 16:24:59 +00:00
sater
13d6e6815e added missing cast at call to regsave, in ms_gto case 1984-10-02 11:17:57 +00:00
sater
92aecb175c changed definition of myalloc to extern 1984-10-02 10:31:06 +00:00
sater
a3f62d0255 added external definition for myalloc() 1984-10-02 10:30:44 +00:00
keie
080555fffd Bug removed: the trailing zero at the end of a growstring was not
explicitly written in doassign(trans.c).
Only luck kept the program together.
1984-10-01 17:42:56 +00:00
keie
083dccb299 Nill pointers are not allowed in CSA descriptors any more. 1984-10-01 16:05:17 +00:00
keie
1bea1c6883 Null pointer are not allowed any more for in-bound indeces in the CSA
table.
1984-10-01 14:54:09 +00:00
keie
6da6316680 Initial revision 1984-09-25 16:33:15 +00:00
keie
523134a5dc Added National semiconductor assembler. 1984-09-25 16:32:45 +00:00
em
abb1fce8ff 1 - A few minor syntactic changes.
2 - Altered the description of strings as initializers. (sequence of U1's).
1984-09-25 11:06:29 +00:00
keie
6010f7b584 Made the buffer long enough for the machine state on most machines. 1984-09-24 15:18:20 +00:00
keie
a88bca3670 Initial revision 1984-09-24 15:18:07 +00:00
keie
95510f8b4c Initial revision 1984-09-24 14:10:23 +00:00
em
2c4b17e464 Compile-time option GLOBAL_OPT defined. If set, the resulting
peephole optimizer will be suitable for optimizing the output of
the global optimizer. In particular, it doesn't change the register
messages.
1984-09-14 10:25:07 +00:00
keie
c97e1a7bc2 1 - The prop keyword with is flags is now obsolete. Its function is
taken over by several other keywords: stdin, stdout, prep, optimizer,
    combiner and linker.
2 - The search order is changed. First {EM}/lib/{M}/descr, then
    {EM}/lib/ack/{M}, finally {M}.
1984-09-13 14:40:09 +00:00
keie
c93761cadc The t_do bits are not set by this module. The t_next entry is used
to see whether the scan for this phase is already done.
t_do is now set in add_inputs(files.c).
1984-09-13 14:35:02 +00:00
keie
aa4bae59e0 1 - The t_do flags is now set by add_inputs(files.c).
2 - Recognize the fact that it is possible to start a combiner without
    input files.
3 - Removed -d flag. Overflow for -v (>2) now ends up in debug.
    -v may be followed by a number indicating the increment.
1984-09-13 11:07:46 +00:00
keie
527726167a 1 - The outfile entry is only used when the output file must not be thrown
away.
2 - If a combiner has no named input file (only libs+flags) then issue
    a warning message and make up a name.
1984-09-13 11:04:00 +00:00
bal
68a6231d11 pem did not generate a register message for var-parameters of
array- or record type. The routine "treewalk" is modified.
It generates a register message for every var-parameter, even
if it has its noreg-flag set.
1984-09-12 13:21:43 +00:00
bal
ebed9d4804 unlk a6 added to restr(). 1984-09-11 15:44:14 +00:00
keie
5895758914 Added ego, basic and callname conventions. 1984-09-10 17:34:04 +00:00
keie
3c300d3e1c No comment. 1984-09-10 16:51:02 +00:00
keie
8443ef3f8d Combiners (ego, linkers) now use a list of path's(ack.h) to indicate
their input files.
Unmatched flags are now sent to the linker.
1984-09-10 16:48:57 +00:00
keie
1188f0e810 1 - A transformation is succesfull when
a - a stopsuffix is indicated and met,
    b - the last transformation is included in the transformation path.
2 - Maintains a 'cash' of best paths for all transformation to be executed.
1984-09-10 16:46:13 +00:00
keie
1dba1f5328 The input file names of the linker are to be found in a different place. 1984-09-10 16:45:12 +00:00
keie
20100c69c7 1 - added keywords callname and outfile. See manual.
2 - multiple combiners are allowed now.
3 - A different search mechanism is used for finding descriptor files.
1984-09-10 16:42:55 +00:00
keie
c504e2e22a 1 - callname recognition is moved to rmach.c.
2 - The overall scheme is altered.
	first, all input files are processed until a combining phase is met.
	then, all the combining phases are executed, the resulting files
	are again processed until a combiner (or final) phase is met.
3 - The EM_DIR shell variable can be used to set ack's idea of the EM
    home directory.
1984-09-10 16:37:11 +00:00
keie
31f96c6850 1 - The names of temporary files are now Ack'hex''unique'.'suffix'.
'hex' is the pid of the current invocation of ack in hex.
    'unique' is a tail unique to this invocation.
2 - The outfile field is used to indicate default naming, can be ovrrriden
    by the -o flag.
3 - Added handling for phases with multiple inputs (ego, linker).
1984-09-10 16:33:03 +00:00
keie
6eda6ac320 The role of the combiner is -partially- assumed by the linker.
Linker arguments are now part of the transformation structure.
Temp file nameing is changed.
1984-09-10 16:30:47 +00:00
keie
384bb7f6c4 Naming of the tempname is changed (see files.c). 1984-09-10 16:29:37 +00:00
keie
4c265a7cc6 Initial revision 1984-09-03 13:49:40 +00:00
sater
2bf16c5b2f Variable nregvars had a name clash with the array nregvar[] in the
file tables.c. That was different in the 8'th character (!"#$%&'()_).
These variables should actually be static.
1984-08-23 17:07:53 +00:00
keie
0d48be448f We do not use the missing " trick anymore.
The root directory of the EM tree is in the name EM_DIR, the
root directory for tempfiles is in TMP_DIR.
All other path's are relative to EM_DIR.
1984-08-23 13:33:11 +00:00
keie
f6b59970f6 The ACK tree on the vax has as default machine 'vax2'. 1984-08-23 13:27:14 +00:00
keie
1d463f136a The missing trailing " trick is now also used for TMP_DIR. 1984-08-23 13:26:44 +00:00
keie
773f0aa626 The ms_gto is added. This is a trick used to indicate procedures
jumped to with gto.
1984-08-23 13:25:44 +00:00
keie
621f9f4ea9 *** empty log message *** 1984-08-23 13:20:59 +00:00
keie
198da9e822 Initial revision 1984-08-23 13:18:14 +00:00
keie
5db647e661 Initial revision 1984-08-23 13:00:32 +00:00
sater
3744019c53 increased MAXNODES in small memory mode 1984-08-23 12:25:24 +00:00
sater
5689e6ab64 Increased the amount of information passed through error routines
to printf. The routine badassert, running on a 2/4 machine lost it's
last argument on the way.
Anyone know of a better way to solve this problem?
1984-08-17 15:35:28 +00:00
keie
4759d84bdd Added comment. 1984-08-17 14:57:31 +00:00
keie
c2f189c855 Added RCS identification. 1984-08-17 14:44:24 +00:00
sater
822b1c557c Revised to include rcsid of pattern file in binary opt 1984-08-16 16:08:39 +00:00
sater
744bc6845d enlarged string table in big memory case 1984-08-16 13:34:59 +00:00
sater
ce098c78cb added patterns to prevent stacking in *p++ cases 1984-08-15 16:05:54 +00:00
sater
d1b3479a55 added patterns to remove some more dup's 1984-08-15 16:04:19 +00:00
sater
e682a47599 added patterns for inc/dec/adp of local and external offsetted
This makes the getc() macro from C very efficient, among others
1984-08-15 14:31:54 +00:00
sater
eebcf1b22c added patterns to remove as many dup's as possible. 1984-08-15 14:23:42 +00:00
sater
b31c9f4a4a added definition of malloc().
Program crashed on 2/4 machines
1984-08-08 10:54:04 +00:00
sater
e41876f32a reworked patterns for autoincrement stores, now that peephole optimizer
rearranged it.
1984-08-07 10:22:49 +00:00
sater
eff0f36a5d added patterns for *p++ local and external p
added pattern to remove some badly placed dups
1984-08-03 16:37:15 +00:00
sater
6f8e6faa1f added setcc calls to some incrementing ops
added patterns for indirect local and external increments
added patterns for loe ine and such
1984-08-03 16:33:40 +00:00
sater
59fa458a20 removed some superfluous patterns.
Were special cases not needed with the general case.
1984-08-03 13:16:59 +00:00
sater
ff9d23e4ec A move from a nonreg to a reg did not have the effect that all
registers clashing with the destination were erased. Erase added.
1984-08-02 16:31:25 +00:00
keie
93672962a1 The name "unix" is now predefined for preprocessor usage. 1984-08-02 14:13:04 +00:00
sater
afc577b6c7 When building the parameter list for a pf-call, the line number
for the exchanges war remembered at the wrong time.
This caused:
	foo(3,'string')
to cause an external identifier for the string. Fixed.
1984-07-31 09:39:35 +00:00
keie
fe922d190d String initializer handling is changed.
Strings are now considered to be sequences of xU1's.
No alignment is done before or after the string other than the
alignment done for names and segment type switches.
1984-07-30 14:42:33 +00:00
bal
6e519cf02b bug fixed: added "fprintf(codefile,""rts\n");" to restr() 1984-07-30 12:47:54 +00:00
bal
f2e52892ac bugs fixed (syntax errors, patterns moved to front,
"ldl ldl adp sdl sti" requires DATAREG instead of ANY1 on
fakestack)
1984-07-30 11:16:41 +00:00
bal
233b4aeee4 patterns added to generate autoincrement and to generate
a "move X,d0" instead of a "move X,-(sp)" before storing into X
1984-07-27 16:53:19 +00:00
sater
d90f26a8c5 added rcsid 1984-07-27 10:28:48 +00:00
sater
0b07016f0b added PR* routines 1984-07-26 13:15:21 +00:00
sater
5894adfd67 Changed procedure prolog to use PR* routines. 1984-07-26 13:05:22 +00:00
keie
14a3683f85 *** empty log message *** 1984-07-23 11:49:00 +00:00
sater
eebc753306 removed all calls to blm~ from table
duplicated some patterns for in[lc] to deal with de[lc]
extra rule for adi 2 to deal with source1 cleverly
1984-07-23 11:29:59 +00:00
sater
978dd0191a removed blm.s, not used by table anymore 1984-07-20 16:20:54 +00:00
sater
5b20e4fed2 edited to make reentrant, no more globals in use 1984-07-20 16:20:28 +00:00
sater
c2f383773d added copyright notice 1984-07-20 13:54:36 +00:00
sater
ebc7a50d8f added rcsid
adapted to new archive updating style, with LIST and march and all that
1984-07-20 11:32:47 +00:00
sater
98c1d6868f Initial revision 1984-07-20 11:25:31 +00:00
sater
c99e75a01b added rcsid 1984-07-20 11:25:18 +00:00
sater
bb4210de79 added copyright notice 1984-07-20 11:20:12 +00:00
sater
b410ca7f8c removed copyright notice, wasn't really *written* by us. 1984-07-20 11:07:12 +00:00
sater
25a8908e26 added rcsid 1984-07-20 11:03:31 +00:00
sater
597d25decd Initial revision 1984-07-20 10:44:57 +00:00
sater
eb823929a1 A sti 8 of a regdef8 token went into panic mode. Fixed. 1984-07-20 10:32:48 +00:00
sater
ef248ee65e to check long >= 0 or long < 0 it is enough to test high order word. Added.
anding and oring of long constants is much better now
dvu 2 and rmu 2 by positive constants is now done inline.
1984-07-19 16:50:27 +00:00
sater
e20ab23a4b added rcsid 1984-07-19 15:03:30 +00:00
sater
5fb767966b Initial revision 1984-07-19 15:01:43 +00:00
sater
3b991bd1ce Archive made with archiver in environment ASAR if set, arch otherwise 1984-07-19 14:55:12 +00:00
sater
15e9fd8cd5 removed #ifdef UNTESTED around logical instructions without arguments,
seems they were used ( which implicitly means tested ) after all
1984-07-19 14:03:49 +00:00
sater
73d8f05fb5 Initial revision 1984-07-19 13:52:18 +00:00
sater
3ca5d2fcb6 added rcsid 1984-07-19 13:34:12 +00:00
sater
8483d153f2 changed name from comparchentry to compmodule 1984-07-19 13:22:36 +00:00
sater
b95f4c8bfd Initial revision 1984-07-19 13:20:15 +00:00
sater
801226a45c old code put back, now register handling is different again
actually old code never was removed, due to a misunderstanding
about comment conventions.
1984-07-19 13:12:03 +00:00
sater
f16fdf4e7f makefile adapted to new style archive handling, RCS and all that 1984-07-19 13:11:36 +00:00
sater
d082a2b0a2 a setl instruction was changed to a setd
setl was just plain wrong
1984-07-19 13:09:53 +00:00
sater
d5aa088876 Initial revision 1984-07-19 12:51:00 +00:00
bal
8defe7ce53 rcsid added 1984-07-19 11:50:29 +00:00
bal
69584eb0ca Initial revision 1984-07-19 11:50:28 +00:00
sater
1eade4ac9d Initial revision 1984-07-19 11:50:18 +00:00
bal
da4092cbdf New implementation of GTO (without register save masks)
several optimizations added
1984-07-19 11:15:28 +00:00
bal
c1fd560106 New implementation of GTO (without register save masks) 1984-07-19 11:07:15 +00:00
bal
17caf7129e rcsid added
several optimizations added
1984-07-19 11:02:06 +00:00
bal
a520ccdbbc rcsid added
clr.w -(sp) generated in prolog if register save mask is 0
1984-07-19 10:57:19 +00:00
bal
eeeff10a51 Initial revision 1984-07-19 10:03:10 +00:00
bal
c75693c35a Initial revision 1984-07-19 09:37:24 +00:00
sater
e1aef765a0 added patterns for ldc adi/ldc sbi with zero high order word
added patterns for *--p with p register
added patterns to generate cmpb to compare two bytes.
added patterns to use regvar to index global array
added patterns for lol inl
added patterns for external pointer increment/decrement
1984-07-18 16:47:24 +00:00
sater
2943d957bb The patterns to change a cii to cuu when dealing with a known positive
quantity was technically wrong. Changed to generate a cui.
1984-07-18 15:54:25 +00:00
sater
ec992b001c added definition of index, to keep compiler happy 1984-07-18 14:14:46 +00:00
sater
8304ce5eae removed recursive comments
removed NC with sti rules
added rule to reverse operands of adi 2
added rule to convert loc sbi to loc adi
added loc slu -> loc sli rule
added local++ rule
added rule for asping xsource2
added rule for csb when nothing on stack
1984-07-18 13:39:24 +00:00
sater
8af636a3c1 added rcsid
changed instruction label format to allow more than 256 procedures
1984-07-18 13:32:11 +00:00
sater
3169067979 changed instruction label format to allow more than 256 procedures 1984-07-18 13:28:01 +00:00
sater
a241500a91 added rcsid
converted to recognize and generate new 0%o format
1984-07-18 13:14:18 +00:00
sater
0473678491 added patterns for unsigned shifting
added patterns to delay additive operations until after multiplicative,
  this can be useful for some register machines
1984-07-18 11:05:28 +00:00
sater
fc59a0d703 Improved error handling on unterminated strings 1984-07-18 11:04:58 +00:00
sater
17a12c0bd7 added -f flags to all calls to rm 1984-07-16 15:29:48 +00:00
sater
e2f49f412d 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 )
1984-07-16 14:39:21 +00:00
keie
d2493e4bc3 *** empty log message *** 1984-07-16 09:36:12 +00:00
keie
b124a6d7da Added z8000 assembler manual. 1984-07-16 09:32:22 +00:00
sater
267955e114 added missing #endif
added two patterns, big improvement
added patterns for ciu and cui
some cosmetic change
1984-07-13 16:13:56 +00:00
keie
c5d95ce75d *** empty log message *** 1984-07-13 15:20:58 +00:00
keie
ebde08999f Added lines for DECUS cpp manual. 1984-07-13 15:19:19 +00:00
keie
73da8c2a2c The check for a too high offset in a hol is repaired. 1984-07-13 15:03:05 +00:00
keie
36af1e09be A bug in the exchange was repaired.
Exchanges across pseudo-instructions didn't work properly.
1984-07-13 15:01:23 +00:00
sater
da8966a6c8 Removed some patterns that have never been tested.
Now if someone uses them he will hear that it doesn't work.
That must be better then giving him code that probably won't work.
All these patterns had to do with things like adf without an argument
and things like that.
1984-07-13 14:55:37 +00:00
sater
caa918f7d9 Initial revision 1984-07-13 11:25:46 +00:00
sater
28960f5d32 Initial revision 1984-07-13 11:12:23 +00:00
sater
ea298b258e changed format of rcsid message 1984-07-12 15:18:13 +00:00
sater
a81a1917f5 Initial revision 1984-07-12 15:16:23 +00:00
sater
2dc4c564e2 added rcsid 1984-07-12 14:55:49 +00:00
sater
63324761c6 changed explanation of .base pseudo
added rcsid
1984-07-12 14:55:22 +00:00
sater
273ba7be86 added rcsid
added lines for formatting new manuals
1984-07-12 14:53:30 +00:00
sater
aaf81a512b *** empty log message *** 1984-07-12 14:51:48 +00:00
sater
96969afa26 Initial revision 1984-07-12 14:14:54 +00:00
sater
70c85c09b9 *** empty log message *** 1984-07-12 14:08:27 +00:00
sater
1eaf02a3e1 added rcsid 1984-07-12 14:07:14 +00:00
sater
10b9e1a748 added rcsid
added compilation of tstgto.p
1984-07-12 14:05:03 +00:00
sater
381355408e Initial revision 1984-07-12 13:50:44 +00:00
keie
8c892e94eb asprint is removed at cleanup time. 1984-07-12 13:24:02 +00:00
keie
150bf2e6d4 1 - Dump has a parameter.
2 - Dump are enabled.
1984-07-12 13:23:03 +00:00
keie
25ffbc9e0c 1 - A header is treated as an unsigned number.
2 - The low order word of the size in archives is fetched as unsigned.
3 - Sizes are unsigned.
1984-07-12 13:20:48 +00:00
keie
706fe6d592 Parameter added to dump preprocessor variable. 1984-07-12 12:58:18 +00:00
keie
d99c21963d 1 - Header fetch was changed to unsigned.
2 - Extra parentheses are needed by some compilers.
1984-07-12 12:57:36 +00:00
keie
28be8af452 Initial revision 1984-07-12 12:48:33 +00:00
sater
3e78acff56 removed REGPATCH define 1984-07-12 11:03:18 +00:00
sater
e3acc1a9ed added definition of newplb()
removed a tab from some string
1984-07-12 11:02:44 +00:00
sater
4001b657db Removed unbalanced quotes in comments, needed for new cpp 1984-07-12 10:50:47 +00:00
sater
2f56cb1cad reworked to use ack instead of npc.
made more user-friendly (ha ha)
1984-07-12 10:42:33 +00:00
sater
6b9a8d8685 Now lexical analyzer skips lines starting with #
to kill off remnants of some preprocessor.
1984-07-12 10:18:19 +00:00
sater
3287090f5b added description of newplb macro.
Enlarged an example.
1984-07-12 10:13:56 +00:00
sater
aa9d50ff5a The sequence:
lin 100
  cal $foo
  lin 101
used to have it's second lin lni'ed. This is obviously wrong.
A check is now made for procedure calls.
1984-07-12 09:29:49 +00:00
sater
4558cb8836 Replaced call to newilb after pro pseudo to call to newplb,
including retrofit for existing mach.h files
1984-07-12 09:26:24 +00:00
sater
8bd6bcfde0 Increased MAXINSTANCE in big memory model 1984-07-12 09:23:38 +00:00
keie
171f347998 Added the entries for instructions with 32-bit arguments. 1984-07-02 16:04:26 +00:00
keie
fcf9595988 1 - added routines to read unsigned 16-bit numbers
2 - cleanup of writing of ABS block, was in error for wordsize>4.
3 - strings are now padded up to a multiple of the wordsize.
4 - the padding algorithm for alignment was in error for wordsize>2.
1984-07-02 16:01:50 +00:00
keie
a54514d56f Not in the initial distribution. 1984-07-02 15:46:59 +00:00
keie
e9aa4befbb Added asprint to list of files to remove with 'clean'. 1984-07-02 15:46:06 +00:00
6 changed files with 2341 additions and 3053 deletions

View File

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

View File

@@ -1,274 +0,0 @@
#ifndef NORCSID
static char rcsid[] = "$Header$";
#endif
/*
* (c) copyright 1983 by the Vrije Universiteit, Amsterdam, The Netherlands.
*
* This product is part of the Amsterdam Compiler Kit.
*
* Permission to use, sell, duplicate or disclose this software must be
* obtained in writing. Requests for such permissions may be sent to
*
* Dr. Andrew S. Tanenbaum
* Wiskundig Seminarium
* Vrije Universiteit
* Postbox 7161
* 1007 MC Amsterdam
* The Netherlands
*
*/
/*
* machine dependent back end routines for the Motorola 68000
*/
con_part(sz,w) register sz; word w; {
while (part_size % sz)
part_size++;
if (part_size == TEM_WSIZE)
part_flush();
if (sz == 1) {
w &= 0xFF;
if (part_size == 0)
w <<= 8;
part_word |= w;
} else {
assert(sz == 2);
part_word = w;
}
part_size += sz;
}
con_mult(sz) word sz; {
if (sz != 4)
fatal("bad icon/ucon size");
fprintf(codefile,".long %s\n",str);
}
con_float() {
static int been_here;
if (argval != 4 && argval != 8)
fatal("bad fcon size");
fprintf(codefile,".long\t");
if (argval == 8)
fprintf(codefile,"F_DUM,");
fprintf(codefile,"F_DUM\n");
if ( !been_here++)
{
fprintf(stderr,"Warning : dummy float-constant(s)\n");
}
}
#ifdef REGVARS
regscore(off,size,typ,score,totyp)
long off;
{
if (score == 0) return -1;
switch(typ) {
case reg_float:
return -1;
case reg_pointer:
if (size != 4 || totyp != reg_pointer) return -1;
score *= 2;
break;
case reg_loop:
score += 5;
/* fall through .. */
case reg_any:
if (size != 2 || totyp == reg_pointer) return -1;
break;
}
if (off >= 0) {
/* parameters must be initialised with an instruction
* like "move.w 4(a6),d0", which costs 2 words.
*/
score -= 2;
}
score -= 1; /* take save/restore into account */
return score;
}
struct regsav_t {
char *rs_reg; /* e.g. "a3" or "d5" */
long rs_off; /* offset of variable */
int rs_size; /* 2 or 4 bytes */
} regsav[9];
int regnr;
int nr_a_regs,nr_d_regs;
int TEM_BSIZE;
static long nlocals;
prolog(n)
{ nlocals = n; }
i_regsave()
{
regnr = 0;
nr_a_regs = 0;
nr_d_regs = 0;
TEM_BSIZE = 0;
}
#define MOVEM_LIMIT 2
/* If #registers to be saved exceeds MOVEM_LIMIT, we
* use the movem instruction to save registers; else
* we simply use several move.l's.
*/
save()
{
register struct regsav_t *p;
int i;
if (regnr > MOVEM_LIMIT) {
fprintf(codefile,"movem.l ");
for (p = regsav; ;) {
fprintf(codefile,"%s",p->rs_reg);
if (++p == &regsav[regnr]) break;
putc('/',codefile);
}
fprintf(codefile,",-(sp)\n");
} else {
/* Note that the order in which the registers are saved
* is important; it is used by gto.s.
*/
for (i = 0; i < nr_a_regs; i++) {
fprintf(codefile,"move.l a%d,-(sp)\n",5-i);
}
for (i = 0; i < nr_d_regs; i++) {
fprintf(codefile,"move.l d%d,-(sp)\n",7-i);
}
}
/* Push a mask that indicates which registers were saved */
assert(nr_d_regs < 8 && nr_a_regs < 8);
if (nr_d_regs == 0 && nr_a_regs == 0) {
fprintf(codefile,"clr.w -(sp)\n");
} else {
fprintf(codefile,"move.w #%d,-(sp)\n",
nr_d_regs + (nr_a_regs<<3));
}
/* Compute AB - LB */
TEM_BSIZE = 4 * (nr_d_regs + nr_a_regs) + 10;
/* allocate space for local variables */
fprintf(codefile,"tst.b -%D(sp)\nlink\ta6,#-%D\n",nlocals+40,nlocals);
/* initialise register-parameters */
for (p = regsav; p < &regsav[regnr]; p++) {
if (p->rs_off >= 0) {
fprintf(codefile,"move.%c %ld(a6),%s\n",
(p->rs_size == 4 ? 'l' : 'w'),
p->rs_off + TEM_BSIZE,
p->rs_reg);
}
}
}
restr()
{
register struct regsav_t *p;
int i;
fprintf(codefile,"unlk a6\n");
fprintf(codefile,"add.l #2,sp\n"); /* pop mask */
if (regnr > MOVEM_LIMIT) {
fprintf(codefile,"movem.l (sp)+,");
for (p = regsav; ;) {
fprintf(codefile,"%s",p->rs_reg);
if (++p == &regsav[regnr]) break;
putc('/',codefile);
}
putc('\n',codefile);
} else {
for (i = nr_d_regs - 1; i >= 0; i--) {
fprintf(codefile,"move.l (sp)+,d%d\n",7-i);
}
for (i = nr_a_regs - 1; i >= 0; i--) {
fprintf(codefile,"move.l (sp)+,a%d\n",5-i);
}
}
fprintf(codefile,"rts\n");
}
f_regsave()
{
save();
}
regsave(str,off,size)
char *str;
long off;
{
assert (regnr < 9);
regsav[regnr].rs_reg = str;
if (str[0] == 'a') {
nr_a_regs++;
} else {
assert(str[0] == 'd');
nr_d_regs++;
}
regsav[regnr].rs_off = off;
regsav[regnr++].rs_size = size;
fprintf(codefile, "!Local %ld into %s\n",off,str);
}
regreturn()
{
restr();
}
#endif
#ifndef REGVARS
prolog(nlocals) full nlocals; {
fprintf(codefile,"tst.b -%D(sp)\nlink\ta6,#-%D\n",nlocals+40,nlocals);
}
#endif
mes(type) word type ; {
int argt ;
switch ( (int)type ) {
case ms_ext :
for (;;) {
switch ( argt=getarg(
ptyp(sp_cend)|ptyp(sp_pnam)|sym_ptyp) ) {
case sp_cend :
return ;
default:
strarg(argt) ;
fprintf(codefile,".define %s\n",argstr) ;
break ;
}
}
default :
while ( getarg(any_ptyp) != sp_cend ) ;
break ;
}
}
char *segname[] = {
".text", /* SEGTXT */
".data", /* SEGCON */
".data", /* SEGROM */
".bss" /* SEGBSS */
};

File diff suppressed because it is too large Load Diff

View File

@@ -1,42 +0,0 @@
.define .dvi
! signed long divide
.text
.dvi:
movem.l d0/d2,.savdvi
move.l (sp)+,.retdvi
move.l (sp)+,d0
move.l (sp)+,d1
clr.l d4
tst.l d0 ! divisor
bpl 1f
neg.l d0
not d4
1:
tst.l d1 ! dividend
bpl 2f
neg.l d1
not d4
swap d4
not d4
swap d4
2:
move.l d1,-(sp)
move.l d0,-(sp)
jsr .dvu
tst d4
beq 5f
neg.l d1 ! quotient
5:
tst.l d4
bpl 6f
neg.l d3 ! remainder
6:
movem.l .savdvi,d0/d2
move.l .retdvi,-(sp)
rts
.data
.savdvi: .space 8
.retdvi: .long 0
.text
.align 2

View File

@@ -1,78 +0,0 @@
d=../..
l=$d/mach/m68k2/lib
h=$d/h
ASS_PATH=$l/em_ass
CC=pmds
SEP_OPT=-n
CFLAGS=-O -.c
all: ass$(SEP_OPT)
clean:
-rm -f ass-i ass-n *.o maktab *.old asstb.c
install : all
cp ass$(SEP_OPT) $(ASS_PATH)
cmp : all
cmp ass$(SEP_OPT) $(ASS_PATH)
lint: ass00.c ass30.c ass40.c ass50.c ass60.c ass70.c \
ass80.c assci.c assda.c assrl.c asstb.c asscm.c
lint -hpvbx \
ass00.c ass30.c ass40.c ass50.c ass60.c ass70.c \
ass80.c assci.c assda.c assrl.c asstb.c asscm.c
ass-n: ass00.o ass30.o ass40.o ass50.o ass60.o ass70.o \
ass80.o assci.o assda.o assrl.o asstb.o asscm.o \
$l/em_data.a
$(CC) $(CFLAGS) -s -o ass-n \
ass00.o ass30.o ass40.o ass50.o ass60.o ass70.o \
ass80.o assci.o assda.o assrl.o asstb.o asscm.o \
$l/em_data.a >ass.symb
ass-i: ass00.o ass30.o ass40.o ass50.o ass60.o ass70.o \
ass80.o assci.o assda.o assrl.o asstb.o asscm.o \
$l/em_data.a
$(CC) -i $(CFLAGS) -o ass-i \
ass00.o ass30.o ass40.o ass50.o ass60.o ass70.o \
ass80.o assci.o assda.o assrl.o asstb.o asscm.o \
$l/em_data.a
ass00.o ass40.o ass60.o ass70.o ass80.o assrl.o: \
$h/local.h $h/em_spec.h $h/as_spec.h \
$h/em_flag.h $h/arch.h ass00.h assex.h
assci.o: $h/local.h $h/em_spec.h $h/as_spec.h \
$h/em_flag.h $h/em_mes.h $h/em_pseu.h \
$h/em_ptyp.h $h/arch.h ass00.h assex.h
ass30.o ass50.o : \
$h/local.h $h/em_spec.h $h/as_spec.h \
$h/em_flag.h ip_spec.h ass00.h assex.h
ass80.o: $h/em_path.h
assda.o: $h/local.h $h/em_spec.h $h/as_spec.h \
$h/em_flag.h $h/arch.h ass00.h
asscm.o: ass00.h
asstb.o: asstb.c
asstb.c: maktab ip_spec.t
maktab ip_spec.t asstb.c
maktab: maktab.c $h/em_spec.h ip_spec.h $h/em_flag.h \
$l/em_data.a
$(CC) -O -o maktab maktab.c $l/em_data.a
opr:
make pr ^ opr
pr:
@(pr ass00.h assex.h ip_spec.h ass?0.c ass[rcd]?.c \
maktab.c ; pr -3 ip_spec.t)

2341
util/cgg/bootgram.y Normal file

File diff suppressed because it is too large Load Diff