64-bit support for CSGO on Linux and macOS (#705)

This commit is contained in:
Scott Ehlert
2017-12-20 01:56:23 -06:00
committed by GitHub
parent 057a5790e2
commit ce1a4dcac0
90 changed files with 15682 additions and 947 deletions
+16
View File
@@ -115,6 +115,22 @@ public:
}
outptr += sizeof(jit_uint32_t);
}
inline void write_int64(jit_int64_t c)
{
if (outbase)
{
*(jit_int64_t *)outptr = c;
}
outptr += sizeof(jit_int64_t);
}
inline void write_uint64(jit_uint64_t c)
{
if (outbase)
{
*(jit_uint64_t *)outptr = c;
}
outptr += sizeof(jit_uint64_t);
}
inline jitoffs_t get_outputpos()
{
return (outptr - outbase);
+10
View File
@@ -102,6 +102,7 @@ const jit_uint8_t kREG_EDI = 7;
#define IA32_MOV_RM_REG 0x89 // encoding is /r
#define IA32_MOV_REG8_RM8 0x8A // encoding is /r
#define IA32_MOV_REG_RM 0x8B // encoding is /r
#define IA32_MOV_RM_IMM32 0xC7 // encoding is /0
#define IA32_LEA_REG_MEM 0x8D // encoding is /r
#define IA32_MOVSB 0xA4 // no extra encoding
#define IA32_MOVSD 0xA5 // no extra encoding
@@ -465,5 +466,14 @@ inline jitoffs_t IA32_Jump_Imm32(JitWriter *jit, jit_int32_t disp)
return ptr;
}
inline void IA32_Mov_ESP_Disp8_Imm32(JitWriter *jit, jit_int8_t disp8, jit_int32_t val)
{
jit->write_ubyte(IA32_MOV_RM_IMM32);
jit->write_ubyte(ia32_modrm(MOD_DISP8, 0, kREG_SIB));
jit->write_ubyte(ia32_sib(NOSCALE, kREG_NOIDX, kREG_ESP));
jit->write_byte(disp8);
jit->write_int32(val);
}
#endif //_INCLUDE_JIT_X86_MACROS_H