ack/util/mcgg
David Given d31bc6a3f9 Made csa and csb work with mcg; adjust the libem functions and the
corresponding invocation in the ncg table so the same helpers can be used for
both mcg and ncg. Add a new IR opcode, FARJUMP, which jumps to a helper
function but saves volatile registers.
2016-11-19 10:55:41 +01:00
..
build.lua Hacky workaround the way the Modula-2 compiler generates non-standard sized 2016-10-22 10:48:22 +02:00
gram.y Add support for preserved registers. 2016-10-29 20:22:44 +02:00
iburg.c Add support for preserved registers. 2016-10-29 20:22:44 +02:00
iburg.h Add support for preserved registers. 2016-10-29 20:22:44 +02:00
ir.dat Made csa and csb work with mcg; adjust the libem functions and the 2016-11-19 10:55:41 +01:00
ircodes.h Remove the bytes1, bytes2, bytes4, bytes8 attributes; remove the concept of a 2016-10-25 23:04:20 +02:00
ircodes.sh Re-re-add the type inference layer, now I know more about how things work. 2016-10-22 23:04:13 +02:00
LICENSE Import iburg. 2016-09-20 20:37:16 +02:00
mcgg.h Add support for preserved registers. 2016-10-29 20:22:44 +02:00
README Strip out surplus files. Rewrite README. 2016-09-20 20:46:45 +02:00
scan.l Add support for preserved registers. 2016-10-29 20:22:44 +02:00
UPSTREAM Import iburg. 2016-09-20 20:37:16 +02:00

mcgg is very heavily based on the iburg code generator by C. W. Fraser, D. R.
Hanson and T. A. Proebsting, described in ACM Letters on Prog. Languages and
Systems 1, 3 (Sep. 1992), 213-226:

http://storage.webhop.net/documents/iburg.pdf

For the original source, see the iburg-import branch (this is the version with
all the mcgg extensions).

iburg is licensed under the MIT open source license; see the LICENSE file.