Commit graph

563 commits

Author SHA1 Message Date
David Given 79d4ab1d96 Add zrl opcode. Keep track of local sizes as well as offsets. 2016-10-02 16:08:46 +02:00
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