diff options
| author | silv3rwing07 <62714207+silv3rwing07@users.noreply.github.com> | 2020-04-14 10:17:25 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-04-14 13:17:25 -0400 |
| commit | 5aef81071e501fbbe5298a433ead06a625cdb3d8 (patch) | |
| tree | 686ccf568a7f05bd7741be96cd22f51d358451d4 /docs | |
| parent | 16646aa34d533b36e3a93985ae59cbefdf58b6d4 (diff) | |
padmgr and related (#71)
* In process of moving changes over from old repo
* Merged in changes
* Finished import of padmgr changes from old repo
* Adjusted some volatile
* Improving padmgr volatile situation
* Almost matched osReadMempak
* Working on osMempakDataCRC
* Explanations and equivalents but no matches for osMempakAddrCRC and osMempakDataCRC
* OK after merge
* Matched osMempakAddrCRC and osMempakDataCRC
* Matched osReadMempak
* Updated PadMgr function names to be less like original code
* Changed variable names to make them further from original code
* Changed names and it stopped matching
* Undid clang-format steamrollering whitespace memes
* Cleaned up Input names
* More formatting changes
* Moved padmgr to z64.h, deleted padmgr.h
Diffstat (limited to 'docs')
| -rw-r--r-- | docs/guides/-O2 decompilation (for IDO 5.3).md | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/docs/guides/-O2 decompilation (for IDO 5.3).md b/docs/guides/-O2 decompilation (for IDO 5.3).md index 25af66810..d662b0436 100644 --- a/docs/guides/-O2 decompilation (for IDO 5.3).md +++ b/docs/guides/-O2 decompilation (for IDO 5.3).md @@ -245,6 +245,8 @@ Conditions like `if (glob.singleBitField)` are sometimes (but not always) emitte Copying a struct generates reorderings compared to copying each data member separately. It might also copy padding data (?), and if the size is 3 (mod 4) it may also generate `lwr`/`swr` instructions (like array initialization). +Sometimes, copying small structs with members that fit nicely into primitive types will use normal `lw`, `lh`, etc. instructions. But, usually copying larger structs will use `lwl`/`lwr` instructions, regardless of the internal data. Also, regalloc for struct copying is different between IDO V5.3 and V7.1. If this is the only non-matching in your function, try the other compiler. + ### Register allocation TODO: we really need to figure this out. |
