mirror of
https://github.com/beefytech/Beef.git
synced 2025-06-08 03:28:20 +02:00
Fixed division issue with RDX preservation
This commit is contained in:
parent
fc57557fd9
commit
69cb6d0208
3 changed files with 9 additions and 1 deletions
|
@ -5578,6 +5578,9 @@ void BeMCContext::DisableRegister(const BeMCOperand& operand, X64CPURegister reg
|
|||
case X64Reg_RAX:
|
||||
vregInfo->mDisableRAX = true;
|
||||
break;
|
||||
case X64Reg_RDX:
|
||||
vregInfo->mDisableRDX = true;
|
||||
break;
|
||||
case X64Reg_SIL:
|
||||
vregInfo->mDisableEx = true;
|
||||
break;
|
||||
|
@ -9228,6 +9231,8 @@ bool BeMCContext::DoLegalization()
|
|||
{
|
||||
// This is to avoid overlap with PreserveRAX
|
||||
DisableRegister(inst->mArg0, X64Reg_RAX);
|
||||
if (preserveRDX)
|
||||
DisableRegister(inst->mArg0, X64Reg_RDX);
|
||||
}
|
||||
}
|
||||
AllocInst(BeMCInstKind_Mov, inst->mArg0, mcRemaindier, instIdx++ + 1);
|
||||
|
@ -14709,7 +14714,7 @@ void BeMCContext::Generate(BeFunction* function)
|
|||
mDbgPreferredRegs[32] = X64Reg_R8;*/
|
||||
|
||||
//mDbgPreferredRegs[8] = X64Reg_RAX;
|
||||
//mDebugging = function->mName == "?Hey@Blurg@bf@@SAXXZ";
|
||||
mDebugging = function->mName == "?Dequeue@?$Queue@Tint@@@Generic@Collections@System@bf@@QEAATint@@XZ";
|
||||
//"?ColorizeCodeString@IDEUtils@IDE@bf@@SAXPEAVString@System@3@W4CodeKind@123@@Z";
|
||||
//"?Main@Program@bf@@CAHPEAV?$Array1@PEAVString@System@bf@@@System@2@@Z";
|
||||
|
||||
|
|
|
@ -428,6 +428,7 @@ BfCompiler::BfCompiler(BfSystem* bfSystem, bool isResolveOnly)
|
|||
mTypeTypeDef = NULL;
|
||||
mUnboundAttributeTypeDef = NULL;
|
||||
mValueTypeTypeDef = NULL;
|
||||
mResultTypeDef = NULL;
|
||||
mObsoleteAttributeTypeDef = NULL;
|
||||
mErrorAttributeTypeDef = NULL;
|
||||
mWarnAttributeTypeDef = NULL;
|
||||
|
@ -5923,6 +5924,7 @@ bool BfCompiler::DoCompile(const StringImpl& outputDirectory)
|
|||
mFriendAttributeTypeDef = _GetRequiredType("System.FriendAttribute");
|
||||
mCheckedAttributeTypeDef = _GetRequiredType("System.CheckedAttribute");
|
||||
mUncheckedAttributeTypeDef = _GetRequiredType("System.UncheckedAttribute");
|
||||
mResultTypeDef = _GetRequiredType("System.Result", 1);
|
||||
mFunctionTypeDef = _GetRequiredType("System.Function");
|
||||
mGCTypeDef = _GetRequiredType("System.GC");
|
||||
mGenericIEnumerableTypeDef = _GetRequiredType("System.Collections.Generic.IEnumerable");
|
||||
|
|
|
@ -345,6 +345,7 @@ public:
|
|||
BfTypeDef* mStringTypeDef;
|
||||
BfTypeDef* mTypeTypeDef;
|
||||
BfTypeDef* mValueTypeTypeDef;
|
||||
BfTypeDef* mResultTypeDef;
|
||||
BfTypeDef* mFunctionTypeDef;
|
||||
BfTypeDef* mGCTypeDef;
|
||||
BfTypeDef* mGenericIEnumerableTypeDef;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue