Rename Data to Alu
This commit is contained in:
parent
a94df7a4a2
commit
ead8ca83d3
5 changed files with 69 additions and 69 deletions
|
@ -17,7 +17,7 @@ namespace ChocolArm64.Instructions
|
||||||
|
|
||||||
private static void EmitAdc(ILEmitterCtx context, bool setFlags)
|
private static void EmitAdc(ILEmitterCtx context, bool setFlags)
|
||||||
{
|
{
|
||||||
EmitDataLoadOpers(context);
|
EmitAluLoadOpers(context);
|
||||||
|
|
||||||
context.Emit(OpCodes.Add);
|
context.Emit(OpCodes.Add);
|
||||||
|
|
||||||
|
@ -44,14 +44,14 @@ namespace ChocolArm64.Instructions
|
||||||
EmitAddsVCheck(context);
|
EmitAddsVCheck(context);
|
||||||
}
|
}
|
||||||
|
|
||||||
EmitDataStore(context);
|
EmitAluStore(context);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void Add(ILEmitterCtx context) => EmitDataOp(context, OpCodes.Add);
|
public static void Add(ILEmitterCtx context) => EmitAluOp(context, OpCodes.Add);
|
||||||
|
|
||||||
public static void Adds(ILEmitterCtx context)
|
public static void Adds(ILEmitterCtx context)
|
||||||
{
|
{
|
||||||
EmitDataLoadOpers(context);
|
EmitAluLoadOpers(context);
|
||||||
|
|
||||||
context.Emit(OpCodes.Add);
|
context.Emit(OpCodes.Add);
|
||||||
|
|
||||||
|
@ -59,14 +59,14 @@ namespace ChocolArm64.Instructions
|
||||||
|
|
||||||
EmitAddsCCheck(context);
|
EmitAddsCCheck(context);
|
||||||
EmitAddsVCheck(context);
|
EmitAddsVCheck(context);
|
||||||
EmitDataStoreS(context);
|
EmitAluStoreS(context);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void And(ILEmitterCtx context) => EmitDataOp(context, OpCodes.And);
|
public static void And(ILEmitterCtx context) => EmitAluOp(context, OpCodes.And);
|
||||||
|
|
||||||
public static void Ands(ILEmitterCtx context)
|
public static void Ands(ILEmitterCtx context)
|
||||||
{
|
{
|
||||||
EmitDataLoadOpers(context);
|
EmitAluLoadOpers(context);
|
||||||
|
|
||||||
context.Emit(OpCodes.And);
|
context.Emit(OpCodes.And);
|
||||||
|
|
||||||
|
@ -74,17 +74,17 @@ namespace ChocolArm64.Instructions
|
||||||
|
|
||||||
context.EmitZnFlagCheck();
|
context.EmitZnFlagCheck();
|
||||||
|
|
||||||
EmitDataStoreS(context);
|
EmitAluStoreS(context);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void Asrv(ILEmitterCtx context) => EmitDataOpShift(context, OpCodes.Shr);
|
public static void Asrv(ILEmitterCtx context) => EmitAluOpShift(context, OpCodes.Shr);
|
||||||
|
|
||||||
public static void Bic(ILEmitterCtx context) => EmitBic(context, false);
|
public static void Bic(ILEmitterCtx context) => EmitBic(context, false);
|
||||||
public static void Bics(ILEmitterCtx context) => EmitBic(context, true);
|
public static void Bics(ILEmitterCtx context) => EmitBic(context, true);
|
||||||
|
|
||||||
private static void EmitBic(ILEmitterCtx context, bool setFlags)
|
private static void EmitBic(ILEmitterCtx context, bool setFlags)
|
||||||
{
|
{
|
||||||
EmitDataLoadOpers(context);
|
EmitAluLoadOpers(context);
|
||||||
|
|
||||||
context.Emit(OpCodes.Not);
|
context.Emit(OpCodes.Not);
|
||||||
context.Emit(OpCodes.And);
|
context.Emit(OpCodes.And);
|
||||||
|
@ -96,7 +96,7 @@ namespace ChocolArm64.Instructions
|
||||||
context.EmitZnFlagCheck();
|
context.EmitZnFlagCheck();
|
||||||
}
|
}
|
||||||
|
|
||||||
EmitDataStore(context, setFlags);
|
EmitAluStore(context, setFlags);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void Cls(ILEmitterCtx context)
|
public static void Cls(ILEmitterCtx context)
|
||||||
|
@ -136,15 +136,15 @@ namespace ChocolArm64.Instructions
|
||||||
|
|
||||||
public static void Eon(ILEmitterCtx context)
|
public static void Eon(ILEmitterCtx context)
|
||||||
{
|
{
|
||||||
EmitDataLoadOpers(context);
|
EmitAluLoadOpers(context);
|
||||||
|
|
||||||
context.Emit(OpCodes.Not);
|
context.Emit(OpCodes.Not);
|
||||||
context.Emit(OpCodes.Xor);
|
context.Emit(OpCodes.Xor);
|
||||||
|
|
||||||
EmitDataStore(context);
|
EmitAluStore(context);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void Eor(ILEmitterCtx context) => EmitDataOp(context, OpCodes.Xor);
|
public static void Eor(ILEmitterCtx context) => EmitAluOp(context, OpCodes.Xor);
|
||||||
|
|
||||||
public static void Extr(ILEmitterCtx context)
|
public static void Extr(ILEmitterCtx context)
|
||||||
{
|
{
|
||||||
|
@ -166,18 +166,18 @@ namespace ChocolArm64.Instructions
|
||||||
context.Emit(OpCodes.Or);
|
context.Emit(OpCodes.Or);
|
||||||
}
|
}
|
||||||
|
|
||||||
EmitDataStore(context);
|
EmitAluStore(context);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void Lslv(ILEmitterCtx context) => EmitDataOpShift(context, OpCodes.Shl);
|
public static void Lslv(ILEmitterCtx context) => EmitAluOpShift(context, OpCodes.Shl);
|
||||||
public static void Lsrv(ILEmitterCtx context) => EmitDataOpShift(context, OpCodes.Shr_Un);
|
public static void Lsrv(ILEmitterCtx context) => EmitAluOpShift(context, OpCodes.Shr_Un);
|
||||||
|
|
||||||
public static void Sbc(ILEmitterCtx context) => EmitSbc(context, false);
|
public static void Sbc(ILEmitterCtx context) => EmitSbc(context, false);
|
||||||
public static void Sbcs(ILEmitterCtx context) => EmitSbc(context, true);
|
public static void Sbcs(ILEmitterCtx context) => EmitSbc(context, true);
|
||||||
|
|
||||||
private static void EmitSbc(ILEmitterCtx context, bool setFlags)
|
private static void EmitSbc(ILEmitterCtx context, bool setFlags)
|
||||||
{
|
{
|
||||||
EmitDataLoadOpers(context);
|
EmitAluLoadOpers(context);
|
||||||
|
|
||||||
context.Emit(OpCodes.Sub);
|
context.Emit(OpCodes.Sub);
|
||||||
|
|
||||||
|
@ -208,16 +208,16 @@ namespace ChocolArm64.Instructions
|
||||||
EmitSubsVCheck(context);
|
EmitSubsVCheck(context);
|
||||||
}
|
}
|
||||||
|
|
||||||
EmitDataStore(context);
|
EmitAluStore(context);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void Sub(ILEmitterCtx context) => EmitDataOp(context, OpCodes.Sub);
|
public static void Sub(ILEmitterCtx context) => EmitAluOp(context, OpCodes.Sub);
|
||||||
|
|
||||||
public static void Subs(ILEmitterCtx context)
|
public static void Subs(ILEmitterCtx context)
|
||||||
{
|
{
|
||||||
context.TryOptMarkCondWithoutCmp();
|
context.TryOptMarkCondWithoutCmp();
|
||||||
|
|
||||||
EmitDataLoadOpers(context);
|
EmitAluLoadOpers(context);
|
||||||
|
|
||||||
context.Emit(OpCodes.Sub);
|
context.Emit(OpCodes.Sub);
|
||||||
|
|
||||||
|
@ -225,20 +225,20 @@ namespace ChocolArm64.Instructions
|
||||||
|
|
||||||
EmitSubsCCheck(context);
|
EmitSubsCCheck(context);
|
||||||
EmitSubsVCheck(context);
|
EmitSubsVCheck(context);
|
||||||
EmitDataStoreS(context);
|
EmitAluStoreS(context);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void Orn(ILEmitterCtx context)
|
public static void Orn(ILEmitterCtx context)
|
||||||
{
|
{
|
||||||
EmitDataLoadOpers(context);
|
EmitAluLoadOpers(context);
|
||||||
|
|
||||||
context.Emit(OpCodes.Not);
|
context.Emit(OpCodes.Not);
|
||||||
context.Emit(OpCodes.Or);
|
context.Emit(OpCodes.Or);
|
||||||
|
|
||||||
EmitDataStore(context);
|
EmitAluStore(context);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void Orr(ILEmitterCtx context) => EmitDataOp(context, OpCodes.Or);
|
public static void Orr(ILEmitterCtx context) => EmitAluOp(context, OpCodes.Or);
|
||||||
|
|
||||||
public static void Rbit(ILEmitterCtx context) => EmitFallback32_64(context,
|
public static void Rbit(ILEmitterCtx context) => EmitFallback32_64(context,
|
||||||
nameof(SoftFallback.ReverseBits32),
|
nameof(SoftFallback.ReverseBits32),
|
||||||
|
@ -283,22 +283,22 @@ namespace ChocolArm64.Instructions
|
||||||
|
|
||||||
public static void Rorv(ILEmitterCtx context)
|
public static void Rorv(ILEmitterCtx context)
|
||||||
{
|
{
|
||||||
EmitDataLoadRn(context);
|
EmitAluLoadRn(context);
|
||||||
EmitDataLoadShift(context);
|
EmitAluLoadShift(context);
|
||||||
|
|
||||||
context.Emit(OpCodes.Shr_Un);
|
context.Emit(OpCodes.Shr_Un);
|
||||||
|
|
||||||
EmitDataLoadRn(context);
|
EmitAluLoadRn(context);
|
||||||
|
|
||||||
context.EmitLdc_I4(context.CurrOp.GetBitsCount());
|
context.EmitLdc_I4(context.CurrOp.GetBitsCount());
|
||||||
|
|
||||||
EmitDataLoadShift(context);
|
EmitAluLoadShift(context);
|
||||||
|
|
||||||
context.Emit(OpCodes.Sub);
|
context.Emit(OpCodes.Sub);
|
||||||
context.Emit(OpCodes.Shl);
|
context.Emit(OpCodes.Shl);
|
||||||
context.Emit(OpCodes.Or);
|
context.Emit(OpCodes.Or);
|
||||||
|
|
||||||
EmitDataStore(context);
|
EmitAluStore(context);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void Sdiv(ILEmitterCtx context) => EmitDiv(context, OpCodes.Div);
|
public static void Sdiv(ILEmitterCtx context) => EmitDiv(context, OpCodes.Div);
|
||||||
|
@ -309,7 +309,7 @@ namespace ChocolArm64.Instructions
|
||||||
//If Rm == 0, Rd = 0 (division by zero).
|
//If Rm == 0, Rd = 0 (division by zero).
|
||||||
context.EmitLdc_I(0);
|
context.EmitLdc_I(0);
|
||||||
|
|
||||||
EmitDataLoadRm(context);
|
EmitAluLoadRm(context);
|
||||||
|
|
||||||
context.EmitLdc_I(0);
|
context.EmitLdc_I(0);
|
||||||
|
|
||||||
|
@ -325,13 +325,13 @@ namespace ChocolArm64.Instructions
|
||||||
|
|
||||||
context.EmitLdc_I(intMin);
|
context.EmitLdc_I(intMin);
|
||||||
|
|
||||||
EmitDataLoadRn(context);
|
EmitAluLoadRn(context);
|
||||||
|
|
||||||
context.EmitLdc_I(intMin);
|
context.EmitLdc_I(intMin);
|
||||||
|
|
||||||
context.Emit(OpCodes.Ceq);
|
context.Emit(OpCodes.Ceq);
|
||||||
|
|
||||||
EmitDataLoadRm(context);
|
EmitAluLoadRm(context);
|
||||||
|
|
||||||
context.EmitLdc_I(-1);
|
context.EmitLdc_I(-1);
|
||||||
|
|
||||||
|
@ -341,38 +341,38 @@ namespace ChocolArm64.Instructions
|
||||||
context.Emit(OpCodes.Pop);
|
context.Emit(OpCodes.Pop);
|
||||||
}
|
}
|
||||||
|
|
||||||
EmitDataLoadRn(context);
|
EmitAluLoadRn(context);
|
||||||
EmitDataLoadRm(context);
|
EmitAluLoadRm(context);
|
||||||
|
|
||||||
context.Emit(ilOp);
|
context.Emit(ilOp);
|
||||||
|
|
||||||
context.MarkLabel(badDiv);
|
context.MarkLabel(badDiv);
|
||||||
|
|
||||||
EmitDataStore(context);
|
EmitAluStore(context);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void EmitDataOp(ILEmitterCtx context, OpCode ilOp)
|
private static void EmitAluOp(ILEmitterCtx context, OpCode ilOp)
|
||||||
{
|
{
|
||||||
EmitDataLoadOpers(context);
|
EmitAluLoadOpers(context);
|
||||||
|
|
||||||
context.Emit(ilOp);
|
context.Emit(ilOp);
|
||||||
|
|
||||||
EmitDataStore(context);
|
EmitAluStore(context);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void EmitDataOpShift(ILEmitterCtx context, OpCode ilOp)
|
private static void EmitAluOpShift(ILEmitterCtx context, OpCode ilOp)
|
||||||
{
|
{
|
||||||
EmitDataLoadRn(context);
|
EmitAluLoadRn(context);
|
||||||
EmitDataLoadShift(context);
|
EmitAluLoadShift(context);
|
||||||
|
|
||||||
context.Emit(ilOp);
|
context.Emit(ilOp);
|
||||||
|
|
||||||
EmitDataStore(context);
|
EmitAluStore(context);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void EmitDataLoadShift(ILEmitterCtx context)
|
private static void EmitAluLoadShift(ILEmitterCtx context)
|
||||||
{
|
{
|
||||||
EmitDataLoadRm(context);
|
EmitAluLoadRm(context);
|
||||||
|
|
||||||
context.EmitLdc_I(context.CurrOp.GetBitsCount() - 1);
|
context.EmitLdc_I(context.CurrOp.GetBitsCount() - 1);
|
||||||
|
|
||||||
|
@ -399,10 +399,10 @@ namespace ChocolArm64.Instructions
|
||||||
context.EmitStflg((int)PState.CBit);
|
context.EmitStflg((int)PState.CBit);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void EmitDataStore(ILEmitterCtx context) => EmitDataStore(context, false);
|
public static void EmitAluStore(ILEmitterCtx context) => EmitAluStore(context, false);
|
||||||
public static void EmitDataStoreS(ILEmitterCtx context) => EmitDataStore(context, true);
|
public static void EmitAluStoreS(ILEmitterCtx context) => EmitAluStore(context, true);
|
||||||
|
|
||||||
public static void EmitDataStore(ILEmitterCtx context, bool setFlags)
|
public static void EmitAluStore(ILEmitterCtx context, bool setFlags)
|
||||||
{
|
{
|
||||||
IOpCodeAlu64 op = (IOpCodeAlu64)context.CurrOp;
|
IOpCodeAlu64 op = (IOpCodeAlu64)context.CurrOp;
|
||||||
|
|
||||||
|
|
|
@ -14,7 +14,7 @@ namespace ChocolArm64.Instructions
|
||||||
{
|
{
|
||||||
IOpCodeAlu32 op = (IOpCodeAlu32)context.CurrOp;
|
IOpCodeAlu32 op = (IOpCodeAlu32)context.CurrOp;
|
||||||
|
|
||||||
EmitDataLoadOpers(context, setCarry: false);
|
EmitAluLoadOpers(context, setCarry: false);
|
||||||
|
|
||||||
context.Emit(OpCodes.Add);
|
context.Emit(OpCodes.Add);
|
||||||
|
|
||||||
|
@ -33,7 +33,7 @@ namespace ChocolArm64.Instructions
|
||||||
{
|
{
|
||||||
IOpCodeAlu32 op = (IOpCodeAlu32)context.CurrOp;
|
IOpCodeAlu32 op = (IOpCodeAlu32)context.CurrOp;
|
||||||
|
|
||||||
EmitDataLoadOper2(context);
|
EmitAluLoadOper2(context);
|
||||||
|
|
||||||
if (op.SetFlags)
|
if (op.SetFlags)
|
||||||
{
|
{
|
||||||
|
@ -47,7 +47,7 @@ namespace ChocolArm64.Instructions
|
||||||
{
|
{
|
||||||
IOpCodeAlu32 op = (IOpCodeAlu32)context.CurrOp;
|
IOpCodeAlu32 op = (IOpCodeAlu32)context.CurrOp;
|
||||||
|
|
||||||
EmitDataLoadOpers(context, setCarry: false);
|
EmitAluLoadOpers(context, setCarry: false);
|
||||||
|
|
||||||
context.Emit(OpCodes.Sub);
|
context.Emit(OpCodes.Sub);
|
||||||
|
|
||||||
|
|
|
@ -15,7 +15,7 @@ namespace ChocolArm64.Instructions
|
||||||
context.EmitLdtmp();
|
context.EmitLdtmp();
|
||||||
context.EmitLdtmp();
|
context.EmitLdtmp();
|
||||||
|
|
||||||
EmitDataLoadRn(context);
|
EmitAluLoadRn(context);
|
||||||
|
|
||||||
context.Emit(OpCodes.Ceq);
|
context.Emit(OpCodes.Ceq);
|
||||||
|
|
||||||
|
@ -25,7 +25,7 @@ namespace ChocolArm64.Instructions
|
||||||
|
|
||||||
context.EmitLdtmp();
|
context.EmitLdtmp();
|
||||||
|
|
||||||
EmitDataLoadRn(context);
|
EmitAluLoadRn(context);
|
||||||
|
|
||||||
context.Emit(OpCodes.Clt_Un);
|
context.Emit(OpCodes.Clt_Un);
|
||||||
context.Emit(OpCodes.Or);
|
context.Emit(OpCodes.Or);
|
||||||
|
@ -38,7 +38,7 @@ namespace ChocolArm64.Instructions
|
||||||
//C = Rd < Rn
|
//C = Rd < Rn
|
||||||
context.Emit(OpCodes.Dup);
|
context.Emit(OpCodes.Dup);
|
||||||
|
|
||||||
EmitDataLoadRn(context);
|
EmitAluLoadRn(context);
|
||||||
|
|
||||||
context.Emit(OpCodes.Clt_Un);
|
context.Emit(OpCodes.Clt_Un);
|
||||||
|
|
||||||
|
@ -50,11 +50,11 @@ namespace ChocolArm64.Instructions
|
||||||
//V = (Rd ^ Rn) & ~(Rn ^ Rm) < 0
|
//V = (Rd ^ Rn) & ~(Rn ^ Rm) < 0
|
||||||
context.Emit(OpCodes.Dup);
|
context.Emit(OpCodes.Dup);
|
||||||
|
|
||||||
EmitDataLoadRn(context);
|
EmitAluLoadRn(context);
|
||||||
|
|
||||||
context.Emit(OpCodes.Xor);
|
context.Emit(OpCodes.Xor);
|
||||||
|
|
||||||
EmitDataLoadOpers(context);
|
EmitAluLoadOpers(context);
|
||||||
|
|
||||||
context.Emit(OpCodes.Xor);
|
context.Emit(OpCodes.Xor);
|
||||||
context.Emit(OpCodes.Not);
|
context.Emit(OpCodes.Not);
|
||||||
|
@ -70,7 +70,7 @@ namespace ChocolArm64.Instructions
|
||||||
public static void EmitSbcsCCheck(ILEmitterCtx context)
|
public static void EmitSbcsCCheck(ILEmitterCtx context)
|
||||||
{
|
{
|
||||||
//C = (Rn == Rm && CIn) || Rn > Rm
|
//C = (Rn == Rm && CIn) || Rn > Rm
|
||||||
EmitDataLoadOpers(context);
|
EmitAluLoadOpers(context);
|
||||||
|
|
||||||
context.Emit(OpCodes.Ceq);
|
context.Emit(OpCodes.Ceq);
|
||||||
|
|
||||||
|
@ -78,7 +78,7 @@ namespace ChocolArm64.Instructions
|
||||||
|
|
||||||
context.Emit(OpCodes.And);
|
context.Emit(OpCodes.And);
|
||||||
|
|
||||||
EmitDataLoadOpers(context);
|
EmitAluLoadOpers(context);
|
||||||
|
|
||||||
context.Emit(OpCodes.Cgt_Un);
|
context.Emit(OpCodes.Cgt_Un);
|
||||||
context.Emit(OpCodes.Or);
|
context.Emit(OpCodes.Or);
|
||||||
|
@ -89,7 +89,7 @@ namespace ChocolArm64.Instructions
|
||||||
public static void EmitSubsCCheck(ILEmitterCtx context)
|
public static void EmitSubsCCheck(ILEmitterCtx context)
|
||||||
{
|
{
|
||||||
//C = Rn == Rm || Rn > Rm = !(Rn < Rm)
|
//C = Rn == Rm || Rn > Rm = !(Rn < Rm)
|
||||||
EmitDataLoadOpers(context);
|
EmitAluLoadOpers(context);
|
||||||
|
|
||||||
context.Emit(OpCodes.Clt_Un);
|
context.Emit(OpCodes.Clt_Un);
|
||||||
|
|
||||||
|
@ -105,11 +105,11 @@ namespace ChocolArm64.Instructions
|
||||||
//V = (Rd ^ Rn) & (Rn ^ Rm) < 0
|
//V = (Rd ^ Rn) & (Rn ^ Rm) < 0
|
||||||
context.Emit(OpCodes.Dup);
|
context.Emit(OpCodes.Dup);
|
||||||
|
|
||||||
EmitDataLoadRn(context);
|
EmitAluLoadRn(context);
|
||||||
|
|
||||||
context.Emit(OpCodes.Xor);
|
context.Emit(OpCodes.Xor);
|
||||||
|
|
||||||
EmitDataLoadOpers(context);
|
EmitAluLoadOpers(context);
|
||||||
|
|
||||||
context.Emit(OpCodes.Xor);
|
context.Emit(OpCodes.Xor);
|
||||||
context.Emit(OpCodes.And);
|
context.Emit(OpCodes.And);
|
||||||
|
@ -121,7 +121,7 @@ namespace ChocolArm64.Instructions
|
||||||
context.EmitStflg((int)PState.VBit);
|
context.EmitStflg((int)PState.VBit);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void EmitDataLoadRm(ILEmitterCtx context)
|
public static void EmitAluLoadRm(ILEmitterCtx context)
|
||||||
{
|
{
|
||||||
if (context.CurrOp is IOpCodeAluRs64 op)
|
if (context.CurrOp is IOpCodeAluRs64 op)
|
||||||
{
|
{
|
||||||
|
@ -137,13 +137,13 @@ namespace ChocolArm64.Instructions
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void EmitDataLoadOpers(ILEmitterCtx context, bool setCarry = true)
|
public static void EmitAluLoadOpers(ILEmitterCtx context, bool setCarry = true)
|
||||||
{
|
{
|
||||||
EmitDataLoadRn(context);
|
EmitAluLoadRn(context);
|
||||||
EmitDataLoadOper2(context, setCarry);
|
EmitAluLoadOper2(context, setCarry);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void EmitDataLoadRn(ILEmitterCtx context)
|
public static void EmitAluLoadRn(ILEmitterCtx context)
|
||||||
{
|
{
|
||||||
if (context.CurrOp is IOpCodeAlu64 op)
|
if (context.CurrOp is IOpCodeAlu64 op)
|
||||||
{
|
{
|
||||||
|
@ -166,7 +166,7 @@ namespace ChocolArm64.Instructions
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void EmitDataLoadOper2(ILEmitterCtx context, bool setCarry = true)
|
public static void EmitAluLoadOper2(ILEmitterCtx context, bool setCarry = true)
|
||||||
{
|
{
|
||||||
switch (context.CurrOp)
|
switch (context.CurrOp)
|
||||||
{
|
{
|
||||||
|
|
|
@ -48,7 +48,7 @@ namespace ChocolArm64.Instructions
|
||||||
|
|
||||||
context.MarkLabel(lblTrue);
|
context.MarkLabel(lblTrue);
|
||||||
|
|
||||||
EmitDataLoadOpers(context);
|
EmitAluLoadOpers(context);
|
||||||
|
|
||||||
if (cmpOp == CcmpOp.Cmp)
|
if (cmpOp == CcmpOp.Cmp)
|
||||||
{
|
{
|
||||||
|
|
|
@ -286,7 +286,7 @@ namespace ChocolArm64.Translation
|
||||||
{
|
{
|
||||||
_optOpLastCompare = CurrOp;
|
_optOpLastCompare = CurrOp;
|
||||||
|
|
||||||
InstEmitAluHelper.EmitDataLoadOpers(this);
|
InstEmitAluHelper.EmitAluLoadOpers(this);
|
||||||
|
|
||||||
Stloc(CmpOptTmp2Index, IoType.Int);
|
Stloc(CmpOptTmp2Index, IoType.Int);
|
||||||
Stloc(CmpOptTmp1Index, IoType.Int);
|
Stloc(CmpOptTmp1Index, IoType.Int);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue