mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-07-30 01:29:42 -06:00
Arm64Emitter: Improve MOVI2R
More or less a complete rewrite of the function which aims to be equally good or better for each given input, without relying on special cases like the old implementation did. In particular, we now have more extensive support for MOVN, as mentioned in a TODO comment.
This commit is contained in:
@ -521,6 +521,9 @@ private:
|
||||
void EncodeAddressInst(u32 op, ARM64Reg Rd, s32 imm);
|
||||
void EncodeLoadStoreUnscaled(u32 size, u32 op, ARM64Reg Rt, ARM64Reg Rn, s32 imm);
|
||||
|
||||
template <typename T>
|
||||
void MOVI2RImpl(ARM64Reg Rd, T imm);
|
||||
|
||||
protected:
|
||||
void Write32(u32 value);
|
||||
|
||||
@ -864,7 +867,7 @@ public:
|
||||
void ADR(ARM64Reg Rd, s32 imm);
|
||||
void ADRP(ARM64Reg Rd, s64 imm);
|
||||
|
||||
// Wrapper around MOVZ+MOVK
|
||||
// Wrapper around ADR/ADRP/MOVZ/MOVN/MOVK
|
||||
void MOVI2R(ARM64Reg Rd, u64 imm);
|
||||
bool MOVI2R2(ARM64Reg Rd, u64 imm1, u64 imm2);
|
||||
template <class P>
|
||||
|
Reference in New Issue
Block a user