decomp: ocean-transition (#616)

* some work on `ocean-transition`

* decomp: finished non-blocked `ocean-transition` functions

* decompiler: Support <0 unsigned comparison

* decompiler/goalc: Support half-word and byte parallel extend ops

* attempt to add support for byte stack spills, assertion errors

`Assertion failed: idx < n_src, file ..\..\..\decompiler\Disasm\Instruction.cpp, line 353`

* decomp: fix byte stack spills, only 1 issue remains in `draw-ocean-transition`

* almost there...

* closer, but unknowns about `dma-buffer` blocking

* dealing with dma-buffer issues

* some more fixes, only an obscure xmm issue remains

* add two problematic functions to blacklists, avoid goal_src additions for now

* fix building/compilation but TypeConsistency hits an assertion error

the `ocean-mid-masks`'s `data` field is none of the types

* decomp: finalize `ocean-transition`

* address feedback - 1 issue remains

* decomp: finalize `ocean-transition`
This commit is contained in:
Tyler Wilding
2021-08-01 17:42:40 -04:00
committed by GitHub
parent 87b44d982a
commit 75f7609baa
16 changed files with 3837 additions and 1248 deletions
+3 -1
View File
@@ -84,7 +84,9 @@ constexpr StackInstrInfo stack_instrs[] = {{InstructionKind::SQ, false, 16, fals
//{InstructionKind::LWU, true, 4, false}
{InstructionKind::SD, false, 8, false},
{InstructionKind::SWC1, false, 4, false},
{InstructionKind::LWC1, true, 4, false}};
{InstructionKind::LWC1, true, 4, false},
{InstructionKind::SB, false, 1, false},
{InstructionKind::LBU, true, 1, false}};
} // namespace
StackSpillMap build_spill_map(const std::vector<Instruction>& instructions, Range<int> range) {