ack/util/mcgg
George Koehler 0fc0faef08 Restore an assignment deleted in commit 789f79b.
Because of the accidental deletion, mcgg on my machine followed a
garbage pointer, and never wrote calls to emit_fragment.

A wrong call to `data->emit_reg(0, 0)` instead of the correct
`data->emit_fragment(0)` caused PowerPC mcg to emit an empty string
instead of `8(fp)`, causing a syntax error in PowerPC as.

The wrong `data->emit_reg(0, 0)` called the function emit_reg() in
mach/proto/mcg/pass_instructionselection.c, but that function
unfortunately has `if (vreg) { ... }`.  The call had vreg == NULL
because the fragment wasn't a vreg, but emit_reg() ignored the problem
and emit nothing.
2017-11-07 23:52:52 -05: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 Restore an assignment deleted in commit 789f79b. 2017-11-07 23:52:52 -05:00
iburg.h Add support for preserved registers. 2016-10-29 20:22:44 +02:00
ir.dat Better handling of float conversions; more tests; converting to unsigned ints 2016-11-20 11:27:40 +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.