x64Emitter: Remove pointer casts from Write{8,16,32,64} functions

This also silences quite a few ubsan asserts from firing when the emitter is being used.
This commit is contained in:
Lioncash
2015-08-21 17:57:35 -04:00
parent 95d958c03d
commit a69755d9ee
2 changed files with 28 additions and 4 deletions

View File

@ -3,6 +3,7 @@
// Refer to the license.txt file included.
#include <cinttypes>
#include <cstring>
#include "Common/CommonTypes.h"
#include "Common/CPUDetect.h"
@ -91,6 +92,29 @@ u8* XEmitter::GetWritableCodePtr()
return code;
}
void XEmitter::Write8(u8 value)
{
*code++ = value;
}
void XEmitter::Write16(u16 value)
{
std::memcpy(code, &value, sizeof(u16));
code += sizeof(u16);
}
void XEmitter::Write32(u32 value)
{
std::memcpy(code, &value, sizeof(u32));
code += sizeof(u32);
}
void XEmitter::Write64(u64 value)
{
std::memcpy(code, &value, sizeof(u64));
code += sizeof(u64);
}
void XEmitter::ReserveCodeSpace(int bytes)
{
for (int i = 0; i < bytes; i++)