mirror of
https://github.com/open-goal/jak-project.git
synced 2024-10-20 11:26:18 -04:00
fab73cab75
* docs: move markdown documentation to be caught by docsify * docs: Initial spike of project status / doc portal * docs: Add searchbar to docsify page * docs: Remove the package-lock.json file, not critical for us * docs: Fix search plugin link * docs: Fix search results colors * docs: Remove the navbar, now redundant.
2.3 KiB
2.3 KiB
Version 1
- Fixed bug where eliminated moves would appear in output in the first condition of a function as
(set! a a)
. - Improved expression building immediately before the condition of
if
/cond
- Recognize
(new 'global 'pair <a> <b>)
as(cons <a> <b>)
- Remove useless
(set! <a> #f)
- Remove useless
(set! <a> <b>)
and eliminate useless temporaries created by these. - Remove useless
set!
s sometimes appearing around functions(set! <a> (some-function ...))
when the result is unused, but moved into a different register. - Recognize
(break!)
(GOAL breakpoint) - Support
(new 'process ...)
Version 2
- Expressions like
(set! (-> a b) (-> c d))
are much less likely to have fake temporaries. - Many more useless
set!
s will be removed - Stores into arrays are supported
- Fixed bug where unused/eliminated temporaries would sometimes be used as the result of a block
Version 3
- Normal use of the process pointer will now show up as
pp
. Weird use will still be weird. (method-of-object ...)
will now be recognized- Accessing the address of a variable element of an inline array is supported in some cases. More examples are needed before all work. But for example:
(&-> v0-0 stack (-> v0-0 allocated-length))
wherestack
is anuint8 :dynamic
. - Cleaned up unneeded casts floating point constant
0.0
. - Support for
fmin
/fmax
- Fixed a bug where integer
abs
appeared instead offabs
. - Some support for float -> integer conversions, but it is not 100% yet.
- Eliminate inserted coloring moves for function arguments that use
mtc1
. - Support for
>=
for signed numbers.
Version 4
- Fix bug in decoding of
vdiv
,vsqrt
, andvrsqrt
instructions - Support for virtual method calls (may not recognize 100% of cases yet)
- Support for "weird" new calls
- Fixed a few "update from stack NYI" errors
- Array access recognized in more cases with power of two stride.
- Support for getting the address of something in an inline array with a stride that's not 1 or a power of 2.
- Fixed a bug in unscrambling coloring moves which sometimes caused the wrong values to be used.
- Improved nested cond rewriting to eliminate temporaries in more cases when used as a value
- Support
zero?
andnonzero?
which are evaluated to GOAL booleans. - Fix bug where method calls that "passed through"
a0
from the caller were not recognized.