diff options
Diffstat (limited to 'libpcsxcore/ix86_64/ix86-64.h')
| -rw-r--r-- | libpcsxcore/ix86_64/ix86-64.h | 22 |
1 files changed, 17 insertions, 5 deletions
diff --git a/libpcsxcore/ix86_64/ix86-64.h b/libpcsxcore/ix86_64/ix86-64.h index 009fa5a1..95945a0f 100644 --- a/libpcsxcore/ix86_64/ix86-64.h +++ b/libpcsxcore/ix86_64/ix86-64.h @@ -191,9 +191,9 @@ typedef struct { u32 x86Flags; // Feature Flags u32 x86EFlags; // Extended Feature Flags //all the above returns hex values - s8 x86ID[16]; // Vendor ID //the vendor creator (in %s) - s8 x86Type[20]; //cpu type in char format //the cpu type (in %s) - s8 x86Fam[50]; // family in char format //the original cpu name string (in %s) + char x86ID[16]; // Vendor ID //the vendor creator (in %s) + char x86Type[20]; //cpu type in char format //the cpu type (in %s) + char x86Fam[50]; // family in char format //the original cpu name string (in %s) u32 cpuspeed; // speed of cpu //this will give cpu speed (in %d) } CPUINFO; @@ -228,7 +228,7 @@ extern u32 *j32Ptr[32]; #define RexB(w, base) RexRXB(w, 0, 0, base) #define RexRB(w, reg, base) RexRXB(w, reg, 0, base) -void x86SetPtr( char *ptr ); +void x86SetPtr( s8 *ptr ); void x86Shutdown( void ); void x86SetJ8( u8 *j8 ); @@ -245,7 +245,8 @@ u64 GetCPUTick( void ); #define ModRM(mod, rm, reg) write8( ( mod << 6 ) | ( (rm & 7) << 3 ) | ( reg & 7 ) ) #define SibSB(ss, rm, index) write8( ( ss << 6 ) | ( rm << 3 ) | ( index ) ) void SET8R( int cc, int to ); -u8* J8Rel( int cc, int to ); +u8* J8Rel( int cc, u8 to ); +u16* J16Rel( int cc, u16 to ); u32* J32Rel( int cc, u32 to ); void CMOV32RtoR( int cc, int to, int from ); void CMOV32MtoR( int cc, int to, uptr from ); @@ -478,6 +479,8 @@ void CMOVLE32MtoR( x86IntRegType to, uptr from ); void ADD64ItoR( x86IntRegType to, u32 from ); // add m64 to r64 void ADD64MtoR( x86IntRegType to, uptr from ); +// add r64 to r64 +void ADD64RtoR( x86IntRegType to, x86IntRegType from ); // add imm32 to r32 void ADD32ItoR( x86IntRegType to, u32 from ); @@ -529,6 +532,7 @@ void INC16M( uptr to ); // sub m64 to r64 void SUB64MtoR( x86IntRegType to, uptr from ); void SUB64ItoR( x86IntRegType to, u32 from ); +void SUB64RtoR( x86IntRegType to, x86IntRegType from ); // sub imm32 to r32 void SUB32ItoR( x86IntRegType to, u32 from ); @@ -795,6 +799,10 @@ u8* JMP8( u8 to ); // jmp rel32 u32* JMP32( uptr to ); + +// jump rel8/rel32 (back jump only) +u8* JMP( uptr to ); + // jmp r32 (r64 if __x86_64__) void JMPR( x86IntRegType to ); // jmp m32 @@ -1751,6 +1759,7 @@ void SSE2EMU_MOVD_XMM_to_M32( uptr to, x86SSERegType from ); void SSE2EMU_MOVD_R_to_XMM( x86SSERegType to, x86IntRegType from ); //////////////////////////////////////////////////// +void CheckX86Ptr(void); #ifdef _DEBUG #define WRITECHECK() CheckX86Ptr() #else @@ -1769,6 +1778,9 @@ void SSE2EMU_MOVD_R_to_XMM( x86SSERegType to, x86IntRegType from ); #define write32( val ) writeVAL((u32)(val)) #define write64( val ) writeVAL((u64)(val)) +void WriteRmOffset(x86IntRegType to, int offset); +void WriteRmOffsetFrom(x86IntRegType to, x86IntRegType from, int offset); + #ifdef __cplusplus } #endif |
