ack.git
7 years agoGets much further at allocating registers now; the register graph is (possibly)
David Given [Mon, 12 Dec 2016 22:51:05 +0000 (23:51 +0100)]
Gets much further at allocating registers now; the register graph is (possibly)
correctly simplified and spilt, although it still fails on mandelbrot.c.

7 years agoNothing uses phi congruence any more (replaced by register allocator anode
David Given [Mon, 12 Dec 2016 22:49:42 +0000 (23:49 +0100)]
Nothing uses phi congruence any more (replaced by register allocator anode
coalescing), so remove the pass that calculated it.

7 years agoDon't record use-def data; we have a pass now that does this for us.
David Given [Mon, 12 Dec 2016 22:47:05 +0000 (23:47 +0100)]
Don't record use-def data; we have a pass now that does this for us.

7 years agoRename the locals SSA pass to be more clearly named.
David Given [Mon, 12 Dec 2016 22:45:52 +0000 (23:45 +0100)]
Rename the locals SSA pass to be more clearly named.

7 years agoAlways insert phis, even if we don't technically need one (saves time later).
David Given [Mon, 12 Dec 2016 22:45:13 +0000 (23:45 +0100)]
Always insert phis, even if we don't technically need one (saves time later).

7 years agoMove the dominance frontier calculation into graph.c for cleanness (thought we
David Given [Mon, 12 Dec 2016 22:44:12 +0000 (23:44 +0100)]
Move the dominance frontier calculation into graph.c for cleanness (thought we
were going to use this in several places, but turned out not to).

7 years agoAdd standard functions for rewriting IRs (because we do that in several
David Given [Mon, 12 Dec 2016 22:43:22 +0000 (23:43 +0100)]
Add standard functions for rewriting IRs (because we do that in several
places).

7 years agoFix warnings.
David Given [Mon, 12 Dec 2016 22:42:10 +0000 (23:42 +0100)]
Fix warnings.

7 years agoIR imports are now analysed and split so that all IRs imported from another
David Given [Mon, 12 Dec 2016 22:38:18 +0000 (23:38 +0100)]
IR imports are now analysed and split so that all IRs imported from another
block come via a phi and from a direct predecessor. Add a separate pass for
calculate use-def data on vregs. Add a pass for (attempting to) split vregs
before and after instructions.

7 years agoAdd pmap_remove_either().
David Given [Mon, 5 Dec 2016 23:12:41 +0000 (00:12 +0100)]
Add pmap_remove_either().

7 years agoAdd array_replace().
David Given [Mon, 5 Dec 2016 23:11:40 +0000 (00:11 +0100)]
Add array_replace().

7 years agoMerge from default.
David Given [Thu, 1 Dec 2016 23:26:10 +0000 (00:26 +0100)]
Merge from default.

7 years agoMerge pull request #21 from davidgiven/dtrg-tests
David Given [Thu, 1 Dec 2016 23:24:44 +0000 (00:24 +0100)]
Merge pull request #21 from davidgiven/dtrg-tests

Run all tests, even if some fail, and produce a test summary at the end of the build.

7 years agoTypo fix.
David Given [Thu, 1 Dec 2016 23:18:44 +0000 (00:18 +0100)]
Typo fix.

7 years agoDon't fail to build if all tests are skipped.
David Given [Thu, 1 Dec 2016 23:14:40 +0000 (00:14 +0100)]
Don't fail to build if all tests are skipped.

7 years agoUI tweaks to the test summary.
David Given [Thu, 1 Dec 2016 23:10:33 +0000 (00:10 +0100)]
UI tweaks to the test summary.

7 years agoReport skipped, failed and timed out tests.
David Given [Thu, 1 Dec 2016 23:00:31 +0000 (00:00 +0100)]
Report skipped, failed and timed out tests.

7 years agoMark skipped tests in the logs (so we can get stats on them later).
David Given [Thu, 1 Dec 2016 22:14:29 +0000 (23:14 +0100)]
Mark skipped tests in the logs (so we can get stats on them later).

7 years agoRun all tests, even the ones which fail, and emit a test summary right at the
David Given [Thu, 1 Dec 2016 22:03:30 +0000 (23:03 +0100)]
Run all tests, even the ones which fail, and emit a test summary right at the
end of the build (and fail then).

7 years agoMerge pull request #20 from davidgiven/dtrg-tests
David Given [Thu, 1 Dec 2016 21:23:09 +0000 (22:23 +0100)]
Merge pull request #20 from davidgiven/dtrg-tests

Replace the hacky pipeline in testdriver.sh with a bespoke tool.

7 years agoFix signal unsafety in testdriver.c.
David Given [Thu, 1 Dec 2016 21:05:22 +0000 (22:05 +0100)]
Fix signal unsafety in testdriver.c.

7 years agoMerge from default.
David Given [Wed, 30 Nov 2016 21:07:29 +0000 (22:07 +0100)]
Merge from default.

7 years agoMerge pull request #18 from kernigh/pr-util-ack
David Given [Wed, 30 Nov 2016 21:00:55 +0000 (22:00 +0100)]
Merge pull request #18 from kernigh/pr-util-ack

util/ack: use DEFAULT_PLATFORM, allow non-ASCII filenames, other changes

7 years agoReplace the hacky and broken pipeline in testdriver.sh with a custom-written
David Given [Tue, 29 Nov 2016 19:59:43 +0000 (20:59 +0100)]
Replace the hacky and broken pipeline in testdriver.sh with a custom-written
tool in C; much more robust and easier to understand, as well as avoiding the
dependency on timeout (which isn't Posix).

7 years agoWhile fiddling with mcg, change qemuppc back to using ncg (so that everything
David Given [Mon, 28 Nov 2016 22:39:09 +0000 (23:39 +0100)]
While fiddling with mcg, change qemuppc back to using ncg (so that everything
still builds).

7 years agoBasic building and initial coalescing of the interference graph now works.
David Given [Mon, 28 Nov 2016 22:38:38 +0000 (23:38 +0100)]
Basic building and initial coalescing of the interference graph now works.

7 years agoAdd a routine for adding bidirectional edges to a graph.
David Given [Mon, 28 Nov 2016 22:38:01 +0000 (23:38 +0100)]
Add a routine for adding bidirectional edges to a graph.

7 years agoUse heaps to reduce memory usage a bit.
David Given [Sat, 26 Nov 2016 22:07:41 +0000 (23:07 +0100)]
Use heaps to reduce memory usage a bit.

7 years agoSuppress spurious message when testdriver probes for a testing method.
David Given [Sat, 26 Nov 2016 20:50:56 +0000 (21:50 +0100)]
Suppress spurious message when testdriver probes for a testing method.

7 years agoUpdated the README.
David Given [Sat, 26 Nov 2016 18:25:02 +0000 (19:25 +0100)]
Updated the README.

7 years agoMerge pull request #17 from davidgiven/dtrg-tests
David Given [Sat, 26 Nov 2016 11:59:13 +0000 (12:59 +0100)]
Merge pull request #17 from davidgiven/dtrg-tests

Refactor the tests so they run for several plats.

7 years agoUse command -v rather than hash to detect commands (command is Posix and works
David Given [Sat, 26 Nov 2016 11:53:36 +0000 (12:53 +0100)]
Use command -v rather than hash to detect commands (command is Posix and works
on OpenBSD).

7 years agoOSX doesn't work; let's not bother building it.
David Given [Sat, 26 Nov 2016 11:52:09 +0000 (12:52 +0100)]
OSX doesn't work; let's not bother building it.

7 years agoPlats which use aelflod need to depend on it.
David Given [Sat, 26 Nov 2016 11:07:08 +0000 (12:07 +0100)]
Plats which use aelflod need to depend on it.

7 years agoqmu-system-x86 isn't in Travis' repository? Let's try qemu-user.
David Given [Sat, 26 Nov 2016 11:00:59 +0000 (12:00 +0100)]
qmu-system-x86 isn't in Travis' repository? Let's try qemu-user.

7 years agoEnable tests for linux386 via qemu-i386.
David Given [Sat, 26 Nov 2016 10:58:02 +0000 (11:58 +0100)]
Enable tests for linux386 via qemu-i386.

7 years agoEnable tests for linuxppc via qemu-ppc.
David Given [Sat, 26 Nov 2016 10:56:17 +0000 (11:56 +0100)]
Enable tests for linuxppc via qemu-ppc.

7 years agoTravis only whitelists the -x86 version of qemu.
David Given [Sat, 26 Nov 2016 10:29:57 +0000 (11:29 +0100)]
Travis only whitelists the -x86 version of qemu.

7 years agoRework the tests to run on pc86; lots of test fixes for the brk() test, which
David Given [Sat, 26 Nov 2016 10:23:25 +0000 (11:23 +0100)]
Rework the tests to run on pc86; lots of test fixes for the brk() test, which
was nearly useless; lots of fixes to qemuppc and pc86 sbrk(), which was broken;
change the pc86 console to echo output to the serial port (needed for running
tests on qemu).

7 years agoRefactored the tests to make the generic across different plats.
David Given [Fri, 25 Nov 2016 20:02:51 +0000 (21:02 +0100)]
Refactored the tests to make the generic across different plats.

7 years agoMake pc86 echo console output to the serial port, so qemu can pipe it to
David Given [Fri, 25 Nov 2016 19:28:41 +0000 (20:28 +0100)]
Make pc86 echo console output to the serial port, so qemu can pipe it to
stdout.

7 years agoAnsify Paranoia, because I was getting annoyed by all the compiler warnings on
David Given [Fri, 25 Nov 2016 19:01:43 +0000 (20:01 +0100)]
Ansify Paranoia, because I was getting annoyed by all the compiler warnings on
every build.

7 years agoMerge pull request #16 from davidgiven/dtrg-pascal-mark-release
David Given [Thu, 24 Nov 2016 19:45:14 +0000 (20:45 +0100)]
Merge pull request #16 from davidgiven/dtrg-pascal-mark-release

Remove the Mark() and Release() procedures from Pascal.

7 years agoRemove the Mark() and Release() procedures from the Pascal compiler and
David Given [Thu, 24 Nov 2016 19:35:26 +0000 (20:35 +0100)]
Remove the Mark() and Release() procedures from the Pascal compiler and
standard library, because they never worked and come from an achingly old
version of the Pascal specification. Fix the implementations of New() and
Dispose() to use the standard C memory allocator rather than rolling their own
(also in C). Write test!

7 years agoForgot to check in the change to qemuppc's brk() to set errno on memory
David Given [Thu, 24 Nov 2016 18:47:11 +0000 (19:47 +0100)]
Forgot to check in the change to qemuppc's brk() to set errno on memory
allocation failure.

7 years agoMerge pull request #15 from davidgiven/dtrg-allocs
David Given [Wed, 23 Nov 2016 21:35:50 +0000 (22:35 +0100)]
Merge pull request #15 from davidgiven/dtrg-allocs

Fix various memory allocation bugs.

7 years agoAdd a test for brk() and sbrk().
David Given [Wed, 23 Nov 2016 21:28:21 +0000 (22:28 +0100)]
Add a test for brk() and sbrk().

7 years agoAdd a test for calloc().
David Given [Wed, 23 Nov 2016 21:22:04 +0000 (22:22 +0100)]
Add a test for calloc().

7 years agoImplement calloc() (accidentally got dropped with the malloc rewrite).
David Given [Wed, 23 Nov 2016 21:16:25 +0000 (22:16 +0100)]
Implement calloc() (accidentally got dropped with the malloc rewrite).

7 years agoChange sbrk() to take an int rather than an intptr_t (following the OpenBSD way
David Given [Wed, 23 Nov 2016 21:06:24 +0000 (22:06 +0100)]
Change sbrk() to take an int rather than an intptr_t (following the OpenBSD way
rather than the Linux way; various non-C bits of the ACK assume it takes an
int, so it's cleaner).

7 years agoCombine brk() with sbrk(); modify brk() to update the sbrk(0) value.
David Given [Wed, 23 Nov 2016 21:04:21 +0000 (22:04 +0100)]
Combine brk() with sbrk(); modify brk() to update the sbrk(0) value.

7 years agoMerge pull request #14 from davidgiven/dtrg-experimental-mcgg
David Given [Wed, 23 Nov 2016 20:58:31 +0000 (21:58 +0100)]
Merge pull request #14 from davidgiven/dtrg-experimental-mcgg

Merge mcg code generator to trunk

7 years agoDon't install qemu-system-ppc until openbios-ppc gets whitelisted by Travis.
David Given [Wed, 23 Nov 2016 20:53:14 +0000 (21:53 +0100)]
Don't install qemu-system-ppc until openbios-ppc gets whitelisted by Travis.

7 years agoAlso call .trp .trap, for ncg compatibility.
David Given [Sun, 20 Nov 2016 18:39:28 +0000 (19:39 +0100)]
Also call .trp .trap, for ncg compatibility.

7 years agoinn on ncg now passes the CPU tests.
David Given [Sun, 20 Nov 2016 18:35:34 +0000 (19:35 +0100)]
inn on ncg now passes the CPU tests.

7 years agoFinally fix the build system issue where ackprogram would try to explicitly
David Given [Sun, 20 Nov 2016 17:57:44 +0000 (18:57 +0100)]
Finally fix the build system issue where ackprogram would try to explicitly
link all the language libraries.

7 years agoinn works now; add a helper for it.
David Given [Sun, 20 Nov 2016 11:53:44 +0000 (12:53 +0100)]
inn works now; add a helper for it.

7 years agolxa now works, I hope; traps are better (and stubbed out on qemuppc).
David Given [Sun, 20 Nov 2016 10:57:21 +0000 (11:57 +0100)]
lxa now works, I hope; traps are better (and stubbed out on qemuppc).

7 years agoBetter handling of float conversions; more tests; converting to unsigned ints
David Given [Sun, 20 Nov 2016 10:27:40 +0000 (11:27 +0100)]
Better handling of float conversions; more tests; converting to unsigned ints
works now.

7 years agoAdd some more tests.
David Given [Sun, 20 Nov 2016 09:46:53 +0000 (10:46 +0100)]
Add some more tests.

7 years agoNo, sudo doesn't get openbios-ppc installed. I added a whitelisting request:
David Given [Sun, 20 Nov 2016 09:36:30 +0000 (10:36 +0100)]
No, sudo doesn't get openbios-ppc installed. I added a whitelisting request:

https://github.com/travis-ci/apt-package-whitelist/issues/3745

7 years agoNeed sudo to install openbios-ppc.
David Given [Sun, 20 Nov 2016 09:09:58 +0000 (10:09 +0100)]
Need sudo to install openbios-ppc.

7 years agoInstall openbios on Travis (needed by qemu-system-ppc).
David Given [Sun, 20 Nov 2016 09:00:59 +0000 (10:00 +0100)]
Install openbios on Travis (needed by qemu-system-ppc).

7 years agocif8 and cuf8 work now. More tests.
David Given [Sat, 19 Nov 2016 10:42:30 +0000 (11:42 +0100)]
cif8 and cuf8 work now. More tests.

7 years agoFloats and doubles are now written out correctly.
David Given [Sat, 19 Nov 2016 10:39:13 +0000 (11:39 +0100)]
Floats and doubles are now written out correctly.

7 years agoUse .hol0 as an additional name for hol0; mcg requires it.
David Given [Sat, 19 Nov 2016 10:09:07 +0000 (11:09 +0100)]
Use .hol0 as an additional name for hol0; mcg requires it.

7 years agoMade csa and csb work with mcg; adjust the libem functions and the
David Given [Sat, 19 Nov 2016 09:55:41 +0000 (10:55 +0100)]
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.

7 years agoYet another OB1 stack format fix.
David Given [Sat, 19 Nov 2016 09:42:22 +0000 (10:42 +0100)]
Yet another OB1 stack format fix.

7 years agoBetterer timeout handling.
David Given [Thu, 17 Nov 2016 21:04:50 +0000 (22:04 +0100)]
Betterer timeout handling.

7 years agoRemember to push the result of lor onto the stack.
David Given [Thu, 17 Nov 2016 21:04:32 +0000 (22:04 +0100)]
Remember to push the result of lor onto the stack.

7 years agoNow _errsym and _erlsym are defined in the standard library, don't define them
David Given [Wed, 16 Nov 2016 20:13:00 +0000 (21:13 +0100)]
Now _errsym and _erlsym are defined in the standard library, don't define them
in the program.

7 years agoTests can now specify (via a hacky filename suffix) which runtime they want.
David Given [Wed, 16 Nov 2016 20:08:03 +0000 (21:08 +0100)]
Tests can now specify (via a hacky filename suffix) which runtime they want.

7 years agoAdd another test.
David Given [Wed, 16 Nov 2016 19:56:45 +0000 (20:56 +0100)]
Add another test.

7 years agoA bb's regsin are no longer the same as those of its first instruction;
David Given [Wed, 16 Nov 2016 19:52:15 +0000 (20:52 +0100)]
A bb's regsin are no longer the same as those of its first instruction;
occasionally the first hop of a block would try to rearrange its registers (due
to evicted throughs), resulting in the phi moves copying values into the wrong
registers.

7 years agoCleanup; the test driver is now way more robust.
David Given [Wed, 16 Nov 2016 19:50:14 +0000 (20:50 +0100)]
Cleanup; the test driver is now way more robust.

7 years agoReenable eviction of corrupted registers, which had been broken by a previous
David Given [Tue, 15 Nov 2016 20:55:10 +0000 (21:55 +0100)]
Reenable eviction of corrupted registers, which had been broken by a previous
change. Change the register move code to get swaps right, or at least righter.

7 years agoPut saved registers in *actually* the write place. I hope.
David Given [Tue, 15 Nov 2016 20:54:15 +0000 (21:54 +0100)]
Put saved registers in *actually* the write place. I hope.

7 years agoGet subtractions the right way round.
David Given [Tue, 15 Nov 2016 19:25:11 +0000 (20:25 +0100)]
Get subtractions the right way round.

7 years agoStop trying to remove core dumps.
George Koehler [Tue, 15 Nov 2016 16:58:13 +0000 (11:58 -0500)]
Stop trying to remove core dumps.

unlink("core") doesn't work with OpenBSD, where core dumps have names
like "ncg.core".  Users who don't want core dumps can turn them off
with "ulimit -c 0" in sh(1).  Then the system doesn't write a core
dump.  That's better than writing core then unlinking it.

7 years agoLet ack(1) compile files with non-ASCII names.
George Koehler [Tue, 15 Nov 2016 04:33:44 +0000 (23:33 -0500)]
Let ack(1) compile files with non-ASCII names.

This commit changes how ack(1) parses backslashes in its descr files.
Before this commit, ack set the high bit of each character escaped by
a backslash, and later cleared all high bits in command arguments, but
this lost the high bits in non-ASCII filenames.  After this commit,
ack keeps backslashes in strings while processing them.  Functions
scanvars(), scanexpr(), doassign(), unravel(), addargs() now
understand backslashes.  I remove from ack_basename() the warning
about non-ASCII characters.

This commit makes some incompatible changes for backslashes in descr
files.  None of our descr files uses backslashes, except for those
backslashes that continue lines, and there are no changes for those
backslashes.  The problem with non-ASCII filenames had its cause in a
feature that we weren't using.

With this commit, ack now understands backslashes after the = sign in
both "var NAME=value" and "mapflag -flag NAME=value".  Before, ack
never scanned backslashes in "var" lines, so "var A=\{B}" failed to
prevent expansion of B.  Now it does.  Before, ack did scan for
backslashes in the "-flag NAME=" part of "mapflag" lines.  Now it
doesn't, so it is no longer possible to map a flag that contains a
literal space, tab, or star "*".

I removed the expansion of "{{" to "{".  One can use "\{" for a
literal "{", and "\{" now works in "var" lines.  Before and now, ack
never expanded "{" in flags for "mapflag", so the correct way to map a
literal flag "-{" remains "mapflag -{ ...", not "mapflag -{{ ...".
(The other way "mapflag -\{ ..." stops working with this commit.)

Backslashes in strange places, like "{NA\ME}", probably have different
behavior now.

Backslashes in "program" lines now work.  Before, ack scanned for
backslashes there but forgot to clear the high bits later.

Escaping < or > as \< or \> now works, and prevents substitution of
the input or output file paths.  Before, ack only expanded the first <
or > in each argument.  Now, it expands every unescaped < or > in an
argument, but this is an accident of how I rewrote the code.  I don't
suggest to put more than one each of < or > in a command.  The code no
longer optimizes away its recursive calls when the argument is "<".

The code continues to set or clear the high bit NO_SCAN on the first
characters of flags.  This doesn't seem to be a problem, because flags
usually begin with an ASCII hyphen '-'.

7 years agoAdd a basic integer shift test.
David Given [Mon, 14 Nov 2016 21:12:13 +0000 (22:12 +0100)]
Add a basic integer shift test.

7 years agoAdd basic integer comparison test.
David Given [Mon, 14 Nov 2016 21:01:25 +0000 (22:01 +0100)]
Add basic integer comparison test.

7 years agoAllow values left on the stack at the end of the procedure (it's legal!).
David Given [Mon, 14 Nov 2016 20:47:49 +0000 (21:47 +0100)]
Allow values left on the stack at the end of the procedure (it's legal!).

7 years agoaelflod and aslod now default to not showing the memory dump. dtrg-cgen
David Given [Sun, 13 Nov 2016 19:50:23 +0000 (20:50 +0100)]
aelflod and aslod now default to not showing the memory dump.

7 years agoDon't retry fork() in a loop.
George Koehler [Sun, 13 Nov 2016 17:45:01 +0000 (12:45 -0500)]
Don't retry fork() in a loop.

If fork() fails, then report a fatal error.  Don't spin the cpu
retrying fork() until it succeeds.  It can fail when we reach a limit
on the number of processes.  Spinning on the cpu would slow down other
processes when we want them to exit.  This would get bad if we had a
parallel build with multiple ack processes spinning.

7 years agoDon't print a string after possibly freeing it.
George Koehler [Sun, 13 Nov 2016 16:55:09 +0000 (11:55 -0500)]
Don't print a string after possibly freeing it.

new= newvar(name) takes ownership of the string and might free its
memory.  Don't print name.  Do print new->v_name.

Also #include <string.h> for strcmp().

7 years agoPrecise's qemu package is qemu-system.
David Given [Sun, 13 Nov 2016 13:20:14 +0000 (14:20 +0100)]
Precise's qemu package is qemu-system.

7 years agoTypo fix.
David Given [Sun, 13 Nov 2016 13:17:38 +0000 (14:17 +0100)]
Typo fix.

7 years agoAttempt to enable the qemuppc tests on Travis.
David Given [Sun, 13 Nov 2016 13:10:44 +0000 (14:10 +0100)]
Attempt to enable the qemuppc tests on Travis.

7 years agoFix buffer overrun: if LABEL_STARTER is seen but LABEL_TERMINATOR is not, the
David Given [Sun, 13 Nov 2016 13:04:58 +0000 (14:04 +0100)]
Fix buffer overrun: if LABEL_STARTER is seen but LABEL_TERMINATOR is not, the
label parser will keep going forever looking for the end of the label. It now
stops at the end of the string.

7 years agoAdd a rather bodged test framework for the qemuppc plat, which only runs if the
David Given [Sun, 13 Nov 2016 12:37:22 +0000 (13:37 +0100)]
Add a rather bodged test framework for the qemuppc plat, which only runs if the
qemu-system-ppc emulator is installed.

7 years agoFix (or at least, work around) an issue with library order. Make sure the Basic
David Given [Sun, 13 Nov 2016 12:28:09 +0000 (13:28 +0100)]
Fix (or at least, work around) an issue with library order. Make sure the Basic
error symbols are actually defined.

7 years agoIn util/ack, add prototypes and static to functions.
George Koehler [Sun, 13 Nov 2016 02:12:45 +0000 (21:12 -0500)]
In util/ack, add prototypes and static to functions.

Declare most functions before using them.  I declare some functions in
ack.h and some in trans.h (because trans.h declares type trf).  I
leave declarations of scanb() and scanvars() in .c files because they
need type growstring.  (I can't #include "grows.h" in another header
file as long as grows.h doesn't guard against multiple inclusion.)

Functions used within one file become static.  I remove a few tiny
functions.  I move a few functions or declarations to more convenient
places.  Some functions now return void instead of a garbage int.

I feel that keyword "register" is obsolete, so I removed it from where
I was editing.  This commit doesn't touch mktables.c

7 years agoAdd just enough Open Firmware support for an output console.
David Given [Sat, 12 Nov 2016 21:09:54 +0000 (22:09 +0100)]
Add just enough Open Firmware support for an output console.

7 years agoAdd the very experimental qemuppc plat, intended to generate minimal images
David Given [Sat, 12 Nov 2016 18:20:58 +0000 (19:20 +0100)]
Add the very experimental qemuppc plat, intended to generate minimal images
which can be emulated using qemu (for, hopefully, a test suite). Currently it
generates images which won't run because there's no RAM.

7 years agoDon't build mktables.c in the ack binary.
George Koehler [Fri, 11 Nov 2016 22:06:25 +0000 (17:06 -0500)]
Don't build mktables.c in the ack binary.

It only worked by accident because main() in main.c was found before
main() in mktables.c.

Also add build dependencies on the local *.h files.

7 years agoPass DEFAULT_PLATFORM to ackbuilder so util/ack sees it.
George Koehler [Fri, 11 Nov 2016 22:05:50 +0000 (17:05 -0500)]
Pass DEFAULT_PLATFORM to ackbuilder so util/ack sees it.

7 years agoUpdate the table to return call output values in the right registers. Fix the
David Given [Fri, 11 Nov 2016 20:48:36 +0000 (21:48 +0100)]
Update the table to return call output values in the right registers. Fix the
register allocator so the corrupted registers only apply to throughs
(otherwise, you can't put output registers in corrupted registers).

7 years agoRework the way stack frames are laid out to be simpler and, hopefully, more
David Given [Fri, 11 Nov 2016 20:17:45 +0000 (21:17 +0100)]
Rework the way stack frames are laid out to be simpler and, hopefully, more
correct. Saved registers are now placed in what may be the right place.

7 years agoMerge from default.
David Given [Fri, 11 Nov 2016 19:17:54 +0000 (20:17 +0100)]
Merge from default.