fixed x86 compiler address writes

This commit is contained in:
unknown 2015-10-30 15:48:30 -04:00
parent e7fed940de
commit 354cf1bf5d
3 changed files with 88 additions and 82 deletions

View File

@ -35,6 +35,8 @@
#define PUTDST8(dest,value) (*((BYTE *)(dest))=(BYTE)(value)); dest += 1; #define PUTDST8(dest,value) (*((BYTE *)(dest))=(BYTE)(value)); dest += 1;
#define PUTDST16(dest,value) (*((WORD *)(dest))=(WORD)(value)); dest += 2; #define PUTDST16(dest,value) (*((WORD *)(dest))=(WORD)(value)); dest += 2;
#define PUTDST32(dest,value) (*((DWORD *)(dest))=(DWORD)(value)); dest += 4; #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] = { char * mmx_Strings[8] = {
"mm0", "mm1", "mm2", "mm3", "mm0", "mm1", "mm2", "mm3",
@ -96,7 +98,7 @@ void MmxMoveQwordVariableToReg(int Dest, void *Variable, char *VariableName) {
PUTDST16(RecompPos,0x6f0f); PUTDST16(RecompPos,0x6f0f);
PUTDST8(RecompPos, x86Command); PUTDST8(RecompPos, x86Command);
PUTDST32(RecompPos,Variable); PUTDSTPTR(RecompPos, Variable);
} }
void MmxMoveQwordRegToVariable(int Dest, void *Variable, char *VariableName) { void MmxMoveQwordRegToVariable(int Dest, void *Variable, char *VariableName) {
@ -117,7 +119,7 @@ void MmxMoveQwordRegToVariable(int Dest, void *Variable, char *VariableName) {
PUTDST16(RecompPos,0x7f0f); PUTDST16(RecompPos,0x7f0f);
PUTDST8(RecompPos, x86Command); PUTDST8(RecompPos, x86Command);
PUTDST32(RecompPos,Variable); PUTDSTPTR(RecompPos, Variable);
} }
void MmxPorRegToReg(int Dest, int Source) { void MmxPorRegToReg(int Dest, int Source) {
@ -167,7 +169,7 @@ void MmxPorVariableToReg(void * Variable, char * VariableName, int Dest) {
PUTDST16(RecompPos,0xeb0f); PUTDST16(RecompPos,0xeb0f);
PUTDST8(RecompPos, x86Command); PUTDST8(RecompPos, x86Command);
PUTDST32(RecompPos,Variable); PUTDSTPTR(RecompPos, Variable);
} }
void MmxPandRegToReg(int Dest, int Source) { void MmxPandRegToReg(int Dest, int Source) {
@ -217,7 +219,7 @@ void MmxPandVariableToReg(void * Variable, char * VariableName, int Dest) {
PUTDST16(RecompPos,0xdb0f); PUTDST16(RecompPos,0xdb0f);
PUTDST8(RecompPos, x86Command); PUTDST8(RecompPos, x86Command);
PUTDST32(RecompPos,Variable); PUTDSTPTR(RecompPos, Variable);
} }
void MmxPandnRegToReg(int Dest, int Source) { void MmxPandnRegToReg(int Dest, int Source) {
@ -296,7 +298,7 @@ void MmxShuffleMemoryToReg(int Dest, void * Variable, char * VariableName, BYTE
PUTDST16(RecompPos,0x700f); PUTDST16(RecompPos,0x700f);
PUTDST8(RecompPos, x86Command); PUTDST8(RecompPos, x86Command);
PUTDST32(RecompPos,Variable); PUTDSTPTR(RecompPos, Variable);
PUTDST8(RecompPos, Immed); PUTDST8(RecompPos, Immed);
} }
@ -375,7 +377,7 @@ void MmxPmullwVariableToReg(int Dest, void * Variable, char * VariableName) {
} }
PUTDST16(RecompPos,0xd50f); PUTDST16(RecompPos,0xd50f);
PUTDST8(RecompPos, x86Command); PUTDST8(RecompPos, x86Command);
PUTDST32(RecompPos, Variable); PUTDSTPTR(RecompPos, Variable);
} }
void MmxPmulhuwRegToReg(int Dest, int Source) { void MmxPmulhuwRegToReg(int Dest, int Source) {
@ -453,7 +455,7 @@ void MmxPmulhwRegToVariable(int Dest, void * Variable, char * VariableName) {
} }
PUTDST16(RecompPos,0xe50f); PUTDST16(RecompPos,0xe50f);
PUTDST8(RecompPos, x86Command); PUTDST8(RecompPos, x86Command);
PUTDST32(RecompPos, Variable); PUTDSTPTR(RecompPos, Variable);
} }
@ -596,7 +598,7 @@ void MmxPaddswVariableToReg(int Dest, void * Variable, char * VariableName) {
PUTDST16(RecompPos,0xed0f); PUTDST16(RecompPos,0xed0f);
PUTDST8(RecompPos, x86Command); PUTDST8(RecompPos, x86Command);
PUTDST32(RecompPos, Variable); PUTDSTPTR(RecompPos, Variable);
} }
void MmxPsubswVariableToReg(int Dest, void * Variable, char * VariableName) { void MmxPsubswVariableToReg(int Dest, void * Variable, char * VariableName) {
@ -617,7 +619,7 @@ void MmxPsubswVariableToReg(int Dest, void * Variable, char * VariableName) {
PUTDST16(RecompPos,0xe90f); PUTDST16(RecompPos,0xe90f);
PUTDST8(RecompPos, x86Command); PUTDST8(RecompPos, x86Command);
PUTDST32(RecompPos, Variable); PUTDSTPTR(RecompPos, Variable);
} }
void MmxPaddwRegToReg(int Dest, int Source) { void MmxPaddwRegToReg(int Dest, int Source) {

View File

@ -35,6 +35,8 @@
#define PUTDST8(dest,value) (*((BYTE *)(dest))=(BYTE)(value)); dest += 1; #define PUTDST8(dest,value) (*((BYTE *)(dest))=(BYTE)(value)); dest += 1;
#define PUTDST16(dest,value) (*((WORD *)(dest))=(WORD)(value)); dest += 2; #define PUTDST16(dest,value) (*((WORD *)(dest))=(WORD)(value)); dest += 2;
#define PUTDST32(dest,value) (*((DWORD *)(dest))=(DWORD)(value)); dest += 4; #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] = { char * sse_Strings[8] = {
"xmm0", "xmm1", "xmm2", "xmm3", "xmm0", "xmm1", "xmm2", "xmm3",
@ -61,7 +63,7 @@ void SseMoveAlignedVariableToReg(void *Variable, char *VariableName, int sseReg)
PUTDST16(RecompPos,0x280f); PUTDST16(RecompPos,0x280f);
PUTDST8(RecompPos, x86Command); PUTDST8(RecompPos, x86Command);
PUTDST32(RecompPos,Variable); PUTDSTPTR(RecompPos, Variable);
} }
void SseMoveAlignedN64MemToReg(int sseReg, int AddrReg) { void SseMoveAlignedN64MemToReg(int sseReg, int AddrReg) {
@ -92,7 +94,7 @@ void SseMoveAlignedN64MemToReg(int sseReg, int AddrReg) {
PUTDST16(RecompPos,0x280f); PUTDST16(RecompPos,0x280f);
PUTDST8(RecompPos, x86Command); PUTDST8(RecompPos, x86Command);
PUTDST32(RecompPos,RSPInfo.DMEM); PUTDSTPTR(RecompPos, RSPInfo.DMEM);
} }
void SseMoveAlignedRegToVariable(int sseReg, void *Variable, char *VariableName) { void SseMoveAlignedRegToVariable(int sseReg, void *Variable, char *VariableName) {
@ -113,7 +115,7 @@ void SseMoveAlignedRegToVariable(int sseReg, void *Variable, char *VariableName)
PUTDST16(RecompPos,0x290f); PUTDST16(RecompPos,0x290f);
PUTDST8(RecompPos, x86Command); PUTDST8(RecompPos, x86Command);
PUTDST32(RecompPos,Variable); PUTDSTPTR(RecompPos, Variable);
} }
void SseMoveAlignedRegToN64Mem(int sseReg, int AddrReg) { void SseMoveAlignedRegToN64Mem(int sseReg, int AddrReg) {
@ -144,7 +146,7 @@ void SseMoveAlignedRegToN64Mem(int sseReg, int AddrReg) {
PUTDST16(RecompPos,0x290f); PUTDST16(RecompPos,0x290f);
PUTDST8(RecompPos, x86Command); PUTDST8(RecompPos, x86Command);
PUTDST32(RecompPos,RSPInfo.DMEM); PUTDSTPTR(RecompPos, RSPInfo.DMEM);
} }
void SseMoveUnalignedVariableToReg(void *Variable, char *VariableName, int sseReg) { void SseMoveUnalignedVariableToReg(void *Variable, char *VariableName, int sseReg) {
@ -165,7 +167,7 @@ void SseMoveUnalignedVariableToReg(void *Variable, char *VariableName, int sseRe
PUTDST16(RecompPos,0x100f); PUTDST16(RecompPos,0x100f);
PUTDST8(RecompPos, x86Command); PUTDST8(RecompPos, x86Command);
PUTDST32(RecompPos,Variable); PUTDSTPTR(RecompPos, Variable);
} }
void SseMoveUnalignedN64MemToReg(int sseReg, int AddrReg) { void SseMoveUnalignedN64MemToReg(int sseReg, int AddrReg) {
@ -196,7 +198,7 @@ void SseMoveUnalignedN64MemToReg(int sseReg, int AddrReg) {
PUTDST16(RecompPos,0x100f); PUTDST16(RecompPos,0x100f);
PUTDST8(RecompPos, x86Command); PUTDST8(RecompPos, x86Command);
PUTDST32(RecompPos,RSPInfo.DMEM); PUTDSTPTR(RecompPos, RSPInfo.DMEM);
} }
void SseMoveUnalignedRegToVariable(int sseReg, void *Variable, char *VariableName) { void SseMoveUnalignedRegToVariable(int sseReg, void *Variable, char *VariableName) {
@ -217,7 +219,7 @@ void SseMoveUnalignedRegToVariable(int sseReg, void *Variable, char *VariableNam
PUTDST16(RecompPos,0x110f); PUTDST16(RecompPos,0x110f);
PUTDST8(RecompPos, x86Command); PUTDST8(RecompPos, x86Command);
PUTDST32(RecompPos,Variable); PUTDSTPTR(RecompPos, Variable);
} }
void SseMoveUnalignedRegToN64Mem(int sseReg, int AddrReg) { void SseMoveUnalignedRegToN64Mem(int sseReg, int AddrReg) {
@ -248,7 +250,7 @@ void SseMoveUnalignedRegToN64Mem(int sseReg, int AddrReg) {
PUTDST16(RecompPos,0x110f); PUTDST16(RecompPos,0x110f);
PUTDST8(RecompPos, x86Command); PUTDST8(RecompPos, x86Command);
PUTDST32(RecompPos,RSPInfo.DMEM); PUTDSTPTR(RecompPos, RSPInfo.DMEM);
} }
void SseMoveRegToReg(int Dest, int Source) { void SseMoveRegToReg(int Dest, int Source) {

View File

@ -37,6 +37,8 @@
#define PUTDST8(dest,value) (*((BYTE *)(dest))=(BYTE)(value)); dest += 1; #define PUTDST8(dest,value) (*((BYTE *)(dest))=(BYTE)(value)); dest += 1;
#define PUTDST16(dest,value) (*((WORD *)(dest))=(WORD)(value)); dest += 2; #define PUTDST16(dest,value) (*((WORD *)(dest))=(WORD)(value)); dest += 2;
#define PUTDST32(dest,value) (*((DWORD *)(dest))=(DWORD)(value)); dest += 4; #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] = { char * x86_Strings[8] = {
"eax", "ebx", "ecx", "edx", "eax", "ebx", "ecx", "edx",
@ -99,7 +101,7 @@ void AdcX86regToVariable(int x86reg, void * Variable, char * VariableName) {
default: default:
DisplayError("AddVariableToX86reg\nUnknown x86 Register"); DisplayError("AddVariableToX86reg\nUnknown x86 Register");
} }
PUTDST32(RecompPos,Variable); PUTDSTPTR(RecompPos, Variable);
} }
void AdcX86regHalfToVariable(int x86reg, void * Variable, char * VariableName) { void AdcX86regHalfToVariable(int x86reg, void * Variable, char * VariableName) {
@ -118,13 +120,13 @@ void AdcX86regHalfToVariable(int x86reg, void * Variable, char * VariableName) {
default: default:
DisplayError("AdcX86regHalfToVariable\nUnknown x86 Register"); DisplayError("AdcX86regHalfToVariable\nUnknown x86 Register");
} }
PUTDST32(RecompPos,Variable); PUTDSTPTR(RecompPos, Variable);
} }
void AdcConstToVariable(void *Variable, char *VariableName, BYTE Constant) { void AdcConstToVariable(void *Variable, char *VariableName, BYTE Constant) {
CPU_Message(" adc dword ptr [%s], %Xh", VariableName, Constant); CPU_Message(" adc dword ptr [%s], %Xh", VariableName, Constant);
PUTDST16(RecompPos,0x1583); PUTDST16(RecompPos,0x1583);
PUTDST32(RecompPos,Variable); PUTDSTPTR(RecompPos, Variable);
PUTDST8(RecompPos,Constant); PUTDST8(RecompPos,Constant);
} }
@ -148,7 +150,7 @@ void AdcConstToX86reg( BYTE Constant, int x86reg ) {
void AddConstToVariable (DWORD Const, void *Variable, char *VariableName) { void AddConstToVariable (DWORD Const, void *Variable, char *VariableName) {
CPU_Message(" add dword ptr [%s], 0x%X",VariableName, Const); CPU_Message(" add dword ptr [%s], 0x%X",VariableName, Const);
PUTDST16(RecompPos,0x0581); PUTDST16(RecompPos,0x0581);
PUTDST32(RecompPos,Variable); PUTDSTPTR(RecompPos, Variable);
PUTDST32(RecompPos,Const); PUTDST32(RecompPos,Const);
} }
@ -194,7 +196,7 @@ void AdcConstHalfToVariable(void *Variable, char *VariableName, BYTE Constant) {
PUTDST8(RecompPos,0x83); PUTDST8(RecompPos,0x83);
PUTDST8(RecompPos,0x15); PUTDST8(RecompPos,0x15);
PUTDST32(RecompPos,Variable); PUTDSTPTR(RecompPos, Variable);
PUTDST8(RecompPos,Constant); PUTDST8(RecompPos,Constant);
} }
@ -213,7 +215,7 @@ void AddVariableToX86reg(int x86reg, void * Variable, char * VariableName) {
default: default:
DisplayError("AddVariableToX86reg\nUnknown x86 Register"); DisplayError("AddVariableToX86reg\nUnknown x86 Register");
} }
PUTDST32(RecompPos,Variable); PUTDSTPTR(RecompPos, Variable);
} }
void AddX86regToVariable(int x86reg, void * Variable, char * VariableName) { void AddX86regToVariable(int x86reg, void * Variable, char * VariableName) {
@ -230,7 +232,7 @@ void AddX86regToVariable(int x86reg, void * Variable, char * VariableName) {
default: default:
DisplayError("AddVariableToX86reg\nUnknown x86 Register"); DisplayError("AddVariableToX86reg\nUnknown x86 Register");
} }
PUTDST32(RecompPos,Variable); PUTDSTPTR(RecompPos, Variable);
} }
void AddX86regHalfToVariable(int x86reg, void * Variable, char * VariableName) { void AddX86regHalfToVariable(int x86reg, void * Variable, char * VariableName) {
@ -250,7 +252,7 @@ void AddX86regHalfToVariable(int x86reg, void * Variable, char * VariableName) {
default: default:
DisplayError("AddVariableToX86reg\nUnknown x86 Register"); DisplayError("AddVariableToX86reg\nUnknown x86 Register");
} }
PUTDST32(RecompPos,Variable); PUTDSTPTR(RecompPos, Variable);
} }
void AddX86RegToX86Reg(int Destination, int Source) { void AddX86RegToX86Reg(int Destination, int Source) {
@ -283,7 +285,7 @@ void AddX86RegToX86Reg(int Destination, int Source) {
void AndConstToVariable (DWORD Const, void *Variable, char *VariableName) { void AndConstToVariable (DWORD Const, void *Variable, char *VariableName) {
CPU_Message(" and dword ptr [%s], 0x%X",VariableName, Const); CPU_Message(" and dword ptr [%s], 0x%X",VariableName, Const);
PUTDST16(RecompPos,0x2581); PUTDST16(RecompPos,0x2581);
PUTDST32(RecompPos,Variable); PUTDSTPTR(RecompPos, Variable);
PUTDST32(RecompPos,Const); PUTDST32(RecompPos,Const);
} }
@ -328,7 +330,7 @@ void AndVariableToX86Reg(void * Variable, char * VariableName, int x86Reg) {
case x86_ESP: PUTDST16(RecompPos,0x2523); break; case x86_ESP: PUTDST16(RecompPos,0x2523); break;
case x86_EBP: PUTDST16(RecompPos,0x2D23); break; case x86_EBP: PUTDST16(RecompPos,0x2D23); break;
} }
PUTDST32(RecompPos,Variable); PUTDSTPTR(RecompPos, Variable);
} }
void AndVariableToX86regHalf(void * Variable, char * VariableName, int x86Reg) { 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_ESP: PUTDST16(RecompPos,0x2523); break;
case x86_EBP: PUTDST16(RecompPos,0x2D23); break; case x86_EBP: PUTDST16(RecompPos,0x2D23); break;
} }
PUTDST32(RecompPos,Variable); PUTDSTPTR(RecompPos, Variable);
} }
void AndX86RegToVariable(void * Variable, char * VariableName, int x86Reg) { 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_ESP: PUTDST16(RecompPos,0x2521); break;
case x86_EBP: PUTDST16(RecompPos,0x2D21); break; case x86_EBP: PUTDST16(RecompPos,0x2D21); break;
} }
PUTDST32(RecompPos,Variable); PUTDSTPTR(RecompPos, Variable);
} }
void AndX86RegToX86Reg(int Destination, int Source) { void AndX86RegToX86Reg(int Destination, int Source) {
@ -466,13 +468,13 @@ void BsrX86RegToX86Reg(int Destination, int Source) {
void Call_Direct(void * FunctAddress, char * FunctName) { void Call_Direct(void * FunctAddress, char * FunctName) {
CPU_Message(" call offset %s",FunctName); CPU_Message(" call offset %s",FunctName);
PUTDST8(RecompPos,0xE8); 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) { void Call_Indirect(void * FunctAddress, char * FunctName) {
CPU_Message(" call [%s]",FunctName); CPU_Message(" call [%s]",FunctName);
PUTDST16(RecompPos,0x15FF); PUTDST16(RecompPos,0x15FF);
PUTDST32(RecompPos,FunctAddress); PUTDSTPTR(RecompPos, FunctAddress);
} }
void CondMoveEqual(int Destination, int Source) { void CondMoveEqual(int Destination, int Source) {
@ -730,7 +732,7 @@ void CondMoveLessEqual(int Destination, int Source) {
void CompConstToVariable(DWORD Const, void * Variable, char * VariableName) { void CompConstToVariable(DWORD Const, void * Variable, char * VariableName) {
CPU_Message(" cmp dword ptr [%s], 0x%X",VariableName, Const); CPU_Message(" cmp dword ptr [%s], 0x%X",VariableName, Const);
PUTDST16(RecompPos,0x3D81); PUTDST16(RecompPos,0x3D81);
PUTDST32(RecompPos,Variable); PUTDSTPTR(RecompPos, Variable);
PUTDST32(RecompPos,Const); PUTDST32(RecompPos,Const);
} }
@ -740,7 +742,7 @@ void CompConstHalfToVariable(WORD Const, void * Variable, char * VariableName) {
PUTDST8(RecompPos,0x81); PUTDST8(RecompPos,0x81);
PUTDST8(RecompPos,0x3D); PUTDST8(RecompPos,0x3D);
PUTDST32(RecompPos,Variable); PUTDSTPTR(RecompPos, Variable);
PUTDST16(RecompPos,Const); PUTDST16(RecompPos,Const);
} }
@ -789,7 +791,7 @@ void CompX86regToVariable(int x86Reg, void * Variable, char * VariableName) {
default: default:
DisplayError("Unknown x86 Register"); DisplayError("Unknown x86 Register");
} }
PUTDST32(RecompPos,Variable); PUTDSTPTR(RecompPos, Variable);
} }
void CompVariableToX86reg(int x86Reg, void * Variable, char * VariableName) { void CompVariableToX86reg(int x86Reg, void * Variable, char * VariableName) {
@ -806,7 +808,7 @@ void CompVariableToX86reg(int x86Reg, void * Variable, char * VariableName) {
default: default:
DisplayError("Unknown x86 Register"); DisplayError("Unknown x86 Register");
} }
PUTDST32(RecompPos,Variable); PUTDSTPTR(RecompPos, Variable);
} }
void CompX86RegToX86Reg(int Destination, int Source) { 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) { void MoveConstByteToVariable (BYTE Const,void *Variable, char *VariableName) {
CPU_Message(" mov byte ptr [%s], %Xh",VariableName,Const); CPU_Message(" mov byte ptr [%s], %Xh",VariableName,Const);
PUTDST16(RecompPos,0x05C6); PUTDST16(RecompPos,0x05C6);
PUTDST32(RecompPos,Variable); PUTDSTPTR(RecompPos, Variable);
PUTDST8(RecompPos,Const); PUTDST8(RecompPos,Const);
} }
@ -1157,14 +1159,14 @@ void MoveConstHalfToVariable (WORD Const,void *Variable, char *VariableName) {
CPU_Message(" mov word ptr [%s], %Xh",VariableName,Const); CPU_Message(" mov word ptr [%s], %Xh",VariableName,Const);
PUTDST8(RecompPos,0x66); PUTDST8(RecompPos,0x66);
PUTDST16(RecompPos,0x05C7); PUTDST16(RecompPos,0x05C7);
PUTDST32(RecompPos,Variable); PUTDSTPTR(RecompPos, Variable);
PUTDST16(RecompPos,Const); PUTDST16(RecompPos,Const);
} }
void MoveConstToVariable (DWORD Const,void *Variable, char *VariableName) { void MoveConstToVariable (DWORD Const,void *Variable, char *VariableName) {
CPU_Message(" mov dword ptr [%s], %Xh",VariableName,Const); CPU_Message(" mov dword ptr [%s], %Xh",VariableName,Const);
PUTDST16(RecompPos,0x05C7); PUTDST16(RecompPos,0x05C7);
PUTDST32(RecompPos,Variable); PUTDSTPTR(RecompPos, Variable);
PUTDST32(RecompPos,Const); PUTDST32(RecompPos,Const);
} }
@ -1481,7 +1483,7 @@ void MoveN64MemDispToX86reg(int x86reg, int AddrReg, BYTE Disp) {
case x86_EBP: x86Command += 0xA800; break; case x86_EBP: x86Command += 0xA800; break;
} }
PUTDST16(RecompPos,x86Command); PUTDST16(RecompPos,x86Command);
PUTDST32(RecompPos,RSPInfo.DMEM + Disp); PUTDSTPTR(RecompPos, RSPInfo.DMEM + Disp);
} }
void MoveN64MemToX86reg(int x86reg, int AddrReg) { void MoveN64MemToX86reg(int x86reg, int AddrReg) {
@ -1510,7 +1512,7 @@ void MoveN64MemToX86reg(int x86reg, int AddrReg) {
case x86_EBP: x86Command += 0xA800; break; case x86_EBP: x86Command += 0xA800; break;
} }
PUTDST16(RecompPos,x86Command); PUTDST16(RecompPos,x86Command);
PUTDST32(RecompPos,RSPInfo.DMEM); PUTDSTPTR(RecompPos, RSPInfo.DMEM);
} }
void MoveN64MemToX86regByte(int x86reg, int AddrReg) { void MoveN64MemToX86regByte(int x86reg, int AddrReg) {
@ -1537,7 +1539,7 @@ void MoveN64MemToX86regByte(int x86reg, int AddrReg) {
break; break;
} }
PUTDST16(RecompPos,x86Command); PUTDST16(RecompPos,x86Command);
PUTDST32(RecompPos,RSPInfo.DMEM); PUTDSTPTR(RecompPos, RSPInfo.DMEM);
} }
void MoveN64MemToX86regHalf(int x86reg, int AddrReg) { void MoveN64MemToX86regHalf(int x86reg, int AddrReg) {
@ -1567,7 +1569,7 @@ void MoveN64MemToX86regHalf(int x86reg, int AddrReg) {
case x86_EBP: x86Command += 0xA800; break; case x86_EBP: x86Command += 0xA800; break;
} }
PUTDST16(RecompPos,x86Command); PUTDST16(RecompPos,x86Command);
PUTDST32(RecompPos,RSPInfo.DMEM); PUTDSTPTR(RecompPos, RSPInfo.DMEM);
} }
void MoveX86regByteToN64Mem(int x86reg, int AddrReg) { void MoveX86regByteToN64Mem(int x86reg, int AddrReg) {
@ -1590,7 +1592,7 @@ void MoveX86regByteToN64Mem(int x86reg, int AddrReg) {
case x86_EDX: x86Command += 0x9000; break; case x86_EDX: x86Command += 0x9000; break;
} }
PUTDST16(RecompPos,x86Command); PUTDST16(RecompPos,x86Command);
PUTDST32(RecompPos,RSPInfo.DMEM); PUTDSTPTR(RecompPos, RSPInfo.DMEM);
} }
void MoveX86regHalfToN64Mem(int x86reg, int AddrReg) { void MoveX86regHalfToN64Mem(int x86reg, int AddrReg) {
@ -1619,7 +1621,7 @@ void MoveX86regHalfToN64Mem(int x86reg, int AddrReg) {
case x86_EBP: x86Command += 0xA800; break; case x86_EBP: x86Command += 0xA800; break;
} }
PUTDST16(RecompPos,x86Command); PUTDST16(RecompPos,x86Command);
PUTDST32(RecompPos,RSPInfo.DMEM); PUTDSTPTR(RecompPos, RSPInfo.DMEM);
} }
void MoveX86regToN64Mem(int x86reg, int AddrReg) { void MoveX86regToN64Mem(int x86reg, int AddrReg) {
@ -1647,7 +1649,7 @@ void MoveX86regToN64Mem(int x86reg, int AddrReg) {
case x86_EBP: x86Command += 0xA800; break; case x86_EBP: x86Command += 0xA800; break;
} }
PUTDST16(RecompPos,x86Command); PUTDST16(RecompPos,x86Command);
PUTDST32(RecompPos,RSPInfo.DMEM); PUTDSTPTR(RecompPos, RSPInfo.DMEM);
} }
void MoveX86regToN64MemDisp(int x86reg, int AddrReg, BYTE Disp) { 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; case x86_EBP: x86Command += 0xA800; break;
} }
PUTDST16(RecompPos,x86Command); PUTDST16(RecompPos,x86Command);
PUTDST32(RecompPos,RSPInfo.DMEM+Disp); PUTDSTPTR(RecompPos, RSPInfo.DMEM + Disp);
} }
void MoveVariableToX86reg(void *Variable, char *VariableName, int x86reg) { 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; case x86_EBP: PUTDST16(RecompPos,0x2D8B); break;
default: DisplayError("MoveVariableToX86reg\nUnknown x86 Register"); default: DisplayError("MoveVariableToX86reg\nUnknown x86 Register");
} }
PUTDST32(RecompPos,Variable); PUTDSTPTR(RecompPos, Variable);
} }
void MoveVariableToX86regByte(void *Variable, char *VariableName, int x86reg) { 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; case x86_EDX: PUTDST16(RecompPos,0x158A); break;
default: DisplayError("MoveVariableToX86regByte\nUnknown x86 Register"); default: DisplayError("MoveVariableToX86regByte\nUnknown x86 Register");
} }
PUTDST32(RecompPos,Variable); PUTDSTPTR(RecompPos, Variable);
} }
void MoveVariableToX86regHalf(void *Variable, char *VariableName, int x86reg) { 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; case x86_EBP: PUTDST16(RecompPos,0x2D8B); break;
default: DisplayError("MoveVariableToX86reg\nUnknown x86 Register"); default: DisplayError("MoveVariableToX86reg\nUnknown x86 Register");
} }
PUTDST32(RecompPos,Variable); PUTDSTPTR(RecompPos, Variable);
} }
void MoveX86regByteToVariable(int x86reg, void * Variable, char * VariableName) { void MoveX86regByteToVariable(int x86reg, void * Variable, char * VariableName) {
@ -1733,7 +1735,7 @@ void MoveX86regByteToVariable(int x86reg, void * Variable, char * VariableName)
default: default:
DisplayError("MoveX86regByteToVariable\nUnknown x86 Register"); DisplayError("MoveX86regByteToVariable\nUnknown x86 Register");
} }
PUTDST32(RecompPos,Variable); PUTDSTPTR(RecompPos, Variable);
} }
void MoveX86regHalfToVariable(int x86reg, void * Variable, char * VariableName) { void MoveX86regHalfToVariable(int x86reg, void * Variable, char * VariableName) {
@ -1751,7 +1753,7 @@ void MoveX86regHalfToVariable(int x86reg, void * Variable, char * VariableName)
default: default:
DisplayError("MoveX86regHalfToVariable\nUnknown x86 Register"); DisplayError("MoveX86regHalfToVariable\nUnknown x86 Register");
} }
PUTDST32(RecompPos,Variable); PUTDSTPTR(RecompPos, Variable);
} }
void MoveX86regToVariable(int x86reg, void * Variable, char * VariableName) { void MoveX86regToVariable(int x86reg, void * Variable, char * VariableName) {
@ -1768,7 +1770,7 @@ void MoveX86regToVariable(int x86reg, void * Variable, char * VariableName) {
default: default:
DisplayError("MoveX86regToVariable\nUnknown x86 Register"); DisplayError("MoveX86regToVariable\nUnknown x86 Register");
} }
PUTDST32(RecompPos,Variable); PUTDSTPTR(RecompPos, Variable);
} }
void MoveX86RegToX86Reg(int Source, int Destination) { 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; case x86_EBP: PUTDST8(RecompPos,0x2D); break;
default: DisplayError("MoveSxVariableToX86regByte\nUnknown x86 Register"); default: DisplayError("MoveSxVariableToX86regByte\nUnknown x86 Register");
} }
PUTDST32(RecompPos,Variable); PUTDSTPTR(RecompPos, Variable);
} }
void MoveSxVariableToX86regHalf(void *Variable, char *VariableName, int x86reg) { 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; case x86_EBP: PUTDST8(RecompPos,0x2D); break;
default: DisplayError("MoveSxVariableToX86regHalf\nUnknown x86 Register"); default: DisplayError("MoveSxVariableToX86regHalf\nUnknown x86 Register");
} }
PUTDST32(RecompPos,Variable); PUTDSTPTR(RecompPos, Variable);
} }
void MoveSxN64MemToX86regByte(int x86reg, int AddrReg) { void MoveSxN64MemToX86regByte(int x86reg, int AddrReg) {
@ -1924,7 +1926,7 @@ void MoveSxN64MemToX86regByte(int x86reg, int AddrReg) {
} }
PUTDST8(RecompPos,0x0f); PUTDST8(RecompPos,0x0f);
PUTDST16(RecompPos,x86Command); PUTDST16(RecompPos,x86Command);
PUTDST32(RecompPos,RSPInfo.DMEM); PUTDSTPTR(RecompPos, RSPInfo.DMEM);
} }
void MoveSxN64MemToX86regHalf(int x86reg, int AddrReg) { void MoveSxN64MemToX86regHalf(int x86reg, int AddrReg) {
@ -1955,7 +1957,7 @@ void MoveSxN64MemToX86regHalf(int x86reg, int AddrReg) {
PUTDST8(RecompPos, 0x0f); PUTDST8(RecompPos, 0x0f);
PUTDST16(RecompPos,x86Command); PUTDST16(RecompPos,x86Command);
PUTDST32(RecompPos,RSPInfo.DMEM); PUTDSTPTR(RecompPos, RSPInfo.DMEM);
} }
void MoveZxX86RegHalfToX86Reg(int Source, int Destination) { 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; case x86_EBP: PUTDST8(RecompPos,0x2D); break;
default: DisplayError("MoveZxVariableToX86regByte\nUnknown x86 Register"); default: DisplayError("MoveZxVariableToX86regByte\nUnknown x86 Register");
} }
PUTDST32(RecompPos,Variable); PUTDSTPTR(RecompPos, Variable);
} }
void MoveZxVariableToX86regHalf(void *Variable, char *VariableName, int x86reg) { 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; case x86_EBP: PUTDST8(RecompPos,0x2D); break;
default: DisplayError("MoveZxVariableToX86regHalf\nUnknown x86 Register"); default: DisplayError("MoveZxVariableToX86regHalf\nUnknown x86 Register");
} }
PUTDST32(RecompPos,Variable); PUTDSTPTR(RecompPos, Variable);
} }
void MoveZxN64MemToX86regByte(int x86reg, int AddrReg) { void MoveZxN64MemToX86regByte(int x86reg, int AddrReg) {
@ -2082,7 +2084,7 @@ void MoveZxN64MemToX86regByte(int x86reg, int AddrReg) {
} }
PUTDST8(RecompPos,0x0f); PUTDST8(RecompPos,0x0f);
PUTDST16(RecompPos,x86Command); PUTDST16(RecompPos,x86Command);
PUTDST32(RecompPos,RSPInfo.DMEM); PUTDSTPTR(RecompPos, RSPInfo.DMEM);
} }
void MoveZxN64MemToX86regHalf(int x86reg, int AddrReg) { void MoveZxN64MemToX86regHalf(int x86reg, int AddrReg) {
@ -2113,7 +2115,7 @@ void MoveZxN64MemToX86regHalf(int x86reg, int AddrReg) {
PUTDST8(RecompPos, 0x0f); PUTDST8(RecompPos, 0x0f);
PUTDST16(RecompPos,x86Command); PUTDST16(RecompPos,x86Command);
PUTDST32(RecompPos,RSPInfo.DMEM); PUTDSTPTR(RecompPos, RSPInfo.DMEM);
} }
void MulX86reg(int x86reg) { void MulX86reg(int x86reg) {
@ -2167,7 +2169,7 @@ void NotX86reg(int x86reg) {
void OrConstToVariable(DWORD Const, void * Variable, char * VariableName) { void OrConstToVariable(DWORD Const, void * Variable, char * VariableName) {
CPU_Message(" or dword ptr [%s], 0x%X",VariableName, Const); CPU_Message(" or dword ptr [%s], 0x%X",VariableName, Const);
PUTDST16(RecompPos,0x0D81); PUTDST16(RecompPos,0x0D81);
PUTDST32(RecompPos,Variable); PUTDSTPTR(RecompPos, Variable);
PUTDST32(RecompPos,Const); PUTDST32(RecompPos,Const);
} }
@ -2212,7 +2214,7 @@ void OrVariableToX86Reg(void * Variable, char * VariableName, int x86Reg) {
case x86_ESP: PUTDST16(RecompPos,0x250B); break; case x86_ESP: PUTDST16(RecompPos,0x250B); break;
case x86_EBP: PUTDST16(RecompPos,0x2D0B); break; case x86_EBP: PUTDST16(RecompPos,0x2D0B); break;
} }
PUTDST32(RecompPos,Variable); PUTDSTPTR(RecompPos, Variable);
} }
void OrVariableToX86regHalf(void * Variable, char * VariableName, int x86Reg) { 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_ESP: PUTDST16(RecompPos,0x250B); break;
case x86_EBP: PUTDST16(RecompPos,0x2D0B); break; case x86_EBP: PUTDST16(RecompPos,0x2D0B); break;
} }
PUTDST32(RecompPos,Variable); PUTDSTPTR(RecompPos, Variable);
} }
void OrX86RegToVariable(void * Variable, char * VariableName, int x86Reg) { 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_ESP: PUTDST16(RecompPos,0x2509); break;
case x86_EBP: PUTDST16(RecompPos,0x2D09); break; case x86_EBP: PUTDST16(RecompPos,0x2D09); break;
} }
PUTDST32(RecompPos,Variable); PUTDSTPTR(RecompPos, Variable);
} }
void OrX86RegToX86Reg(int Destination, int Source) { void OrX86RegToX86Reg(int Destination, int Source) {
@ -2341,14 +2343,14 @@ void SetlVariable(void * Variable, char * VariableName) {
CPU_Message(" setl byte ptr [%s]",VariableName); CPU_Message(" setl byte ptr [%s]",VariableName);
PUTDST16(RecompPos,0x9C0F); PUTDST16(RecompPos,0x9C0F);
PUTDST8(RecompPos,0x05); PUTDST8(RecompPos,0x05);
PUTDST32(RecompPos,Variable); PUTDSTPTR(RecompPos, Variable);
} }
void SetleVariable(void * Variable, char * VariableName) { void SetleVariable(void * Variable, char * VariableName) {
CPU_Message(" setle byte ptr [%s]",VariableName); CPU_Message(" setle byte ptr [%s]",VariableName);
PUTDST16(RecompPos,0x9E0F); PUTDST16(RecompPos,0x9E0F);
PUTDST8(RecompPos,0x05); PUTDST8(RecompPos,0x05);
PUTDST32(RecompPos,Variable); PUTDSTPTR(RecompPos, Variable);
} }
void Setb(int x86reg) { void Setb(int x86reg) {
@ -2368,7 +2370,7 @@ void SetbVariable(void * Variable, char * VariableName) {
CPU_Message(" setb byte ptr [%s]",VariableName); CPU_Message(" setb byte ptr [%s]",VariableName);
PUTDST16(RecompPos,0x920F); PUTDST16(RecompPos,0x920F);
PUTDST8(RecompPos,0x05); PUTDST8(RecompPos,0x05);
PUTDST32(RecompPos,Variable); PUTDSTPTR(RecompPos, Variable);
} }
void Setg(int x86reg) { void Setg(int x86reg) {
@ -2388,14 +2390,14 @@ void SetgVariable(void * Variable, char * VariableName) {
CPU_Message(" setg byte ptr [%s]",VariableName); CPU_Message(" setg byte ptr [%s]",VariableName);
PUTDST16(RecompPos,0x9F0F); PUTDST16(RecompPos,0x9F0F);
PUTDST8(RecompPos,0x05); PUTDST8(RecompPos,0x05);
PUTDST32(RecompPos,Variable); PUTDSTPTR(RecompPos, Variable);
} }
void SetgeVariable(void * Variable, char * VariableName) { void SetgeVariable(void * Variable, char * VariableName) {
CPU_Message(" setge byte ptr [%s]",VariableName); CPU_Message(" setge byte ptr [%s]",VariableName);
PUTDST16(RecompPos,0x9D0F); PUTDST16(RecompPos,0x9D0F);
PUTDST8(RecompPos,0x05); PUTDST8(RecompPos,0x05);
PUTDST32(RecompPos,Variable); PUTDSTPTR(RecompPos, Variable);
} }
void Seta(int x86reg) { void Seta(int x86reg) {
@ -2415,7 +2417,7 @@ void SetaVariable(void * Variable, char * VariableName) {
CPU_Message(" seta byte ptr [%s]",VariableName); CPU_Message(" seta byte ptr [%s]",VariableName);
PUTDST16(RecompPos,0x970F); PUTDST16(RecompPos,0x970F);
PUTDST8(RecompPos,0x05); PUTDST8(RecompPos,0x05);
PUTDST32(RecompPos,Variable); PUTDSTPTR(RecompPos, Variable);
} }
void Setae(int x86reg) { void Setae(int x86reg) {
@ -2448,7 +2450,7 @@ void SetzVariable(void * Variable, char * VariableName) {
CPU_Message(" setz byte ptr [%s]",VariableName); CPU_Message(" setz byte ptr [%s]",VariableName);
PUTDST16(RecompPos,0x940F); PUTDST16(RecompPos,0x940F);
PUTDST8(RecompPos,0x05); PUTDST8(RecompPos,0x05);
PUTDST32(RecompPos,Variable); PUTDSTPTR(RecompPos, Variable);
} }
void Setnz(int x86reg) { void Setnz(int x86reg) {
@ -2468,7 +2470,7 @@ void SetnzVariable(void * Variable, char * VariableName) {
CPU_Message(" setnz byte ptr [%s]",VariableName); CPU_Message(" setnz byte ptr [%s]",VariableName);
PUTDST16(RecompPos,0x950F); PUTDST16(RecompPos,0x950F);
PUTDST8(RecompPos,0x05); PUTDST8(RecompPos,0x05);
PUTDST32(RecompPos,Variable); PUTDSTPTR(RecompPos, Variable);
} }
void ShiftLeftDoubleImmed(int Destination, int Source, BYTE Immediate) { 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); CPU_Message(" shl dword ptr [%s], %Xh",VariableName, Immediate);
PUTDST16(RecompPos,0x25C1) PUTDST16(RecompPos,0x25C1)
PUTDST32(RecompPos, Variable); PUTDSTPTR(RecompPos, Variable);
PUTDST8(RecompPos,Immediate); PUTDST8(RecompPos,Immediate);
} }
@ -2593,7 +2595,7 @@ void ShiftRightSignVariableImmed(void *Variable, char *VariableName, BYTE Immedi
CPU_Message(" sar dword ptr [%s], %Xh",VariableName, Immediate); CPU_Message(" sar dword ptr [%s], %Xh",VariableName, Immediate);
PUTDST16(RecompPos,0x3DC1) PUTDST16(RecompPos,0x3DC1)
PUTDST32(RecompPos, Variable); PUTDSTPTR(RecompPos, Variable);
PUTDST8(RecompPos,Immediate); PUTDST8(RecompPos,Immediate);
} }
@ -2630,14 +2632,14 @@ void ShiftRightUnsignVariableImmed(void *Variable, char *VariableName, BYTE Imme
CPU_Message(" shr dword ptr [%s], %Xh",VariableName, Immediate); CPU_Message(" shr dword ptr [%s], %Xh",VariableName, Immediate);
PUTDST16(RecompPos,0x2DC1) PUTDST16(RecompPos,0x2DC1)
PUTDST32(RecompPos, Variable); PUTDSTPTR(RecompPos, Variable);
PUTDST8(RecompPos,Immediate); PUTDST8(RecompPos,Immediate);
} }
void SubConstFromVariable (DWORD Const, void *Variable, char *VariableName) { void SubConstFromVariable (DWORD Const, void *Variable, char *VariableName) {
CPU_Message(" sub dword ptr [%s], 0x%X",VariableName, Const);\ CPU_Message(" sub dword ptr [%s], 0x%X",VariableName, Const);\
PUTDST16(RecompPos,0x2D81); PUTDST16(RecompPos,0x2D81);
PUTDST32(RecompPos,Variable); PUTDSTPTR(RecompPos, Variable);
PUTDST32(RecompPos,Const); PUTDST32(RecompPos,Const);
} }
@ -2684,7 +2686,7 @@ void SubVariableFromX86reg(int x86reg, void * Variable, char * VariableName) {
default: default:
DisplayError("SubVariableFromX86reg\nUnknown x86 Register"); DisplayError("SubVariableFromX86reg\nUnknown x86 Register");
} }
PUTDST32(RecompPos,Variable); PUTDSTPTR(RecompPos, Variable);
} }
void SubX86regFromVariable(int x86reg, void * Variable, char * VariableName) { void SubX86regFromVariable(int x86reg, void * Variable, char * VariableName) {
@ -2701,7 +2703,7 @@ void SubX86regFromVariable(int x86reg, void * Variable, char * VariableName) {
default: default:
DisplayError("SubX86regFromVariable\nUnknown x86 Register"); DisplayError("SubX86regFromVariable\nUnknown x86 Register");
} }
PUTDST32(RecompPos,Variable); PUTDSTPTR(RecompPos, Variable);
} }
void SubX86RegToX86Reg(int Destination, int Source) { void SubX86RegToX86Reg(int Destination, int Source) {
@ -2759,7 +2761,7 @@ void SbbX86RegToX86Reg(int Destination, int Source) {
void TestConstToVariable(DWORD Const, void * Variable, char * VariableName) { void TestConstToVariable(DWORD Const, void * Variable, char * VariableName) {
CPU_Message(" test dword ptr [%s], 0x%X",VariableName, Const); CPU_Message(" test dword ptr [%s], 0x%X",VariableName, Const);
PUTDST16(RecompPos,0x05F7); PUTDST16(RecompPos,0x05F7);
PUTDST32(RecompPos,Variable); PUTDSTPTR(RecompPos, Variable);
PUTDST32(RecompPos,Const); 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); CPU_Message(" xor dword ptr [%s], 0x%X",VariableName, Const);
PUTDST16(RecompPos, 0x3581); PUTDST16(RecompPos, 0x3581);
PUTDST32(RecompPos,Variable); PUTDSTPTR(RecompPos, Variable);
PUTDST32(RecompPos, Const); PUTDST32(RecompPos, Const);
} }
@ -2885,7 +2887,7 @@ void XorVariableToX86reg(void *Variable, char *VariableName, int x86reg) {
case x86_EBP: PUTDST16(RecompPos,0x2D33); break; case x86_EBP: PUTDST16(RecompPos,0x2D33); break;
default: DisplayError("XorVariableToX86reg\nUnknown x86 Register"); default: DisplayError("XorVariableToX86reg\nUnknown x86 Register");
} }
PUTDST32(RecompPos,Variable); PUTDSTPTR(RecompPos, Variable);
} }
void XorX86RegToVariable(void *Variable, char *VariableName, int x86reg) { 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; case x86_EBP: PUTDST16(RecompPos,0x2D31); break;
default: DisplayError("XorX86RegToVariable\nUnknown x86 Register"); default: DisplayError("XorX86RegToVariable\nUnknown x86 Register");
} }
PUTDST32(RecompPos,Variable); PUTDSTPTR(RecompPos, Variable);
} }