Commit Graph

808 Commits

Author SHA1 Message Date
Kartik Agaram 91a5f3e103 6774 2020-09-11 00:59:56 -07:00
Kartik Agaram 68df24fa77 6746 2020-09-07 16:39:44 -07:00
Kartik Agaram 0361a76d86 6724 2020-08-22 13:30:48 -07:00
Kartik Agaram 1a1ab91e77 6717 2020-08-15 21:43:52 -07:00
Kartik Agaram 828bc32057 6716 2020-08-15 21:38:36 -07:00
Kartik Agaram 59a2e363f5 6698 2020-08-01 16:28:32 -07:00
Kartik Agaram af983921f6 6697 2020-08-01 16:25:34 -07:00
Kartik Agaram 1694f9a3b5 6694 2020-07-31 16:15:39 -07:00
Kartik Agaram 7fa80570a0 6693 2020-07-31 16:11:34 -07:00
Kartik Agaram 9cbd4199f3 6685 2020-07-29 22:04:13 -07:00
Kartik Agaram 437838b40d 6678 2020-07-25 19:14:05 -07:00
Kartik Agaram cd07e9b22c 6673 2020-07-25 15:11:08 -07:00
Kartik Agaram 28b25a4893 6657 2020-07-16 22:34:57 -07:00
Kartik Agaram efe641a030 6632 2020-07-11 00:11:39 -07:00
Kartik Agaram 1c349ac7c5 6631 2020-07-11 00:02:29 -07:00
Kartik Agaram ec73ed1230 6631 2020-07-10 23:53:28 -07:00
Kartik Agaram 9a524793ee 6618 - new docs 2020-07-06 01:05:10 -07:00
Kartik Agaram f33979aab1 6606 2020-07-02 15:22:14 -07:00
Kartik Agaram d99a870a11 6605 2020-07-01 20:48:45 -07:00
Kartik Agaram 792451d1be 6603 2020-06-30 14:59:45 -07:00
Kartik Agaram 2655a4a91d 6602 2020-06-30 14:54:30 -07:00
Kartik Agaram 1afc882890 6596 2020-06-29 18:31:17 -07:00
Kartik Agaram 05dabd816a 6594 - start standardizing the meaning of 'print' 2020-06-29 17:58:01 -07:00
Kartik Agaram 40323d3388 6593 2020-06-28 23:36:26 -07:00
Kartik Agaram 3a558d22ec 6573 2020-06-21 23:29:46 -07:00
Kartik Agaram 3b02c3dfa2 6572
Small change to mu.subx to keep the treeshaker working with it. That's
currently the only place where we prevent jumps across 'functions'.
2020-06-21 17:31:38 -07:00
Kartik Agaram 47fe226b7e 6571 2020-06-21 17:13:21 -07:00
Kartik Agaram 04da2a7d10 6551 2020-06-18 08:59:30 -07:00
Kartik Agaram 8f9b21f085 6547 2020-06-16 00:09:16 -07:00
Kartik Agaram 002f03dde2 6517 2020-06-13 20:27:14 -07:00
Kartik Agaram 86351aafe2 6513 2020-06-12 07:57:38 -07:00
Kartik Agaram 07dba48f13 6512 2020-06-12 00:46:06 -07:00
Kartik Agaram 2d0c3b3e68 6502 2020-06-07 23:59:08 -07:00
Kartik Agaram 48d96636fa 6465 2020-06-04 21:17:11 -07:00
Kartik Agaram 39234e89e1 6447 2020-05-30 08:44:46 -07:00
Kartik Agaram 7bdd25fa39 6446 2020-05-30 01:13:04 -07:00
Kartik Agaram 8c3ecee4c1 6443 2020-05-30 00:23:05 -07:00
Kartik Agaram aee83e2752 6426 2020-05-28 23:07:56 -07:00
Kartik Agaram 43ce7fdf59 6425 2020-05-28 22:51:43 -07:00
Kartik Agaram 8f4438e526 6414 2020-05-27 20:50:41 -07:00
Kartik Agaram 9f9aad345d 6410 2020-05-27 01:41:55 -07:00
Kartik Agaram 985f7f79be 6408 2020-05-27 00:01:12 -07:00
Kartik Agaram d796318101 6405 2020-05-25 00:58:12 -07:00
Kartik Agaram a01ddfa22d 6404 2020-05-25 00:49:21 -07:00
Kartik Agaram fcc161e705 6397
Drop '---' section boundaries from filenames. I noticed them confusing
tab-completion for certain advanced shell setups.
2020-05-24 22:43:18 -07:00
Kartik Agaram f92836550b 6396 2020-05-24 22:33:51 -07:00
Kartik Agaram 9a77780158 6384 2020-05-22 23:12:11 -07:00
Kartik Agaram ca358b17a3 table primitives working
$ ./translate_subx init.linux 0*.subx  &&  ./a.elf test
2020-05-18 00:44:46 -07:00
Kartik Agaram 6c29edc726 6214 2020-04-27 08:27:16 -07:00
Kartik Agaram ace5351a9b 6210 2020-04-24 19:51:51 -07:00
Kartik Agaram dfb4a6f9ce 6178 2020-03-31 00:12:37 -07:00
Kartik Agaram cbec147d3b 6173 2020-03-27 02:08:02 -07:00
Kartik Agaram 606c1ab49a 6170 2020-03-25 09:54:53 -07:00
Kartik Agaram 84c426d2ab 6169 2020-03-25 09:46:35 -07:00
Kartik Agaram be19cb8772 6164 2020-03-24 03:49:56 -07:00
Kartik Agaram e25b9e0a4d 6163 2020-03-23 20:56:58 -07:00
Kartik Agaram 783eb31a05 6162 2020-03-23 20:56:49 -07:00
Kartik Agaram 85a964616d 6146 2020-03-14 14:48:05 -07:00
Kartik Agaram 6db056110b 6144 2020-03-14 01:25:34 -07:00
Kartik Agaram 9428990bd6 6143 2020-03-14 01:06:27 -07:00
Kartik Agaram 9aa6e60538 6139 2020-03-12 01:18:29 -07:00
Kartik Agaram 290f2f677a 6138 2020-03-12 01:16:47 -07:00
Kartik Agaram 89fc6e43d5 6135 2020-03-12 00:46:10 -07:00
Kartik Agaram d5171ad7fe 6130 2020-03-11 21:34:49 -07:00
Kartik Agaram 38b1bfd4d0 6119 2020-03-10 16:49:14 -07:00
Kartik Agaram ee0e67b9d7 6091 2020-03-06 18:39:16 -08:00
Kartik Agaram 0743b981a8 6087 2020-03-06 13:51:51 -08:00
Kartik Agaram 651fc300a4 6084 2020-03-06 12:28:57 -08:00
Kartik Agaram 0657fc16ab 6081 - ctags for .mu files 2020-03-05 18:29:00 -08:00
Kartik Agaram 16962ee468 6080 2020-03-05 18:25:37 -08:00
Kartik Agaram a53ab5266f 6078 - highlight hex literals in Vim 2020-03-02 08:23:54 -08:00
Kartik Agaram 32d5099fa0 6077 2020-03-02 08:20:53 -08:00
Kartik Agaram af326d9e39 6070 2020-02-29 05:53:13 -08:00
Kartik Agaram c51f590273 6069 2020-02-29 05:33:03 -08:00
Kartik Agaram 3a2285c613 6068 2020-02-28 11:23:22 -08:00
Kartik Agaram e62702efd0 6066 - Vim syntax highlighting for Mu files 2020-02-28 11:10:17 -08:00
Kartik Agaram a09ab577d1 6065 2020-02-27 21:29:10 -08:00
Kartik Agaram 067e1d5102 6063 2020-02-27 18:50:24 -08:00
Kartik Agaram 6163a55370 6061 2020-02-27 17:31:35 -08:00
Kartik Agaram 510a5429ca 6056 2020-02-27 16:47:40 -08:00
Kartik Agaram 71478004a8 6042 2020-02-21 10:21:38 -08:00
Kartik Agaram f59df9cb75 6038 2020-02-20 18:46:19 -08:00
Kartik Agaram 7c2ac5dcaa 6026 2020-02-18 16:05:13 -08:00
Kartik Agaram 8d79145eaa 6025 2020-02-18 01:38:13 -08:00
Kartik Agaram 75b9ff5010 6018 2020-02-17 20:17:48 -08:00
Kartik Agaram 156cbcff8a 6016 2020-02-17 20:02:02 -08:00
Kartik Agaram c52ae116ac 6015 2020-02-17 15:29:43 -08:00
Kartik Agaram ce29c91c9c 6012 2020-02-16 20:15:25 -08:00
Kartik Agaram 3dad94263f 6001 2020-02-09 20:49:38 -08:00
Kartik Agaram b3891fbc0e 5995 2020-02-08 16:34:27 -08:00
Kartik Agaram bed42be34f 5975 2020-02-02 00:23:49 -08:00
Kartik Agaram 399d2972f2 5972 2020-02-01 22:56:51 -08:00
Kartik Agaram aeac1e061d 5966 - document all supported Mu instructions 2020-01-31 18:55:37 -08:00
Kartik Agaram 4bb0b7e93f 5965 2020-01-31 16:17:04 -08:00
Kartik Agaram 21627e9d02 5963 2020-01-30 01:21:36 -08:00
Kartik Agaram 4c0b4b4611 5958 2020-01-30 00:14:53 -08:00
Kartik Agaram ea62afb1da 5954 - 'factorial' working! 2020-01-29 23:17:36 -08:00
Kartik Agaram c5ea59605c 5952 2020-01-29 19:45:55 -08:00
Kartik Agaram b7ec03984f 5950 2020-01-29 17:38:32 -08:00
Kartik Agaram 514a014df9 5949 2020-01-29 17:37:20 -08:00
Kartik Agaram f4408d76c5 5944 2020-01-28 21:41:24 -08:00
Kartik Agaram f6078f8d04 5941 2020-01-27 16:17:29 -08:00
Kartik Agaram 1862ab4252 5937 2020-01-27 14:15:35 -08:00
Kartik Agaram cfdd5b8bf3 5933
Expand some buffer sizes to continue building mu.subx natively.
2020-01-27 02:35:35 -08:00
Kartik Agaram 2363ceebaf 5932 2020-01-27 02:23:31 -08:00
Kartik Agaram 8ae2c80e19 5931 2020-01-27 02:12:37 -08:00
Kartik Agaram 1d8849e52d 5930 2020-01-27 02:08:47 -08:00
Kartik Agaram 2104d1a75b 5925 2020-01-27 00:39:46 -08:00
Kartik Agaram 810b0f67fa 5922 2020-01-26 23:46:37 -08:00
Kartik Agaram 5b4f4d63bd 5917 2020-01-22 23:47:33 -08:00
Kartik Agaram f833e0a0e7 5912 2020-01-20 03:09:06 -08:00
Kartik Agaram 41e4cfc33f 5904 2020-01-19 23:38:06 -08:00
Kartik Agaram 33258e0ad2 5903 2020-01-19 21:58:32 -08:00
Kartik Agaram 1008059f1f 5901 2020-01-19 17:55:59 -08:00
Kartik Agaram 6070c23e5e 5897 - rename comparison instructions
Signed and unsigned don't quite capture the essence of what the different
combinations of x86 flags are doing for SubX. The crucial distinction is
that one set of comparison operators is for integers and the second is
for addresses.
2020-01-16 18:31:12 -08:00
Kartik Agaram 5a6601aba9 5896 2020-01-16 18:10:42 -08:00
Kartik Agaram 01e88c8833 5895 2020-01-16 18:10:42 -08:00
Kartik Agaram 675fa93ded 5894 2020-01-16 18:10:42 -08:00
Kartik Agaram c504ca5661 5893 2020-01-14 01:52:54 -08:00
Kartik Agaram 8fa32599bb 5889 2020-01-14 01:52:54 -08:00
Kartik Agaram fa786ea791 5884 2020-01-12 14:52:07 -08:00
Kartik Agaram 194d100792 5881 2020-01-10 10:35:17 -08:00
Kartik Agaram 2f899b3b2c 5878
The current prototype doesn't really use floating point; drop the
guardrails there.
2020-01-03 22:12:28 -08:00
Kartik Agaram 68071dca1e 5877 2020-01-03 02:17:53 -08:00
Kartik Agaram 7e7a8a6eae 5876 - address -> addr 2020-01-03 01:36:34 -08:00
Kartik Agaram c9bda4d13e 5875 2020-01-02 15:23:01 -08:00
Kartik Agaram 113bae7311 5856 2020-01-01 17:23:29 -08:00
Kartik Agaram 1b050736ee 5855 2020-01-01 17:11:05 -08:00
Kartik Agaram 03a1de4536 5835 2019-12-28 00:02:29 -08:00
Kartik Agaram cea97b7b22 5810 2019-12-09 16:54:34 -08:00
Kartik Agaram 91624dbaca 5807 2019-12-09 01:32:48 -08:00
Kartik Agaram 8aeb85f04e 5806 2019-12-09 01:26:58 -08:00
Kartik Agaram f25f2e98f9 5786 2019-11-30 14:18:36 -08:00
Kartik Agaram 3ccc100b32 5783 2019-11-30 11:15:15 -08:00
Kartik Agaram 367394c7de 5771 2019-11-28 01:02:40 -08:00
Kartik Agaram 3a7da4e735 5769 - support uppercase hex in SubX 2019-11-28 00:37:26 -08:00
Kartik Agaram 374397f0cb 5766 2019-11-26 22:21:06 -08:00
Kartik Agaram b697b34318 5763 2019-11-26 18:07:55 -08:00
Kartik Agaram 4d20c9ee94 5761 2019-11-26 17:41:25 -08:00
Kartik Agaram 49ffb03084 5756 2019-11-18 17:36:59 -08:00
Kartik Agaram dd6c5fff9e 5755
Support function calls with literal arguments.
2019-11-18 17:29:50 -08:00
Kartik Agaram e9db8e1f25 5754
Support binary instructions with an immediate operand.
2019-11-18 16:30:30 -08:00
Kartik Agaram 6488bfcf85 5753
Binaries are now identical again.
There's a little hack here that we should clean up at some point. But it
requires more thought.

Ordering compiler phases is hard. So far we're only at the start of the
slippery slope into that abyss.
2019-11-18 12:50:01 -08:00
Kartik Agaram 442fdabe30 5752
Support binary operations with reg/mem and reg operands.

Everything is passing. However, the self-hosting translator now generates
some discrepancies compared to the C++ translator :(
2019-11-18 01:15:29 -08:00
Kartik Agaram 0ea0ebcf81 5751 - start of table of Mu primitives
So far this is just the same as our most recent tests. But now we have a
'DSL' for adding more primitives.
2019-11-18 00:24:24 -08:00
Kartik Agaram 3b40e3c331 5750
We can now compile primitive statements while selecting the right template
to code-gen each one from. Even when multiple templates have the same name.
2019-11-17 21:01:36 -08:00
Kartik Agaram edda65475a 5747 2019-11-15 18:44:04 -08:00
Kartik Agaram 95ccc2e055 5745
I've been under-estimating the complexity of translating primitive statements.
We need to separately track information for each primitive about operands
for both the source and emitted SubX notation.
2019-11-14 20:10:49 -08:00
Kartik Agaram 75d5b73cfc 5741
Support variables at positive stack offsets (formal parameters for functions),
and also an indicator for 'any register' for primitive operations.
2019-11-14 17:19:52 -08:00
Kartik Agaram 525767cb0e 5738 2019-11-10 21:04:21 -08:00
Kartik Agaram 34e01d7f26 5732 2019-11-09 09:34:57 -08:00
Kartik Agaram fb26bd2141 5731 2019-11-09 09:07:41 -08:00
Kartik Agaram 3a74e0e646 5730 2019-11-09 09:02:24 -08:00
Kartik Agaram 6dd309a2e1 5726 2019-11-03 00:44:25 -07:00
Kartik Agaram de54d4735b 5725 2019-10-30 09:51:07 -07:00
Kartik Agaram 01c811d9ae 5724 2019-10-29 23:04:12 -07:00
Kartik Agaram efae9496be 5723 2019-10-29 22:39:47 -07:00
Kartik Agaram ffd4a419b4 5717 2019-10-27 00:52:44 -07:00
Kartik Agaram 999c529cb9 5716 2019-10-26 23:51:14 -07:00
Kartik Agaram 0a2247726a 5708 2019-10-19 18:53:05 -07:00
Kartik Agaram c8998b51e1 5707 2019-10-19 18:49:40 -07:00
Kartik Agaram c83dca9cb4 5706 - example at different levels of syntax sugar
Thanks Mateusz Czapliński for the feedback:
  https://lobste.rs/s/xtxlec/mu_minimal_hobbyist_computing_stack#c_1mzq94
2019-10-19 18:43:16 -07:00
Kartik Agaram bb1a1ac2b6 5704
Minor tweaks based on feedback from Max Bernstein.
2019-10-19 14:44:54 -07:00
Kartik Agaram b1635a5c8e 5701 2019-10-17 22:03:48 -07:00
Kartik Agaram 3c1bc4fcb4 5696 2019-10-03 00:15:08 -07:00
Kartik Agaram a844bd058a 5684
Support function-call syntax when linkifying functions in html files.
2019-09-21 00:22:10 -07:00
Kartik Agaram 4a4a392dc7 5683 2019-09-20 11:25:59 -07:00
Kartik Agaram f39eaf81fa 5661 2019-09-15 00:29:52 -07:00
Kartik Agaram a0d3cac4e6 5659 2019-09-15 00:01:26 -07:00
Kartik Agaram 57fa808b18 5637 2019-09-07 13:37:51 -07:00
Kartik Agaram e850764d8c 5632 2019-09-06 19:57:05 -07:00
Kartik Agaram 8475b51e40 5629 2019-09-06 15:48:54 -07:00
Kartik Agaram dde37113cb 5625 2019-09-05 00:33:34 -07:00
Kartik Agaram 77c96940d5 5623 2019-09-04 21:29:42 -07:00
Kartik Agaram 007b5c7faa 5614 2019-09-03 23:56:40 -07:00
Kartik Agaram ae07bf353c 5612 2019-09-02 16:34:31 -07:00
Kartik Agaram e8a1153af1 5611 2019-09-02 15:46:15 -07:00
Kartik Agaram 68dff52698 5610 2019-09-02 15:42:21 -07:00
Kartik Agaram 18bd3ef902 5607 - start of notation for function calls 2019-09-02 15:36:08 -07:00
Kartik Agaram 604c8315bd 5607 2019-09-01 23:57:29 -07:00
Kartik Agaram 7a81a4505c 5606 2019-09-01 23:38:06 -07:00
Kartik Agaram b44c754bc0 5605 - sigils: support *disp32 2019-09-01 23:22:39 -07:00
Kartik Agaram c94ecaf687 5603 2019-09-01 00:39:17 -07:00
Kartik Agaram cafca95097 5602 2019-09-01 00:12:43 -07:00
Kartik Agaram 075354cd17 5601 2019-08-31 23:58:19 -07:00
Kartik Agaram 282681c729 5600 2019-08-31 23:42:45 -07:00
Kartik Agaram 518429b1cb 5598 2019-08-31 22:34:56 -07:00
Kartik Agaram bf02a19d02 5596 2019-08-31 22:18:24 -07:00
Kartik Agaram 3046e34da8 5595 - support ebp and esp in sigils
The x86 instruction set carves out exceptions for these registers.
2019-08-31 22:14:11 -07:00
Kartik Agaram e97b446ac3 5594 - rename 'desugar' to 'sigils'
There's going to be multiple forms of syntax sugar going forward.
2019-08-31 20:43:41 -07:00
Kartik Agaram 333525360b 5592 - switch register names to lowercase 2019-08-26 11:59:21 -07:00
Kartik Agaram 22fb844ba4 5591 2019-08-26 11:54:29 -07:00
Kartik Agaram e0d034b565 5590 2019-08-25 23:33:49 -07:00
Kartik Agaram fc55af70a5 5589 2019-08-25 23:25:08 -07:00
Kartik Agaram 7c878eb0ea 5583
Clean up some missing error messages.
2019-08-25 16:29:10 -07:00
Kartik Agaram 6033844884 5582 2019-08-25 15:54:16 -07:00
Kartik Agaram 0bb09d2e14 5522 - example app: random number stream
Turns out Mu's kernel isn't populating /dev/random correctly.
2019-08-20 00:20:38 -07:00
Kartik Agaram 1ed1d1c842 5499 2019-07-31 15:28:23 -07:00
Kartik Agaram c8a3ccbeb8 5490 2019-07-27 18:26:18 -07:00
Kartik Agaram 6e1eeeebfb 5485 - promote SubX to top-level 2019-07-27 17:47:59 -07:00