diff --git a/IDEHelper/Backend/BeMCContext.cpp b/IDEHelper/Backend/BeMCContext.cpp index 2d6af7ce..ef25ab48 100644 --- a/IDEHelper/Backend/BeMCContext.cpp +++ b/IDEHelper/Backend/BeMCContext.cpp @@ -13729,10 +13729,22 @@ void BeMCContext::DoCodeEmission() }*/ else if ((inst->mArg0.IsNativeReg()) && (inst->mArg1.IsZero())) { - // Emit as XOR , - 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 , + EmitREX(inst->mArg0, inst->mArg0, false); + mOut.Write((uint8)0x30); // r, r/m64 + EmitModRM(inst->mArg0, inst->mArg0); + } + else + { + // Emit as XOR , + 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") // ;