1
0
Fork 0
mirror of https://github.com/beefytech/Beef.git synced 2025-06-08 03:28:20 +02:00

Fixed xor ah, ah emission

This commit is contained in:
Brian Fiete 2022-02-15 11:01:28 -05:00
parent 868700b0dd
commit 53bcd5c6fc

View file

@ -13729,10 +13729,22 @@ void BeMCContext::DoCodeEmission()
}*/
else if ((inst->mArg0.IsNativeReg()) && (inst->mArg1.IsZero()))
{
// Emit as XOR <arg0>, <arg0>
EmitREX(inst->mArg0, inst->mArg0, GetType(inst->mArg0)->mSize == 8);
mOut.Write((uint8)0x33); // r, r/m64
EmitModRM(inst->mArg0, inst->mArg0);
auto type = GetType(inst->mArg0);
if (type->mSize == 1)
{
// Emit as XOR <arg0>, <arg0>
EmitREX(inst->mArg0, inst->mArg0, false);
mOut.Write((uint8)0x30); // r, r/m64
EmitModRM(inst->mArg0, inst->mArg0);
}
else
{
// Emit as XOR <arg0>, <arg0>
EmitREX(inst->mArg0, inst->mArg0, type->mSize == 8);
mOut.Write((uint8)0x33); // r, r/m64
EmitModRM(inst->mArg0, inst->mArg0);
}
}
else
{
@ -16078,7 +16090,7 @@ void BeMCContext::Generate(BeFunction* function)
mDbgPreferredRegs[32] = X64Reg_R8;*/
//mDbgPreferredRegs[8] = X64Reg_RAX;
//mDebugging = (function->mName == "?InitDecHexDigits@NumberFormatter@System@bf@@AEAAX_K@Z");
mDebugging = (function->mName == "?Main@TestProgram@BeefTest@bf@@SATint@@PEAV?$Array1@PEAVString@System@bf@@@System@3@@Z");
// || (function->mName == "?MethodA@TestProgram@BeefTest@bf@@CAXXZ");
// || (function->mName == "?Hey@Blurg@bf@@SAXXZ")
// ;