Commit graph

  • 0b21f18d4c Merge pull request #14 from davidgiven/dtrg-experimental-mcgg David Given 2016-11-23 21:58:31 +0100
  • 2367b011f5 Don't install qemu-system-ppc until openbios-ppc gets whitelisted by Travis. David Given 2016-11-23 21:53:14 +0100
  • b6b707d9df Make working gettimeofday() for Mac OS X. George Koehler 2016-11-23 13:25:55 -0500
  • 98f2273d97 Teach cvmach to emit the symbol table. George Koehler 2016-11-22 17:16:30 -0500
  • 19310d2521 Make possible to #include <object.h>. George Koehler 2016-11-22 11:13:14 -0500
  • 6e9c2d5c0d Also call .trp .trap, for ncg compatibility. David Given 2016-11-20 19:39:28 +0100
  • f8fa3ece42 inn on ncg now passes the CPU tests. David Given 2016-11-20 19:35:34 +0100
  • 2d0bc7ef0d Finally 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
  • 88c2ea63aa Use uint32_t in util/led/main.c George Koehler 2016-11-20 11:38:16 -0500
  • 953c08839f inn works now; add a helper for it. David Given 2016-11-20 12:53:44 +0100
  • 196fa914b3 lxa now works, I hope; traps are better (and stubbed out on qemuppc). David Given 2016-11-20 11:57:21 +0100
  • d5328492d7 Better handling of float conversions; more tests; converting to unsigned ints works now. David Given 2016-11-20 11:27:40 +0100
  • 132baac78a Add some more tests. David Given 2016-11-20 10:46:53 +0100
  • 84c7b6ba90 No, sudo doesn't get openbios-ppc installed. I added a whitelisting request: David Given 2016-11-20 10:36:30 +0100
  • 3f45a7d633 Need sudo to install openbios-ppc. David Given 2016-11-20 10:09:58 +0100
  • 5423a175c6 Install openbios on Travis (needed by qemu-system-ppc). David Given 2016-11-20 10:00:59 +0100
  • 6e31d46d6f Fix my typo to put symbol "begrom" in correct section. George Koehler 2016-11-19 19:23:42 -0500
  • 454a7494bb cif8 and cuf8 work now. More tests. David Given 2016-11-19 11:42:30 +0100
  • cc660b230f Floats and doubles are now written out correctly. David Given 2016-11-19 11:39:13 +0100
  • db3564f35a Use .hol0 as an additional name for hol0; mcg requires it. David Given 2016-11-19 11:09:07 +0100
  • 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. David Given 2016-11-19 10:55:41 +0100
  • 5208e5f751 Yet another OB1 stack format fix. David Given 2016-11-19 10:42:22 +0100
  • a4616b7124 Betterer timeout handling. David Given 2016-11-17 22:04:50 +0100
  • 43439c6d0c Remember to push the result of lor onto the stack. David Given 2016-11-17 22:04:32 +0100
  • 745eb8f17b Now _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
  • c25ad82a89 Tests can now specify (via a hacky filename suffix) which runtime they want. David Given 2016-11-16 21:08:03 +0100
  • 71e6ca26d5 Add another test. David Given 2016-11-16 20:56:45 +0100
  • 81bc2c74c5 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. David Given 2016-11-16 20:52:15 +0100
  • edfee33576 Cleanup; the test driver is now way more robust. David Given 2016-11-16 20:50:14 +0100
  • 581fa4a457 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. David Given 2016-11-15 21:55:10 +0100
  • 86c832ef86 Put saved registers in *actually* the write place. I hope. David Given 2016-11-15 21:54:15 +0100
  • cc686ded62 Get subtractions the right way round. David Given 2016-11-15 20:25:11 +0100
  • 486c516242 Stop trying to remove core dumps. George Koehler 2016-11-15 11:58:13 -0500
  • 07b04c64c8 Let ack(1) compile files with non-ASCII names. George Koehler 2016-11-14 23:33:44 -0500
  • 5e8babf098 Add a basic integer shift test. David Given 2016-11-14 22:12:13 +0100
  • c6bce0aaee Add basic integer comparison test. David Given 2016-11-14 22:01:25 +0100
  • 0289b1004e Allow values left on the stack at the end of the procedure (it's legal!). David Given 2016-11-14 21:47:49 +0100
  • 408b69b17d aelflod and aslod now default to not showing the memory dump. David Given 2016-11-13 20:50:23 +0100
  • fafc8a0b8a Don't retry fork() in a loop. George Koehler 2016-11-13 12:45:01 -0500
  • e617f42503 Don't print a string after possibly freeing it. George Koehler 2016-11-13 11:55:09 -0500
  • 91c15c1c63 Precise's qemu package is qemu-system. David Given 2016-11-13 14:20:14 +0100
  • 1ef4780af4 Typo fix. David Given 2016-11-13 14:17:38 +0100
  • 0699e7af97 Attempt to enable the qemuppc tests on Travis. David Given 2016-11-13 14:10:44 +0100
  • e7132183fb 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. David Given 2016-11-13 14:04:58 +0100
  • 6a4f465f53 Add 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
  • e9fe1d70a6 Fix (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
  • 65278bc9a9 In util/ack, add prototypes and static to functions. George Koehler 2016-11-12 21:12:45 -0500
  • f52cb45e49 Add just enough Open Firmware support for an output console. David Given 2016-11-12 22:09:54 +0100
  • 48e74f46fc 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. David Given 2016-11-12 19:20:58 +0100
  • 7b3f870f63 Don't build mktables.c in the ack binary. George Koehler 2016-11-11 17:06:25 -0500
  • 7347cc64e4 Pass DEFAULT_PLATFORM to ackbuilder so util/ack sees it. George Koehler 2016-11-11 17:05:50 -0500
  • 852d3a691d 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). David Given 2016-11-11 21:48:36 +0100
  • b5c1d622f5 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. David Given 2016-11-11 21:17:45 +0100
  • 84ee75ec07 Merge from default. David Given 2016-11-11 20:17:54 +0100
  • d82df74a7a Rename addr_t to address_t to avoid clashes with the system addr_t. David Given 2016-11-11 20:17:10 +0100
  • e7eb563ee9 Disable gethostid() in the build system Lua; it's unused and doesn't work on Haiku. David Given 2016-11-11 20:16:43 +0100
  • 4d7c27391f Merge. David Given 2016-11-10 22:06:08 +0100
  • fd91851005 Add 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
  • 57cb99ade1 Remove sys_time in favour of directly calling time(). David Given 2016-11-09 21:52:04 +0100
  • 0d0495e818 Install only 1 copy, not 2 copies, of osx headers. George Koehler 2016-11-08 17:13:51 -0500
  • ed7fb69f79 Add the missing return in plat/osx/libsys/creat.c George Koehler 2016-11-08 15:35:02 -0500
  • 7f94e971fd Remove trailing whitespace in plat/osx* George Koehler 2016-11-08 15:22:09 -0500
  • cd3cf5b10f Merge branch 'default' into kernigh-osx George Koehler 2016-11-08 13:49:16 -0500
  • 07113c069b Merge pull request #9 from kernigh/fix-flt-trek David Given 2016-11-07 20:15:48 +0100
  • 82c2d18482 Edit startrek.c so I can compile it with gcc and OpenBSD libc. George Koehler 2016-11-06 20:21:48 -0500
  • e5e96d5226 Convert 1 to 1.0, not 0.0, for machines with 64-bit long. George Koehler 2016-11-06 19:34:51 -0500
  • 08f9869a63 Remove unused defines from lang/cem/libcc.ansi/math/localmath.h George Koehler 2016-11-06 15:49:47 -0500
  • 19ca28e22f Undo commit bfeb736 for lang/cem/libcc.ansi/headers/float.h George Koehler 2016-11-06 15:01:25 -0500
  • daeeb5aca3 Simplify flt_arith now that mantissa uses uint32_t. George Koehler 2016-11-05 21:29:03 -0400
  • 3bb41d3910 Switch flt_mantissa fields from long to uint32_t. George Koehler 2016-11-05 17:00:24 -0400
  • 5c62ec2d8f Assume ANSI C in modules/src/flt_arith George Koehler 2016-11-05 16:24:18 -0400
  • 4ba409eb74 Ensure the modules properly depend on their headers. David Given 2016-11-05 11:52:54 +0100
  • fee47b25c3 Merge from default. David Given 2016-11-05 11:47:53 +0100
  • 7f64fe96c7 Properly declare the library headers as dependencies. David Given 2016-11-05 11:47:36 +0100
  • 4fa2c94a4a Correctly mangle labels used in initialisers. David Given 2016-10-31 23:21:33 +0100
  • 9261cd978d Typo fix. David Given 2016-10-31 23:16:02 +0100
  • 941072e0d7 Add, I hope, patterns for fmsub, fnmadd, and fnmsub (also float versions). David Given 2016-10-31 22:36:54 +0100
  • 44f0cea6ca Also use fmadd for single-precision floats. David Given 2016-10-31 19:55:16 +0100
  • 064d1a5d5d Use fmadd for multiply-and-add instructions. David Given 2016-10-31 19:52:17 +0100
  • e19850b114 Fix a few c11isms. David Given 2016-10-30 16:51:06 +0100
  • 694d1e2deb Merge from default. David Given 2016-10-30 15:59:44 +0100
  • db03785109 Merge pull request #7 from davidgiven/travis David Given 2016-10-30 15:59:04 +0100
  • 9b6a5e3ae7 Merge from default. David Given 2016-10-30 15:53:26 +0100
  • a5990289a9 Don't allow parallel builds in the top-level makefile. David Given 2016-10-30 15:49:39 +0100
  • 613821d771 Old versions of make don't support -r. David Given 2016-10-30 14:28:08 +0100
  • ca5b6e07bb Properly export symbols. David Given 2016-10-29 23:52:17 +0200
  • 8c3670483f Get top working with the PowerPC; use it to eliminate useless branches and moves. David Given 2016-10-29 23:37:11 +0200
  • a8c4dac67c Merge from default (merging in George Koehler's PowerPC changes). David Given 2016-10-29 22:40:40 +0200
  • a311e61360 Add support for preserved registers. David Given 2016-10-29 20:22:44 +0200
  • e3ebf986e9 More opcodes. David Given 2016-10-29 13:32:09 +0200
  • 1ae8b90238 More opcodes. David Given 2016-10-29 12:55:34 +0200
  • acaae765af Emit negative constants correctly. David Given 2016-10-29 12:55:21 +0200
  • 61349389fb More 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
  • 68419da235 Actually, the locals need to go above the spills and saved regs, so fp == lb. David Given 2016-10-29 12:00:33 +0200
  • 2cc2c0ae98 Lots 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
  • bfa65168e2 Don'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
  • 658db4ba71 Mangle 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
  • 81525c0f2c Swaps 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
  • be3dece5af Allow emission of strings containing ". David Given 2016-10-27 21:48:46 +0200
  • 51bd3ee4dd Fix 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