mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-07-24 14:49:42 -06:00
Merge pull request #2496 from Tilka/fma4
Jit64: add FMA4 support to fmaddXX
This commit is contained in:
@ -291,6 +291,7 @@ private:
|
||||
void WriteAVXOp(u8 opPrefix, u16 op, X64Reg regOp1, X64Reg regOp2, const OpArg& arg, int W = 0, int extrabytes = 0);
|
||||
void WriteAVXOp4(u8 opPrefix, u16 op, X64Reg regOp1, X64Reg regOp2, const OpArg& arg, X64Reg regOp3, int W = 0);
|
||||
void WriteFMA3Op(u8 op, X64Reg regOp1, X64Reg regOp2, const OpArg& arg, int W = 0);
|
||||
void WriteFMA4Op(u8 op, X64Reg dest, X64Reg regOp1, X64Reg regOp2, const OpArg& arg, int W = 0);
|
||||
void WriteBMIOp(int size, u8 opPrefix, u16 op, X64Reg regOp1, X64Reg regOp2, const OpArg& arg, int extrabytes = 0);
|
||||
void WriteBMI1Op(int size, u8 opPrefix, u16 op, X64Reg regOp1, X64Reg regOp2, const OpArg& arg, int extrabytes = 0);
|
||||
void WriteBMI2Op(int size, u8 opPrefix, u16 op, X64Reg regOp1, X64Reg regOp2, const OpArg& arg, int extrabytes = 0);
|
||||
@ -853,6 +854,32 @@ public:
|
||||
void VFMSUBADD213PD(X64Reg regOp1, X64Reg regOp2, const OpArg& arg);
|
||||
void VFMSUBADD231PD(X64Reg regOp1, X64Reg regOp2, const OpArg& arg);
|
||||
|
||||
#define FMA4(name) \
|
||||
void name(X64Reg dest, X64Reg regOp1, X64Reg regOp2, const OpArg& arg); \
|
||||
void name(X64Reg dest, X64Reg regOp1, const OpArg& arg, X64Reg regOp2);
|
||||
|
||||
FMA4(VFMADDSUBPS)
|
||||
FMA4(VFMADDSUBPD)
|
||||
FMA4(VFMSUBADDPS)
|
||||
FMA4(VFMSUBADDPD)
|
||||
FMA4(VFMADDPS)
|
||||
FMA4(VFMADDPD)
|
||||
FMA4(VFMADDSS)
|
||||
FMA4(VFMADDSD)
|
||||
FMA4(VFMSUBPS)
|
||||
FMA4(VFMSUBPD)
|
||||
FMA4(VFMSUBSS)
|
||||
FMA4(VFMSUBSD)
|
||||
FMA4(VFNMADDPS)
|
||||
FMA4(VFNMADDPD)
|
||||
FMA4(VFNMADDSS)
|
||||
FMA4(VFNMADDSD)
|
||||
FMA4(VFNMSUBPS)
|
||||
FMA4(VFNMSUBPD)
|
||||
FMA4(VFNMSUBSS)
|
||||
FMA4(VFNMSUBSD)
|
||||
#undef FMA4
|
||||
|
||||
// VEX GPR instructions
|
||||
void SARX(int bits, X64Reg regOp1, const OpArg& arg, X64Reg regOp2);
|
||||
void SHLX(int bits, X64Reg regOp1, const OpArg& arg, X64Reg regOp2);
|
||||
|
Reference in New Issue
Block a user