Commit graph

  • c5bb3be495 Speed up register allocation by removing some register classes. George Koehler 2017-02-13 17:44:46 -0500
  • dc05cb2dc8 Add pat cms !defined($1) George Koehler 2017-02-13 16:52:32 -0500
  • 89dd80e34d Add missing instances of "kills ALL" or "with STACK". George Koehler 2017-02-13 16:38:26 -0500
  • ba9b021253 Use .los4 in lar 4 and .sts4 in sar 4. George Koehler 2017-02-13 15:22:00 -0500
  • 54949f713f Change .fef8 and .fif8 to pass values on the stack. George Koehler 2017-02-12 16:44:37 -0500
  • 1de1e8f7f0 Experiment with conversions between integers and floats. George Koehler 2017-02-11 23:23:47 -0500
  • 2e41c392fa Implement blm and bls using an inline loop. George Koehler 2017-02-11 19:30:12 -0500
  • c578c495bb Edit PowerPC assembly for .and, .cms, .ior, .xor, .zer George Koehler 2017-02-11 18:00:56 -0500
  • 13beb5e336 Document RELOLIS from commit 1bf58cf. George Koehler 2017-02-10 11:59:34 -0500
  • 83c13597e1 Use "mr" and make a few other tweaks in PowerPC ncg table. George Koehler 2017-02-10 11:45:50 -0500
  • 85391399a4 Use ha16/lo16 to load or store 1, 2, 8 bytes from labels. George Koehler 2017-02-08 12:31:14 -0500
  • 5e00e1fce2 Trimming mach/powerpc/ncg/table George Koehler 2017-02-08 12:27:16 -0500
  • ed21a59a82 In PowerPC ncg, allocate register for ha16[label]. George Koehler 2017-02-08 12:23:06 -0500
  • 754e96ef16 Use ha16/lo16 to emit pairs of lis/stw, lis/lfs, lis/stfs. George Koehler 2017-02-02 10:48:25 -0500
  • 7255ed403f Tweak some tokens in PowerPC ncg. George Koehler 2017-02-08 12:12:28 -0500
  • 1bf58cf51c Add RELOLIS for PowerPC lis with ha16 or hi16. George Koehler 2017-02-08 11:46:31 -0500
  • f4cfbedd5c Remove #include <stdbool.h> from mach/powerpc/as/mach1.c George Koehler 2017-01-30 16:39:23 -0500
  • 3c1d2d79f0 Remove type quad, use type word_t in PowerPC as. George Koehler 2017-01-30 16:15:02 -0500
  • 48e3aab728 Swap RA and RS when assembling "and", "or", and such instructions. George Koehler 2017-01-30 15:47:09 -0500
  • 9ddbb66c8b Turn off comments again. I turned them on by accident in c416889. George Koehler 2017-01-30 15:45:46 -0500
  • 559233e973 Merge pull request #49 from kernigh/kernigh-pr-xm David Given 2017-01-26 21:21:47 +0100
  • c41688929c In PowerPC ncg, switch the scratch register from r11 to r0. George Koehler 2017-01-26 13:10:08 -0500
  • 1dfd5524e4 In PowerPC top, don't delete addi r0, r0, 0 George Koehler 2017-01-26 12:44:32 -0500
  • 8c8f291a07 In PowerPC libem, remove tge.s and powerpc.h George Koehler 2017-01-26 12:39:16 -0500
  • f64b7d8ea0 Rewrite how PowerPC ncg does conditional branches and tests. George Koehler 2017-01-25 19:08:55 -0500
  • a348853ece Add missing size declarations for 8-byte registers. George Koehler 2017-01-25 11:24:23 -0500
  • 188b23bade Add constraints for pat lab, as done in the m68020 table. George Koehler 2017-01-24 11:26:35 -0500
  • bb67dbeb11 Use "kills ALL" instead of a list of killed registers. George Koehler 2017-01-23 17:31:29 -0500
  • 032bcffef6 In PowerPC libem, use the new features of our assembler. George Koehler 2017-01-23 17:16:39 -0500
  • a41b6f0458 Allow more PowerPC instructions in relocations. George Koehler 2017-01-23 16:19:38 -0500
  • a585ddf578 Fix parameters of signal handlers for linuxppc. George Koehler 2017-01-22 00:52:32 -0500
  • 5aa2ac2246 Teach the assembler about PowerPC extended mnemonics. George Koehler 2017-01-21 23:49:29 -0500
  • b30eeb4169 Merge pull request #46 from kernigh/kernigh-pr-man David Given 2017-01-20 00:06:09 +0100
  • f91bc2804d Tune the installed manual pages. George Koehler 2017-01-18 23:02:30 -0500
  • d7df126730 Merge pull request #44 from kernigh/kernigh-pr-as David Given 2017-01-18 23:33:40 +0100
  • 1a5c595a12 Merge pull request #45 from davidgiven/dtrg-fixups David Given 2017-01-18 20:18:04 +0100
  • 9cc264cfee Add a man page for the PowerPC assembler (not used anywhere yet). David Given 2017-01-18 20:10:16 +0100
  • d5a83fd73e Clean up the led includes. David Given 2017-01-18 19:55:56 +0100
  • f705339f86 Allow more tokens in the assembler. George Koehler 2017-01-17 22:41:11 -0500
  • 01a61e0708 Apply kernigh@'s fix to broken symbol tables in aelflod (via mailing list patch): David Given 2017-01-18 00:06:14 +0100
  • 232545606d Merge from default. David Given 2017-01-18 00:02:32 +0100
  • ba2a03705e Use prototypes in mach/proto/as/comm5.c George Koehler 2017-01-17 16:41:29 -0500
  • 81c677d218 Add a bunch more set operations to the PowerPC backends, and the Pascal test for the same. David Given 2017-01-17 22:31:38 +0100
  • 916d270534 Delay inclusion of <stdint.h> when compiling comm2.y George Koehler 2017-01-16 22:39:44 -0500
  • e97116c037 Remove some obsolete code that causes a gcc warning. George Koehler 2017-01-16 18:09:55 -0500
  • c471f617b7 Ensure that memory is zero-initialised. David Given 2017-01-16 22:45:03 +0100
  • 2cdcc16bc2 Fix a buffer overrun that was manifesting on OpenBSD; also fix a bounds check and some uninitialised variable problems. David Given 2017-01-16 22:44:37 +0100
  • fa5675d439 Run through clang-format. David Given 2017-01-16 21:16:33 +0100
  • 09c79b7dba Fix cosmetic warning when compiling B. David Given 2017-01-15 23:00:17 +0100
  • c4ad07fdfc Merge pull request #40 from davidgiven/dtrg-pas David Given 2017-01-15 22:56:06 +0100
  • b32be06881 Allow the full 8-bit byte range when reading program source. David Given 2017-01-15 22:41:11 +0100
  • 5fd1634830 Rename the test to something more sensible. David Given 2017-01-15 22:33:41 +0100
  • 5ff983ad9b Increase the number of items in a char set from 128 to 256, to cover all possible bytes (7-bit bytes are so 70s). David Given 2017-01-15 22:30:25 +0100
  • e7e29d34ff Add a test (currently failing) to check that Pascal char sets can store all 256 possible values. Add the PowerPC ncg and mcg backend support to let the test actually run, including modifying a bunch of PowrePC libem functions so that they can be called from both ncg and mcg. David Given 2017-01-15 22:28:14 +0100
  • 1ea46f6afe Actually tell the user which tests failed. David Given 2017-01-15 22:26:09 +0100
  • b63a4513d5 Add missing header. David Given 2017-01-15 12:04:47 +0100
  • 9a346c382d Turns out Apple's hi16/ha16 exactly match my ha16/has16, so renamed accordingly. (Memo to self: read the docs *before* doing the work.) David Given 2017-01-15 11:59:33 +0100
  • f80acfe9f5 Signed vs unsigned lower halves of powerpc fixups are now handled by having two assembler directives, ha16() and has16(), for the upper half; has16() applies the sign adjustment. .powerpcfixup is now gone, as we generate the relocation in ha*() instead. Add special logic to the linker for undoing and redoing the sign adjustment when reading/writing fixups. Tests still pass. David Given 2017-01-15 11:51:37 +0100
  • 14aab21204 Revert change; addis/ori requires different handling to addis/lwz due to ori's payload being unsigned while lwz's payload is signed. David Given 2017-01-15 10:31:20 +0100
  • 3c0bc205fc Update the hi/lo syntax to be a bit more standard. David Given 2017-01-15 10:21:02 +0100
  • 8edbff9795 Add assembler support for fixing up arbitrary oris/addi pairs of instructions; this should allow oris/lwz constant value loads, which will save an opcode. David Given 2017-01-15 00:15:01 +0100
  • fd83b09c58 Fix typo. David Given 2017-01-08 18:53:59 +0100
  • 612e14b4b4 Improve confusing error message when calling function procedures from a top-level statement. David Given 2017-01-08 11:25:57 +0100
  • ee5ef73dfb Run through clang-format. David Given 2017-01-08 11:23:56 +0100
  • 62022c6f6b Don't print source file names during compilation (gcc stopped doing it years ago). David Given 2017-01-08 00:16:35 +0100
  • 4b7fc5e233 Run through clang-format. David Given 2017-01-08 00:15:23 +0100
  • 11ea3a2fe1 Don't sort inludes any more (breaks too many ACK files). David Given 2017-01-08 00:15:10 +0100
  • 51862cff82 Merge pull request #32 from dram/add-execve David Given 2017-01-07 23:23:00 +0100
  • 893471a42e No longer truncate module names at 10 characters when constructing paths; rename some library modules to their full names. David Given 2017-01-07 23:00:52 +0100
  • d50a6f99de Run through clang-format. David Given 2017-01-07 22:56:00 +0100
  • cca6171e55 Properly install man pages. David Given 2017-01-07 22:38:30 +0100
  • 9945b019d2 Add a B man page. David Given 2017-01-07 22:35:02 +0100
  • a7fa54e4e0 Update the README. David Given 2017-01-07 20:11:01 +0100
  • 837b9622fb Make sure that constant folding doesn't render our tests trivial. David Given 2017-01-07 19:53:57 +0100
  • abbead482a Sections are now aligned (required by the EM spec). David Given 2017-01-07 18:47:46 +0100
  • efab08178b Fix a bunch of issues with pushing and popping mismatched sizes, which the B compiler does a lot; dup 8 for pairs of words is now optimised. David Given 2017-01-07 18:47:00 +0100
  • 5a38ce2a69 Pre-and-post-modification operators now work substantially better (i.e., working). David Given 2017-01-07 18:46:03 +0100
  • 39215c131e Moved the inc/dec operator tests into their own source file; more exhaustive testing. David Given 2017-01-07 18:38:43 +0100
  • 6b4f8d72b8 ine and ste are now declared to modify memory (preventing cached values being propagated across the modification). David Given 2017-01-07 13:25:09 +0100
  • 7710c76d56 Introduce sequence points before store instructions to prevent loads from the same address being delayed until after the store (at which point they'll return the wrong value). David Given 2017-01-07 13:17:39 +0100
  • 0da248dced Use a better NOT; and after remembering that PowerPC bit numbers are all backwards in the documentation, rewrote IFEQ/IFLT/IFLE to actually work. Probably. Thanks to the B test suite for spotting this. David Given 2017-01-07 01:03:15 +0100
  • 77fc62285d Extern variables can now be written to. David Given 2017-01-06 23:24:05 +0100
  • 73922f1d16 Ensure that procedure labels are word-aligned. David Given 2017-01-06 22:29:52 +0100
  • 24d26b2826 Add execve() system call for Linux Xin Wang 2017-01-06 18:33:52 +0800
  • 72766a02de Fix typo in the descr file which was stopping -B from working. Add B documentation to the ack man page. David Given 2017-01-04 13:28:40 +0000
  • aeb9d4952d Added an abmodules tool which detects B modules and generates an initialiser function for them (in C, unfortunately). David Given 2017-01-03 18:54:13 +0000
  • e2751f76b5 Add a control flow test. David Given 2017-01-01 23:51:48 +0000
  • 62bc2ab97a Jump tables for switch now go in ROM (required by the EM spec). Forward gotos now work. David Given 2017-01-01 23:28:41 +0000
  • 8b8910595a Add proper support for negative constants in external initialisers. David Given 2017-01-01 17:56:53 +0000
  • 049aff9f33 Remove the negative-constant code from the compiler; I think it's going to break a=-1 (with no spaces). Backed out changeset dead3363ac7d. David Given 2017-01-01 17:44:55 +0000
  • be909fe045 Add tests for more operators. David Given 2017-01-01 17:44:03 +0000
  • 374e7a1c57 Add support for the ~ operator. David Given 2017-01-01 17:40:06 +0000
  • b1576e2c77 Add support for negative constants in external initialisers. David Given 2016-12-31 19:43:03 +0000
  • a01523a893 Allow programs to override binit() (so they can register their own modules). David Given 2016-12-31 17:39:51 +0000
  • 1beedca590 Add support for B tests; add a test for the B operators (finding several compiler bugs in the process). David Given 2016-12-31 17:38:52 +0000
  • 803b81e3f4 Add support for the xor operator. David Given 2016-12-31 17:36:12 +0000
  • c3e1ef1064 B patch table names shouldn't be in the B symbol namespace. David Given 2016-12-31 00:14:28 +0000
  • fa02a855e8 Fix issue where !x was actually calculating !!x. David Given 2016-12-31 00:14:04 +0000
  • 462529a7d2 Trying to install openbios-ppc causes Travis to error out now (not sure why). David Given 2016-12-29 17:30:47 +0000
  • e460adc923 Add a B version of the hilo program. David Given 2016-12-29 17:20:51 +0000