David Given
bf73fcdb64
Add inl and del opcodes.
2016-10-02 14:44:21 +02:00
David Given
b298c27c63
Refactor mcg.h as it's getting a bit big; keep track of register variables.
2016-10-02 00:30:33 +02:00
David Given
06059233da
Make betterer.
2016-10-01 23:41:45 +02:00
David Given
65e75be42d
Fix edge case where leftover pushes would occasionally cause infinite loops in
...
the analysis.
2016-10-01 23:41:35 +02:00
David Given
73d7e89c32
Show expression trees correctly.
2016-10-01 23:41:03 +02:00
David Given
3474e20274
Deal with malformed mes instructions emitted by ego.
2016-10-01 23:13:39 +02:00
David Given
a3cfe6047f
More rigorous dealing of IR groups; no need for is_generated and is_root any
...
more (but now passes are required to set IR roots properly when changing
instructions).
2016-10-01 22:58:29 +02:00
David Given
21898f784a
We're going to need some type inference after all, I think. Let's do a little
...
for now and see how it goes.
2016-10-01 19:10:22 +02:00
David Given
91e277e046
Predicates work; we now have prefers and requires clauses. Predicates must be
...
functions. Not convinced that semantic types are actually working --- there are
still problems with earlier statements leaving things in the wrong registers.
2016-10-01 13:56:52 +02:00
David Given
4a3a9a98dc
It doesn't really make a lot of sense to have BURG nonterminal names different
...
to register classes, so combine them. Refactor the map code.
2016-10-01 12:17:14 +02:00
David Given
3a973a19f3
Move fatal(), warning() and aprintf() into the new data module (because they're
...
really useful).
2016-09-30 19:10:30 +02:00
David Given
0d246c0d73
Much better handling of fragments (no run-time code needed to distinguish them
...
from registers) and better handling of individual hops within a paragraph ---
no more ghastly hacks to try and distinguish the input from the output.
2016-09-29 22:06:04 +02:00
David Given
a0131fdb47
You know what, the type inference stuff is a complete red herring. What this
...
actually needs is a more intelligent register allocator. So, remove the type
inference.
2016-09-29 19:58:02 +02:00
David Given
4572f1b774
Actually, I don't need vregs: hops work just as well. Particularly if I
...
restructure things so that I don't need to walk the blasted ir / burg tree
every time I look at an instruction.
2016-09-27 23:38:47 +02:00
David Given
e77c5164cf
Fleshed out hops and vregs. The result is almost looking like code now ---
...
uncanny.
2016-09-27 00:19:45 +02:00
David Given
f552c9c7c6
Move map into the data module.
2016-09-26 23:03:04 +02:00
David Given
c4b8e00ae2
Revamp the array module not to use nasty macros any more. Slightly more verbose
...
to use, but definitely cleaner.
2016-09-26 22:48:58 +02:00
David Given
3671892c34
Move the array library into the data module.
2016-09-26 22:24:49 +02:00
David Given
cc176e5183
Keep more data around about ir instructions. Implement a half-baked type
...
inference routine to propagate information about floats up the tree, so we know
whether to put floats into special registers as early as possible.
2016-09-26 22:12:46 +02:00
David Given
416b13fd76
Start factoring out the hardware op code.
2016-09-25 23:29:59 +02:00
David Given
39aa672422
Sort of keep track of registers and register classes. Start walking the
...
generated instruction tree --- holy cow, they look like instructions!
2016-09-25 22:17:14 +02:00
David Given
bde5792b1a
Collapse several rule arrays into one; actually generate the array properly.
2016-09-25 17:14:54 +02:00
David Given
67eb21d428
Rename struct insn to struct em (throughout).
2016-09-25 12:29:03 +02:00
David Given
9f78e0b36b
Rethink the way patterns are mapped to rules; generate emitters (probably
...
badly).
2016-09-25 11:49:51 +02:00
David Given
7c028bdd45
We now record the code fragments to be emitted by each rule.
2016-09-25 00:21:46 +02:00
David Given
717b77dd0a
Instruction selection is so important the file needs a longer name.
2016-09-24 22:50:53 +02:00
David Given
629e0ddfc6
Some instruction selection is now happening.
2016-09-24 22:46:08 +02:00
David Given
c8fcbe282a
More grammar changes.
2016-09-24 19:03:55 +02:00
David Given
2acc4ed29d
IR codes are now owned by mcgg; ir terminals are inserted into the table during
...
compilation (so you can refer to them).
2016-09-24 18:31:35 +02:00
David Given
1516657907
Crudely bolt on mcgg to mcg itself.
2016-09-24 17:20:40 +02:00
David Given
6643d39b2c
Fix some late-night typo bugs.
2016-09-24 01:09:32 +02:00
David Given
bb9aa030a5
Procedure compilation now happens after the entire EM file has been read in (so
...
that we can look inside data blocks which might be defined in the future...
sigh, csa and csb). csa and csb no longer generate invalid IR.
2016-09-24 01:04:00 +02:00
David Given
ed67d427c9
Replaced the block splicer with a trivial block eliminator (which rewrites
...
jumps to blocks which contain only a jump). Don't bother storing the bb graph
in the ir nodes; we can find it on demand by walking the tree instead ---
slower, but much easier to understand and more robust. Added a terrible map
library.
2016-09-23 23:59:15 +02:00
David Given
f8bbf9e87d
Each pass now lives in its own source file; much cleaner.
2016-09-23 21:07:16 +02:00
David Given
9077baa850
Add a bodged in algorithm for converting basic block communication from stacked
...
variables to SSA. Also add dead block removal and block splicing. IR code is
much better now.
2016-09-22 23:19:29 +02:00
David Given
6a74cb2e11
Tracing cleanup. Simplified the IR code. Some more opcodes.
2016-09-22 00:15:48 +02:00
David Given
4546dd5f22
Massive grammar overhaul and refactor. Hacked in support for predicates, where
...
instructions can be turned on and off based on their parameters. New lexer
using a lexer. Now quite a lot of the way towards being a real instruction
selector.
2016-09-21 00:43:10 +02:00
David Given
36d7d1ee4e
Create hacky fake basic blocks for data fragments, used to track which
...
instruction labels descriptor blocks refer to; this allows csa and csb to know
where they're going.
2016-09-20 00:19:39 +02:00
David Given
dcba03646b
Treebuilder now gets to the bottom of my test file, merrily generating
...
(probably horribly broken) IR.
2016-09-19 23:30:41 +02:00
David Given
6ce2495aeb
Store the EM code up front and build the basic block graph *before*
...
generating the IR code. Lots more IR code.
2016-09-19 23:06:59 +02:00
David Given
176cd7365c
Archival checking of the half-written IR treebuilder.
2016-09-18 23:24:54 +02:00
David Given
24380e2a93
Abstract out the EM reader; skeleton of the tree builder.
2016-09-18 00:02:16 +02:00
David Given
2eee391aef
Basic skeleton of em parser.
2016-09-17 22:21:47 +02:00
David Given
f67c98e239
Distributions are a pain --- let's not bother any more. Instead, we just tag
...
the repository and download a complete snapshot, old and ancient stuff and all.
2016-09-02 23:00:38 +02:00
David Given
612e38f1c6
Remove the old make-based build system, plus some big chunks of horribly
...
obsolete protomake build system.
2016-09-02 22:17:51 +02:00
David Given
204f932ed2
Raspberry Pi backend now builds.
2016-08-20 12:40:13 +02:00
David Given
4d24666432
Move util/data into modules/src/em_data, for consistency with the other
...
modules.
2016-08-14 14:09:38 +02:00
David Given
38fa6941d5
linux68k builds now.
2016-08-14 11:34:18 +02:00
David Given
262c5fedcf
Biggish refactor to break cycles; my build rules were full of them. cpm builds,
...
which requires top and topgen.
2016-08-14 01:39:40 +02:00
David Given
b50dc4214a
Add check for undefined variables. Find undefined variables. Fix undefined
...
variables.
2016-08-05 00:01:55 +02:00
David Given
5e84be70fd
Massive ackbuilder refactor --- cleaner and more expressive. Lists
...
are automatically flattened (leading to better build files), and the
list and filename functions are vastly more orthogonal.
2016-08-04 23:51:19 +02:00
David Given
b2bb4ce3b2
Builds libend (the simplest library). Becoming obvious I need to rework the way
...
ackbuilder deals with lists.
2016-07-30 00:39:22 +02:00
David Given
a8a9d1bbfa
yacc, ncgg; platform ncg builds now.
2016-07-26 23:35:30 +02:00
David Given
bff5c4019c
Baby steps towards building a platform --- make the assembler work.
...
Add ackbuilder support for C preprocessor files and yacc.
2016-07-24 00:50:02 +02:00
David Given
88bd7ce126
Remove defunct pmfiles.
...
--HG--
branch : default-branch
2016-06-03 13:56:50 +02:00
David Given
ef8e6e25e0
Fix a whole pile of issues related to the failed attempt to increase
...
the number of types of relocation possible in the object file. (Now,
hopefully, working.)
Also change the object serialiser/deserialiser to never try to read or
write raw structures; it's way safer this way and we don't need the
performance boost any more.
--HG--
branch : default-branch
2016-03-18 21:46:55 +01:00
David Given
88e13ecce3
Don't use the ACK preprocessor on host files --- use the host preprocessor
...
instead.
--HG--
branch : default-branch
2016-03-14 20:58:19 +01:00
David Given
e85991ec86
Fix stray 'call file'.
...
--HG--
branch : default-branch
2016-03-13 21:40:05 +01:00
David Given
ff0c78cc78
Merge from default.
...
--HG--
branch : dtrg-videocore-branch-branch
2016-03-13 21:13:09 +01:00
David Given
9f23fbbe6a
Allow machines to use cg if they wish.
...
--HG--
rename : mach/proto/ncg/build.mk => mach/proto/cg/build.mk
rename : util/ncgg/build.mk => util/cgg/build.mk
2015-03-23 00:08:51 +01:00
David Given
c5018d7088
64-bit-ify (adhoc varargs are evil).
2015-03-23 00:07:59 +01:00
David Given
3d5e72e20b
Newer versions of GNU Make have a new function which collides with a
...
variable we're using; change the name of the variable.
2015-03-22 12:09:46 +01:00
David Given
fd2360be0f
Ship assembler man pages.
...
--HG--
branch : dtrg-videocore
rename : man/8080_as.6 => man/i80_as.6
rename : man/m68k2_as.6 => man/m68020_as.6
2013-06-21 23:20:50 +01:00
David Given
d3e3e72860
Update from trunk.
...
--HG--
branch : dtrg-videocore
2013-05-29 15:03:48 +01:00
David Given
e0c121d6e6
Use relocation enumerations rather than hard-coded values for relocation types
...
(these were causing problems due to the enumeration values having changed).
2013-05-29 14:11:04 +01:00
David Given
5082b2a5d7
Add lea instruction. Fix dependency issues.
...
--HG--
branch : dtrg-videocore
2013-05-20 19:56:33 +01:00
David Given
a46ee91859
Fix warning.
...
--HG--
branch : dtrg-videocore
2013-05-19 23:18:36 +01:00
David Given
e7c2029c9c
Dependency fixes.
2013-05-17 00:04:37 +01:00
David Given
e5f6d5acfa
Fix buffer overrun looking up type information for op_lab pseudoops (as
...
they're not EM opcodes, we shouldn't look them up in em_flags!).
2013-05-16 22:02:59 +01:00
David Given
11377070fd
Update distribution files.
...
--HG--
branch : dtrg-buildsystem
2013-05-15 23:46:15 +01:00
David Given
8fbce949f5
Now describe the make-based build system in the README.
...
--HG--
branch : dtrg-buildsystem
2013-05-15 23:12:05 +01:00
David Given
a68b117e96
Add missing dependency.
...
--HG--
branch : dtrg-buildsystem
2013-05-14 14:55:29 +01:00
David Given
07453d184a
Top, topgen, aelflod. Moved the libraries back into the platform-specific
...
directories --- wrangling descr files was too hard. C programs can be built
for cpm, pc86, linux386, linux68k!
--HG--
branch : dtrg-buildsystem
rename : util/ack/build.mk => util/led/build.mk
rename : util/LLgen/build.mk => util/topgen/build.mk
2013-05-13 23:26:15 +01:00
David Given
442306d557
Split off some of the platform-independent stuff (such as as and ncg).
...
--HG--
branch : dtrg-buildsystem
rename : plat/pc86/build.mk => mach/i386/build.mk
rename : plat/pc86/build.mk => mach/i80/build.mk
rename : plat/pc86/build.mk => mach/i86/build.mk
rename : plat/pc86/build.mk => mach/m68020/build.mk
rename : plat/pc86/build.mk => mach/powerpc/build.mk
2013-05-13 22:12:46 +01:00
David Given
b0c238eb5d
Made a start on building the runtimes for each platform and language; the
...
Linuxes all build.
--HG--
branch : dtrg-buildsystem
rename : modules/src/em_mes/build.mk => modules/src/read_em/build.mk
rename : plat/pc86/build.mk => plat/linux386/build.mk
rename : plat/pc86/build.mk => plat/linux68k/build.mk
rename : plat/pc86/build.mk => plat/linuxppc/build.mk
rename : util/ack/build.mk => util/misc/build.mk
2013-05-12 23:51:55 +01:00
David Given
c1aca7dae5
First milestone of replacing the build system.
...
--HG--
branch : dtrg-buildsystem
rename : lang/cem/cpp.ansi/Parameters => lang/cem/cpp.ansi/parameters.h
2013-05-12 20:45:55 +01:00
David Given
c93cb69959
Check in incomplete Linux PowerPC and M68K work.
...
--HG--
branch : dtrg-experimental-powerpc
2013-05-08 00:48:48 +01: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
dtrg
fc44fe2185
Properly handles files ending in a partial line.
2008-03-20 22:50:50 +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
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
b611731ec3
Updated .distr files for the new release.
2007-02-25 12:51:55 +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
c21ba9ed0f
Updated to work with the new version of pm.
2006-11-11 22:59:52 +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
9bcefaafa8
Broke dependency on tool_cpp in order to speed up the build.
2006-07-30 23:41:16 +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
304c0e21a0
Added support for the top target peephole optimiser.
2006-07-22 12:31:19 +00:00
dtrg
fdcdaadcb8
Rationalised use of #includes to be more standards-compliant.
2006-07-22 12:28:20 +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
097c640a6c
First version in CVS.
2006-07-20 23:24:28 +00:00
dtrg
4c0a0e6119
Rationalised use of #includes to be more standards-compliant.
2006-07-18 17:10:29 +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
dd400ca720
Removed a call to _cleanup(), which appears to be a Minixism (and should be unnecessary).
2005-06-24 22:12:02 +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
1db6a3029b
Header --> Id
1994-06-24 14:02:31 +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
e30d27c418
Fixed bug in newlabel: assertion was wrong
1993-11-24 12:07:26 +00:00
ceriel
0e6e7bc913
Fixed for machines without .o
1993-11-19 09:59:11 +00:00
ceriel
861f4afc0c
Added -LIB where needed
1993-10-07 10:56:25 +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
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
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
4d068e8e04
ply adaption was wrong for EM replacements
1992-12-17 12:52:21 +00:00
ceriel
0299ae9ad0
Improved installation mechanism
1992-09-07 13:21:34 +00:00
ceriel
8cbf1bae34
Apparently forgot about the .so suffix
1992-07-28 08:28:48 +00:00
ceriel
0571a16bcb
Allow for machine-dependent options
1992-03-27 17:38:54 +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
b23ed92d7e
Use cp_dir to copy directories
1991-12-18 09:44:10 +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
0c59e2e12d
Prevent name clashes with sys/types.h on system V
1991-12-16 15:24:24 +00:00
ceriel
d162f3edb0
Made acceptable for our ANSI C compiler
1991-12-02 15:30:28 +00:00
ceriel
6cc9665025
Fix in proto.make
1991-10-22 14:35:13 +00:00
ceriel
e72aafb165
Added rule to compile as.c
1991-10-22 09:18:32 +00:00
ceriel
237fb752e5
Use ASAR instead of AR
1991-10-16 17:57:53 +00:00
ceriel
bade2375b5
Added proto.libf77
1991-10-10 15:00:43 +00:00
ceriel
7520aec9d4
Made to work for SPARC
1991-09-27 14:51:43 +00:00
ceriel
8baee004e8
Added mes 11
1991-09-25 09:15:22 +00:00
ceriel
2962e93407
Added -L flag
1991-09-18 18:44:30 +00:00
ceriel
a0858c04e4
Many fixes
1991-09-18 10:02:37 +00:00
ceriel
8c82c2e5ef
MAXPROCARG could be 0
1991-09-17 09:46:12 +00:00
ceriel
3863f0d1a2
Added compmodule
1991-09-16 12:47:00 +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
24c41e0d4d
Added -I. to includes
1991-09-16 09:44:21 +00:00
ceriel
65454de06c
Fixed proto.make
1991-09-13 14:56:50 +00:00
ceriel
55d1808387
Added proto.sysmon to .distr
1991-09-10 12:23:18 +00:00
ceriel
206afe317c
New installation mechanism
1991-09-04 12:01:39 +00:00
ceriel
89b73247c7
New installation mechanism
1991-09-04 10:45:29 +00:00
ceriel
b53634fa73
New installation mechanism
1991-08-28 11:28:56 +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
c34fcda208
Fixes: sometimes entered panic mode with wrong fakestack
1991-07-30 16:05:59 +00:00
ceriel
0d65b92220
removed -i flag
1991-02-19 16:57:39 +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
0b26bdf5fb
Some changes in search for more efficiency
1991-01-11 14:20:59 +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
eck
e37c249248
added casts of pointer difference to integer
1990-12-17 14:22: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
ceriel
91ee73faa3
made Makefile more portable
1990-11-27 16:51:58 +00:00
ceriel
99bfba6a45
Added Johan's changes
1990-11-16 15:58:36 +00:00
ceriel
da44a4c705
Added a default for WRD_FMT
1990-11-15 10:27:15 +00:00
ceriel
a618b9a759
also remove barrier.so
1990-11-13 17:38:50 +00:00
ceriel
c7fc857c2d
Compile fptrp.e with EMFLAGS
1990-11-13 15:39:11 +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
5badcb4296
changed stackheight computation to top element size computation
1990-09-04 17:16:00 +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
e0ff37aa6e
support for long strings
1990-08-01 14:30:45 +00:00
ceriel
6d675af42c
removed limit on string size
1990-07-30 15:40:08 +00:00
ceriel
5c0938d05b
Added some more support for debugger
1990-07-30 09:43:45 +00:00
eck
7ef2d1bc37
switch to text segment when generating a label
1990-07-20 14:02:35 +00:00
eck
4ef2c70ed3
added stackheight message handling
1990-07-18 14:53:19 +00:00
ceriel
f2b4713c24
cast ptrdiff_t to int for ANSI
1990-04-25 14:23:05 +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
ceriel
95632b0fef
Oops in assertion: MAXPROCARG instead of MAXPROCARGS
1990-02-23 17:05:04 +00:00
ceriel
0ec452930f
print pointer as hex
1990-02-23 16:58:34 +00:00
ceriel
3f950c9f17
Added a new operator for ncg: is_rom()
1990-02-09 16:34:17 +00:00
ceriel
0c5cce9a96
max filename length too short in error messages
1990-01-31 16:27:05 +00:00
ceriel
89b736ba83
Added mechanism to warn correctly about conflicts
1990-01-19 16:05:44 +00:00
ceriel
a5f05e8ba0
changed character comparisons with NULL
1989-12-13 09:19:47 +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
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
a46596cbba
new object module makes buffering superfluous
1989-11-17 16:50:59 +00:00
ceriel
95fc55f840
fix: did not work for 4-byte floats
1989-11-09 17:01:29 +00:00
ceriel
d9d6cc127f
Allow more procedure parameters
1989-11-09 11:04:18 +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
74546bd985
Added a command to kill a register
1989-10-26 15:41:38 +00:00
ceriel
13ea4896b0
changes for different byte orderings
1989-10-25 17:15:37 +00:00
eck
78d3e500fb
added CPP variable to Makefile
1989-10-20 11:05:00 +00:00
ceriel
319d9bcfe0
declaration of sprintf only if __STDC__ is not defined
1989-08-21 11:43:41 +00:00
ceriel
04dcaf5685
did not handle -0.0 right
1989-08-15 09:04:49 +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
f7360f0fec
many changes, to use IEEE format
1989-07-25 14:21:09 +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
9953b58092
don't remove compiler generated labels when they are external
1989-06-19 11:19:22 +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
a22bbe847f
use calloc instead of malloc, to make sure block is initialized to 0
1989-03-01 10:00:37 +00:00
ceriel
6f4bdccf04
removed prt_ext
1989-02-23 10:08:20 +00:00
ceriel
59ea3478ac
Add include directory when compiling head
1989-02-16 09:40:52 +00:00
ceriel
920ba0eebe
delinted somewhat
1989-02-02 16:31:51 +00:00
ceriel
b45706ce7a
delinted a little
1989-01-19 16:41:55 +00:00
ceriel
4c76583aba
simplified assertion
1989-01-19 13:48:09 +00:00
ceriel
406d024e9f
change to keep lint happy
1989-01-17 11:23:33 +00:00
ceriel
17e980aa15
Also pass SRC
1988-10-04 10:04:37 +00:00
ceriel
143531822a
speeded up :-)
1988-08-11 22:02:53 +00:00
ceriel
5aa128ea62
speeded up again :-)
1988-08-11 14:50:18 +00:00
ceriel
2cb7fcf861
leave maximum value if overflow trap is handled
1988-08-11 10:28:30 +00:00
ceriel
d308f4a3c2
fix: the minimum exponent is 1, not 0!
1988-08-10 22:33:48 +00:00
ceriel
bb46f5218c
Added version for machines with proper 4-byte operations
1988-08-10 10:07:53 +00:00
ceriel
05bac6c619
also detect 0/0
1988-08-05 11:40:29 +00:00
ceriel
dc72163d44
cleaned up a bit
1988-08-04 18:10:34 +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
0406776361
fixed again
1988-08-02 11:57:37 +00:00
ceriel
bcec2e84b5
merged with Michael Felts latest version
1988-07-25 10:46:15 +00:00
ceriel
24c59f9f68
adf and sbf did not work with 0.0
1988-07-22 20:54:49 +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
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
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
722bf6de1e
Added debug statement
1988-07-13 13:43:45 +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
3048d94603
bug fix: an array was declared too small
1988-07-07 10:55:52 +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
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
d3723b3d38
modified distance function somewhat
1988-06-24 12:03:02 +00:00
ceriel
b72f2848dd
fixed panic mode
1988-06-22 18:47:48 +00:00
ceriel
c146e278fc
distance routine improved a little; still not safe!
1988-06-22 16:22:07 +00:00
ceriel
a0934dc7e0
made bittable dynamic
1988-06-16 13:24:10 +00:00
ceriel
8f1cac51c8
Added option for temporary directory
1988-06-16 09:57:59 +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
192de9bf32
linenumber in long instead of short
1988-06-13 15:28:19 +00:00
ceriel
cd893a6ff8
corrected
1988-06-03 14:25:26 +00:00
ceriel
0be2e884b1
some last-minute minor changes
1988-05-06 17:03:30 +00:00
ceriel
c4d0a4f449
corrected the overflow checks
1988-04-28 14:21:55 +00:00
ceriel
d9638fca0e
fixed bug: did not convert 0 right
1988-04-25 18:13:32 +00:00
ceriel
3edf9486c9
fixed to not accept dots in numbers
1988-04-22 18:34:22 +00:00
ceriel
b948e4b59d
corrected; sometimes lookahead would fail
1988-04-22 14:02:43 +00:00
ceriel
0aa6d4ed5d
corrected: a shift of 32 is not portable!
1988-04-21 18:40:42 +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
6eb15567ae
Added some debug print statements
1988-04-11 10:55:07 +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
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
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
ea9e90d785
fixed for operand separators within operands
1988-03-14 15:58:07 +00:00
ceriel
8fc22f0db7
allow assembler to read from STDIN
1988-02-05 15:10:08 +00:00
ceriel
048eac2d67
fixed to also read from standard input
1987-11-25 16:55:51 +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
16c73e6654
use malloc instead of sbrk
1987-08-06 13:04:20 +00:00