about summary refs log tree commit diff stats
Commit message (Collapse)AuthorAgeFilesLines
* 5981 - decompose block cleanup into two traversalsKartik Agaram2020-02-022-35/+113
| | | | | Momentarily less efficient, but we will soon need the ability to emit cleanup code without losing all our state.
* 5980Kartik Agaram2020-02-021-3/+3
|
* 5979Kartik Agaram2020-02-021-2/+3
| | | | | | | Continuing to think about how to translate vars in a block when they're followed by early exits. To clean up everything between a statement and a target label, we need to know somehow the depth the target is defined at.
* 5978Kartik Agaram2020-02-021-1/+4
|
* 5977Kartik Agaram2020-02-022-4/+5
|
* 5976Kartik Agaram2020-02-021-3/+3
|
* 5975Kartik Agaram2020-02-021-7427/+7137
|
* 5974 - support for simple early exitsKartik Agaram2020-02-022-1/+84
| | | | | | | | | | | | | | | So far we only handle unlabeled break instructions correctly. That part is elegance itself. But the rest will need more work: a) For labeled breaks we need to insert code to unwind all intervening blocks. b) For unlabeled loops we need to insert code to unwind the current block and then loop. c) For labeled loops we need to insert code to unwind all intervening blocks and then loop. Is this even worth doing? I think so. It's pretty common for a conditional block inside a loop to 'continue'. That requires looping to somewhere non-local.
* 5973Kartik Agaram2020-02-021-369/+1
|
* 5972Kartik Agaram2020-02-011-6480/+6703
|
* 5971 - emit code with indentationKartik Agaram2020-02-012-256/+309
| | | | This is easy now that we're tracking block depths everywhere.
* 5970 - support block-scoped variablesKartik Agaram2020-02-012-6/+186
|
* 5969Kartik Agaram2020-02-011-27/+26
|
* 5968Kartik Agaram2020-02-014-33/+225
|
* 5967Kartik Agaram2020-02-011-0/+6
|
* 5966 - document all supported Mu instructionsKartik Agaram2020-01-317-22/+209
|
* 5965Kartik Agaram2020-01-312-10/+1
|
* 5964Kartik Agaram2020-01-301-3/+3
|
* 5963Kartik Agaram2020-01-301-3956/+3992
|
* 5962 - string literalsKartik Agaram2020-01-302-6/+43
|
* 5961Kartik Agaram2020-01-302-3/+2
|
* 5960Kartik Agaram2020-01-301-0/+1
|
* 5959Kartik Agaram2020-01-301-1/+1
|
* 5958Kartik Agaram2020-01-304-2848/+2871
|
* 5957 - bootstrap: stale checks for 2-byte opcodesKartik Agaram2020-01-301-2/+14
|
* 5956Kartik Agaram2020-01-291-27/+9
|
* 5955 - error messages when translating Mu programsKartik Agaram2020-01-291-1/+1
|
* 5954 - 'factorial' working!Kartik Agaram2020-01-292-0/+98
|
* 5953 - 'multiply' instructionKartik Agaram2020-01-292-0/+13
|
* 5952Kartik Agaram2020-01-291-2231/+2573
|
* 5951 - 'compare' instructionsKartik Agaram2020-01-292-9/+376
|
* 5950Kartik Agaram2020-01-292-0/+189
|
* 5949Kartik Agaram2020-01-294-6505/+7312
|
* 5948 - branching to named blocksKartik Agaram2020-01-2916-32/+476
|
* 5947 - add a new field to primitivesKartik Agaram2020-01-292-4/+92
| | | | For supporting branches with a target.
* 5946Kartik Agaram2020-01-292-6/+6
|
* 5945 - branchesKartik Agaram2020-01-282-0/+285
|
* 5944Kartik Agaram2020-01-281-5289/+5461
|
* 5943 - initial support for named blocksKartik Agaram2020-01-282-132/+245
|
* 5942 - initial support for blocksKartik Agaram2020-01-282-8/+77
| | | | This was too easy. But there are dragons ahead.
* 5941Kartik Agaram2020-01-271-5176/+5289
|
* 5940 - local vars in registers starting to workKartik Agaram2020-01-272-31/+151
|
* 5939Kartik Agaram2020-01-271-3/+0
|
* 5938Kartik Agaram2020-01-271-0/+1
|
* 5937Kartik Agaram2020-01-272-3231/+3271
|
* 5936 - permit commas everywhereKartik Agaram2020-01-273-12/+52
|
* 5935Kartik Agaram2020-01-271-1/+17
| | | | A new error message: for unclosed string literals.
* 5934Kartik Agaram2020-01-271-3/+3
|
* 5933Kartik Agaram2020-01-2711-4/+4
| | | | Expand some buffer sizes to continue building mu.subx natively.
* 5932Kartik Agaram2020-01-273-0/+163
|