Commit Graph

5800 Commits

Author SHA1 Message Date
Kartik Agaram 282681c729 5600 2019-08-31 23:42:45 -07:00
Kartik Agaram f3ab82e943 5599 - sigils: support metadata in %reg and *reg
We already support metadata after *(...)
No plans to support metadata _inside_ *(...)
2019-08-31 23:00:11 -07:00
Kartik Agaram 518429b1cb 5598 2019-08-31 22:34:56 -07:00
Kartik Agaram 5008a4ec4e 5597 2019-08-31 22:34:26 -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 a21fb73d04 5593 2019-08-30 21:26:03 -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 418ea7d3db 5588 - always include desugar in build 2019-08-25 22:15:26 -07:00
Kartik Agaram 8402365977 5587
No need for progress reports on ntranslate; it runs pretty fast.
2019-08-25 22:14:34 -07:00
Kartik Agaram d8c2f71ce9 5586 - bugfix: no desugar inside string literals 2019-08-25 22:03:23 -07:00
Kartik Agaram dac833572b 5585 2019-08-25 20:07:15 -07:00
Kartik Agaram 300f455491 5584
Forgot to switch the knob when fixing the merge conflict between commits
5512 and 1a7b15aa3d.
2019-08-25 17:37:10 -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 9ac3fde9ab 5581 2019-08-25 15:12:56 -07:00
Kartik Agaram e3f1ce6735
Merge pull request #35 from akkartik/desugar
Desugaring pass
2019-08-25 15:11:33 -07:00
Kartik Agaram 57fdbeb2b6 . 2019-08-25 15:07:46 -07:00
Kartik Agaram 0d3b3ef04a Merge branch 'master' into desugar 2019-08-25 15:04:26 -07:00
Kartik Agaram 749d455ac3 . 2019-08-25 14:56:20 -07:00
Kartik Agaram 0a288d46b9 desugar: more integration tests 2019-08-25 14:45:21 -07:00
Kartik Agaram 3cf0ec28d4 desugar: code-generation seems complete 2019-08-25 14:33:26 -07:00
Kartik Agaram f40528078d desugar: parsing seems complete 2019-08-25 00:59:52 -07:00
Kartik Agaram 1a7b15aa3d skip building apps when running a single test
Environment variables allow me to have non-local effects inside scripts.
2019-08-25 00:58:20 -07:00
Kartik Agaram 380fc367b8 parsing *(reg-disp) 2019-08-25 00:32:24 -07:00
Kartik Agaram d230393c92 parsing *(reg+reg)
Turns out there's an ambiguity even in this simple one-line language:
when you see 'base+' you don't know whether the next token is the index
or displacement. (Whereas a '-' would be unambiguous but is still not
handled.)

Fixing this ambiguity adds 15 instructions worth of complexity.
2019-08-25 00:27:42 -07:00
Kartik Agaram be063736d0 parsing *(reg+disp) 2019-08-24 23:42:04 -07:00
Kartik Agaram cf529da986 . 2019-08-24 13:28:20 -07:00
Kartik Agaram 4f8b2bd2fb integration tests for desugaring indirect mode
They caught a logic error.
2019-08-24 13:06:34 -07:00
Kartik Agaram 9191049790 integration tests for desugaring direct mode 2019-08-24 13:06:10 -07:00
Kartik Agaram ab412890e5 use the results of parsing in emit-indirect-mode 2019-08-24 11:45:48 -07:00
Kartik Agaram 23ee933e12 parsing *(reg) 2019-08-24 11:36:37 -07:00
Kartik Agaram b60d8c920e 5523 2019-08-24 09:28:17 -07:00
Kartik Agaram 33de6b8031 build out all variants for skipping whitespace
skip {whitespace, non-whitespace} x {from stream, from slice}
2019-08-24 08:18:09 -07:00
Kartik Agaram 60d59aec85 .
This is pretty complex, but I may not need any more registers.
2019-08-23 15:33:13 -07:00
Kartik Agaram e4ca252873 . 2019-08-23 15:04:47 -07:00
Kartik Agaram 88469e78ae .
Some reorg as I realize I may have painted myself into a corner in this
function. I have no registers left for the actual parsing.
2019-08-23 14:23:25 -07:00
Kartik Agaram 4b296ceef9 parsing *reg
Isn't used yet, but baby steps.
2019-08-23 13:51:29 -07:00
Kartik Agaram fee05edddd another error message 2019-08-23 11:21:13 -07:00
Kartik Agaram 4949dda554 . 2019-08-23 11:07:26 -07:00
Kartik Agaram ba5a2eff2c lexing complex expressions inside '*(...)' 2019-08-23 01:27:36 -07:00
Kartik Agaram ab87ccf62e couple of helpers for parsing expressions in parens 2019-08-22 00:25:41 -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 668700fd2c 5521 2019-08-19 23:45:04 -07:00
Kartik Agaram f7fd97ce4e 5520 - move kernel.config to kernel repo 2019-08-18 22:34:49 -07:00
Kartik Agaram 5256486747 5519 2019-08-18 19:33:00 -07:00