Commit Graph

166 Commits

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