Commit Graph

222 Commits

Author SHA1 Message Date
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 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 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 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 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 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 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 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 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 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 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