From 354cf1bf5d9bf673e105095a535f0c747a53f514 Mon Sep 17 00:00:00 2001 From: unknown Date: Fri, 30 Oct 2015 15:48:30 -0400 Subject: [PATCH] fixed x86 compiler address writes --- Source/RSP/Mmx.c | 20 +++---- Source/RSP/Sse.c | 18 ++++--- Source/RSP/X86.c | 132 ++++++++++++++++++++++++----------------------- 3 files changed, 88 insertions(+), 82 deletions(-) diff --git a/Source/RSP/Mmx.c b/Source/RSP/Mmx.c index 718fd44e7..a21c23c94 100644 --- a/Source/RSP/Mmx.c +++ b/Source/RSP/Mmx.c @@ -35,6 +35,8 @@ #define PUTDST8(dest,value) (*((BYTE *)(dest))=(BYTE)(value)); dest += 1; #define PUTDST16(dest,value) (*((WORD *)(dest))=(WORD)(value)); dest += 2; #define PUTDST32(dest,value) (*((DWORD *)(dest))=(DWORD)(value)); dest += 4; +#define PUTDSTPTR(dest, value) \ + *(void **)(dest) = (void *)(value); dest += sizeof(void *); char * mmx_Strings[8] = { "mm0", "mm1", "mm2", "mm3", @@ -96,7 +98,7 @@ void MmxMoveQwordVariableToReg(int Dest, void *Variable, char *VariableName) { PUTDST16(RecompPos,0x6f0f); PUTDST8(RecompPos, x86Command); - PUTDST32(RecompPos,Variable); + PUTDSTPTR(RecompPos, Variable); } void MmxMoveQwordRegToVariable(int Dest, void *Variable, char *VariableName) { @@ -117,7 +119,7 @@ void MmxMoveQwordRegToVariable(int Dest, void *Variable, char *VariableName) { PUTDST16(RecompPos,0x7f0f); PUTDST8(RecompPos, x86Command); - PUTDST32(RecompPos,Variable); + PUTDSTPTR(RecompPos, Variable); } void MmxPorRegToReg(int Dest, int Source) { @@ -167,7 +169,7 @@ void MmxPorVariableToReg(void * Variable, char * VariableName, int Dest) { PUTDST16(RecompPos,0xeb0f); PUTDST8(RecompPos, x86Command); - PUTDST32(RecompPos,Variable); + PUTDSTPTR(RecompPos, Variable); } void MmxPandRegToReg(int Dest, int Source) { @@ -217,7 +219,7 @@ void MmxPandVariableToReg(void * Variable, char * VariableName, int Dest) { PUTDST16(RecompPos,0xdb0f); PUTDST8(RecompPos, x86Command); - PUTDST32(RecompPos,Variable); + PUTDSTPTR(RecompPos, Variable); } void MmxPandnRegToReg(int Dest, int Source) { @@ -296,7 +298,7 @@ void MmxShuffleMemoryToReg(int Dest, void * Variable, char * VariableName, BYTE PUTDST16(RecompPos,0x700f); PUTDST8(RecompPos, x86Command); - PUTDST32(RecompPos,Variable); + PUTDSTPTR(RecompPos, Variable); PUTDST8(RecompPos, Immed); } @@ -375,7 +377,7 @@ void MmxPmullwVariableToReg(int Dest, void * Variable, char * VariableName) { } PUTDST16(RecompPos,0xd50f); PUTDST8(RecompPos, x86Command); - PUTDST32(RecompPos, Variable); + PUTDSTPTR(RecompPos, Variable); } void MmxPmulhuwRegToReg(int Dest, int Source) { @@ -453,7 +455,7 @@ void MmxPmulhwRegToVariable(int Dest, void * Variable, char * VariableName) { } PUTDST16(RecompPos,0xe50f); PUTDST8(RecompPos, x86Command); - PUTDST32(RecompPos, Variable); + PUTDSTPTR(RecompPos, Variable); } @@ -596,7 +598,7 @@ void MmxPaddswVariableToReg(int Dest, void * Variable, char * VariableName) { PUTDST16(RecompPos,0xed0f); PUTDST8(RecompPos, x86Command); - PUTDST32(RecompPos, Variable); + PUTDSTPTR(RecompPos, Variable); } void MmxPsubswVariableToReg(int Dest, void * Variable, char * VariableName) { @@ -617,7 +619,7 @@ void MmxPsubswVariableToReg(int Dest, void * Variable, char * VariableName) { PUTDST16(RecompPos,0xe90f); PUTDST8(RecompPos, x86Command); - PUTDST32(RecompPos, Variable); + PUTDSTPTR(RecompPos, Variable); } void MmxPaddwRegToReg(int Dest, int Source) { diff --git a/Source/RSP/Sse.c b/Source/RSP/Sse.c index 6eddbefba..11729e5fb 100644 --- a/Source/RSP/Sse.c +++ b/Source/RSP/Sse.c @@ -35,6 +35,8 @@ #define PUTDST8(dest,value) (*((BYTE *)(dest))=(BYTE)(value)); dest += 1; #define PUTDST16(dest,value) (*((WORD *)(dest))=(WORD)(value)); dest += 2; #define PUTDST32(dest,value) (*((DWORD *)(dest))=(DWORD)(value)); dest += 4; +#define PUTDSTPTR(dest, value) \ + *(void **)(dest) = (void *)(value); dest += sizeof(void *); char * sse_Strings[8] = { "xmm0", "xmm1", "xmm2", "xmm3", @@ -61,7 +63,7 @@ void SseMoveAlignedVariableToReg(void *Variable, char *VariableName, int sseReg) PUTDST16(RecompPos,0x280f); PUTDST8(RecompPos, x86Command); - PUTDST32(RecompPos,Variable); + PUTDSTPTR(RecompPos, Variable); } void SseMoveAlignedN64MemToReg(int sseReg, int AddrReg) { @@ -92,7 +94,7 @@ void SseMoveAlignedN64MemToReg(int sseReg, int AddrReg) { PUTDST16(RecompPos,0x280f); PUTDST8(RecompPos, x86Command); - PUTDST32(RecompPos,RSPInfo.DMEM); + PUTDSTPTR(RecompPos, RSPInfo.DMEM); } void SseMoveAlignedRegToVariable(int sseReg, void *Variable, char *VariableName) { @@ -113,7 +115,7 @@ void SseMoveAlignedRegToVariable(int sseReg, void *Variable, char *VariableName) PUTDST16(RecompPos,0x290f); PUTDST8(RecompPos, x86Command); - PUTDST32(RecompPos,Variable); + PUTDSTPTR(RecompPos, Variable); } void SseMoveAlignedRegToN64Mem(int sseReg, int AddrReg) { @@ -144,7 +146,7 @@ void SseMoveAlignedRegToN64Mem(int sseReg, int AddrReg) { PUTDST16(RecompPos,0x290f); PUTDST8(RecompPos, x86Command); - PUTDST32(RecompPos,RSPInfo.DMEM); + PUTDSTPTR(RecompPos, RSPInfo.DMEM); } void SseMoveUnalignedVariableToReg(void *Variable, char *VariableName, int sseReg) { @@ -165,7 +167,7 @@ void SseMoveUnalignedVariableToReg(void *Variable, char *VariableName, int sseRe PUTDST16(RecompPos,0x100f); PUTDST8(RecompPos, x86Command); - PUTDST32(RecompPos,Variable); + PUTDSTPTR(RecompPos, Variable); } void SseMoveUnalignedN64MemToReg(int sseReg, int AddrReg) { @@ -196,7 +198,7 @@ void SseMoveUnalignedN64MemToReg(int sseReg, int AddrReg) { PUTDST16(RecompPos,0x100f); PUTDST8(RecompPos, x86Command); - PUTDST32(RecompPos,RSPInfo.DMEM); + PUTDSTPTR(RecompPos, RSPInfo.DMEM); } void SseMoveUnalignedRegToVariable(int sseReg, void *Variable, char *VariableName) { @@ -217,7 +219,7 @@ void SseMoveUnalignedRegToVariable(int sseReg, void *Variable, char *VariableNam PUTDST16(RecompPos,0x110f); PUTDST8(RecompPos, x86Command); - PUTDST32(RecompPos,Variable); + PUTDSTPTR(RecompPos, Variable); } void SseMoveUnalignedRegToN64Mem(int sseReg, int AddrReg) { @@ -248,7 +250,7 @@ void SseMoveUnalignedRegToN64Mem(int sseReg, int AddrReg) { PUTDST16(RecompPos,0x110f); PUTDST8(RecompPos, x86Command); - PUTDST32(RecompPos,RSPInfo.DMEM); + PUTDSTPTR(RecompPos, RSPInfo.DMEM); } void SseMoveRegToReg(int Dest, int Source) { diff --git a/Source/RSP/X86.c b/Source/RSP/X86.c index 947dfb06c..fa20085fa 100644 --- a/Source/RSP/X86.c +++ b/Source/RSP/X86.c @@ -37,6 +37,8 @@ #define PUTDST8(dest,value) (*((BYTE *)(dest))=(BYTE)(value)); dest += 1; #define PUTDST16(dest,value) (*((WORD *)(dest))=(WORD)(value)); dest += 2; #define PUTDST32(dest,value) (*((DWORD *)(dest))=(DWORD)(value)); dest += 4; +#define PUTDSTPTR(dest, value) \ + *(void **)(dest) = (void *)(value); dest += sizeof(void *); char * x86_Strings[8] = { "eax", "ebx", "ecx", "edx", @@ -99,7 +101,7 @@ void AdcX86regToVariable(int x86reg, void * Variable, char * VariableName) { default: DisplayError("AddVariableToX86reg\nUnknown x86 Register"); } - PUTDST32(RecompPos,Variable); + PUTDSTPTR(RecompPos, Variable); } void AdcX86regHalfToVariable(int x86reg, void * Variable, char * VariableName) { @@ -118,13 +120,13 @@ void AdcX86regHalfToVariable(int x86reg, void * Variable, char * VariableName) { default: DisplayError("AdcX86regHalfToVariable\nUnknown x86 Register"); } - PUTDST32(RecompPos,Variable); + PUTDSTPTR(RecompPos, Variable); } void AdcConstToVariable(void *Variable, char *VariableName, BYTE Constant) { CPU_Message(" adc dword ptr [%s], %Xh", VariableName, Constant); PUTDST16(RecompPos,0x1583); - PUTDST32(RecompPos,Variable); + PUTDSTPTR(RecompPos, Variable); PUTDST8(RecompPos,Constant); } @@ -148,7 +150,7 @@ void AdcConstToX86reg( BYTE Constant, int x86reg ) { void AddConstToVariable (DWORD Const, void *Variable, char *VariableName) { CPU_Message(" add dword ptr [%s], 0x%X",VariableName, Const); PUTDST16(RecompPos,0x0581); - PUTDST32(RecompPos,Variable); + PUTDSTPTR(RecompPos, Variable); PUTDST32(RecompPos,Const); } @@ -194,7 +196,7 @@ void AdcConstHalfToVariable(void *Variable, char *VariableName, BYTE Constant) { PUTDST8(RecompPos,0x83); PUTDST8(RecompPos,0x15); - PUTDST32(RecompPos,Variable); + PUTDSTPTR(RecompPos, Variable); PUTDST8(RecompPos,Constant); } @@ -213,7 +215,7 @@ void AddVariableToX86reg(int x86reg, void * Variable, char * VariableName) { default: DisplayError("AddVariableToX86reg\nUnknown x86 Register"); } - PUTDST32(RecompPos,Variable); + PUTDSTPTR(RecompPos, Variable); } void AddX86regToVariable(int x86reg, void * Variable, char * VariableName) { @@ -230,7 +232,7 @@ void AddX86regToVariable(int x86reg, void * Variable, char * VariableName) { default: DisplayError("AddVariableToX86reg\nUnknown x86 Register"); } - PUTDST32(RecompPos,Variable); + PUTDSTPTR(RecompPos, Variable); } void AddX86regHalfToVariable(int x86reg, void * Variable, char * VariableName) { @@ -250,7 +252,7 @@ void AddX86regHalfToVariable(int x86reg, void * Variable, char * VariableName) { default: DisplayError("AddVariableToX86reg\nUnknown x86 Register"); } - PUTDST32(RecompPos,Variable); + PUTDSTPTR(RecompPos, Variable); } void AddX86RegToX86Reg(int Destination, int Source) { @@ -283,7 +285,7 @@ void AddX86RegToX86Reg(int Destination, int Source) { void AndConstToVariable (DWORD Const, void *Variable, char *VariableName) { CPU_Message(" and dword ptr [%s], 0x%X",VariableName, Const); PUTDST16(RecompPos,0x2581); - PUTDST32(RecompPos,Variable); + PUTDSTPTR(RecompPos, Variable); PUTDST32(RecompPos,Const); } @@ -328,7 +330,7 @@ void AndVariableToX86Reg(void * Variable, char * VariableName, int x86Reg) { case x86_ESP: PUTDST16(RecompPos,0x2523); break; case x86_EBP: PUTDST16(RecompPos,0x2D23); break; } - PUTDST32(RecompPos,Variable); + PUTDSTPTR(RecompPos, Variable); } void AndVariableToX86regHalf(void * Variable, char * VariableName, int x86Reg) { @@ -344,7 +346,7 @@ void AndVariableToX86regHalf(void * Variable, char * VariableName, int x86Reg) { case x86_ESP: PUTDST16(RecompPos,0x2523); break; case x86_EBP: PUTDST16(RecompPos,0x2D23); break; } - PUTDST32(RecompPos,Variable); + PUTDSTPTR(RecompPos, Variable); } void AndX86RegToVariable(void * Variable, char * VariableName, int x86Reg) { @@ -359,7 +361,7 @@ void AndX86RegToVariable(void * Variable, char * VariableName, int x86Reg) { case x86_ESP: PUTDST16(RecompPos,0x2521); break; case x86_EBP: PUTDST16(RecompPos,0x2D21); break; } - PUTDST32(RecompPos,Variable); + PUTDSTPTR(RecompPos, Variable); } void AndX86RegToX86Reg(int Destination, int Source) { @@ -466,13 +468,13 @@ void BsrX86RegToX86Reg(int Destination, int Source) { void Call_Direct(void * FunctAddress, char * FunctName) { CPU_Message(" call offset %s",FunctName); PUTDST8(RecompPos,0xE8); - PUTDST32(RecompPos,(DWORD)FunctAddress-(DWORD)RecompPos - 4); + PUTDSTPTR(RecompPos, (size_t)FunctAddress - (size_t)RecompPos - sizeof(void *)); } void Call_Indirect(void * FunctAddress, char * FunctName) { CPU_Message(" call [%s]",FunctName); PUTDST16(RecompPos,0x15FF); - PUTDST32(RecompPos,FunctAddress); + PUTDSTPTR(RecompPos, FunctAddress); } void CondMoveEqual(int Destination, int Source) { @@ -730,7 +732,7 @@ void CondMoveLessEqual(int Destination, int Source) { void CompConstToVariable(DWORD Const, void * Variable, char * VariableName) { CPU_Message(" cmp dword ptr [%s], 0x%X",VariableName, Const); PUTDST16(RecompPos,0x3D81); - PUTDST32(RecompPos,Variable); + PUTDSTPTR(RecompPos, Variable); PUTDST32(RecompPos,Const); } @@ -740,7 +742,7 @@ void CompConstHalfToVariable(WORD Const, void * Variable, char * VariableName) { PUTDST8(RecompPos,0x81); PUTDST8(RecompPos,0x3D); - PUTDST32(RecompPos,Variable); + PUTDSTPTR(RecompPos, Variable); PUTDST16(RecompPos,Const); } @@ -789,7 +791,7 @@ void CompX86regToVariable(int x86Reg, void * Variable, char * VariableName) { default: DisplayError("Unknown x86 Register"); } - PUTDST32(RecompPos,Variable); + PUTDSTPTR(RecompPos, Variable); } void CompVariableToX86reg(int x86Reg, void * Variable, char * VariableName) { @@ -806,7 +808,7 @@ void CompVariableToX86reg(int x86Reg, void * Variable, char * VariableName) { default: DisplayError("Unknown x86 Register"); } - PUTDST32(RecompPos,Variable); + PUTDSTPTR(RecompPos, Variable); } void CompX86RegToX86Reg(int Destination, int Source) { @@ -1149,7 +1151,7 @@ void LeaSourceAndOffset(int x86DestReg, int x86SourceReg, size_t offset) { void MoveConstByteToVariable (BYTE Const,void *Variable, char *VariableName) { CPU_Message(" mov byte ptr [%s], %Xh",VariableName,Const); PUTDST16(RecompPos,0x05C6); - PUTDST32(RecompPos,Variable); + PUTDSTPTR(RecompPos, Variable); PUTDST8(RecompPos,Const); } @@ -1157,14 +1159,14 @@ void MoveConstHalfToVariable (WORD Const,void *Variable, char *VariableName) { CPU_Message(" mov word ptr [%s], %Xh",VariableName,Const); PUTDST8(RecompPos,0x66); PUTDST16(RecompPos,0x05C7); - PUTDST32(RecompPos,Variable); + PUTDSTPTR(RecompPos, Variable); PUTDST16(RecompPos,Const); } void MoveConstToVariable (DWORD Const,void *Variable, char *VariableName) { CPU_Message(" mov dword ptr [%s], %Xh",VariableName,Const); PUTDST16(RecompPos,0x05C7); - PUTDST32(RecompPos,Variable); + PUTDSTPTR(RecompPos, Variable); PUTDST32(RecompPos,Const); } @@ -1481,7 +1483,7 @@ void MoveN64MemDispToX86reg(int x86reg, int AddrReg, BYTE Disp) { case x86_EBP: x86Command += 0xA800; break; } PUTDST16(RecompPos,x86Command); - PUTDST32(RecompPos,RSPInfo.DMEM + Disp); + PUTDSTPTR(RecompPos, RSPInfo.DMEM + Disp); } void MoveN64MemToX86reg(int x86reg, int AddrReg) { @@ -1510,7 +1512,7 @@ void MoveN64MemToX86reg(int x86reg, int AddrReg) { case x86_EBP: x86Command += 0xA800; break; } PUTDST16(RecompPos,x86Command); - PUTDST32(RecompPos,RSPInfo.DMEM); + PUTDSTPTR(RecompPos, RSPInfo.DMEM); } void MoveN64MemToX86regByte(int x86reg, int AddrReg) { @@ -1537,7 +1539,7 @@ void MoveN64MemToX86regByte(int x86reg, int AddrReg) { break; } PUTDST16(RecompPos,x86Command); - PUTDST32(RecompPos,RSPInfo.DMEM); + PUTDSTPTR(RecompPos, RSPInfo.DMEM); } void MoveN64MemToX86regHalf(int x86reg, int AddrReg) { @@ -1567,7 +1569,7 @@ void MoveN64MemToX86regHalf(int x86reg, int AddrReg) { case x86_EBP: x86Command += 0xA800; break; } PUTDST16(RecompPos,x86Command); - PUTDST32(RecompPos,RSPInfo.DMEM); + PUTDSTPTR(RecompPos, RSPInfo.DMEM); } void MoveX86regByteToN64Mem(int x86reg, int AddrReg) { @@ -1590,7 +1592,7 @@ void MoveX86regByteToN64Mem(int x86reg, int AddrReg) { case x86_EDX: x86Command += 0x9000; break; } PUTDST16(RecompPos,x86Command); - PUTDST32(RecompPos,RSPInfo.DMEM); + PUTDSTPTR(RecompPos, RSPInfo.DMEM); } void MoveX86regHalfToN64Mem(int x86reg, int AddrReg) { @@ -1619,7 +1621,7 @@ void MoveX86regHalfToN64Mem(int x86reg, int AddrReg) { case x86_EBP: x86Command += 0xA800; break; } PUTDST16(RecompPos,x86Command); - PUTDST32(RecompPos,RSPInfo.DMEM); + PUTDSTPTR(RecompPos, RSPInfo.DMEM); } void MoveX86regToN64Mem(int x86reg, int AddrReg) { @@ -1647,7 +1649,7 @@ void MoveX86regToN64Mem(int x86reg, int AddrReg) { case x86_EBP: x86Command += 0xA800; break; } PUTDST16(RecompPos,x86Command); - PUTDST32(RecompPos,RSPInfo.DMEM); + PUTDSTPTR(RecompPos, RSPInfo.DMEM); } void MoveX86regToN64MemDisp(int x86reg, int AddrReg, BYTE Disp) { @@ -1675,7 +1677,7 @@ void MoveX86regToN64MemDisp(int x86reg, int AddrReg, BYTE Disp) { case x86_EBP: x86Command += 0xA800; break; } PUTDST16(RecompPos,x86Command); - PUTDST32(RecompPos,RSPInfo.DMEM+Disp); + PUTDSTPTR(RecompPos, RSPInfo.DMEM + Disp); } void MoveVariableToX86reg(void *Variable, char *VariableName, int x86reg) { @@ -1691,7 +1693,7 @@ void MoveVariableToX86reg(void *Variable, char *VariableName, int x86reg) { case x86_EBP: PUTDST16(RecompPos,0x2D8B); break; default: DisplayError("MoveVariableToX86reg\nUnknown x86 Register"); } - PUTDST32(RecompPos,Variable); + PUTDSTPTR(RecompPos, Variable); } void MoveVariableToX86regByte(void *Variable, char *VariableName, int x86reg) { @@ -1703,7 +1705,7 @@ void MoveVariableToX86regByte(void *Variable, char *VariableName, int x86reg) { case x86_EDX: PUTDST16(RecompPos,0x158A); break; default: DisplayError("MoveVariableToX86regByte\nUnknown x86 Register"); } - PUTDST32(RecompPos,Variable); + PUTDSTPTR(RecompPos, Variable); } void MoveVariableToX86regHalf(void *Variable, char *VariableName, int x86reg) { @@ -1720,7 +1722,7 @@ void MoveVariableToX86regHalf(void *Variable, char *VariableName, int x86reg) { case x86_EBP: PUTDST16(RecompPos,0x2D8B); break; default: DisplayError("MoveVariableToX86reg\nUnknown x86 Register"); } - PUTDST32(RecompPos,Variable); + PUTDSTPTR(RecompPos, Variable); } void MoveX86regByteToVariable(int x86reg, void * Variable, char * VariableName) { @@ -1733,7 +1735,7 @@ void MoveX86regByteToVariable(int x86reg, void * Variable, char * VariableName) default: DisplayError("MoveX86regByteToVariable\nUnknown x86 Register"); } - PUTDST32(RecompPos,Variable); + PUTDSTPTR(RecompPos, Variable); } void MoveX86regHalfToVariable(int x86reg, void * Variable, char * VariableName) { @@ -1751,7 +1753,7 @@ void MoveX86regHalfToVariable(int x86reg, void * Variable, char * VariableName) default: DisplayError("MoveX86regHalfToVariable\nUnknown x86 Register"); } - PUTDST32(RecompPos,Variable); + PUTDSTPTR(RecompPos, Variable); } void MoveX86regToVariable(int x86reg, void * Variable, char * VariableName) { @@ -1768,7 +1770,7 @@ void MoveX86regToVariable(int x86reg, void * Variable, char * VariableName) { default: DisplayError("MoveX86regToVariable\nUnknown x86 Register"); } - PUTDST32(RecompPos,Variable); + PUTDSTPTR(RecompPos, Variable); } void MoveX86RegToX86Reg(int Source, int Destination) { @@ -1877,7 +1879,7 @@ void MoveSxVariableToX86regByte(void *Variable, char *VariableName, int x86reg) case x86_EBP: PUTDST8(RecompPos,0x2D); break; default: DisplayError("MoveSxVariableToX86regByte\nUnknown x86 Register"); } - PUTDST32(RecompPos,Variable); + PUTDSTPTR(RecompPos, Variable); } void MoveSxVariableToX86regHalf(void *Variable, char *VariableName, int x86reg) { @@ -1896,7 +1898,7 @@ void MoveSxVariableToX86regHalf(void *Variable, char *VariableName, int x86reg) case x86_EBP: PUTDST8(RecompPos,0x2D); break; default: DisplayError("MoveSxVariableToX86regHalf\nUnknown x86 Register"); } - PUTDST32(RecompPos,Variable); + PUTDSTPTR(RecompPos, Variable); } void MoveSxN64MemToX86regByte(int x86reg, int AddrReg) { @@ -1924,7 +1926,7 @@ void MoveSxN64MemToX86regByte(int x86reg, int AddrReg) { } PUTDST8(RecompPos,0x0f); PUTDST16(RecompPos,x86Command); - PUTDST32(RecompPos,RSPInfo.DMEM); + PUTDSTPTR(RecompPos, RSPInfo.DMEM); } void MoveSxN64MemToX86regHalf(int x86reg, int AddrReg) { @@ -1955,7 +1957,7 @@ void MoveSxN64MemToX86regHalf(int x86reg, int AddrReg) { PUTDST8(RecompPos, 0x0f); PUTDST16(RecompPos,x86Command); - PUTDST32(RecompPos,RSPInfo.DMEM); + PUTDSTPTR(RecompPos, RSPInfo.DMEM); } void MoveZxX86RegHalfToX86Reg(int Source, int Destination) { @@ -2035,7 +2037,7 @@ void MoveZxVariableToX86regByte(void *Variable, char *VariableName, int x86reg) case x86_EBP: PUTDST8(RecompPos,0x2D); break; default: DisplayError("MoveZxVariableToX86regByte\nUnknown x86 Register"); } - PUTDST32(RecompPos,Variable); + PUTDSTPTR(RecompPos, Variable); } void MoveZxVariableToX86regHalf(void *Variable, char *VariableName, int x86reg) { @@ -2054,7 +2056,7 @@ void MoveZxVariableToX86regHalf(void *Variable, char *VariableName, int x86reg) case x86_EBP: PUTDST8(RecompPos,0x2D); break; default: DisplayError("MoveZxVariableToX86regHalf\nUnknown x86 Register"); } - PUTDST32(RecompPos,Variable); + PUTDSTPTR(RecompPos, Variable); } void MoveZxN64MemToX86regByte(int x86reg, int AddrReg) { @@ -2082,7 +2084,7 @@ void MoveZxN64MemToX86regByte(int x86reg, int AddrReg) { } PUTDST8(RecompPos,0x0f); PUTDST16(RecompPos,x86Command); - PUTDST32(RecompPos,RSPInfo.DMEM); + PUTDSTPTR(RecompPos, RSPInfo.DMEM); } void MoveZxN64MemToX86regHalf(int x86reg, int AddrReg) { @@ -2113,7 +2115,7 @@ void MoveZxN64MemToX86regHalf(int x86reg, int AddrReg) { PUTDST8(RecompPos, 0x0f); PUTDST16(RecompPos,x86Command); - PUTDST32(RecompPos,RSPInfo.DMEM); + PUTDSTPTR(RecompPos, RSPInfo.DMEM); } void MulX86reg(int x86reg) { @@ -2167,7 +2169,7 @@ void NotX86reg(int x86reg) { void OrConstToVariable(DWORD Const, void * Variable, char * VariableName) { CPU_Message(" or dword ptr [%s], 0x%X",VariableName, Const); PUTDST16(RecompPos,0x0D81); - PUTDST32(RecompPos,Variable); + PUTDSTPTR(RecompPos, Variable); PUTDST32(RecompPos,Const); } @@ -2212,7 +2214,7 @@ void OrVariableToX86Reg(void * Variable, char * VariableName, int x86Reg) { case x86_ESP: PUTDST16(RecompPos,0x250B); break; case x86_EBP: PUTDST16(RecompPos,0x2D0B); break; } - PUTDST32(RecompPos,Variable); + PUTDSTPTR(RecompPos, Variable); } void OrVariableToX86regHalf(void * Variable, char * VariableName, int x86Reg) { @@ -2228,7 +2230,7 @@ void OrVariableToX86regHalf(void * Variable, char * VariableName, int x86Reg) { case x86_ESP: PUTDST16(RecompPos,0x250B); break; case x86_EBP: PUTDST16(RecompPos,0x2D0B); break; } - PUTDST32(RecompPos,Variable); + PUTDSTPTR(RecompPos, Variable); } void OrX86RegToVariable(void * Variable, char * VariableName, int x86Reg) { @@ -2243,7 +2245,7 @@ void OrX86RegToVariable(void * Variable, char * VariableName, int x86Reg) { case x86_ESP: PUTDST16(RecompPos,0x2509); break; case x86_EBP: PUTDST16(RecompPos,0x2D09); break; } - PUTDST32(RecompPos,Variable); + PUTDSTPTR(RecompPos, Variable); } void OrX86RegToX86Reg(int Destination, int Source) { @@ -2341,14 +2343,14 @@ void SetlVariable(void * Variable, char * VariableName) { CPU_Message(" setl byte ptr [%s]",VariableName); PUTDST16(RecompPos,0x9C0F); PUTDST8(RecompPos,0x05); - PUTDST32(RecompPos,Variable); + PUTDSTPTR(RecompPos, Variable); } void SetleVariable(void * Variable, char * VariableName) { CPU_Message(" setle byte ptr [%s]",VariableName); PUTDST16(RecompPos,0x9E0F); PUTDST8(RecompPos,0x05); - PUTDST32(RecompPos,Variable); + PUTDSTPTR(RecompPos, Variable); } void Setb(int x86reg) { @@ -2368,7 +2370,7 @@ void SetbVariable(void * Variable, char * VariableName) { CPU_Message(" setb byte ptr [%s]",VariableName); PUTDST16(RecompPos,0x920F); PUTDST8(RecompPos,0x05); - PUTDST32(RecompPos,Variable); + PUTDSTPTR(RecompPos, Variable); } void Setg(int x86reg) { @@ -2388,14 +2390,14 @@ void SetgVariable(void * Variable, char * VariableName) { CPU_Message(" setg byte ptr [%s]",VariableName); PUTDST16(RecompPos,0x9F0F); PUTDST8(RecompPos,0x05); - PUTDST32(RecompPos,Variable); + PUTDSTPTR(RecompPos, Variable); } void SetgeVariable(void * Variable, char * VariableName) { CPU_Message(" setge byte ptr [%s]",VariableName); PUTDST16(RecompPos,0x9D0F); PUTDST8(RecompPos,0x05); - PUTDST32(RecompPos,Variable); + PUTDSTPTR(RecompPos, Variable); } void Seta(int x86reg) { @@ -2415,7 +2417,7 @@ void SetaVariable(void * Variable, char * VariableName) { CPU_Message(" seta byte ptr [%s]",VariableName); PUTDST16(RecompPos,0x970F); PUTDST8(RecompPos,0x05); - PUTDST32(RecompPos,Variable); + PUTDSTPTR(RecompPos, Variable); } void Setae(int x86reg) { @@ -2448,7 +2450,7 @@ void SetzVariable(void * Variable, char * VariableName) { CPU_Message(" setz byte ptr [%s]",VariableName); PUTDST16(RecompPos,0x940F); PUTDST8(RecompPos,0x05); - PUTDST32(RecompPos,Variable); + PUTDSTPTR(RecompPos, Variable); } void Setnz(int x86reg) { @@ -2468,7 +2470,7 @@ void SetnzVariable(void * Variable, char * VariableName) { CPU_Message(" setnz byte ptr [%s]",VariableName); PUTDST16(RecompPos,0x950F); PUTDST8(RecompPos,0x05); - PUTDST32(RecompPos,Variable); + PUTDSTPTR(RecompPos, Variable); } void ShiftLeftDoubleImmed(int Destination, int Source, BYTE Immediate) { @@ -2568,7 +2570,7 @@ void ShiftLeftSignVariableImmed(void *Variable, char *VariableName, BYTE Immedia CPU_Message(" shl dword ptr [%s], %Xh",VariableName, Immediate); PUTDST16(RecompPos,0x25C1) - PUTDST32(RecompPos, Variable); + PUTDSTPTR(RecompPos, Variable); PUTDST8(RecompPos,Immediate); } @@ -2593,7 +2595,7 @@ void ShiftRightSignVariableImmed(void *Variable, char *VariableName, BYTE Immedi CPU_Message(" sar dword ptr [%s], %Xh",VariableName, Immediate); PUTDST16(RecompPos,0x3DC1) - PUTDST32(RecompPos, Variable); + PUTDSTPTR(RecompPos, Variable); PUTDST8(RecompPos,Immediate); } @@ -2630,14 +2632,14 @@ void ShiftRightUnsignVariableImmed(void *Variable, char *VariableName, BYTE Imme CPU_Message(" shr dword ptr [%s], %Xh",VariableName, Immediate); PUTDST16(RecompPos,0x2DC1) - PUTDST32(RecompPos, Variable); + PUTDSTPTR(RecompPos, Variable); PUTDST8(RecompPos,Immediate); } void SubConstFromVariable (DWORD Const, void *Variable, char *VariableName) { CPU_Message(" sub dword ptr [%s], 0x%X",VariableName, Const);\ PUTDST16(RecompPos,0x2D81); - PUTDST32(RecompPos,Variable); + PUTDSTPTR(RecompPos, Variable); PUTDST32(RecompPos,Const); } @@ -2684,7 +2686,7 @@ void SubVariableFromX86reg(int x86reg, void * Variable, char * VariableName) { default: DisplayError("SubVariableFromX86reg\nUnknown x86 Register"); } - PUTDST32(RecompPos,Variable); + PUTDSTPTR(RecompPos, Variable); } void SubX86regFromVariable(int x86reg, void * Variable, char * VariableName) { @@ -2701,7 +2703,7 @@ void SubX86regFromVariable(int x86reg, void * Variable, char * VariableName) { default: DisplayError("SubX86regFromVariable\nUnknown x86 Register"); } - PUTDST32(RecompPos,Variable); + PUTDSTPTR(RecompPos, Variable); } void SubX86RegToX86Reg(int Destination, int Source) { @@ -2759,7 +2761,7 @@ void SbbX86RegToX86Reg(int Destination, int Source) { void TestConstToVariable(DWORD Const, void * Variable, char * VariableName) { CPU_Message(" test dword ptr [%s], 0x%X",VariableName, Const); PUTDST16(RecompPos,0x05F7); - PUTDST32(RecompPos,Variable); + PUTDSTPTR(RecompPos, Variable); PUTDST32(RecompPos,Const); } @@ -2840,7 +2842,7 @@ void XorConstToVariable(void *Variable, char *VariableName, DWORD Const) { CPU_Message(" xor dword ptr [%s], 0x%X",VariableName, Const); PUTDST16(RecompPos, 0x3581); - PUTDST32(RecompPos,Variable); + PUTDSTPTR(RecompPos, Variable); PUTDST32(RecompPos, Const); } @@ -2885,7 +2887,7 @@ void XorVariableToX86reg(void *Variable, char *VariableName, int x86reg) { case x86_EBP: PUTDST16(RecompPos,0x2D33); break; default: DisplayError("XorVariableToX86reg\nUnknown x86 Register"); } - PUTDST32(RecompPos,Variable); + PUTDSTPTR(RecompPos, Variable); } void XorX86RegToVariable(void *Variable, char *VariableName, int x86reg) { @@ -2901,5 +2903,5 @@ void XorX86RegToVariable(void *Variable, char *VariableName, int x86reg) { case x86_EBP: PUTDST16(RecompPos,0x2D31); break; default: DisplayError("XorX86RegToVariable\nUnknown x86 Register"); } - PUTDST32(RecompPos,Variable); + PUTDSTPTR(RecompPos, Variable); }