summaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
authorsilv3rwing07 <62714207+silv3rwing07@users.noreply.github.com>2020-04-14 10:17:25 -0700
committerGitHub <noreply@github.com>2020-04-14 13:17:25 -0400
commit5aef81071e501fbbe5298a433ead06a625cdb3d8 (patch)
tree686ccf568a7f05bd7741be96cd22f51d358451d4 /docs
parent16646aa34d533b36e3a93985ae59cbefdf58b6d4 (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).md2
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.