0b21f18d4cMerge pull request #14 from davidgiven/dtrg-experimental-mcgg
David Given
2016-11-23 21:58:31 +0100
2367b011f5Don't install qemu-system-ppc until openbios-ppc gets whitelisted by Travis.
David Given
2016-11-23 21:53:14 +0100
b6b707d9dfMake working gettimeofday() for Mac OS X.
George Koehler
2016-11-23 13:25:55 -0500
98f2273d97Teach cvmach to emit the symbol table.
George Koehler
2016-11-22 17:16:30 -0500
19310d2521Make possible to #include <object.h>.
George Koehler
2016-11-22 11:13:14 -0500
6e9c2d5c0dAlso call .trp .trap, for ncg compatibility.
David Given
2016-11-20 19:39:28 +0100
f8fa3ece42inn on ncg now passes the CPU tests.
David Given
2016-11-20 19:35:34 +0100
2d0bc7ef0dFinally fix the build system issue where ackprogram would try to explicitly link all the language libraries.
David Given
2016-11-20 18:57:44 +0100
88c2ea63aaUse uint32_t in util/led/main.c
George Koehler
2016-11-20 11:38:16 -0500
953c08839finn works now; add a helper for it.
David Given
2016-11-20 12:53:44 +0100
196fa914b3lxa now works, I hope; traps are better (and stubbed out on qemuppc).
David Given
2016-11-20 11:57:21 +0100
d5328492d7Better handling of float conversions; more tests; converting to unsigned ints works now.
David Given
2016-11-20 11:27:40 +0100
132baac78aAdd some more tests.
David Given
2016-11-20 10:46:53 +0100
84c7b6ba90No, sudo doesn't get openbios-ppc installed. I added a whitelisting request:
David Given
2016-11-20 10:36:30 +0100
3f45a7d633Need sudo to install openbios-ppc.
David Given
2016-11-20 10:09:58 +0100
5423a175c6Install openbios on Travis (needed by qemu-system-ppc).
David Given
2016-11-20 10:00:59 +0100
6e31d46d6fFix my typo to put symbol "begrom" in correct section.
George Koehler
2016-11-19 19:23:42 -0500
454a7494bbcif8 and cuf8 work now. More tests.
David Given
2016-11-19 11:42:30 +0100
cc660b230fFloats and doubles are now written out correctly.
David Given
2016-11-19 11:39:13 +0100
db3564f35aUse .hol0 as an additional name for hol0; mcg requires it.
David Given
2016-11-19 11:09:07 +0100
d31bc6a3f9Made 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.
David Given
2016-11-19 10:55:41 +0100
5208e5f751Yet another OB1 stack format fix.
David Given
2016-11-19 10:42:22 +0100
a4616b7124Betterer timeout handling.
David Given
2016-11-17 22:04:50 +0100
43439c6d0cRemember to push the result of lor onto the stack.
David Given
2016-11-17 22:04:32 +0100
745eb8f17bNow _errsym and _erlsym are defined in the standard library, don't define them in the program.
David Given
2016-11-16 21:13:00 +0100
c25ad82a89Tests can now specify (via a hacky filename suffix) which runtime they want.
David Given
2016-11-16 21:08:03 +0100
71e6ca26d5Add another test.
David Given
2016-11-16 20:56:45 +0100
81bc2c74c5A 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.
David Given
2016-11-16 20:52:15 +0100
edfee33576Cleanup; the test driver is now way more robust.
David Given
2016-11-16 20:50:14 +0100
581fa4a457Reenable 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.
David Given
2016-11-15 21:55:10 +0100
86c832ef86Put saved registers in *actually* the write place. I hope.
David Given
2016-11-15 21:54:15 +0100
cc686ded62Get subtractions the right way round.
David Given
2016-11-15 20:25:11 +0100
486c516242Stop trying to remove core dumps.
George Koehler
2016-11-15 11:58:13 -0500
07b04c64c8Let ack(1) compile files with non-ASCII names.
George Koehler
2016-11-14 23:33:44 -0500
5e8babf098Add a basic integer shift test.
David Given
2016-11-14 22:12:13 +0100
c6bce0aaeeAdd basic integer comparison test.
David Given
2016-11-14 22:01:25 +0100
0289b1004eAllow values left on the stack at the end of the procedure (it's legal!).
David Given
2016-11-14 21:47:49 +0100
408b69b17daelflod and aslod now default to not showing the memory dump.
David Given
2016-11-13 20:50:23 +0100
fafc8a0b8aDon't retry fork() in a loop.
George Koehler
2016-11-13 12:45:01 -0500
e617f42503Don't print a string after possibly freeing it.
George Koehler
2016-11-13 11:55:09 -0500
91c15c1c63Precise's qemu package is qemu-system.
David Given
2016-11-13 14:20:14 +0100
1ef4780af4Typo fix.
David Given
2016-11-13 14:17:38 +0100
0699e7af97Attempt to enable the qemuppc tests on Travis.
David Given
2016-11-13 14:10:44 +0100
e7132183fbFix 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.
David Given
2016-11-13 14:04:58 +0100
6a4f465f53Add a rather bodged test framework for the qemuppc plat, which only runs if the qemu-system-ppc emulator is installed.
David Given
2016-11-13 13:37:22 +0100
e9fe1d70a6Fix (or at least, work around) an issue with library order. Make sure the Basic error symbols are actually defined.
David Given
2016-11-13 13:28:09 +0100
65278bc9a9In util/ack, add prototypes and static to functions.
George Koehler
2016-11-12 21:12:45 -0500
f52cb45e49Add just enough Open Firmware support for an output console.
David Given
2016-11-12 22:09:54 +0100
48e74f46fcAdd 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.
David Given
2016-11-12 19:20:58 +0100
7b3f870f63Don't build mktables.c in the ack binary.
George Koehler
2016-11-11 17:06:25 -0500
7347cc64e4Pass DEFAULT_PLATFORM to ackbuilder so util/ack sees it.
George Koehler
2016-11-11 17:05:50 -0500
852d3a691dUpdate 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).
David Given
2016-11-11 21:48:36 +0100
b5c1d622f5Rework 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.
David Given
2016-11-11 21:17:45 +0100
84ee75ec07Merge from default.
David Given
2016-11-11 20:17:54 +0100
d82df74a7aRename addr_t to address_t to avoid clashes with the system addr_t.
David Given
2016-11-11 20:17:10 +0100
e7eb563ee9Disable gethostid() in the build system Lua; it's unused and doesn't work on Haiku.
David Given
2016-11-11 20:16:43 +0100
4d7c27391fMerge.
David Given
2016-11-10 22:06:08 +0100
fd91851005Add enough return types to the K&R C that the ACK builds (on Linux) using clang now.
David Given
2016-11-10 22:04:18 +0100
57cb99ade1Remove sys_time in favour of directly calling time().
David Given
2016-11-09 21:52:04 +0100
0d0495e818Install only 1 copy, not 2 copies, of osx headers.
George Koehler
2016-11-08 17:13:51 -0500
ed7fb69f79Add the missing return in plat/osx/libsys/creat.c
George Koehler
2016-11-08 15:35:02 -0500
7f94e971fdRemove trailing whitespace in plat/osx*
George Koehler
2016-11-08 15:22:09 -0500
cd3cf5b10fMerge branch 'default' into kernigh-osx
George Koehler
2016-11-08 13:49:16 -0500
07113c069bMerge pull request #9 from kernigh/fix-flt-trek
David Given
2016-11-07 20:15:48 +0100
82c2d18482Edit startrek.c so I can compile it with gcc and OpenBSD libc.
George Koehler
2016-11-06 20:21:48 -0500
e5e96d5226Convert 1 to 1.0, not 0.0, for machines with 64-bit long.
George Koehler
2016-11-06 19:34:51 -0500
08f9869a63Remove unused defines from lang/cem/libcc.ansi/math/localmath.h
George Koehler
2016-11-06 15:49:47 -0500
19ca28e22fUndo commit bfeb736 for lang/cem/libcc.ansi/headers/float.h
George Koehler
2016-11-06 15:01:25 -0500
daeeb5aca3Simplify flt_arith now that mantissa uses uint32_t.
George Koehler
2016-11-05 21:29:03 -0400
3bb41d3910Switch flt_mantissa fields from long to uint32_t.
George Koehler
2016-11-05 17:00:24 -0400
5c62ec2d8fAssume ANSI C in modules/src/flt_arith
George Koehler
2016-11-05 16:24:18 -0400
4ba409eb74Ensure the modules properly depend on their headers.
David Given
2016-11-05 11:52:54 +0100
fee47b25c3Merge from default.
David Given
2016-11-05 11:47:53 +0100
7f64fe96c7Properly declare the library headers as dependencies.
David Given
2016-11-05 11:47:36 +0100
4fa2c94a4aCorrectly mangle labels used in initialisers.
David Given
2016-10-31 23:21:33 +0100
9261cd978dTypo fix.
David Given
2016-10-31 23:16:02 +0100
941072e0d7Add, I hope, patterns for fmsub, fnmadd, and fnmsub (also float versions).
David Given
2016-10-31 22:36:54 +0100
44f0cea6caAlso use fmadd for single-precision floats.
David Given
2016-10-31 19:55:16 +0100
064d1a5d5dUse fmadd for multiply-and-add instructions.
David Given
2016-10-31 19:52:17 +0100
e19850b114Fix a few c11isms.
David Given
2016-10-30 16:51:06 +0100
694d1e2debMerge from default.
David Given
2016-10-30 15:59:44 +0100
db03785109Merge pull request #7 from davidgiven/travis
David Given
2016-10-30 15:59:04 +0100
9b6a5e3ae7Merge from default.
David Given
2016-10-30 15:53:26 +0100
a5990289a9Don't allow parallel builds in the top-level makefile.
David Given
2016-10-30 15:49:39 +0100
613821d771Old versions of make don't support -r.
David Given
2016-10-30 14:28:08 +0100
ca5b6e07bbProperly export symbols.
David Given
2016-10-29 23:52:17 +0200
8c3670483fGet top working with the PowerPC; use it to eliminate useless branches and moves.
David Given
2016-10-29 23:37:11 +0200
a8c4dac67cMerge from default (merging in George Koehler's PowerPC changes).
David Given
2016-10-29 22:40:40 +0200
a311e61360Add support for preserved registers.
David Given
2016-10-29 20:22:44 +0200
e3ebf986e9More opcodes.
David Given
2016-10-29 13:32:09 +0200
1ae8b90238More opcodes.
David Given
2016-10-29 12:55:34 +0200
acaae765afEmit negative constants correctly.
David Given
2016-10-29 12:55:21 +0200
61349389fbMore opcodes. sti can now cope with non-standard sizes (really need a better fix for this). Hack in crude support for mismatched stack pushes and pops (ints vs longs).
David Given
2016-10-29 12:48:05 +0200
68419da235Actually, the locals need to go above the spills and saved regs, so fp == lb.
David Given
2016-10-29 12:00:33 +0200
2cc2c0ae98Lots more opcodes. Rearrange the stack layout so that fp->ab is a fixed value (needed for CHAINFP and FPTOAB). Wire up lfrs to calls via a phi when necessary, to allow call-bra-lfr chains.
David Given
2016-10-29 11:57:56 +0200
bfa65168e2Don't generate phis if unnecessary (because this breaks the critical-edge-splitting guarantee and causes insertion of phi copies to fail).
David Given
2016-10-29 10:55:48 +0200
658db4ba71Mangle label names (turns out that the ACK assembler can't really cope with labels that are the same name as instructions...).
David Given
2016-10-27 23:17:16 +0200
81525c0f2cSwaps work (at least for registers). More opcodes. Rearrange the stack layout so we can always trivially find fp, which lets CHAINFP work.
David Given
2016-10-27 21:50:58 +0200
be3dece5afAllow emission of strings containing ".
David Given
2016-10-27 21:48:46 +0200
51bd3ee4ddFix bug where some phis weren't being inserted when a given variable definition needed more than one phi (due to the dominance frontier containing more than one basic block).
David Given
2016-10-27 21:40:25 +0200