[AArch64] Improve floating point single instructions.
Instead of having an "INS" instruction after every single instruction to duplicate the bottom 64bits in to the top 64bits of the register, create a new FPR register cache type to track when a register's lower 64bits is supposed to be duplicated in to the high 64bits. Not necessarily actually having the lower bits duplicated in the host side register. This removes inefficient INS instructions from sequential single float instructions. In particular a very heavy single heavy block in Animal Crossing went from 712 instructions down to 520 instructions(~37% less instructions!)
This commit is contained in:
1 parent
5110574c1f
commit
bcde1aa8ff
8 files changed
+300
-224
No files matched your search
@@ -18,8 +18,7 @@ struct BackPatchInfo
|
||||
FLAG_SIZE_F64 = (1 << 6),
|
||||
FLAG_REVERSE = (1 << 7),
|
||||
FLAG_EXTEND = (1 << 8),
|
||||
FLAG_ONLY_LOWER = (1 << 9),
|
||||
FLAG_SIZE_F32I = (1 << 10),
|
||||
FLAG_SIZE_F32I = (1 << 9),
|
||||
};
|
||||
|
||||
static u32 GetFlagSize(u32 flags)
|
||||
|
||||
Reference in new issue
Block a user