| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
| |
Remove one local variable and unnecessary copy.
|
| |
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
| |
|
| |
|
|
|
|
|
| |
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.
|
| |
|
| |
|
|
|
|
|
|
|
| |
2 bugfixes in this commit.
I thought I'd seen append-list successfully working in some previous test,
but I was wrong.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
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.
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Our four tests are exercising the following 18 primitives at least a little
bit:
add-operation-and-inputs-to-stmt
append-stmt-var
lookup-var
lookup-var-helper
lookup-var-or-literal
new-literal-integer
new-reg-var-def
new-var
new-var-def
new-var-from-slice
next-mu-token
parse-mu-stmt
parse-mu-var-def
parse-type
parse-var-with-type
pos-or-insert-slice
pos-slice
stmt-has-outputs?
For comparison, here are the 34 primitives in mu.subx that we've made significant
changes to since all tests passed:
add-operation-and-inputs-to-stmt
append-list
append-stmt-var
append-to-block
convert-mu
find-or-create-typeinfo
find-or-create-typeinfo-fields
find-or-create-typeinfo-output-var
find-typeinfo
lookup-or-define-var
lookup-var
lookup-var-helper
lookup-var-or-literal
new-block-name
new-literal
new-literal-integer
new-reg-var-def
new-var
new-var-def
new-var-from-slice
next-mu-token
parse-mu
parse-mu-block
parse-mu-named-block
parse-mu-stmt
parse-mu-var-def
parse-type
parse-type-tree
parse-var-with-type
populate-mu-function-body
populate-mu-function-header
pos-or-insert-slice
pos-slice
stmt-has-outputs?
|
| |
|
|
|
|
| |
It's not used in these tests, but still confusing.
|
| |
|
| |
|
|
|
|
| |
..and append-stmt-var
|
| |
|
| |
|
| |
|
|
|
|
| |
test-parse-mu-var now passing. After I had to extensively fix parse-type.
|
|
|
|
| |
Pass everything so far through translate_subx_debug, which has more error-checking.
|
| |
|
| |
|
|
|
|
| |
Still no passing tests; we're just manually translating.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
Trying to switch gears a bit and scope out how much is left. Code-generation
should be a lot less work since few signatures need to change. Hopefully
getting to 55% down mu.subx will really be 90% of the way. In particular,
there are 17 signature changes remaining that need to patch their calling
functions as well.
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
I'm just cleaning up the final call to append-list, and it's internally
consistent if `block` can be an `addr`. I don't know yet if that makes
sense for callers.
I think I also found a bug in append-to-block: it was clobbering eax.
|
|
|
|
|
| |
populate-function-header _almost_ done. I think we just need to fix `push`
next.
|
| |
|
| |
|
| |
|