about summary refs log tree commit diff stats
Commit message (Collapse)AuthorAgeFilesLines
* mu.subx: test-compare-mem-with-regKartik Agaram2020-05-181-22/+65
|
* mu.subx: test-add-literal-to-memKartik Agaram2020-05-181-20/+63
|
* mu.subx: test-add-literal-to-regKartik Agaram2020-05-181-32/+82
|
* mu.subx: test-add-literal-to-eaxKartik Agaram2020-05-181-23/+72
|
* mu.subx: test-add-mem-to-regKartik Agaram2020-05-181-18/+61
|
* -Kartik Agaram2020-05-181-34/+34
|
* -Kartik Agaram2020-05-181-254/+272
|
* mu.subx: test-add-reg-to-memKartik Agaram2020-05-181-20/+64
|
* mu.subx: test-add-reg-to-reg passingKartik Agaram2020-05-181-12/+15
|
* mu.subx: add handles to remaining declsKartik Agaram2020-05-181-20/+102
| | | | test-add-reg-to-reg should pass now. But it doesn't..
* mu.subx: next test now successfully scans primitivesKartik Agaram2020-05-181-16/+63
| | | | Still failing.
* mu.subx: switch SubX instruction names to globalsKartik Agaram2020-05-181-81/+81
| | | | | | Entirely using interactive search-and-replace in my text editor. This is all ugly as hell. But get it working first.
* mu.subx: switch Mu instruction names to globalsKartik Agaram2020-05-181-80/+80
|
* mu.subx: global decls for all string handlesKartik Agaram2020-05-181-116/+645
| | | | | | | | | | My previous approach was way too slow. Now I just `grep`d for all string literals in the `Primitives` block, and piped them through: while read X; do echo $X |tools/expand_string_handle; done Still required some post-processing, but orders of magnitude faster and more amenable to batch-processing.
* -Kartik Agaram2020-05-183-34/+144
|
* mu.subx: drop a redundant testKartik Agaram2020-05-181-64/+0
|
* mu.subx: fix strings in inc/dec PrimitivesKartik Agaram2020-05-181-30/+99
|
* mu.subx: insert alloc-id everywhere in PrimitivesKartik Agaram2020-05-181-0/+534
|
* -Kartik Agaram2020-05-181-1/+1
|
* -Kartik Agaram2020-05-181-115/+115
|
* -Kartik Agaram2020-05-181-33/+33
|
* mu.subx: make handles in Primitives easier to readKartik Agaram2020-05-182-0/+48
|
* mu.subx: fix misleading setup in passing testsKartik Agaram2020-05-181-5/+5
|
* mu.subx: fifth code-gen testKartik Agaram2020-05-181-19/+70
| | | | | First test using the Primitives global. It's terrible how handles mess up my syntax sugar for strings.
* mu.subx: fourth code-gen testKartik Agaram2020-05-181-29/+102
|
* -Kartik Agaram2020-05-181-6/+2
|
* -Kartik Agaram2020-05-181-9/+18
| | | | | mu-stmt-matches-primitive? is quite a gnarly function. Baby step: better names for labels, so that traces are easier to read.
* fix a misplaced labelKartik Agaram2020-05-181-4/+4
| | | | Two tests were incorrectly passing earlier.
* -Kartik Agaram2020-05-181-8/+0
|
* mu.subx: third code-gen testKartik Agaram2020-05-181-29/+102
| | | | | This is indeed easier. Though defining the global data structure for primitives directly in the data segment is going to get ugly.
* -Kartik Agaram2020-05-181-2/+2
|
* mu.subx: redo passing code-gen testsKartik Agaram2020-05-182-147/+118
| | | | | | We've gone back and rewritten the tests to fit the older format from 3 commits ago. No behavior change, but staying close to the older format should make it easier to update the remaining tests.
* mu.subx: another code-gen testKartik Agaram2020-05-181-37/+105
|
* -Kartik Agaram2020-05-181-8/+4
| | | | Remove one local variable and unnecessary copy.
* mu.subx: first code-gen test passing!Kartik Agaram2020-05-183-109/+258
|
* handle nulls in lookupKartik Agaram2020-05-1813-4/+36
| | | | | | | | | Cleaner abstraction, but adds 3 instructions to our overhead for handles, including one potentially-hard-to-predict jump :/ I wish I could have put the alloc id in eax for the comparison as well, to save a few bytes of instruction space. But that messes up the non-null case.
* mu.subx: all parsing tests passingKartik Agaram2020-05-182-2/+2
|
* mu.subx: tests for parse-var-with-typeKartik Agaram2020-05-181-45/+93
|
* mu.subx: done with function header parsingKartik Agaram2020-05-181-56/+97
|
* mu.subx: second parsing testKartik Agaram2020-05-181-30/+48
| | | | | append-list is still very confusing the way it's written. Maybe I should just use an extra register or an extra local variable or something.
* -Kartik Agaram2020-05-181-2/+2
|
* -Kartik Agaram2020-05-181-1/+1
|
* mu.subx: first parsing test passingKartik Agaram2020-05-181-13/+20
| | | | | | | 2 bugfixes in this commit. I thought I'd seen append-list successfully working in some previous test, but I was wrong.
* -Kartik Agaram2020-05-181-1/+1
|
* ok, let's start running testsKartik Agaram2020-05-181-4/+8
|
* -Kartik Agaram2020-05-181-4/+2
|
* mu.subx: spilling register for reg varsKartik Agaram2020-05-182-20/+22
|
* mu.subx: size-of-derefKartik Agaram2020-05-181-8/+12
|
* mu.subx: size-ofKartik Agaram2020-05-181-6/+8
|
* mu.subx: populate-mu-type-offsetsKartik Agaram2020-05-181-19/+24
| | | | | | | Also locate-typeinfo-entry-with-index, though I didn't need to change much there. But it did get me to notice that I'm returning `addr` from functions. Need to correct my paper.